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