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("\">"); 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, "<=", NULL }, /* less equal */ + { V('>','='), 2, ">=;", NULL }, /* greather equal */ + { V('A','m'), 1, "&", NULL }, /* infinity */ + { V('B','a'), 1, "|", NULL }, /* vartical bar */ + { V('G','e'), 2, ">=;", NULL }, /* greather equal */ + { V('G','t'), 1, ">", NULL }, /* greather than */ + { V('I','f'), 1, "∞", NULL }, /* infinity */ + { V('L','e'), 2, "<=", NULL }, /* less equal */ + { V('L','q'), 1, "“", NULL }, /* left double quote */ + { V('L','t'), 1, "<", 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, "±", NULL }, /* plus minus */ { V('R',' '), 1, "®", NULL }, + { V('R','q'), 1, "”", 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, """, 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, "µ", 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, "±", NULL }, + { V('*','A'), 1, "Α", NULL }, + { V('*','B'), 1, "Β", NULL }, + { V('*','C'), 1, "Ξ", NULL }, + { V('*','D'), 1, "Δ", NULL }, + { V('*','E'), 1, "Ε", NULL }, + { V('*','F'), 1, "Φ", NULL }, + { V('*','G'), 1, "Γ", NULL }, + { V('*','H'), 1, "Θ", NULL }, + { V('*','I'), 1, "Ι", NULL }, + { V('*','K'), 1, "Κ", NULL }, + { V('*','L'), 1, "Λ", NULL }, + { V('*','M'), 1, "Μ", NULL }, + { V('*','N'), 1, "Ν", NULL }, + { V('*','O'), 1, "Ο", NULL }, + { V('*','P'), 1, "Π", NULL }, + { V('*','Q'), 1, "Ψ", NULL }, + { V('*','R'), 1, "Ρ", NULL }, + { V('*','S'), 1, "Σ", NULL }, + { V('*','T'), 1, "Τ", NULL }, + { V('*','U'), 1, "Υ", NULL }, + { V('*','W'), 1, "Ω", NULL }, + { V('*','X'), 1, "Χ", NULL }, + { V('*','Y'), 1, "Η", NULL }, + { V('*','Z'), 1, "Ζ", NULL }, + { V('*','a'), 1, "α", NULL }, + { V('*','b'), 1, "β", NULL }, + { V('*','c'), 1, "ξ", NULL }, + { V('*','d'), 1, "δ", NULL }, + { V('*','e'), 1, "ε", NULL }, + { V('*','f'), 1, "φ", NULL }, + { V('*','g'), 1, "γ", NULL }, + { V('*','h'), 1, "θ", NULL }, + { V('*','i'), 1, "ι", NULL }, + { V('*','k'), 1, "κ", NULL }, + { V('*','l'), 1, "λ", NULL }, + { V('*','m'), 1, "μ", NULL }, + { V('*','n'), 1, "ν", NULL }, + { V('*','o'), 1, "ο", NULL }, + { V('*','p'), 1, "π", NULL }, + { V('*','q'), 1, "ψ", NULL }, + { V('*','r'), 1, "ρ", NULL }, + { V('*','s'), 1, "σ", NULL }, + { V('*','t'), 1, "τ", NULL }, + { V('*','u'), 1, "υ", NULL }, + { V('*','w'), 1, "ω", NULL }, + { V('*','x'), 1, "χ", NULL }, + { V('*','y'), 1, "η", NULL }, + { V('*','z'), 1, "ζ", NULL }, + { V('\'','A'), 1, "Á", NULL }, + { V('\'','E'), 1, "É", NULL }, + { V('\'','I'), 1, "Í", NULL }, + { V('\'','O'), 1, "Ó", NULL }, + { V('\'','U'), 1, "Ú", NULL }, + { V('\'','Y'), 1, "Ý", NULL }, + { V('\'','a'), 1, "á", NULL }, + { V('\'','e'), 1, "é", NULL }, + { V('\'','i'), 1, "í", NULL }, + { V('\'','o'), 1, "ó", NULL }, + { V('\'','u'), 1, "ú", NULL }, + { V('\'','y'), 1, "ý", NULL }, + { V('!','='), 1, "≠", NULL }, + { V('%','0'), 1, "‰", NULL }, + { V('+','-'), 1, "±", NULL }, + { V(',','C'), 1, "Ç", NULL }, + { V(',','c'), 1, "ç", NULL }, + { V('-','>'), 1, "→", NULL }, + { V('-','D'), 1, "Ð", NULL }, + { V('.','i'), 1, "ı", NULL }, + { V('/','L'), 1, "Ł", NULL }, + { V('/','O'), 1, "Ø", NULL }, + { V('/','l'), 1, "ł", NULL }, + { V('/','o'), 1, "ø", NULL }, { V('1','2'), 1, "½", NULL }, { V('1','4'), 1, "¼", NULL }, { V('3','4'), 1, "¾", NULL }, + { V(':','A'), 1, "Ä", NULL }, + { V(':','E'), 1, "Ë", NULL }, + { V(':','I'), 1, "Ï", NULL }, + { V(':','O'), 1, "Ö", NULL }, + { V(':','U'), 1, "Ü", NULL }, + { V(':','a'), 1, "ä", NULL }, + { V(':','e'), 1, "ë", NULL }, + { V(':','i'), 1, "ï", NULL }, + { V(':','o'), 1, "ö", NULL }, + { V(':','u'), 1, "ü", NULL }, + { V(':','y'), 1, "ÿ", NULL }, + { V('<','-'), 1, "←", NULL }, + { V('<','='), 1, "≤", NULL }, + { V('<','>'), 1, "↔", NULL }, + { V('=','='), 1, "≡", NULL }, + { V('=','~'), 1, "≅", NULL }, + { V('>','='), 1, "≥", NULL }, + { V('A','E'), 1, "Æ", NULL }, + { V('A','h'), 1, "&alepfsym;", NULL }, + { V('C','R'), 1, "␍", NULL }, + { V('C','s'), 1, "¤", NULL }, + { V('D','o'), 1, "$", NULL }, + { V('E','u'), 1, "€", NULL }, + { V('F','c'), 1, "»", NULL }, { V('F','i'), 3, "ffi", NULL }, { V('F','l'), 3, "ffl", NULL }, - { V('a','a'), 1, "´", NULL }, - { V('a','p'), 1, "~", NULL }, + { V('F','o'), 1, "«", NULL }, + { V('O','E'), 1, "Œ", NULL }, + { V('P','o'), 1, "£", NULL }, + { V('S','1'), 1, "¹", NULL }, + { V('S','2'), 1, "²", NULL }, + { V('S','3'), 1, "³", NULL }, + { V('S','d'), 1, "ð", NULL }, + { V('T','P'), 1, "Þ", NULL }, + { V('T','p'), 1, "þ", NULL }, + { V('Y','e'), 1, "¥", NULL }, + { V('^','A'), 1, "Â", NULL }, + { V('^','E'), 1, "Ê", NULL }, + { V('^','I'), 1, "Î", NULL }, + { V('^','O'), 1, "Ô", NULL }, + { V('^','U'), 1, "Û", NULL }, + { V('^','a'), 1, "â", NULL }, + { V('^','e'), 1, "ê", NULL }, + { V('^','i'), 1, "î", NULL }, + { V('^','o'), 1, "ô", NULL }, + { V('^','u'), 1, "û", NULL }, + { V('`','A'), 1, "À", NULL }, + { V('`','E'), 1, "È", NULL }, + { V('`','I'), 1, "Ì", NULL }, + { V('`','O'), 1, "Ò", NULL }, + { V('`','U'), 1, "Ù", NULL }, + { V('`','a'), 1, "à", NULL }, + { V('`','e'), 1, "è", NULL }, + { V('`','i'), 1, "ì", NULL }, + { V('`','o'), 1, "ò", NULL }, + { V('`','u'), 1, "ù", NULL }, + { V('a','a'), 1, "´", NULL }, + { V('a','e'), 1, "æ", NULL }, + { V('a','p'), 1, "≈", 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, "•", NULL }, { V('b','v'), 1, "|", NULL }, - { V('c','i'), 1, "o", NULL }, /* circle */ + { V('c','*'), 1, "⊗", NULL }, + { V('c','+'), 1, "⊕", NULL }, + { V('c','i'), 1, "○", NULL }, { V('c','o'), 1, "©", NULL }, { V('c','q'), 1, "'", NULL }, { V('c','t'), 1, "¢", NULL }, + { V('d','A'), 1, "⇓", NULL }, + { V('d','a'), 1, "↓", NULL }, + { V('d','d'), 1, "=", NULL }, { V('d','e'), 1, "°", NULL }, - { V('d','g'), 1, "+", NULL }, /* dagger */ + { V('d','g'), 1, "-", NULL }, { V('d','i'), 1, "÷", NULL }, + { V('d','q'), 1, """, 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, "Ø", NULL }, + { V('e','u'), 1, "€", NULL }, + { V('f','/'), 1, "⁄", NULL }, + { V('f','c'), 1, "›", NULL }, { V('f','f'), 2, "ff", NULL }, { V('f','i'), 2, "fi", NULL }, { V('f','l'), 2, "fl", NULL }, { V('f','m'), 1, "´", NULL }, + { V('f','o'), 1, "‹", NULL }, { V('g','a'), 1, "`", NULL }, + { V('h','A'), 1, "⇔", NULL }, { V('h','y'), 1, "-", NULL }, - { V('l','c'), 2, "|¯", NULL }, - { V('i','f'), 8, "Infinity", NULL }, /* infinity sign */ + { V('i','f'), 1, "∞", NULL }, { V('i','s'), 8, "Integral", NULL }, /* integral sign */ + { V('l','A'), 1, "⇐", NULL }, + { V('l','B'), 1, "[", NULL }, + { V('l','C'), 1, "{", NULL }, + { V('l','a'), 1, "<", NULL }, + { V('l','b'), 1, "[", NULL }, + { V('l','c'), 2, "|¯", NULL }, { V('l','f'), 2, "|_", NULL }, + { V('l','h'), 1, "☚", NULL }, { V('l','k'), 1, "{", NULL }, { V('l','q'), 1, "\"", NULL }, + { V('l','z'), 1, "◊", NULL }, + { V('m','c'), 1, "µ", NULL }, { V('m','i'), 1, "-", NULL }, { V('m','u'), 1, "×", NULL }, { V('n','o'), 1, "¬", NULL }, + { V('o','A'), 1, "Å", NULL }, + { V('o','a'), 1, "å", NULL }, + { V('o','e'), 1, "œ", 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, "¶", NULL }, + { V('r','!'), 1, "¡", NULL }, + { V('r','?'), 1, "¿", NULL }, + { V('r','A'), 1, "⇒", NULL }, + { V('r','B'), 1, "]", NULL }, + { V('r','C'), 1, "}", NULL }, + { V('r','a'), 1, ">", NULL }, { V('r','c'), 2, "¯|", NULL }, { V('r','f'), 2, "_|", NULL }, { V('r','g'), 1, "®", NULL }, + { V('r','h'), 1, "☛", NULL }, { V('r','k'), 1, "}", NULL }, { V('r','n'), 1, "¯", 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, "§", 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, "□", NULL }, + { V('s','s'), 1, "ß", NULL }, + { V('t','f'), 1, "∴", NULL }, + { V('t','i'), 1, "~", NULL }, + { V('t','m'), 1, "™", NULL }, { V('t','s'), 1, "s", NULL }, /* should be terminal sigma */ - { V('u','l'), 1, "_", NULL }, - { V('>','='), 1, ">", NULL }, - { V('<','='), 1, "<", NULL }, + { V('u','A'), 1, "⇑", NULL }, + { V('u','a'), 1, "↑", NULL }, + { V('u','l'), 1, "_", NULL }, + { V('~','A'), 1, "Ã", NULL }, + { V('~','N'), 1, "Ñ", NULL }, + { V('~','O'), 1, "Õ", NULL }, + { V('~','a'), 1, "ã", NULL }, + { V('~','n'), 1, "ñ", NULL }, + { V('~','o'), 1, "õ", NULL }, { 0, 0, NULL, NULL } + + }; void stdinit(void) {