Subject: Fix a truckload of roff markup glitches.
From: <[email-masked]>

diff -Naur nvi-1.81.6.orig/docs/vi.man/vi.1 nvi-1.81.6/docs/vi.man/vi.1
--- nvi-1.81.6.orig/docs/vi.man/vi.1	2007-11-18 17:41:42.000000000 +0100
+++ nvi-1.81.6/docs/vi.man/vi.1	2008-05-01 18:17:59.000000000 +0200
@@ -17,35 +17,35 @@
 .SH SYNOPSIS
 .B ex
 [\c
-.B -eFRrSsv\c
+.B \-eFRrSsv\c
 ] [\c
-.BI -c " cmd"\c
+.BI \-c " cmd"\c
 ] [\c
-.BI -t " tag"\c
+.BI \-t " tag"\c
 ] [\c
-.BI -w " size"\c
+.BI \-w " size"\c
 ] [file ...]
 .br
 .B vi
 [\c
-.B -eFlRrSv\c
+.B \-eFlRrSv\c
 ] [\c
-.BI -c " cmd"\c
+.BI \-c " cmd"\c
 ] [\c
-.BI -t " tag"\c
+.BI \-t " tag"\c
 ] [\c
-.BI -w " size"\c
+.BI \-w " size"\c
 ] [file ...]
 .br
 .B view
 [\c
-.B -eFRrSv\c
+.B \-eFRrSv\c
 ] [\c
-.BI -c " cmd"\c
+.BI \-c " cmd"\c
 ] [\c
-.BI -t " tag"\c
+.BI \-t " tag"\c
 ] [\c
-.BI -w " size"\c
+.BI \-w " size"\c
 ] [file ...]
 .SH LICENSE
 The vi program is freely redistributable.  You are welcome to copy,
@@ -57,7 +57,7 @@
 .I \&Vi
 is a screen oriented text editor.
 .I \&Ex
