diff --git a/runtime/doc/xxd.man b/runtime/doc/xxd.man
index 37b22d6..00d75da 100644
--- a/runtime/doc/xxd.man
+++ b/runtime/doc/xxd.man
@@ -1,9 +1,7 @@
+XXD(1)                                                                  XXD(1)
 
 
 
-XXD(1)                                                     XXD(1)
-
-
 NAME
        xxd - make a hexdump or do the reverse.
 
@@ -13,239 +11,184 @@
        xxd -r[evert] [options] [infile [outfile]]
 
 DESCRIPTION
-       xxd  creates a hex dump of a given file or standard input.
-       It can also convert a hex dump back to its original binary
-       form.   Like  uuencode(1)  and  uudecode(1)  it allows the
-       transmission of binary data in a `mail-safe' ASCII  repre-
-       sentation,  but  has the advantage of decoding to standard
-       output.  Moreover, it can be used to perform  binary  file
-       patching.
+       xxd  creates a hex dump of a given file or standard input.  It can also
+       convert a hex dump back to its original binary form.  Like  uuencode(1)
+       and  uudecode(1)  it allows the transmission of binary data in a `mail-
+       safe' ASCII representation, but has the advantage of decoding to  stan-
+       dard output.  Moreover, it can be used to perform binary file patching.
 
 OPTIONS
-       If  no infile is given, standard input is read.  If infile
-       is specified as a `-' character, then input is taken  from
-       standard  input.  If no outfile is given (or a `-' charac-
-       ter is in its place), results are sent to standard output.
+       If no infile is given, standard input is read.  If infile is  specified
+       as  a  `-'  character,  then input is taken from standard input.  If no
+       outfile is given (or a `-' character is in its place), results are sent
+       to standard output.
 
-       Note that a "lazy" parser is used which does not check for
-       more than the first option letter, unless  the  option  is
-       followed  by  a parameter.  Spaces between a single option
-       letter and its  parameter  are  optional.   Parameters  to
-       options  can be specified in decimal, hexadecimal or octal
-       notation.  Thus -c8, -c 8, -c 010  and  -cols  8  are  all
-       equivalent.
+       Note  that  a  "lazy" parser is used which does not check for more than
+       the first option letter, unless the option is followed by a  parameter.
+       Spaces  between  a single option letter and its parameter are optional.
+       Parameters to options can be specified in decimal, hexadecimal or octal
+       notation.  Thus -c8, -c 8, -c 010 and -cols 8 are all equivalent.
 
 
        -a | -autoskip
-              toggle  autoskip:  A single '*' replaces nul-lines.
-              Default off.
+              toggle  autoskip: A single '*' replaces nul-lines.  Default off.
 
        -b | -bits
-              Switch to bits (binary digits)  dump,  rather  than
-              hexdump.  This option writes octets as eight digits
-              "1"s and "0"s instead of a normal hexacecimal dump.
-              Each line is preceded by a line number in hexadeci-
-              mal and followed by an ascii (or ebcdic)  represen-
-              tation. The command line switches -r, -p, -i do not
-              work with this mode.
+              Switch to bits (binary digits) dump, rather than hexdump.   This
+              option  writes octets as eight digits "1"s and "0"s instead of a
+              normal hexadecimal dump. Each line is preceded by a line  number
+              in  hexadecimal and followed by an ascii (or ebcdic) representa-
+              tion. The command line switches -r, -p, -i do not work with this
+              mode.
 
        -c cols | -cols cols
-              -c cols | -cols cols format <cols> octets per line.
-              Default 16 (-i: 12, -ps: 30, -b: 6). Max 256.
+              format  <cols> octets per line. Default 16 (-i: 12, -ps: 30, -b:
+              6). Max 256.
 
        -E | -EBCDIC
