Blob Blame History Raw
Handle \[xx] escapes and add a few commonly used char/string definitions.

diff -ruN -x '*.rej' -x '*.orig' man-1.6e-old/man2html/man2html.c man-1.6e/man2html/man2html.c
--- man-1.6e-old/man2html/man2html.c	2007-04-24 22:19:45.000000000 +0200
+++ man-1.6e/man2html/man2html.c	2007-04-24 22:20:15.000000000 +0200
@@ -612,6 +612,9 @@
 static int skip_escape=0;
 static int single_escape=0;
 
+
+#define EXPAND_BRACKET  for (c++, i=0; *c != ']'; c++) i = i * 256 + *c; if (i < 256) i = i * 256 + ' '
+
 static char *
 scan_escape(char *c) {
     char *h=NULL;
@@ -678,13 +681,19 @@
 	c++;
 	h = expand_char(i);
 	break;
+    case '[':
+	EXPAND_BRACKET;
+	h = expand_char(i);
+	break;
     case '*':
 	c++;
 	if (*c=='(') {
 	    c++;
 	    i= c[0]*256+c[1];
 	    c++;
-	} else
+	} else if (*c == '[') {
+	    EXPAND_BRACKET;
+	} else 
 	    i= *c *256+' ';
 	h = expand_string(i);
 	break;
@@ -695,6 +704,8 @@
 	    c=scan_escape(c);
 	    c--;
 	    i=intresult;
+	} else 	if (*c == '[') {
+		EXPAND_BRACKET;
 	} else 	if (*c != '(')
 	    i=*c;
 	else {
@@ -2189,6 +2200,8 @@
 	    */
 	    out_html("\"></A>");
 	    break;
+	case V('P',' '):
+	case V('P','\n'):
 	case V('L','P'):
 	case V('P','P'):
 	    dl_end();
diff -ruN -x '*.rej' -x '*.orig' man-1.6e-old/man2html/strdefs.c man-1.6e/man2html/strdefs.c
--- man-1.6e-old/man2html/strdefs.c	2007-04-24 22:19:45.000000000 +0200
+++ man-1.6e/man2html/strdefs.c	2007-04-25 00:42:09.000000000 +0200
@@ -28,119 +28,265 @@
     { 0, 0, 0, NULL } };
 
 static STRDEF standardstring[] = {
+    { V('<','='), 2, "&lt;=", NULL  }, /* less equal */
+    { V('>','='), 2, "&gt=;", NULL  }, /* greather equal */
+    { V('A','m'), 1, "&amp;", NULL  }, /* infinity */
+    { V('B','a'), 1, "|", NULL  }, /* vartical bar */
+    { V('G','e'), 2, "&gt=;", NULL  }, /* greather equal */
+    { V('G','t'), 1, "&gt;", NULL  }, /* greather than */
+    { V('I','f'), 1, "&infin;", NULL  }, /* infinity */
+    { V('L','e'), 2, "&lt;=", NULL  }, /* less equal */
+    { V('L','q'), 1, "&ldquo;", NULL  }, /* left double quote  */
+    { V('L','t'), 1, "&lt;", NULL  }, /* less than */
+    { V('N','a'), 3, "NaN", NULL  }, /* not a number */
+    { V('N','e'), 2, "!=", NULL  }, /* not equal */
+    { V('P','i'), 2, "Pi", NULL  }, /* pi */
+    { V('P','m'), 1, "&plusmn;", NULL  }, /* plus minus */
     { V('R',' '), 1, "&#174;", NULL },
+    { V('R','q'), 1, "&rdquo;", NULL  }, /* right double quote  */
+    { V('a','a'), 1, "'", NULL  }, /* accute accent  */
+    { V('g','a'), 1, "`", NULL  }, /* grave accent  */
     { V('l','q'), 2, "``", NULL },
+    { V('q',' '), 1, "&quot;", NULL  }, /* straight double quote  */
     { V('r','q'), 2, "''", NULL },
+    { V('u','a'), 1, "^", NULL  }, /* upwards arrow  */
     { 0, 0, NULL, NULL}
 };
 