-is a line-oriented text editor.
+is a line\(hyoriented text editor.
 .I \&Ex
 and
 .I \&vi
@@ -66,7 +66,7 @@
 .I View
 is the equivalent of using the
 .B \-R
-(read-only) option of
+(read\(hyonly) option of
 .IR \&vi .
 .PP
 This manual page is the one provided with the
@@ -75,7 +75,7 @@
 .I ex/vi
 text editors.
 .I Nex/nvi
-are intended as bug-for-bug compatible replacements for the original
+are intended as bug\(hyfor\(hybug compatible replacements for the original
 Fourth Berkeley Software Distribution (4BSD)
 .I \&ex
 and
@@ -93,7 +93,7 @@
 editor before this manual page.
 If you're in an unfamiliar environment, and you absolutely have to
 get work done immediately, read the section after the options
-description, entitled ``Fast Startup''.
+description, entitled \(lqFast Startup\(rq.
 It's probably enough to get you going.
 .PP
 The following options are available:
@@ -105,7 +105,7 @@
 Particularly useful for initial positioning in the file, however
 .B cmd
 is not limited to positioning commands.
-This is the POSIX 1003.2 interface for the historic ``+cmd'' syntax.
+This is the POSIX 1003.2 interface for the historic \(lq+cmd\(rq syntax.
 .I Nex/nvi
 supports both the old and new syntax.
 .TP
@@ -122,7 +122,7 @@
 Start editing with the lisp and showmatch options set.
 .TP
 .B \-R
-Start editing in read-only mode, as if the command name was
+Start editing in read\(hyonly mode, as if the command name was
 .IR view ,
 or the
 .B readonly
@@ -151,7 +151,7 @@
 Prompts, informative messages and other user oriented message
 are turned off,
 and no startup files or environmental variables are read.
-This is the POSIX 1003.2 interface for the historic ``\-'' argument.
+This is the POSIX 1003.2 interface for the historic \(lq\-\(rq argument.
 .I \&Nex/nvi
 supports both the old and new syntax.
 .TP
@@ -215,8 +215,8 @@
 There are commands that switch you into input mode.
 There is only one key that takes you out of input mode,
 and that is the <escape> key.
-(Key names are written using less-than and greater-than signs, e.g.
-<escape> means the ``escape'' key, usually labeled ``esc'' on your
+(Key names are written using less\(hythan and greater\(hythan signs, e.g.
+<escape> means the \(lqescape\(rq key, usually labeled \(lqesc\(rq on your
 terminal's keyboard.)
 If you're ever confused as to which mode you're in,
 keep entering the <escape> key until
@@ -227,9 +227,9 @@
 will beep at you if you try and do something that's not allowed.
 It will also display error messages.)
 .PP
-To start editing a file, enter the command ``vi file_name<carriage-return>''.
+To start editing a file, enter the command \(lqvi file_name<carriage\(hyreturn>\(rq.
 The command you should enter as soon as you start editing is
-``:set verbose showmode<carriage-return>''.
+\(lq:set verbose showmode<carriage\(hyreturn>\(rq.
 This will make the editor give you verbose error messages and display
 the current mode at the bottom of the screen.
 .PP
@@ -247,11 +247,11 @@
 .B l
 Move the cursor right one character.
 .TP
-.B <cursor-arrows>
+.B <cursor\(hyarrows>
 The cursor arrow keys should work, too.
 .TP
-.B /text<carriage-return>
-Search for the string ``text'' in the file,
+.B /text<carriage\(hyreturn>
+Search for the string \(lqtext\(rq in the file,
 and move the cursor to its first character.
 .PP
 The commands to enter new text are:
@@ -303,30 +303,30 @@
 .PP
 The commands to write the file are:
 .TP
-.B :w<carriage-return>
+.B :w<carriage\(hyreturn>
 Write the file back to the file with the name that you originally used
 as an argument on the
 .I \&vi
 command line.
 .TP
-.B ":w file_name<carriage-return>"
-Write the file back to the file with the name ``file_name''.
+.B ":w file_name<carriage\(hyreturn>"
+Write the file back to the file with the name \(lqfile_name\(rq.
 .PP
 The commands to quit editing and exit the editor are:
 .TP
-.B :q<carriage-return>
+.B :q<carriage\(hyreturn>
 Quit editing and leave vi (if you've modified the file, but not
 saved your changes,
 .I \&vi
 will refuse to quit).
 .TP
-.B :q!<carriage-return>
+.B :q!<carriage\(hyreturn>
 Quit, discarding any modifications that you may have made.
 .PP
 One final caution.
 Unusual characters can take up more than one column on the screen,
 and long lines can take up more than a single screen line.
-The above commands work on ``physical'' characters and lines,
+The above commands work on \(lqphysical\(rq characters and lines,
 i.e. they affect the entire line no matter how many screen lines it
 takes up and the entire character no matter how many screen columns
 it takes up.
@@ -339,87 +339,87 @@
 character.
 .PP
 .TP
-.B "[count] <control-A>"
+.B "[count] <control\(hyA>"
 Search forward
 .I count
 times for the current word.
 .TP
-.B "[count] <control-B>"
+.B "[count] <control\(hyB>"
 Page backwards
 .I count
 screens.
 .TP
-.B "[count] <control-D>"
+.B "[count] <control\(hyD>"
 Scroll forward
 .I count
 lines.
 .TP
-.B "[count] <control-E>"
+.B "[count] <control\(hyE>"
 Scroll forward
 .I count
 lines, leaving the current line and column as is, if possible.
 .TP
-.B "[count] <control-F>"
+.B "[count] <control\(hyF>"
 Page forward
 .I count
 screens.
 .TP
-.B "<control-G>"
+.B "<control\(hyG>"
 Display the file information.
 .TP
-.B "<control-H>"
+.B "<control\(hyH>"
 .TP
 .B "[count] h"
 Move the cursor back
 .I count
 characters in the current line.
 .TP
-.B "[count] <control-J>"
+.B "[count] <control\(hyJ>"
 .TP
-.B "[count] <control-N>"
+.B "[count] <control\(hyN>"
 .TP
 .B "[count] j"
 Move the cursor down
 .I count
 lines without changing the current column.
 .TP
-.B "<control-L>"
+.B "<control\(hyL>"
 .TP
-.B "<control-R>"
+.B "<control\(hyR>"
 Repaint the screen.
 .TP
-.B "[count] <control-M>"
+.B "[count] <control\(hyM>"
 .TP
 .B "[count] +"
 Move the cursor down
 .I count
 lines to the first nonblank character of that line.
 .TP
-.B "[count] <control-P>"
+.B "[count] <control\(hyP>"
 .TP
 .B "[count] k"
 Move the cursor up
 .I count
 lines, without changing the current column.
 .TP
-.B "<control-T>"
+.B "<control\(hyT>"
 Return to the most recent tag context.
 .TP
-.B "<control-U>"
+.B "<control\(hyU>"
 Scroll backwards
 .I count
 lines.
 .TP
-.B "<control-W>"
+.B "<control\(hyW>"
 Switch to the next lower screen in the window, or, to the first
 screen if there are no lower screens in the window.
 .TP
-.B "<control-Y>"
+.B "<control\(hyY>"
 Scroll backwards
 .I count
 lines, leaving the current line and column as is, if possible.
 .TP
-.B "<control-Z>"
+.B "<control\(hyZ>"
 Suspend the current editor session.
 .TP
 .B "<escape>"
@@ -427,10 +427,10 @@
 .I \&ex
 commands or cancel partial commands.
 .TP
-.B "<control-]>"
+.B "<control\(hy]>"
 Push a tag reference onto the tag stack.
 .TP
-.B "<control-^>"
+.B "<control\(hy^>"
 Switch to the most recently edited file.
 .TP
 .B "[count] <space>"
@@ -440,10 +440,10 @@
 .I count
 characters without changing the current line.
 .TP
-.B "[count] ! motion shell-argument(s)"
+.B "[count] ! motion shell\(hyargument(s)"
 Replace text with results from a shell command.
 .TP
-.B "[count] # #|+|-"
+.B "[count] # #|+|\-"
 Increment or decrement the cursor number.
 .TP
 .B "[count] $"
@@ -457,7 +457,7 @@
 .TP
 .B "'<character>"
 .TP
-.B "`<character>"
+.B "\`<character>"
 Return to a context marked by the character
 .IR <character> .
 .TP
@@ -476,7 +476,7 @@
 .I count
 times.
 .TP
-.B "[count] -"
+.B "[count] \-"
 Move to first nonblank of the previous line,
 .I count
 times.
@@ -486,13 +486,13 @@
 .I \&vi
 command that modified text.
 .TP
-.B "/RE<carriage-return>"
+.B "/RE<carriage\(hyreturn>"
 .TP
-.B "/RE/ [offset]<carriage-return>"
+.B "/RE/ [offset]<carriage\(hyreturn>"
 .TP
-.B "?RE<carriage-return>"
+.B "?RE<carriage\(hyreturn>"
 .TP
-.B "?RE? [offset]<carriage-return>"
+.B "?RE? [offset]<carriage\(hyreturn>"
 .TP
 .B "N"
 .TP
@@ -527,15 +527,15 @@
 bigwords.
 .TP
 .B "[buffer] [count] C"
-Change text from the current position to the end-of-line.
+Change text from the current position to the end\(hyof\(hyline.
 .TP
 .B "[buffer] D"
-Delete text from the current position to the end-of-line.
+Delete text from the current position to the end\(hyof\(hyline.
 .TP
 .B "[count] E"
 Move forward
 .I count
-end-of-bigwords.
+end\(hyof\(hybigwords.
 .TP
 .B "[count] F <character>"
 Search
@@ -552,7 +552,7 @@
 .TP
 .B "[count] H"
 Move to the screen line
-.I "count - 1"
+.I "count \- 1"
 lines below the top of the screen.
 .TP
 .B "[count] I"
@@ -563,7 +563,7 @@
 .TP
 .B "[count] L"
 Move to the screen line
-.I "count - 1"
+.I "count \- 1"
 lines above the bottom of the screen.
 .TP
 .B " M"
@@ -614,7 +614,7 @@
 characters before the cursor.
 .TP
 .B "[buffer] [count] Y"
-Copy (or ``yank'')
+Copy (or \(lqyank\(rq)
 .I count
 lines into the specified buffer.
 .TP
@@ -637,7 +637,7 @@
 .TP
 .B "[count] _"
 Move down
-.I "count - 1"
+.I "count \- 1"
 lines, to the first nonblank character.
 .TP
 .B "[count] a"
@@ -657,7 +657,7 @@
 .B "[count] e"
 Move forward
 .I count
-end-of-words.
+end\(hyof\(hywords.
 .TP
 .B "[count] f<character>"
 Search forward,
@@ -709,12 +709,12 @@
 characters.
 .TP
 .B "[buffer] [count] y motion"
-Copy (or ``yank'')
+Copy (or \(lqyank\(rq)
 a text region specified by the
 .I count
 and motion into a buffer.
 .TP
-.B "[count1] z [count2] -|.|+|^|<carriage-return>"
+.B "[count1] z [count2] \-|.|+|^|<carriage\(hyreturn>"
 Redraw, optionally repositioning and resizing the screen.
 .TP
 .B "[count] {"
@@ -735,13 +735,20 @@
 .B "[count] ~"
 Reverse the case of the next
 .I count
-character(s).
+character(s), if the 
+.B tildeop
+option is
+.IR unset .
 .TP
 .B "[count] ~ motion"
 Reverse the case of the characters in a text region specified by the
 .I count
 and
-.IR motion .
+.IR motion ,
+if the 
+.B tildeop
+option is
+.IR set .
 .TP
 .B "<interrupt>"
 Interrupt the current operation.
@@ -755,18 +762,18 @@
 .B "<nul>"
 Replay the previous input.
 .TP
-.B "<control-D>"
+.B "<control\(hyD>"
 Erase to the previous
 .B shiftwidth
 column boundary.
 .TP
-.B "^<control-D>"
+.B "^<control\(hyD>"
 Erase all of the autoindent characters, and reset the autoindent level.
 .TP
-.B "0<control-D>"
+.B "0<control\(hyD>"
 Erase all of the autoindent characters.
 .TP
-.B "<control-T>"
+.B "<control\(hyT>"
 Insert sufficient
 .I <tab>
 and
@@ -777,7 +784,7 @@
 .TP
 .B "<erase>
 .TP
-.B "<control-H>"
+.B "<control\(hyH>"
 Erase the last character.
 .TP
 .B "<literal next>"
@@ -789,7 +796,7 @@
 .B "<line erase>"
 Erase the current line.
 .TP
-.B "<control-W>"
+.B "<control\(hyW>"
 .TP
 .B "<word erase>"
 Erase the last word.
@@ -799,7 +806,7 @@
 .B ttywerase
 options.
 .TP
-.B "<control-X>[0-9A-Fa-f]+"
+.B "<control\(hyX>[0\-9A\-Fa\-f]+"
 Insert a character with the specified hexadecimal value into the text.
 .TP
 .B "<interrupt>"
@@ -811,7 +818,7 @@
 In each entry below, the tag line is a usage synopsis for the command.
 .PP
 .TP
-.B "<end-of-file>"
+.B "<end\(hyof\(hyfile>"
 Scroll the screen.
 .TP
 .B "! argument(s)"
@@ -932,7 +939,7 @@
 .I file
 if it was previously saved.
 .TP
-.B "res[ize] [+|-]size"
+.B "res[ize] [+|\-]size"
 .I \&Vi
 mode only.
 Grow or shrink the current screen.
@@ -1034,7 +1041,10 @@
 .I \&ex
 and
 .I \&vi
-modes, unless otherwise specified.
+modes, unless otherwise specified. Multiple options can be given in
+one set or unset, separated by spaces or tabs.  Spaces and tabs can be
+included in string options (eg. tags or filec) by preceding each with
+a backslash.  There's no way to get backslash itself into an option.
 .PP
 .TP
 .B "altwerase [off]"
@@ -1071,7 +1081,7 @@
 command.
 .TP
 .B "cedit [no default]"
-Set the character to edit the colon command-line history.
+Set the character to edit the colon command\(hyline history.
 .TP
 .B "columns, co [80]"
 Set the number of columns in the screen.
@@ -1085,7 +1095,7 @@
 The directory where temporary files are created.
 .TP
 .B "edcompatible, ed [off]"
-Remember the values of the ``c'' and ``g'' suffices to the
+Remember the values of the \(lqc\(rq and \(lqg\(rq suffices to the
 .B substitute
 commands, instead of initializing them as unset for each new
 command.
@@ -1114,8 +1124,8 @@
 Set the spacing between hardware tab settings.
 .TP
 .B "iclower [off]"
-Makes all Regular Expressions case-insensitive,
-as long as an upper-case letter does not appear in the search string.
+Makes all Regular Expressions case\(hyinsensitive,
+as long as an upper\(hycase letter does not appear in the search string.
 .TP
 .B "ignorecase, ic [off]"
 Ignore case differences in regular expressions.
@@ -1128,7 +1138,7 @@
 .B "leftright [off]"
 .I \&Vi
 only.
-Do left-right scrolling.
+Do left\(hyright scrolling.
 .TP
 .B "lines, li [24]"
 .I \&Vi
@@ -1227,7 +1237,7 @@
 Display a command prompt.
 .TP
 .B "readonly, ro [off]"
-Mark the file and session as read-only.
+Mark the file and session as read\(hyonly.
 .TP
 .B "recdir [/var/tmp/vi.recover]"
 The directory where recovery files are stored.
@@ -1278,7 +1288,7 @@
 .\" to save my life.  The ONLY way I've been able to get this to work
 .\" is with the .tr command.
 .tr Q"
-.ds ms shellmeta [~{[*?$`'Q\e]
+.ds ms shellmeta [~{[*?$\`'Q\e]
 .TP
 .B "\*(ms"
 .tr QQ
@@ -1291,17 +1301,17 @@
 .B "showmatch, sm [off]"
 .I \&Vi
 only.
-Note matching ``{'' and ``('' for ``}'' and ``)'' characters.
+Note matching \(lq{\(rq and \(lq(\(rq for \(lq}\(rq and \(lq)\(rq characters.
 .TP
 .B "showmode, smd [off]"
 .I \&Vi
 only.
-Display the current editor mode and a ``modified'' flag.
+Display the current editor mode and a \(lqmodified\(rq flag.
 .TP
 .B "sidescroll [16]"
 .I \&Vi
 only.
-Set the amount a left-right scroll will shift.
+Set the amount a left\(hyright scroll will shift.
 .TP
 .B "slowopen, slow [off]"
 Delay display updating during text input.
@@ -1379,7 +1389,7 @@
 .I \&Vi
 only.
 Break lines automatically, the specified number of columns from the
-left-hand margin.
+left\(hyhand margin.
 If both the
 .B wraplen
 and
@@ -1392,7 +1402,7 @@
 .I \&Vi
 only.
 Break lines automatically, the specified number of columns from the
-right-hand margin.
+right\(hyhand margin.
 If both the
 .B wraplen
 and
@@ -1405,7 +1415,7 @@
 Set searches to wrap around the end or beginning of the file.
 .TP
 .B "writeany, wa [off]"
-Turn off file-overwriting checks.
+Turn off file\(hyoverwriting checks.
 .SH "ENVIRONMENT VARIABLES
 .TP
 .I COLUMNS
@@ -1430,7 +1440,7 @@
 .TP
 .I HOME
 The user's home directory, used as the initial directory path
-for the startup ``$\fIHOME\fP/.nexrc'' and ``$\fIHOME\fP/.exrc''
+for the startup \(lq$\fIHOME\fP/.nexrc\(rq and \(lq$\fIHOME\fP/.exrc\(rq
 files.
 This value is also used as the default directory for the
 .I \&vi
@@ -1462,7 +1472,7 @@
 .TP
 .I TERM
 The user's terminal type.
-The default is the type ``unknown''.
+The default is the type \(lqunknown\(rq.
 If the
 .I TERM
 environmental variable is not set when
@@ -1482,7 +1492,7 @@
 SIGALRM
 .I \&Vi/ex
 uses this signal for periodic backups of file modifications and to
-display ``busy'' messages when operations are likely to take a long time.
+display \(lqbusy\(rq messages when operations are likely to take a long time.
 .TP
 SIGHUP
 .TP
@@ -1492,7 +1502,7 @@
 be later recovered.
 See the
 .I \&vi/ex
-Reference manual section entitled ``Recovery'' for more information.
+Reference manual section entitled \(lqRecovery\(rq for more information.
 .TP
 SIGINT
 When an interrupt occurs,
@@ -1506,7 +1516,7 @@
 The screen is resized.
 See the
 .I \&vi/ex
-Reference manual section entitled ``Sizing the Screen'' for more information.
+Reference manual section entitled \(lqSizing the Screen\(rq for more information.
 .TP
 SIGCONT
 .TP
@@ -1521,7 +1531,7 @@
 The default user shell.
 .TP
 /etc/vi.exrc
-System-wide vi startup file.
+System\(hywide vi startup file.
 .TP
 /tmp
 Temporary file directory.
@@ -1546,38 +1556,38 @@
 .IR curses (3),
 .IR dbopen (3)
 .sp
-The ``Vi Quick Reference'' card.
+The \(lqVi Quick Reference\(rq card.
 .sp
-``An Introduction to Display Editing with Vi'', found in the
-``UNIX User's Manual Supplementary Documents''
+\(lqAn Introduction to Display Editing with Vi\(rq, found in the
+\(lqUNIX User's Manual Supplementary Documents\(rq
 section of both the 4.3BSD and 4.4BSD manual sets.
 This document is the closest thing available to an introduction to the
 .I \&vi
 screen editor.
 .sp
-``Ex Reference Manual (Version 3.7)'',
+\(lqEx Reference Manual (Version 3.7)\(rq,
 found in the
-``UNIX User's Manual Supplementary Documents''
+\(lqUNIX User's Manual Supplementary Documents\(rq
 section of both the 4.3BSD and 4.4BSD manual sets.
 This document is the final reference for the
 .I \&ex
 editor, as distributed in most historic 4BSD and System V systems.
 .sp
-``Edit: A tutorial'',
+\(lqEdit: A tutorial\(rq,
 found in the
-``UNIX User's Manual Supplementary Documents''
+\(lqUNIX User's Manual Supplementary Documents\(rq
 section of the 4.3BSD manual set.
 This document is an introduction to a simple version of the
 .I \&ex
 screen editor.
 .sp
-``Ex/Vi Reference Manual'',
+\(lqEx/Vi Reference Manual\(rq,
 found in the
-``UNIX User's Manual Supplementary Documents''
+\(lqUNIX User's Manual Supplementary Documents\(rq
 section of the 4.4BSD manual set.
 This document is the final reference for the
 .I \&nex/nvi
-text editors, as distributed in 4.4BSD and 4.4BSD-Lite.
+text editors, as distributed in 4.4BSD and 4.4BSD\(hyLite.
 .PP
 .I Roff
 source for all of these documents is distributed with
@@ -1588,7 +1598,7 @@
 .I nex/nvi
 source code.
 .sp
-The files ``autowrite'', ``input'', ``quoting'' and ``structures''
+The files \(lqautowrite\(rq, \(lqinput\(rq, \(lqquoting\(rq and \(lqstructures\(rq
 found in the
 .I nvi/docs/internals
 directory of the
@@ -1602,7 +1612,7 @@
 editor first appeared in 4.4BSD.
 .SH STANDARDS
 .I \&Nex/nvi
-is close to IEEE Std1003.2 (``POSIX'').
+is close to IEEE Std1003.2 (\(lqPOSIX\(rq).
 That document differs from historical
 .I ex/vi
 practice in several places; there are changes to be made on both sides.