-              Change the character encoding in the righthand col-
-              umn from ASCII to EBCDIC.  This does not change the
-              hexadecimal  representation. The option is meaning-
-              less in combinations with -r, -p or -i.
-
-
-
-Manual page for xxd        August 1996                          1
-
-
-
-
-
-XXD(1)                                                     XXD(1)
-
+              Change the character encoding in the righthand column from ASCII
+              to EBCDIC.  This does not change the hexadecimal representation.
+              The option is meaningless in combinations with -r, -p or -i.
 
        -g bytes | -groupsize bytes
-              seperate the output of every <bytes> bytes (two hex
-              characters  or  eight bit-digits each) by a whites-
-              pace.  Specify -g 0 to suppress grouping.   <Bytes>
-              defaults  to  2  in normal mode and 1 in bits mode.
-              Grouping does not apply to  postscript  or  include
+              separate the output of every <bytes> bytes (two  hex  characters
+              or eight bit-digits each) by a whitespace.  Specify -g 0 to sup-
+              press grouping.  <Bytes> defaults to 2 in normal mode and  1  in
+              bits  mode.   Grouping  does  not apply to postscript or include
               style.
 
        -h | -help
-              print a summary of available commands and exit.  No
-              hex dumping is performed.
+              print a summary of available commands and exit.  No hex  dumping
+              is performed.
 
        -i | -include
-              output in C include file style. A  complete  static
-              array  definition is written (named after the input
-              file), unless xxd reads from stdin.
+              output  in C include file style. A complete static array defini-
+              tion is written (named after the input file), unless  xxd  reads
+              from stdin.
 
        -l len | -len len
               stop after writing <len> octets.
 
        -p | -ps | -postscript | -plain
-              output in postscript continuous hexdump style. Also
-              known as plain hexdump style.
+              output  in  postscript  continuous  hexdump style. Also known as
+              plain hexdump style.
 
        -r | -revert
-              reverse  operation: convert (or patch) hexdump into
-              binary.  If not writing to stdout, xxd writes  into
-              its output file without truncating it. Use the com-
-              bination -r -p  to  read  plain  hexadecimal  dumps
-              without  line number information and without a par-
-              ticular column layout.  Additional  Whitespace  and
-              line-breaks are allowed anywhere.
+              reverse operation: convert (or patch) hexdump into  binary.   If
+              not  writing  to stdout, xxd writes into its output file without
+              truncating it. Use the combination -r -p to read plain hexadeci-
+              mal dumps without line number information and without a particu-
+              lar column layout. Additional  Whitespace  and  line-breaks  are
+              allowed anywhere.
 
        -seek offset
-              When  used after -r : revert with <offset> added to
-              file positions found in hexdump.
+              When  used  after  -r : revert with <offset> added to file posi-
+              tions found in hexdump.
 
        -s [+][-]seek
-              start at <seek> bytes abs. (or rel.) infile offset.
-              +  indicates  that the seek is relative to the cur-
-              rent stdin  file  position  (meaningless  when  not
-              reading  from  stdin).   -  indicates that the seek
-              should be that many characters from the end of  the
-              input (or if combined with
-               +  :  before  the  current  stdin  file position).
-              Without -s option, xxd starts at the  current  file
-              position.
+              start at <seek> bytes abs. (or rel.) infile offset.  + indicates
+              that  the  seek  is  relative to the current stdin file position
+              (meaningless when not reading from stdin).  - indicates that the
+              seek  should  be  that many characters from the end of the input
+              (or if combined with
+               + : before  the  current  stdin  file  position).   Without  -s
+              option, xxd starts at the current file position.
 
-       -u     use  upper case hex letters. Default is lower case.
+       -u     use upper case hex letters. Default is lower case.
 
        -v | -version
               show version string.
 
-
-
-
-
-Manual page for xxd        August 1996                          2
-
-
-
-
-
-XXD(1)                                                     XXD(1)
-
-
 CAVEATS