-
 static STRDEF standardchar[] = {
     { V('*','*'), 1, "*", NULL  },	/* math star */
-    { V('*','A'), 1, "A", NULL  },
-    { V('*','B'), 1, "B", NULL  },
-    { V('*','C'), 2, "Xi", NULL  },
-    { V('*','D'), 5, "Delta", NULL  },
-    { V('*','E'), 1, "E", NULL  },
-    { V('*','F'), 3, "Phi", NULL  },
-    { V('*','G'), 5, "Gamma", NULL  },
-    { V('*','H'), 5, "Theta", NULL  },
-    { V('*','I'), 1, "I", NULL  },
-    { V('*','K'), 1, "K", NULL  },
-    { V('*','L'), 6, "Lambda", NULL  },
-    { V('*','M'), 1, "M", NULL  },
-    { V('*','N'), 1, "N", NULL  },
-    { V('*','O'), 1, "O", NULL  },
-    { V('*','P'), 2, "Pi", NULL  },
-    { V('*','Q'), 3, "Psi", NULL  },
-    { V('*','R'), 1, "P", NULL  },
-    { V('*','S'), 5, "Sigma", NULL  },
-    { V('*','T'), 1, "T", NULL  },
-    { V('*','U'), 1, "Y", NULL  },
-    { V('*','W'), 5, "Omega", NULL  },
-    { V('*','X'), 1, "X", NULL  },
-    { V('*','Y'), 1, "H", NULL  },
-    { V('*','Z'), 1, "Z", NULL  },
-    { V('*','a'), 5, "alpha", NULL },
-    { V('*','b'), 4, "beta", NULL },
-    { V('*','c'), 2, "xi", NULL },
-    { V('*','d'), 5, "delta", NULL },
-    { V('*','e'), 7, "epsilon", NULL },
-    { V('*','f'), 3, "phi", NULL },
-    { V('*','g'), 5, "gamma", NULL },
-    { V('*','h'), 5, "theta", NULL },
-    { V('*','i'), 4, "iota", NULL },
-    { V('*','k'), 5, "kappa", NULL },
-    { V('*','l'), 6, "lambda", NULL },
-    { V('*','m'), 1, "&#181;", NULL  },
-    { V('*','n'), 2, "nu", NULL },
-    { V('*','o'), 1, "o", NULL },
-    { V('*','p'), 2, "pi", NULL },
-    { V('*','q'), 3, "psi", NULL },
-    { V('*','r'), 3, "rho", NULL },
-    { V('*','s'), 5, "sigma", NULL },
-    { V('*','t'), 3, "tau", NULL },
-    { V('*','u'), 7, "upsilon", NULL },
-    { V('*','w'), 5, "omega", NULL },
-    { V('*','x'), 3, "chi", NULL },
-    { V('*','y'), 3, "eta", NULL },
-    { V('*','z'), 4, "zeta", NULL },
-    { V('+','-'), 1, "&#177;", NULL  },
+    { V('*','A'), 1, "&Alpha;", NULL },
+    { V('*','B'), 1, "&Beta;", NULL },
+    { V('*','C'), 1, "&Xi;", NULL },
+    { V('*','D'), 1, "&Delta;", NULL },
+    { V('*','E'), 1, "&Epsilon;", NULL },
+    { V('*','F'), 1, "&Phi;", NULL },
+    { V('*','G'), 1, "&Gamma;", NULL },
+    { V('*','H'), 1, "&Theta;", NULL },
+    { V('*','I'), 1, "&Iota;", NULL },
+    { V('*','K'), 1, "&Kappa;", NULL },
+    { V('*','L'), 1, "&Lambda;", NULL },
+    { V('*','M'), 1, "&Mu;", NULL },
+    { V('*','N'), 1, "&Nu;", NULL },
+    { V('*','O'), 1, "&Omicron;", NULL },
+    { V('*','P'), 1, "&Pi;", NULL },
+    { V('*','Q'), 1, "&Psi;", NULL },
+    { V('*','R'), 1, "&Rho;", NULL },
+    { V('*','S'), 1, "&Sigma;", NULL },
+    { V('*','T'), 1, "&Tau;", NULL },
+    { V('*','U'), 1, "&Upsilon;", NULL },
+    { V('*','W'), 1, "&Omega;", NULL },
+    { V('*','X'), 1, "&Chi;", NULL },
+    { V('*','Y'), 1, "&Eta;", NULL },
+    { V('*','Z'), 1, "&Zeta;", NULL },
+    { V('*','a'), 1, "&alpha;", NULL },
+    { V('*','b'), 1, "&beta;", NULL },
+    { V('*','c'), 1, "&xi;", NULL },
+    { V('*','d'), 1, "&delta;", NULL },
+    { V('*','e'), 1, "&epsilon;", NULL },
+    { V('*','f'), 1, "&phi;", NULL },
+    { V('*','g'), 1, "&gamma;", NULL },
+    { V('*','h'), 1, "&theta;", NULL },
+    { V('*','i'), 1, "&iota;", NULL },
+    { V('*','k'), 1, "&kappa;", NULL },
+    { V('*','l'), 1, "&lambda;", NULL },
+    { V('*','m'), 1, "&mu;", NULL },
+    { V('*','n'), 1, "&nu;", NULL },
+    { V('*','o'), 1, "&omicron;", NULL },
+    { V('*','p'), 1, "&pi;", NULL },
+    { V('*','q'), 1, "&psi;", NULL },
+    { V('*','r'), 1, "&rho;", NULL },
+    { V('*','s'), 1, "&sigma;", NULL },
+    { V('*','t'), 1, "&tau;", NULL },
+    { V('*','u'), 1, "&upsilon;", NULL },
+    { V('*','w'), 1, "&omega;", NULL },
+    { V('*','x'), 1, "&chi;", NULL },
+    { V('*','y'), 1, "&eta;", NULL },
+    { V('*','z'), 1, "&zeta;", NULL },
+    { V('\'','A'), 1, "&Aacute;", NULL },
+    { V('\'','E'), 1, "&Eacute;", NULL },
+    { V('\'','I'), 1, "&Iacute;", NULL },
+    { V('\'','O'), 1, "&Oacute;", NULL },
+    { V('\'','U'), 1, "&Uacute;", NULL },
+    { V('\'','Y'), 1, "&Yacute;", NULL },
+    { V('\'','a'), 1, "&aacute;", NULL },
+    { V('\'','e'), 1, "&eacute;", NULL },
+    { V('\'','i'), 1, "&iacute;", NULL },
+    { V('\'','o'), 1, "&oacute;", NULL },
+    { V('\'','u'), 1, "&uacute;", NULL },
+    { V('\'','y'), 1, "&yacute;", NULL },
+    { V('!','='), 1, "&ne;", NULL },
+    { V('%','0'), 1, "&permil;", NULL },
+    { V('+','-'), 1, "&plusmn;", NULL },
+    { V(',','C'), 1, "&Ccedil;", NULL },
+    { V(',','c'), 1, "&ccedil;", NULL },
+    { V('-','>'), 1, "&rarr;", NULL },
+    { V('-','D'), 1, "&ETH;", NULL },
+    { V('.','i'), 1, "&#x131;", NULL },
+    { V('/','L'), 1, "&#x141;", NULL },
+    { V('/','O'), 1, "&Oslash;", NULL },
+    { V('/','l'), 1, "&#x142;", NULL },
+    { V('/','o'), 1, "&oslash;", NULL },
     { V('1','2'), 1, "&#189;", NULL  },
     { V('1','4'), 1, "&#188;", NULL  },
     { V('3','4'), 1, "&#190;", NULL  },
+    { V(':','A'), 1, "&Auml;", NULL },
+    { V(':','E'), 1, "&Euml;", NULL },
+    { V(':','I'), 1, "&Iuml;", NULL },
+    { V(':','O'), 1, "&Ouml;", NULL },
+    { V(':','U'), 1, "&Uuml;", NULL },
+    { V(':','a'), 1, "&auml;", NULL },
+    { V(':','e'), 1, "&euml;", NULL },
+    { V(':','i'), 1, "&iuml;", NULL },
+    { V(':','o'), 1, "&ouml;", NULL },
+    { V(':','u'), 1, "&uuml;", NULL },
+    { V(':','y'), 1, "&yuml;", NULL },
+    { V('<','-'), 1, "&larr;", NULL },
+    { V('<','='), 1, "&le;", NULL },
+    { V('<','>'), 1, "&harr;", NULL },
+    { V('=','='), 1, "&equiv;", NULL },
+    { V('=','~'), 1, "&cong;", NULL },
+    { V('>','='), 1, "&ge;", NULL },
+    { V('A','E'), 1, "&AElig;", NULL },
+    { V('A','h'), 1, "&alepfsym;", NULL },
+    { V('C','R'), 1, "&#x240d;", NULL },
+    { V('C','s'), 1, "&curren;", NULL },
+    { V('D','o'), 1, "$", NULL },
+    { V('E','u'), 1, "&euro;", NULL },
+    { V('F','c'), 1, "&raquo;", NULL  },
     { V('F','i'), 3, "ffi", NULL  },
     { V('F','l'), 3, "ffl", NULL  },
-    { V('a','a'), 1, "&#180;", NULL  },
-    { V('a','p'), 1, "~", NULL  },
+    { V('F','o'), 1, "&laquo;", NULL  },
+    { V('O','E'), 1, "&OElig;", NULL },
+    { V('P','o'), 1, "&pound;", NULL },
+    { V('S','1'), 1, "&sup1;", NULL },
+    { V('S','2'), 1, "&sup2;", NULL },
+    { V('S','3'), 1, "&sup3;", NULL },
+    { V('S','d'), 1, "&eth;", NULL },
+    { V('T','P'), 1, "&THORN;", NULL },
+    { V('T','p'), 1, "&thorn;", NULL },
+    { V('Y','e'), 1, "&yen;", NULL },
+    { V('^','A'), 1, "&Acirc;", NULL },
+    { V('^','E'), 1, "&Ecirc;", NULL },
+    { V('^','I'), 1, "&Icirc;", NULL },
+    { V('^','O'), 1, "&Ocirc;", NULL },
+    { V('^','U'), 1, "&Ucirc;", NULL },
+    { V('^','a'), 1, "&acirc;", NULL },
+    { V('^','e'), 1, "&ecirc;", NULL },
+    { V('^','i'), 1, "&icirc;", NULL },
+    { V('^','o'), 1, "&ocirc;", NULL },
+    { V('^','u'), 1, "&ucirc;", NULL },
+    { V('`','A'), 1, "&Agrave;", NULL },
+    { V('`','E'), 1, "&Egrave;", NULL },
+    { V('`','I'), 1, "&Igrave;", NULL },
+    { V('`','O'), 1, "&Ograve;", NULL },
+    { V('`','U'), 1, "&Ugrave;", NULL },
+    { V('`','a'), 1, "&agrave;", NULL },
+    { V('`','e'), 1, "&egrave;", NULL },
+    { V('`','i'), 1, "&igrave;", NULL },
+    { V('`','o'), 1, "&ograve;", NULL },
+    { V('`','u'), 1, "&ugrave;", NULL },
+    { V('a','a'), 1, "&acute;", NULL },
+    { V('a','e'), 1, "&aelig;", NULL },
+    { V('a','p'), 1, "&asymp;", NULL },
+    { V('a','q'), 1, "'", NULL },
+    { V('a','t'), 1, "@", NULL },
+    { V('a','~'), 1, "~", NULL },
+    { V('b','a'), 1, "|", NULL },
+    { V('b','b'), 1, "|", NULL },
     { V('b','r'), 1, "|", NULL  },
-    { V('b','u'), 1, "*", NULL  }, 	/* bullet */
+    { V('b','r'), 1, "|", NULL },
+    { V('b','u'), 1, "&bull;", NULL },
     { V('b','v'), 1, "|", NULL  },
-    { V('c','i'), 1, "o", NULL  }, 	/* circle */
+    { V('c','*'), 1, "&otimes;", NULL },
+    { V('c','+'), 1, "&oplus;", NULL },
+    { V('c','i'), 1, "&#x25cb;", NULL },
     { V('c','o'), 1, "&#169;", NULL  },
     { V('c','q'), 1, "'", NULL },
     { V('c','t'), 1, "&#162;", NULL  },
+    { V('d','A'), 1, "&dArr;", NULL },
+    { V('d','a'), 1, "&darr;", NULL },
+    { V('d','d'), 1, "=", NULL },
     { V('d','e'), 1, "&#176;", NULL  },
-    { V('d','g'), 1, "+", NULL  }, 	/* dagger */
+    { V('d','g'), 1, "-", NULL },
     { V('d','i'), 1, "&#247;", NULL  },
+    { V('d','q'), 1, "&quot;", NULL  },
     { V('e','m'), 3, "---", NULL  }, 	/* em dash */
     { V('e','n'), 1, "-", NULL }, 	/* en dash */
-    { V('e','q'), 1, "=", NULL  },
+    { V('e','q'), 1, "=", NULL },
     { V('e','s'), 1, "&#216;", NULL  },
+    { V('e','u'), 1, "&euro;", NULL },
+    { V('f','/'), 1, "&frasl;", NULL },
+    { V('f','c'), 1, "&rsaquo;", NULL  },
     { V('f','f'), 2, "ff", NULL  },
     { V('f','i'), 2, "fi", NULL  },
     { V('f','l'), 2, "fl", NULL  },
     { V('f','m'), 1, "&#180;", NULL  },
+    { V('f','o'), 1, "&lsaquo;", NULL  },
     { V('g','a'), 1, "`", NULL  },
+    { V('h','A'), 1, "&hArr;", NULL },
     { V('h','y'), 1, "-", NULL  },
-    { V('l','c'), 2, "|&#175;", NULL  },
-    { V('i','f'), 8, "Infinity", NULL }, /* infinity sign */
+    { V('i','f'), 1, "&infin;", NULL },
     { V('i','s'), 8, "Integral", NULL }, /* integral sign */
+    { V('l','A'), 1, "&lArr;", NULL },
+    { V('l','B'), 1, "[", NULL },
+    { V('l','C'), 1, "{", NULL },
+    { V('l','a'), 1, "&lt;", NULL },
+    { V('l','b'), 1, "[", NULL  },
+    { V('l','c'), 2, "|&#175;", NULL  },
     { V('l','f'), 2, "|_", NULL  },
+    { V('l','h'), 1, "&#x261a;", NULL },
     { V('l','k'), 1, "<FONT SIZE=\"+2\">{</FONT>", NULL  },
     { V('l','q'), 1, "\"", NULL },
+    { V('l','z'), 1, "&loz;", NULL },
+    { V('m','c'), 1, "&micro;", NULL },
     { V('m','i'), 1, "-", NULL  },
     { V('m','u'), 1, "&#215;", NULL  },
     { V('n','o'), 1, "&#172;", NULL  },
+    { V('o','A'), 1, "&Aring;", NULL },
+    { V('o','a'), 1, "&aring;", NULL },
+    { V('o','e'), 1, "&oelig;", NULL },
     { V('o','q'), 1, "'", NULL },
-    { V('o','r'), 1, "|", NULL  },
+    { V('o','r'), 1, "|", NULL },
     { V('p','d'), 1, "d", NULL }, 	/* partial derivative */
-    { V('p','l'), 1, "+", NULL  },
+    { V('p','l'), 1, "+", NULL },
+    { V('p','s'), 1, "&para;", NULL },
+    { V('r','!'), 1, "&iexcl;", NULL },
+    { V('r','?'), 1, "&iquest;", NULL },
+    { V('r','A'), 1, "&rArr;", NULL },
+    { V('r','B'), 1, "]", NULL },
+    { V('r','C'), 1, "}", NULL },
+    { V('r','a'), 1, "&gt;", NULL },
     { V('r','c'), 2, "&#175;|", NULL  },
     { V('r','f'), 2, "_|", NULL  },
     { V('r','g'), 1, "&#174;", NULL  },
+    { V('r','h'), 1, "&#x261b;", NULL },
     { V('r','k'), 1, "<FONT SIZE=\"+2\">}</FONT>", NULL  },
     { V('r','n'), 1, "&#175;", NULL  },
     { V('r','q'), 1, "\"", NULL },
-    { V('r','u'), 1, "_", NULL  },
+    { V('r','s'), 1, "\\", NULL },
+    { V('r','u'), 1, "_", NULL },
     { V('s','c'), 1, "&#167;", NULL  },
-    { V('s','l'), 1, "/", NULL  },
-    { V('s','q'), 2, "[]", NULL  },
+    { V('s','h'), 1, "#", NULL },
+    { V('s','l'), 1, "/", NULL },
+    { V('s','q'), 1, "&#x25a1;", NULL },
+    { V('s','s'), 1, "&szlig;", NULL },
+    { V('t','f'), 1, "&there4;", NULL },
+    { V('t','i'), 1, "~", NULL },
+    { V('t','m'), 1, "&trade;", NULL },
     { V('t','s'), 1, "s", NULL }, 	/* should be terminal sigma */
-    { V('u','l'), 1, "_", NULL  },
-    { V('>','='), 1, "&gt;", NULL },
-    { V('<','='), 1, "&lt;", NULL },
+    { V('u','A'), 1, "&uArr;", NULL },
+    { V('u','a'), 1, "&uarr;", NULL },
+    { V('u','l'), 1, "_", NULL },
+    { V('~','A'), 1, "&Atilde;", NULL },
+    { V('~','N'), 1, "&Ntilde;", NULL },
+    { V('~','O'), 1, "&Otilde;", NULL },
+    { V('~','a'), 1, "&atilde;", NULL },
+    { V('~','n'), 1, "&ntilde;", NULL },
+    { V('~','o'), 1, "&otilde;", NULL },
     { 0, 0, NULL, NULL  }
+
+    
 };
 
 void stdinit(void) {