SOURCES: man-i18n_makewhatis.patch (NEW) - UTF-8 capable makewhatis

baggins baggins at pld-linux.org
Mon Nov 6 19:02:18 CET 2006


Author: baggins                      Date: Mon Nov  6 18:02:18 2006 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- UTF-8 capable makewhatis

---- Files affected:
SOURCES:
   man-i18n_makewhatis.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/man-i18n_makewhatis.patch
diff -u /dev/null SOURCES/man-i18n_makewhatis.patch:1.1
--- /dev/null	Mon Nov  6 19:02:18 2006
+++ SOURCES/man-i18n_makewhatis.patch	Mon Nov  6 19:02:13 2006
@@ -0,0 +1,616 @@
+diff -ur man-1.6d/src/makewhatis.sh man-1.6d-i18n_makewhatis/src/makewhatis.sh
+--- man-1.6d/src/makewhatis.sh	2006-11-06 17:40:17.000000000 +0100
++++ man-1.6d-i18n_makewhatis/src/makewhatis.sh	2006-11-06 17:50:20.000000000 +0100
+@@ -6,34 +6,6 @@
+ # Copyright 1992, 1993, 1994 Rickard E. Faith (faith at cs.unc.edu)
+ # May be freely distributed and modified as long as copyright is retained.
+ #
+-# Wed Dec 23 13:27:50 1992: Rik Faith (faith at cs.unc.edu) applied changes
+-# based on Mitchum DSouza (mitchum.dsouza at mrc-apu.cam.ac.uk) cat patches.
+-# Also, cleaned up code and make it work with NET-2 doc pages.
+-#
+-# makewhatis-1.4: aeb 940802, 941007, 950417
+-# Fixed so that the -c option works correctly for the cat pages
+-# on my machine. Fix for -u by Nan Zou (nan at ksu.ksu.edu).
+-# Many minor changes.
+-# The -s option is undocumented, and may well disappear again.
+-#
+-# Sat Mar 23 1996: Michael Hamilton (michael at actrix.gen.nz).
+-# I changed the script to invoke gawk only once for each directory tree.
+-# This speeds things up considerably (from 30 minutes down to 1.5 minutes
+-# on my 486DX66).
+-# 960401 - aeb: slight adaptation to work correctly with cat pages.
+-# 960510 - added fixes by brennan at raven.ca.boeing.com, author of mawk.
+-# 971012 - replaced "test -z" - it doesnt work on SunOS 4.1.3_U1.
+-# 980710 - be more careful with TMPFILE
+-# 000323 - do not change PATH, better treatment of catpages - Bryan Henderson
+-# 011117 - avoid suspicious filenames
+-# 030310 - find files only; fix LAPACK cruft; no /usr/man default;
+-#	use /dev/stderr instead of /dev/tty; handle files with strange names;
+-#	add support for chinese, hungarian, indonesian, japanese, korean,
+-#	polish, russian (Thierry Vignaud);
+-#
+-# Note for Slackware users: "makewhatis -v -w -c" will work.
+-#
+-# makewhatis aeb 030801 (from %version%)
+ 
+ program=`basename $0`
+ 
+@@ -57,33 +29,20 @@
+ done
+ DEFCATPATH=$dc
+ 
+-# In case /usr is read-only, make /usr/foo/whatis (etc) a symlink to
+-# something like /var/cache/man/foo-whatis.
+-# Some distributions make a single big /var/cache/man/whatis file,
+-# but that leads to problems and bugs.
++# make a single big /var/cache/man/whatis file,
++DEFWHATIS=/var/cache/man/whatis
+ 
+ AWK=/bin/awk
+-# AWK=%awk%
+ 
+-# Find a place for our temporary files. If security is not a concern, use
+-#	TMPFILE=/tmp/whatis$$; TMPFILEDIR=none
+-# Of course makewhatis should only have the required permissions
+-# (for reading and writing directories like /usr/man).
+-# We try here to be careful (and avoid preconstructed symlinks)
+-# in case makewhatis is run as root, by creating a subdirectory of /tmp.
+-
+-TMPFILEDIR=/tmp/whatis.tmp.dir.$$
+-rm -rf TMPFILEDIR
+-if ! mkdir -m 0700 $TMPFILEDIR; then
+-    echo Could not create $TMPFILEDIR
+-    exit 1;
+-fi
+-TMPFILE=$TMPFILEDIR/w
++# Find a place for our temporary files.
++
++if TMPFILE=$(mktemp /tmp/whatis.XXXXXX)
++then
+ 
+-# make sure TMPFILEDIR is deleted if program is killed or terminates
++# make sure TMPFILE is deleted if program is killed or terminates
+ # (just delete this line if your shell doesnt know about trap)
+-trap "rm -rf $TMPFILEDIR" 0
+-trap "rm -rf $TMPFILEDIR; exit 255" 1 2 3 15
++trap "rm -rf $TMPFILE" 0 
++trap "rm -rf $TMPFILE; exit 255" 1 2 3 15 
+ 
+ # default find arg: no directories, no empty files
+ findarg0="-type f -size +0"
+@@ -94,6 +53,7 @@
+ defcatpath=
+ 
+ sections="1 2 3 4 5 6 7 8 9 n l"
++whatisdb=$DEFWHATIS
+ 
+ for name in "$@"
+ do
+@@ -102,6 +62,11 @@
+ 	sections=$name
+ 	continue
+ fi
++if [ -n "$setwhatis" ]; then
++       setwhatis=
++       whatisdb=$name
++       continue
++fi
+ case $name in
+     --version|-V)
+ 	echo "$program from %version%"
+@@ -112,6 +77,8 @@
+ 	continue;;
+     -s) setsections=1
+ 	continue;;
++    -o) setwhatis=1
++        continue;;
+     -u) findarg="-ctime 0"
+ 	update=1
+ 	continue;;
+@@ -120,12 +87,13 @@
+     -w) manpath=`man --path`
+ 	catpath=$manpath
+ 	continue;;
+-    -*) echo "Usage: makewhatis [-s sections] [-u] [-v] [-w] [manpath] [-c [catpath]]"
++    -*) echo "Usage: makewhatis [-s sections] [-u] [-v] [-w] [manpath] [-c [catpath]] [-o whatisdb]"
+ 	echo "       This will build the whatis database for the man pages"
+ 	echo "       found in manpath and the cat pages found in catpath."
+         echo "       -s: sections (default: $sections)"
+ 	echo "       -u: update database with new pages"
+ 	echo "       -v: verbose"
++        echo "       -o: location of whatis database (default: $DEFWHATIS)"
+ 	echo "       -w: use manpath obtained from \`man --path\`"
+ 	echo "       [manpath]: man directories (default: $DEFMANPATH)"
+ 	echo "       [catpath]: cat directories (default: the first existing"
+@@ -153,14 +121,7 @@
+ # first truncate all the whatis files that will be created new,
+ # then only update - we might visit the same directory twice
+ if [ x$update = x ]; then
+-   for pages in man cat
+-   do
+-      eval path="\$$pages"path
+-      for mandir in $path
+-      do
+-	 cp /dev/null $mandir/whatis
+-      done
+-   done
++   :> $whatisdb
+ fi
+ 
+ for pages in man cat
+@@ -172,11 +133,6 @@
+      if [ x$verbose != x ]; then
+ 	echo "about to enter $mandir" > /dev/stderr
+      fi
+-     if [ -s ${mandir}/whatis -a $pages = man -a x$update = x ]; then
+-	if [ x$verbose != x ]; then
+-	   echo skipping $mandir - we did it already > /dev/stderr
+-	fi
+-     else      
+        here=`pwd`
+        cd $mandir
+        for i in $sections
+@@ -187,228 +143,257 @@
+ 	    section=$i
+ 	    curdir=$mandir/${pages}$i
+ 	    export section verbose curdir
+-	    find $mandir/${pages}$i/. -name '*' $findarg0 $findarg -print | $AWK '
+-
+-	    function readline() {
+-	      if (use_zcat || use_bzcat) {
+-		result = (pipe_cmd | getline);
+-		if (result < 0) {
+-		  print "Pipe error: " pipe_cmd " " ERRNO > "/dev/stderr";
+-		}
+-	      } else {
+-		result = (getline < filename);
+-		if (result < 0) {
+-		  print "Read file error: " filename " " ERRNO > "/dev/stderr";
+-		}
+-	      }
+-	      return result;
++ 
++ 	    utf8=
++            for x in $(find $mandir/${pages}$i -name '*' $findarg0 $findarg)
++            do
++               if [ ${x%.gz} != ${x} ]
++               then
++                  cat=zcat
++               elif [ ${x%.bz2} != ${x} ]
++               then
++                  cat=bzcat
++               else
++                  cat=cat
++               fi
++   
++               if ${cat} ${x} | iconv -f utf-8 -t utf-8 -o /dev/null 2>/dev/null
++               then
++                  echo ${x} | $AWK '
++   
++    function readline() {
++      if (use_zcat || use_bzcat) {
++        result = (pipe_cmd | getline);
++        if (result < 0) {
++          print "Pipe error: " pipe_cmd " " ERRNO > "/dev/stderr";
++        }
++      } else {
++        result = (getline < filename);
++        if (result < 0) {
++          print "Read file error: " filename " " ERRNO > "/dev/stderr";
++        }
++      }
++      return result;
++    }
++   
++    function closeline() {
++      if (use_zcat || use_bzcat) {
++        return close(pipe_cmd);
++      } else {
++        return close(filename);
++      }
++    }
++   
++    function do_one() {
++      insh = 0; thisjoin = 1; done = 0;
++      entire_line = "";
++   
++      if (verbose) {
++        print "adding " filename > "/dev/stderr"
++      }
++
++      use_zcat = match(filename,"\\.Z$") ||
++                 match(filename,"\\.z$") || match(filename,"\\.gz$");
++      if (!use_zcat)
++        use_bzcat = match(filename,"\\.bz2");
++      if (use_zcat || use_bzcat) {
++        filename_no_gz = substr(filename, 0, RSTART - 1);
++      } else {
++        filename_no_gz = filename;
++      }
++      match(filename_no_gz, "/[^/]+$");
++      progname = substr(filename, RSTART + 1, RLENGTH - 1);
++      if (match(progname, "\\." section "[A-Za-z]+")) {
++        actual_section = substr(progname, RSTART + 1, RLENGTH - 1);
++      } else {
++        actual_section = section;
++      }
++      sub(/\..*/, "", progname);
++      if (use_zcat || use_bzcat) {
++        if (use_zcat) {
++          pipe_cmd = "zcat \"" filename "\"";
++        } else {
++          pipe_cmd = "bzcat \"" filename "\"";
++        }
++        # try to avoid suspicious stuff
++        if (filename ~ /[;&|`$(]/) {
++          print "ignored strange file name " filename " in " curdir > "/dev/stderr";
++          return;
++        }
++      }
++
++      while (!done && readline() > 0) {
++        gsub(/.\b/, "");
++        if (($1 ~ /^\.[Ss][Hh]/ &&
++           ($2 ~ /[Nn][Aa][Mm][Ee]/ ||   # en/de
++            $2 ~ /^JMÉNO/ ||            # cs
++            $2 ~ /^NAVN/ ||             # da
++            $2 ~ /^NUME/ ||             # ro
++            $2 ~ /^BEZEICHNUNG/ ||      # de
++            $2 ~ /^NOMBRE/ ||           # es
++            $2 ~ /^NIMI/ ||             # fi
++            $2 ~ /^NOM/ ||              # fr
++            $2 ~ /^IME/ ||              # sh
++            $2 ~ /^N[ÉE]V/ ||          # hu
++            $2 ~ /^NAMA/ ||             # XXX: what lang is this?
++            $2 ~ /^ĺĺ‰/ ||             # ja
++            $2 ~ /^ě´ëŚ„/ ||             # ko
++            $2 ~ /^NAZWA/ ||            # pl
++            $2 ~ /^ĐĐĐ—Đ’ĐĐĐ˜Đ•/ || # ru
++            $2 ~ /^名称/ ||             # zh_CN/ja
++            $2 ~ /^名稱/ ||             # zh_TW
++            $2 ~ /^NOME/ ||             # it/pt
++            $2 ~ /^NAAM/)) ||           # nl
++          (pages == "cat" && $1 ~ /^NAME/)) {
++            if (!insh) {
++              insh = 1;
++            } else {
++              done = 1;
+ 	    }
+-	    
+-	    function closeline() {
+-	      if (use_zcat || use_bzcat) {
+-		return close(pipe_cmd);
++        } else if (insh) {
++          if ($1 ~ /^\.[Ss][HhYS]/ ||
++            (pages == "cat" &&
++            ($1 ~ /^S[yYeE]/ || $1 ~ /^DESCRIPTION/ ||
++             $1 ~ /^COMMAND/ || $1 ~ /^OVERVIEW/ ||
++             $1 ~ /^STRUCTURES/ || $1 ~ /^INTRODUCTION/ ||
++             $0 ~ /^[^ ]/))) {
++              # end insh for Synopsis, Syntax, but also for
++              # DESCRIPTION (e.g., XFree86.1x),
++              # COMMAND (e.g., xspread.1)
++              # OVERVIEW (e.g., TclCommandWriting.3)
++              # STRUCTURES (e.g., XEvent.3x)
++              # INTRODUCTION (e.g., TclX.n)
++              # and anything at all that begins in Column 1, so
++              # is probably a section header.
++            done = 1;
++          } else {
++            if ($0 ~ progname"-") {  # Fix old cat pages
++                sub(progname"-", progname" - ");
++   	    }	    
++            if ($0 ~ /[^ \\]-$/) {
++              sub(/-$/, "");      # Handle Hyphenations
++              nextjoin = 1;
++            } else if ($0 ~ /\\c$/) {
++              sub(/\\c$/, "");    # Handle Continuations
++              nextjoin = 1;
++            } else
++              nextjoin = 0;
++ 
++            sub(/^.[IB] /, "");       # Kill bold and italics
++            sub(/^.BI /, "");         #
++            sub(/^.SM /, "");         # Kill small
++            sub(/^.Nm /, "");         # Kill bold
++            sub(/^.Tn /, "");         # Kill normal
++            sub(/^.Li /, "");         # Kill .Li
++            sub(/^.Dq /, "");         # Kill .Dq
++            sub(/^.Nd */, "- ");      # Convert .Nd to dash
++            sub(/\\\".*/, "");        # Trim pending comments
++            sub(/  *$/, "");          # Trim pending spaces
++            sub(/^\.$/, "");          # Kill blank comments
++            sub(/^'"'"'.*/, "");      # Kill comment/troff lines
++            sub(/^.in .*/, "");       # Kill various macros
++            sub(/^.ti .*/, "");
++            sub(/^.ta .*/, "");
++            sub(/^.Vb .*/, "");
++            sub(/^.[PLTH]P$/, "");    # .PP/.LP/.TP/.HP
++            sub(/^.Pp$/, "");
++            sub(/^.[iI]X .*$/, "");
++            sub(/^.nolinks$/, "");
++            sub(/^.B$/, "");
++            sub(/^.nf$/, "");
++
++            if (($1 ~ /^\.../ || $1 == "") &&
++                (entire_line ~ / - / || entire_line ~ / \\- /)) {
++              # Assume that this ends the description of one line
++              # Sometimes there are several descriptions in one page,
++              # as in outb(2).
++              handle_entire_line();
++ 	      entire_line = "";
++              thisjoin = 1;
++            } else {
++              if (thisjoin) {
++                entire_line = entire_line $0;
+ 	      } else {
+-		return close(filename);
++                entire_line = entire_line " " $0;
+ 	      }
++              thisjoin = nextjoin;
+ 	    }
+-	    
+-	    function do_one() {
+-	      insh = 0; thisjoin = 1; done = 0;
+-	      entire_line = "";
++          }
++        }
++      }
++      handle_entire_line();
++      closeline();
++    }
++
++    function handle_entire_line() {
++      x = entire_line;             # Keep it short
++
++      gsub(/\015/, "", x);         # Kill DOS remains
++      gsub(/	/, " ", x);        # Translate tabs to spaces
++      gsub(/  +/, " ", x);         # Collapse spaces
++      gsub(/ *, */, ", ", x);      # Fix comma spacings
++      sub(/^ /, "", x);            # Kill initial spaces
++      sub(/ $/, "", x);            # Kill trailing spaces
++      sub(/__+/, "_", x);          # Collapse underscores
++
++      gsub(/\\f\(../, "", x);         # Kill font changes
++      gsub(/\\f[PRIB0123]/, "", x);   # Kill font changes
++      gsub(/\\s[-+0-9]*/, "", x);     # Kill size changes
++      gsub(/\\&/, "", x);             # Kill \&
++      gsub(/\\\|/, "", x);            # Kill \|
++      gsub(/\\\((ru|ul)/, "_", x);    # Translate
++      gsub(/\\\((mi|hy|em)/, "-", x); # Translate
++      gsub(/\\\*\(../, "", x);        # Kill troff strings
++      gsub(/\\/, "", x);              # Kill all backslashes
++      gsub(/"/, "", x);               # Kill quotes (from .Nd "foo bar")
++      sub(/<h1 align=center>/, "", x);# Yuk! HTML cruft
++      gsub(/\000.*/, "X", x);         # Binary cruft in LAPACK pages
++      gsub(/  +/, " ", x);            # Collapse spaces (again)
++      sub(/^ /, "", x);               # Kill initial spaces (again)
++      sub(/ $/, "", x);               # Kill trailing spaces (again)
++      sub(/\.$/, "", x);              # Kill trailing period
++
++      if (!match(x, / - /))
++        return;
++
++      after_dash = substr(x, RSTART);
++      head = substr(x, 1, RSTART-1) ", ";
++      while (match(head, /, /)) {
++        prog = substr(head, 1, RSTART-1);
++        head = substr(head, RSTART+2);
++        if (prog != progname)
++          prog = prog " [" progname "]";
++        printf "%-*s (%s) %s\n", 20, prog, actual_section, after_dash;
++      }
++    }
++
++    {                  # Main action - process each filename read in.
++      filename = $0;
++      do_one();
++    }
+ 
+-	      if (verbose) {
+-		print "adding " filename > "/dev/stderr"
+-	      }
+-	      
+-	      use_zcat = match(filename,"\\.Z$") ||
+-			 match(filename,"\\.z$") || match(filename,"\\.gz$");
+-	      if (!use_zcat)
+-		use_bzcat = match(filename,"\\.bz2");
+-	      if (use_zcat || use_bzcat) {
+-		filename_no_gz = substr(filename, 0, RSTART - 1);
+-	      } else {
+-		filename_no_gz = filename;
+-	      }
+-	      match(filename_no_gz, "/[^/]+$");
+-	      progname = substr(filename, RSTART + 1, RLENGTH - 1);
+-	      if (match(progname, "\\." section "[A-Za-z]+")) {
+-		actual_section = substr(progname, RSTART + 1, RLENGTH - 1);
+-	      } else {
+-		actual_section = section;
+-	      }
+-	      sub(/\..*/, "", progname);
+-	      if (use_zcat || use_bzcat) {
+-		if (use_zcat) {
+-		  pipe_cmd = "zcat \"" filename "\"";
+-		} else {
+-		  pipe_cmd = "bzcat \"" filename "\"";
+-		}
+-		# try to avoid suspicious stuff
+-		if (filename ~ /[;&|`$(]/) {
+-		  print "ignored strange file name " filename " in " curdir > "/dev/stderr";
+-		  return;
+-		}
+-	      }
+-	    
+-	      while (!done && readline() > 0) {
+-		gsub(/.\b/, "");
+-		if (($1 ~ /^\.[Ss][Hh]/ &&
+-		  ($2 ~ /[Nn][Aa][Mm][Ee]/ ||
+-		   $2 ~ /^JMÉNO/ || $2 ~ /^NAVN/ || $2 ~ /^NUME/ ||
+-		   $2 ~ /^BEZEICHNUNG/ || $2 ~ /^NOMBRE/ ||
+-		   $2 ~ /^NIMI/ || $2 ~ /^NOM/ || $2 ~ /^IME/ ||
+-		   $2 ~ /^N[ÉE]V/ || $2 ~ /^NAMA/ || $2 ~ /^ĚžÁ°/ ||
+-		   $2 ~ /^ĚžžÎ/ || $2 ~ /^Ŕ̸§/ || $2 ~ /^NAZWA/ ||
+-		   $2 ~ /^îáú÷áîéĺ/ || $2 ~ /^ĂűłĆ/ || $2 ~ /^ŚWşŮ/ ||
+-		   $2 ~ /^NOME/ || $2 ~ /^NAAM/ || $2 ~ /^ČĚĹ/)) ||
+-		  (pages == "cat" && $1 ~ /^NAME/)) {
+-		    if (!insh) {
+-		      insh = 1;
+-		    } else {
+-		      done = 1;
+-		    }
+-		} else if (insh) {
+-		  if ($1 ~ /^\.[Ss][HhYS]/ ||
+-		    (pages == "cat" &&
+-		    ($1 ~ /^S[yYeE]/ || $1 ~ /^DESCRIPTION/ ||
+-		     $1 ~ /^COMMAND/ || $1 ~ /^OVERVIEW/ ||
+-		     $1 ~ /^STRUCTURES/ || $1 ~ /^INTRODUCTION/ ||
+-		     $0 ~ /^[^ ]/))) {
+-		      # end insh for Synopsis, Syntax, but also for
+-		      # DESCRIPTION (e.g., XFree86.1x),
+-		      # COMMAND (e.g., xspread.1)
+-		      # OVERVIEW (e.g., TclCommandWriting.3)
+-		      # STRUCTURES (e.g., XEvent.3x)
+-		      # INTRODUCTION (e.g., TclX.n)
+-		      # and anything at all that begins in Column 1, so 
+-		      # is probably a section header.
+-		    done = 1;
+-		  } else {
+-		    if ($0 ~ progname"-") {  # Fix old cat pages
+-			sub(progname"-", progname" - ");
+-		    }
+-		    if ($0 ~ /[^ \\]-$/) {
+-		      sub(/-$/, "");	  # Handle Hyphenations
+-		      nextjoin = 1;
+-		    } else if ($0 ~ /\\c$/) {
+-		      sub(/\\c$/, "");	  # Handle Continuations
+-		      nextjoin = 1;
+-		    } else
+-		      nextjoin = 0;
+-
+-		    sub(/^.[IB] /, "");       # Kill bold and italics
+-		    sub(/^.BI /, "");         #
+-		    sub(/^.SM /, "");         # Kill small
+-		    sub(/^.Nm /, "");         # Kill bold
+-		    sub(/^.Tn /, "");         # Kill normal
+-	            sub(/^.Li /, "");         # Kill .Li
+-	            sub(/^.Dq /, "");         # Kill .Dq
+-	            sub(/^.Nd */, "- ");      # Convert .Nd to dash
+-		    sub(/\\\".*/, "");        # Trim pending comments
+-		    sub(/  *$/, "");          # Trim pending spaces
+-		    sub(/^\.$/, "");          # Kill blank comments
+-		    sub(/^'"'"'.*/, "");      # Kill comment/troff lines
+-		    sub(/^.in .*/, "");       # Kill various macros
+-		    sub(/^.ti .*/, "");
+-		    sub(/^.ta .*/, "");
+-		    sub(/^.Vb .*/, "");
+-		    sub(/^.[PLTH]P$/, "");    # .PP/.LP/.TP/.HP
+-		    sub(/^.Pp$/, "");
+-		    sub(/^.[iI]X .*$/, "");
+-		    sub(/^.nolinks$/, "");
+-		    sub(/^.B$/, "");
+-		    sub(/^.nf$/, "");
+-
+-		    if (($1 ~ /^\.../ || $1 == "") &&
+-		        (entire_line ~ / - / || entire_line ~ / \\- /)) {
+-		      # Assume that this ends the description of one line
+-		      # Sometimes there are several descriptions in one page,
+-		      # as in outb(2).
+-		      handle_entire_line();
+-		      entire_line = "";
+-		      thisjoin = 1;
+-		    } else {
+-		      if (thisjoin) {
+-			entire_line = entire_line $0;
+-		      } else {
+-			entire_line = entire_line " " $0;
+-		      }
+-		      thisjoin = nextjoin;
+-		    }
+-		  }
+-		}
+-	      }
+-	      handle_entire_line();
+-	      closeline();
+-	    }
+-
+-	    function handle_entire_line() {
+-	      x = entire_line;             # Keep it short
+-
+-	      gsub(/\015/, "", x);         # Kill DOS remains
+-	      gsub(/	/, " ", x);        # Translate tabs to spaces
+-	      gsub(/  +/, " ", x);         # Collapse spaces
+-	      gsub(/ *, */, ", ", x);      # Fix comma spacings
+-	      sub(/^ /, "", x);            # Kill initial spaces
+-	      sub(/ $/, "", x);            # Kill trailing spaces
+-	      sub(/__+/, "_", x);          # Collapse underscores
+-
+-	      gsub(/\\f\(../, "", x);         # Kill font changes
+-	      gsub(/\\f[PRIB0123]/, "", x);   # Kill font changes
+-	      gsub(/\\s[-+0-9]*/, "", x);     # Kill size changes
+-	      gsub(/\\&/, "", x);             # Kill \&
+-	      gsub(/\\\|/, "", x);            # Kill \|
+-	      gsub(/\\\((ru|ul)/, "_", x);    # Translate
+-	      gsub(/\\\((mi|hy|em)/, "-", x); # Translate
+-	      gsub(/\\\*\(../, "", x);        # Kill troff strings
+-	      gsub(/\\/, "", x);              # Kill all backslashes
+-	      gsub(/"/, "", x);               # Kill quotes (from .Nd "foo bar")
+-	      sub(/<h1 align=center>/, "", x);# Yuk! HTML cruft
+-	      gsub(/\000.*/, "X", x);         # Binary cruft in LAPACK pages
+-	      gsub(/  +/, " ", x);            # Collapse spaces (again)
+-	      sub(/^ /, "", x);               # Kill initial spaces (again)
+-	      sub(/ $/, "", x);               # Kill trailing spaces (again)
+-	      sub(/\.$/, "", x);              # Kill trailing period
+-
+-	      if (!match(x, / - /))
+-		return;
+-
+-	      after_dash = substr(x, RSTART);
+-	      head = substr(x, 1, RSTART-1) ", ";
+-	      while (match(head, /, /)) {
+-		prog = substr(head, 1, RSTART-1);
+-		head = substr(head, RSTART+2);
+-		if (prog != progname)
+-		  prog = prog " [" progname "]";
+-		printf "%-*s (%s) %s\n", 20, prog, actual_section, after_dash;
+-	      }
+-	    }
+-
+-	    {			# Main action - process each filename read in.
+-	      filename = $0;
+-	      do_one();
+-	    }
+ 	    ' pages=$pages section=$section verbose=$verbose curdir=$curdir
++               fi
++            done
+ 	    cd ..
+ 	 fi
+        done > $TMPFILE
+ 
+        cd $here
+ 
<<Diff was trimmed, longer than 597 lines>>


More information about the pld-cvs-commit mailing list