-       xxd -r has some builtin magic while evaluating line number
-       information.   If  the  ouput  file  is seekable, then the
-       linenumbers at the start of each hexdump line may  be  out
-       of  order,  lines may be missing, or overlapping. In these
-       cases xxd will lseek(2) to the next position. If the  out-
-       put  file  is  not  seekable, only gaps are allowed, which
-       will be filled by null-bytes.
+       xxd -r has some builtin magic while evaluating line number information.
+       If the output file is seekable, then the linenumbers at  the  start  of
+       each  hexdump  line may be out of order, lines may be missing, or over-
+       lapping. In these cases xxd will lseek(2) to the next position. If  the
+       output  file  is  not  seekable,  only  gaps are allowed, which will be
+       filled by null-bytes.
 
-       xxd -r never generates parse errors. Garbage  is  silently
-       skipped.
+       xxd -r never generates parse errors. Garbage is silently skipped.
 
-       When  editing  hexdumps,  please  note  that  xxd -r skips
-       everything on the input line after reading enough  columns
-       of hexadecimal data (see option -c). This also means, that
-       changes to the printable ascii  (or  ebcdic)  columns  are
-       always  ignored.  Reverting  a plain (or postscript) style
-       hexdump with xxd -r -p does not depend on the correct num-
-       ber  of  columns.  Here an thing that looks like a pair of
-       hex-digits is interpreted.
+       When editing hexdumps, please note that xxd -r skips everything on  the
+       input line after reading enough columns of hexadecimal data (see option
+       -c). This also means, that changes to the printable ascii  (or  ebcdic)
+       columns  are  always  ignored.  Reverting a plain (or postscript) style
+       hexdump with xxd -r -p does not depend on the correct  number  of  col-
+       umns.  Here  anything  that  looks  like a pair of hex-digits is inter-
+       preted.
 
        Note the difference between
        % xxd -i file
        and
        % xxd -i < file
 
-       xxd -s +seek may be  different  from  xxd  -s  seek  ,  as
-       lseek(2) is used to "rewind" input.  A '+' makes a differ-
-       ence if the input source is stdin,  and  if  stdin's  file
-       position  is  not at the start of the file by the time xxd
-       is started and given its input.   The  following  examples
-       may help to clarify (or further confuse!)...
+       xxd -s +seek may be different from xxd -s seek , as lseek(2) is used to
+       "rewind" input.  A '+' makes a difference if the input source is stdin,
+       and if stdin's file position is not at the start of  the  file  by  the
+       time  xxd  is  started and given its input.  The following examples may
+       help to clarify (or further confuse!)...
 
-       Rewind  stdin before reading; needed because the `cat' has
-       already read to the end of stdin.
+       Rewind stdin before reading; needed because the `cat' has already  read
+       to the end of stdin.
        % sh -c 'cat > plain_copy; xxd -s 0 > hex_copy' < file
 
-       Hexdump from file position 0x480 (=1024+128) onwards.  The
-       `+'  sign  means  "relative to the current position", thus
-       the `128' adds to the 1k where dd left off.
-       % sh -c 'dd of=plain_snippet bs=1k count=1; xxd -s +128  >
-       hex_snippet' < file
+       Hexdump  from  file  position  0x480 (=1024+128) onwards.  The `+' sign
+       means "relative to the current position", thus the `128' adds to the 1k
+       where dd left off.
+       %  sh -c 'dd of=plain_snippet bs=1k count=1; xxd -s +128 > hex_snippet'
+       < file
 
        Hexdump from file position 0x100 ( = 1024-768) on.
-       % sh -c 'dd of=plain_snippet bs=1k count=1; xxd -s +-768 >
-       hex_snippet' < file
+       % sh -c 'dd of=plain_snippet bs=1k count=1; xxd -s +-768 > hex_snippet'
+       < file
 
-       However, this is a rare situation and the use  of  `+'  is
-       rarely  needed.   the author prefers to monitor the effect
-       of xxd with strace(1) or truss(1), whenever -s is used.
+       However,  this is a rare situation and the use of `+' is rarely needed.
+       The author prefers to monitor the  effect  of  xxd  with  strace(1)  or
+       truss(1), whenever -s is used.
 
 EXAMPLES
