From e3d96495d041abcd1e77626ee599571f9dcff4fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?= <grubba@grubba.org> Date: Wed, 13 May 1998 02:36:50 +0200 Subject: [PATCH] Somewhat improved. Rev: tutorial/manpages:1.15 --- .gitattributes | 1 + tutorial/manpages | 39 ++++++++++++++++++++++++++++++++++----- 2 files changed, 35 insertions(+), 5 deletions(-) diff --git a/.gitattributes b/.gitattributes index 9ca63d1e4c..9ecb80d8fa 100644 --- a/.gitattributes +++ b/.gitattributes @@ -390,3 +390,4 @@ testfont binary /src/ualarm.c foreign_ident /src/version.c foreign_ident /src/version.h foreign_ident +/tutorial/manpages foreign_ident diff --git a/tutorial/manpages b/tutorial/manpages index 2931c37974..b623bbbad4 100644 --- a/tutorial/manpages +++ b/tutorial/manpages @@ -1,6 +1,11 @@ +// -*- Pike -*- +// $Id: manpages,v 1.15 1998/05/13 00:36:50 grubba Exp $ + #include "types.h" inherit Stdio.File : out; +int verbose = 0; + string globalbase; object windex; object whatis; @@ -48,18 +53,28 @@ void mkdirhier(string what) } } +int stripws=1; + string make_manpage(string base, SGML data, string ind, string fbase) { string res=""; - int stripws=0; + + if (verbose) { + werror(sprintf("data:%O\n", data)); + } if (stringp(data)) { - sscanf(data,"%*[ \t\n\r]%s",data); + if (stripws) { + sscanf(data,"%*[ \t\n\r]%s",data); + } mixed d = data; // Fool Pikes type-checker. res+=quote_text(d); } else if(arrayp(data)) { foreach (data, TAG tag) { if (objectp(tag)) { + if (verbose) { + werror(sprintf("tag:%O, params:%O\n", tag->tag, tag->params)); + } switch (tag->tag) { case "method": case "function": @@ -80,25 +95,37 @@ string make_manpage(string base, SGML data, string ind, string fbase) stripws=1; break; case "br": + case "ex_br": res+="\n.br\n"; stripws=1; break; + case "ex_indent": + res += " "; + continue; + case "link": case "i": case "emboss": + case "ex_identifier": res+="\\f2"+make_manpage(base,tag->data,ind,fbase)+"\\f1"; continue; case "b": case "strong": + case "ex_keyword": res+="\\f3"+make_manpage(base,tag->data,ind,fbase)+"\\f1"; continue; case "pre": - res+="\n.nf\n"+make_manpage(base,tag->data,ind,fbase) - +"\n.fi\n"; + case "tt": + case "example": + int ows = stripws; stripws=0; + res+="\n.nf\n"+ + make_manpage(base,tag->data,ind,fbase)+ + "\n.fi\n"; + stripws = ows; continue; } res+=make_manpage(base,tag->data,ind,fbase); @@ -152,6 +179,8 @@ void make_page(string base, TAG tag, string ind, string fbase) mkdirhier(globalbase+base); } + verbose = ((names*",") == "Thread.Mutex"); + string page=strip_empty_lines(make_manpage(base,tag->data,ind+" ",fbase)); // werror("creating "+outfiles[0]+"...\n"); @@ -162,7 +191,7 @@ void make_page(string base, TAG tag, string ind, string fbase) ".\\\" automatically generated from wmml\n" ".TH " + names*"," + " " + upper_case(obase) + " \"" + t[8..9] + t[3..7] + t[20..23] + "\"" - " Pike \"Pike Manual\"\n" + + " Pike \"Pike Manual\" Pike\n" + page + "\n")); f->close(); -- GitLab