-       Print everything but  the  first  three  lines  (hex  0x30
-       bytes) of file
-
-
-
-Manual page for xxd        August 1996                          3
-
-
-
-
-
-XXD(1)                                                     XXD(1)
-
-
+       Print everything but the first three lines (hex 0x30 bytes) of file
        % xxd -s 0x30 file
 
        Print 3 lines (hex 0x30 bytes) from the end of file
        % xxd -s -0x30 file
 
-       Print  120  bytes as continuous hexdump with 40 octets per
-       line.
+       Print 120 bytes as continuous hexdump with 40 octets per line.
        % xxd -l 120 -ps -c 20 xxd.1
-       2e544820585844203120224d616e75616c207061
-       676520666f7220787864220a2e5c220a2e5c2220
-       32317374204d617920313939360a2e5c22204d61
-       6e207061676520617574686f723a0a2e5c222020
-       2020546f6e79204e7567656e74203c746f6e7940
-       7363746e7567656e2e7070702e67752e6564752e
+       2e54482058584420312022417567757374203139
+       39362220224d616e75616c207061676520666f72
+       20787864220a2e5c220a2e5c222032317374204d
+       617920313939360a2e5c22204d616e2070616765
+       20617574686f723a0a2e5c2220202020546f6e79
+       204e7567656e74203c746f6e79407363746e7567
 
-       Hexdump the first 120 bytes  of  this  man  page  with  12
-       octets per line.
+       Hexdump the first 120 bytes of this man page with 12 octets per line.
        % xxd -l 120 -c 12 xxd.1
-       0000000: 2e54 4820 5858 4420 3120 224d  .TH XXD 1 "M
-       000000c: 616e 7561 6c20 7061 6765 2066  anual page f
-       0000018: 6f72 2078 7864 220a 2e5c 220a  or xxd"..\".
-       0000024: 2e5c 2220 3231 7374 204d 6179  .\" 21st May
-       0000030: 2031 3939 360a 2e5c 2220 4d61   1996..\" Ma
-       000003c: 6e20 7061 6765 2061 7574 686f  n page autho
-       0000048: 723a 0a2e 5c22 2020 2020 546f  r:..\"    To
-       0000054: 6e79 204e 7567 656e 7420 3c74  ny Nugent <t
-       0000060: 6f6e 7940 7363 746e 7567 656e  ony@sctnugen
-       000006c: 2e70 7070 2e67 752e 6564 752e  .ppp.gu.edu.
+       0000000: 2e54 4820 5858 4420 3120 2241  .TH XXD 1 "A
+       000000c: 7567 7573 7420 3139 3936 2220  ugust 1996"
+       0000018: 224d 616e 7561 6c20 7061 6765  "Manual page
+       0000024: 2066 6f72 2078 7864 220a 2e5c   for xxd"..\
+       0000030: 220a 2e5c 2220 3231 7374 204d  "..\" 21st M
+       000003c: 6179 2031 3939 360a 2e5c 2220  ay 1996..\"
+       0000048: 4d61 6e20 7061 6765 2061 7574  Man page aut
+       0000054: 686f 723a 0a2e 5c22 2020 2020  hor:..\"
+       0000060: 546f 6e79 204e 7567 656e 7420  Tony Nugent
+       000006c: 3c74 6f6e 7940 7363 746e 7567  <tony@sctnug
 
        Display just the date from the file xxd.1
-       % xxd -s 0x28 -l 12 -c 12 xxd.1
-       0000028: 3231 7374 204d 6179 2031 3939  21st May 199
+       % xxd -s 0x36 -l 13 -c 13 xxd.1
+       0000036: 3231 7374 204d 6179 2031 3939 36  21st May 1996
 
-       Copy  input_file  to  output_file and prepend 100 bytes of
-       value 0x00.
+       Copy input_file to output_file and prepend 100 bytes of value 0x00.
        % xxd input_file | xxd -r -s 100 > output_file
 
        Patch the date in the file xxd.1
-       % echo '0000029: 3574 68' | xxd -r - xxd.1
-       % xxd -s 0x28 -l 12 -c 12 xxd.1
-       0000028: 3235 7468 204d 6179 2031 3939  25th May 199
+       % echo '0000037: 3574 68' | xxd -r - xxd.1
+       % xxd -s 0x36 -l 13 -c 13 xxd.1
+       0000036: 3235 7468 204d 6179 2031 3939 36  25th May 1996
 
-       Create a 65537 byte file with all bytes 0x00,  except  for
-       the last one which is 'A' (hex 0x41).
+       Create  a  65537 byte file with all bytes 0x00, except for the last one
+       which is 'A' (hex 0x41).
        % echo '010000: 41' | xxd -r > file
 
        Hexdump this file with autoskip.
@@ -254,34 +197,21 @@
        *
        000fffc: 0000 0000 40                   ....A
 
-       Create  a  1  byte file containing a single 'A' character.
-       The number after '-r -s' adds to the linenumbers found  in
-
-
-
-Manual page for xxd        August 1996                          4
-
-
-
-
-
-XXD(1)                                                     XXD(1)
-
-
-       the file; in effect, the leading bytes are suppressed.
+       Create a 1 byte file containing a single  'A'  character.   The  number
+       after '-r -s' adds to the linenumbers found in the file; in effect, the
+       leading bytes are suppressed.
        % echo '010000: 41' | xxd -r -s -0x10000 > file
 
-       Use  xxd  as  a  filter within an editor such as vim(1) to
-       hexdump a region marked between `a' and `z'.
+       Use xxd as a filter within an editor such as vim(1) to hexdump a region
+       marked between `a' and `z'.
        :'a,'z!xxd
 
-       Use xxd as a filter within an editor  such  as  vim(1)  to
-       recover a binary hexdump marked between `a' and `z'.
+       Use xxd as a filter within an editor such as vim(1) to recover a binary
+       hexdump marked between `a' and `z'.
        :'a,'z!xxd -r
 
-       Use  xxd  as  a  filter within an editor such as vim(1) to
-       recover one line of a hexdump.  Move the cursor  over  the
-       line and type:
+       Use xxd as a filter within an editor such as vim(1) to recover one line
+       of a hexdump.  Move the cursor over the line and type:
        !!xxd -r
 
        Read single characters from a serial line
@@ -295,8 +225,7 @@
 
        0      no errors encountered.
 
-       -1     operation  not supported ( xxd -r -i still impossi-
-              ble).
+       -1     operation not supported ( xxd -r -i still impossible).
 
        1      error while parsing options.
 
@@ -310,9 +239,8 @@
        uuencode(1), uudecode(1), patch(1)
 
 WARNINGS
-       The tools  weirdness  matches  its  creators  brain.   Use
-       entirely  at your own risk. Copy files. Trace it. Become a
-       wizard.
+       The  tools  weirdness matches its creators brain.  Use entirely at your
+       own risk. Copy files. Trace it. Become a wizard.
 
 VERSION
        This manual page documents xxd version 1.7
@@ -322,75 +250,14 @@
        <jnweiger@informatik.uni-erlangen.de>
 
        Distribute freely and credit me,
-
-
-
-Manual page for xxd        August 1996                          5
-
-
-
-
-
-XXD(1)                                                     XXD(1)
-
-
        make money and share with me,
        lose money and don't ask me.
 
        Manual page started by Tony Nugent
        <tony@sctnugen.ppp.gu.edu.au> <T.Nugent@sct.gu.edu.au>
-       Small  changes  by  Bram  Moolenaar.   Edited  by  Juergen
-       Weigert.
+       Small changes by Bram Moolenaar.  Edited by Juergen Weigert.
 
 
 
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Manual page for xxd        August 1996                          6
-
-
+Manual page for xxd               August 1996                           XXD(1)
