updated for version 7.0007
diff --git a/runtime/doc/Makefile b/runtime/doc/Makefile
index a87565e..8da592c 100644
--- a/runtime/doc/Makefile
+++ b/runtime/doc/Makefile
@@ -71,6 +71,7 @@
 	pi_gzip.txt \
 	pi_netrw.txt \
 	pi_spec.txt \
+	print.txt \
 	quickfix.txt \
 	quickref.txt \
 	quotes.txt \
@@ -126,6 +127,7 @@
 	version4.txt \
 	version5.txt \
 	version6.txt \
+	version7.txt \
 	vi_diff.txt \
 	visual.txt \
 	windows.txt \
@@ -189,6 +191,7 @@
 	pi_gzip.html \
 	pi_netrw.html \
 	pi_spec.html \
+	print.html \
 	quickfix.html \
 	quickref.html \
 	quotes.html \
@@ -245,6 +248,7 @@
 	version4.html \
 	version5.html \
 	version6.html \
+	version7.html \
 	vi_diff.html \
 	visual.html \
 	windows.html \
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 45c0159..e51d372 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -928,6 +928,8 @@
 tempname()			String	name for a temporary file
 tolower( {expr})		String	the String {expr} switched to lowercase
 toupper( {expr})		String	the String {expr} switched to uppercase
+tr( {src}, {fromstr}, {tostr})	String	translate chars of {src} in {fromstr}
+					to chars in {tostr}
 type( {name})			Number	type of variable {name}
 virtcol( {expr})		Number	screen column of cursor or mark
 visualmode( [expr])		String	last visual mode used
@@ -2608,6 +2610,20 @@
 		characters turned into uppercase (just like applying |gU| to
 		the string).
 
+tr({src}, {fromstr}, {tostr})				*tr()*
+		The result is a copy of the {src} string with all characters
+		which appear in {fromstr} replaced by the character in that
+		position in the {tostr} string.  Thus the first character in
+		{fromstr} is translated into the first character in {tostr}
+		and so on.  Exactly like the unix "tr" command.
+		This code also deals with multibyte characters properly.
+
+		Examples: >
+			echo tr("hello there", "ht", "HT")
+<		returns "Hello THere" >
+			echo tr("<blob>", "<>", "{}")
+<		returns "{blob}"
+
 type({expr})						*type()*
 		The result is a Number:
 			0 if {expr} has the type Number
diff --git a/runtime/doc/help.txt b/runtime/doc/help.txt
index 2807676..0e77179 100644
--- a/runtime/doc/help.txt
+++ b/runtime/doc/help.txt
@@ -129,6 +129,7 @@
 |fold.txt|	hide (fold) ranges of lines
 
 Special issues ~
+|print.txt|	printing
 |remote.txt|	using Vim as a server or client
 |term.txt|	using different terminals and mice
 |digraph.txt|	list of available digraphs
diff --git a/runtime/doc/indent.txt b/runtime/doc/indent.txt
index a35ce54..fd94d32 100644
--- a/runtime/doc/indent.txt
+++ b/runtime/doc/indent.txt
@@ -1,4 +1,4 @@
-*indent.txt*    For Vim version 7.0aa.  Last change: 2004 Apr 25
+*indent.txt*    For Vim version 7.0aa.  Last change: 2004 Jul 07
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -425,8 +425,8 @@
 
 
 The defaults, spelled out in full, are:
-	cinoptions=>s,e0,n0,f0,{0,}0,^0,:s,=s,l0,gs,hs,ps,ts,+s,c3,C0,(2s,us,
-		   \U0,w0,m0,j0,)20,*30
+	cinoptions=>s,e0,n0,f0,{0,}0,^0,:s,=s,l0,b0,gs,hs,ps,ts,is,+s,c3,C0,
+		   /0,(2s,us,U0,w0,W0,m0,j0,)20,*30
 
 Vim puts a line in column 1 if:
 - It starts with '#' (preprocessor directives), if 'cinkeys' contains '#'.
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index 4262a76..42d4b7b 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1,4 +1,4 @@
-*index.txt*     For Vim version 7.0aa.  Last change: 2004 Jul 04
+*index.txt*     For Vim version 7.0aa.  Last change: 2004 Jul 07
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1224,6 +1224,8 @@
 |:mkvimrc|	:mkv[imrc]	write current mappings and settings to a file
 |:mkview|	:mkvie[w]	write view of current window to a file
 |:mode|		:mod[e]		show or change the screen mode
+|:mzscheme|	:mz[scheme]	execute MzScheme command
+|:mzfile|	:mzf[ile]	execute MzScheme script file
 |:next|		:n[ext]		go to next file in the argument list
 |:new|		:new		create a new empty window
 |:nmap|		:nm[ap]		like ":map" but for Normal mode
diff --git a/runtime/doc/mbyte.txt b/runtime/doc/mbyte.txt
index 5766984..41723de 100644
--- a/runtime/doc/mbyte.txt
+++ b/runtime/doc/mbyte.txt
@@ -1,4 +1,4 @@
-*mbyte.txt*     For Vim version 7.0aa.  Last change: 2004 Jun 16
+*mbyte.txt*     For Vim version 7.0aa.  Last change: 2004 Jul 05
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar et al.
@@ -742,6 +742,8 @@
   Traditional and Simplified Chinese characters.  And it can accept other
   locale if you make a correct input table.  Xcin can be found at:
   http://xcin.linux.org.tw/
+  Others are scim: http://scim.freedesktop.org/ and fcitx:
+  http://www.fcitx.org/ 
 
 - Conversion Server
 							*conversion-server*
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index bf48cde..1a28bf1 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -4511,52 +4511,17 @@
 			{not in Vi}
 			{only available when compiled with the |+printer|
 			feature}
-	This defines the name of the printer to be used when the |:hardcopy|
-	command is issued with a bang (!) to skip the printer selection
-	dialog.  On Win32, it should be the printer name exactly as it appears
-	in the standard printer dialog.
-	If the option is empty, then vim will use the system default printer
-	for ":hardcopy!"
+	The name of the printer to be used for |:hardcopy|.
+	See |pdev-option|.
 
-					*'printencoding'* *'penc'* *E620*
-'printencoding' 'penc'	String	(default empty, except for:
-					Windows, OS/2: cp1252,
-					Macintosh: mac-roman,
-					VMS: dec-mcs,
-					HPUX: hp-roman8,
-					EBCDIC: ebcdic-uk)
+						*'printencoding'* *'penc'*
+'printencoding' 'penc'	String	(default empty, except for some systems)
 			global
 			{not in Vi}
 			{only available when compiled with the |+printer|
 			and |+postscript| features}
-	Sets the character encoding used when printing.  This option tells VIM
-	which print character encoding file from the "print" directory in
-	'runtimepath' to use.
-
-	This option will accept any value from |encoding-names|.  Any
-	recognized names are converted to VIM standard names - see 'encoding'
-	for more details.  Names not recognized by VIM will just be converted
-	to lower case and underscores replaced with '-' signs.
-
-	If 'printencoding' is empty or VIM cannot find the file then it will
-	use 'encoding' (if VIM is compiled with |+multi_byte| and it is set an
-	8-bit encoding) to find the print character encoding file.  If VIM is
-	unable to find a character encoding file then it will use the "latin1"
-	print character encoding file.
-
-	When 'encoding' is set to a multi-byte encoding, VIM will try to
-	convert characters to the printing encoding for printing (if
-	'printencoding' is empty then the conversion will be to latin1).
-	Conversion to a printing encoding other than latin1 will require VIM
-	to be compiled with the |+iconv| feature.  If no conversion is
-	possible then printing will fail.  Any characters that cannot be
-	converted will be replaced with upside down question marks.
-
-	Four print character encoding files are provided to support default
-	Mac, VMS, HPUX, and EBCDIC character encodings and are used by default
-	on these platforms.  Code page 1252 print character encoding is used
-	by default on Windows and OS/2 platforms.
-
+	Sets the character encoding used when printing.
+	See |penc-option|.
 
 						*'printexpr'* *'pexpr'*
 'printexpr' 'pexpr'	String	(default: see below)
@@ -4564,69 +4529,17 @@
 			{not in Vi}
 			{only available when compiled with the |+printer|
 			and |+postscript| features}
-	Expression that is evaluated to print the PostScript produced with
-	":hardcopy".
-	The file name to be printed is in |v:fname_in|.
-	The arguments to the ":hardcopy" command are in |v:cmdarg|.
-	The expression must take care of deleting the file after printing it.
-	When there is an error, the expression must return a non-zero number.
-	If there is no error, return zero or an empty string.
-	The default for non MS-Windows or VMS systems is to simply use "lpr"
-	to print the file: >
+	Expression used to print the PostScript produced with |:hardcopy|.
+	See |pexpr-option|.
 
-	    system('lpr' . (&printdevice == '' ? '' : ' -P' . &printdevice)
-		. ' ' . v:fname_in) . delete(v:fname_in) + v:shell_error
-<
-	On MS-Dos, MS-Windows and OS/2 machines the default is to copy the
-	file to the currently specified printdevice: >
-
-	    system('copy' . ' ' . v:fname_in . (&printdevice == ''
-			? ' LPT1:' : (' \"' . &printdevice . '\"')))
-			. delete(v:fname_in)
-<
-	On VMS machines the default is to send the file to either the default
-	or currently specified printdevice: >
-
-	    system('print' . (&printdevice == '' ? '' : ' /queue=' .
-			&printdevice) . ' ' . v:fname_in) . delete(v:fname_in)
-<
-	If you change this option, using a function is an easy way to avoid
-	having to escape all the spaces.  Example: >
-
-		:set printexpr=PrintFile(v:fname_in)
-		:function PrintFile(fname)
-		:  call system("ghostview " . a:fname)
-		:  call delete(a:fname)
-		:  return v:shell_error
-		:endfunc
-
-<	Be aware that some print programs return control before they have read
-	the file.  If you delete the file too soon it will not be printed.
-	These programs usually offer an option to have them remove the file
-	when printing is done.
-								*E365*
-	If evaluating the expression fails or it results in a non-zero number,
-	you get an error message.  In that case Vim will delete the
-	file.  In the default value for non-MS-Windows a trick is used: Adding
-	"v:shell_error" will result in a non-zero number when the system()
-	call fails.
-	This option cannot be set from a |modeline| or in the |sandbox|, for
-	security reasons.
-
-						*'printfont'* *'pfn'* *E613*
+						*'printfont'* *'pfn'*
 'printfont' 'pfn'	string	(default "courier")
 			global
 			{not in Vi}
 			{only available when compiled with the |+printer|
 			feature}
-	This is the name of the font that will be used for the |:hardcopy|
-	command's output.  It has the same format as the 'guifont' option,
-	except that only one font may be named, and the special "guifont=*"
-	syntax is not available.
-	In the Win32 GUI version this specifies a font name with its extra
-	attributes, as with the 'guifont' option.
-	For other systems, only ":h11" is recognized, where "11" is the point
-	size of the font.  When omitted, the point size is 10.
+	The name of the font that will be used for |:hardcopy|.
+	See |pfn-option|.
 
 						*'printheader'* *'pheader'*
 'printheader' 'pheader'  string  (default "%<%f%h%m%=Page %N")
@@ -4634,100 +4547,35 @@
 			{not in Vi}
 			{only available when compiled with the |+printer|
 			feature}
-	This defines the format of the header produced in |:hardcopy| output.
-	The option is defined in the same way as the 'statusline' option.
-	If Vim has not been compiled with the |+statusline| feature, this
-	option has no effect and a simple default header is used, which shows
-	the page number.
+	The format of the header produced in |:hardcopy| output.
+	See |pheader-option|.
+
+						*'printmbcharset'* *'pmbcs'*
+'printmbcharset' 'pmbcs'  string (default "")
+			global
+			{not in Vi}
+			{only available when compiled with the |+printer|
+			and |+multi_byte| features}
+	The CJK character set to be used for CJK output from |:hardcopy|.
+	See |pmbcs-option|.
+
+						*'printmbfont'* *'pmbfn'*
+'printmbfont' 'pmbfn'	string (default "")
+			global
+			{not in Vi}
+			{only available when compiled with the |+printer|
+			and |+multi_byte| features}
+	List of font names to be used for CJK output from |:hardcopy|.
+	See |pmbfn-option|.
 
 						*'printoptions'* *'popt'*
 'printoptions' 'popt' string (default "")
 			global
 			{not in Vi}
 			{only available when compiled with |+printer| feature}
-	This is a comma-separated list of items that control the format of
-	the output of |:hardcopy|:
+	List of items that control the format of the output of |:hardcopy|.
+	See |popt-option|.
 
-	  left:{spec}		left margin (default: 10pc)
-	  right:{spec}		right margin (default: 5pc)
-	  top:{spec}		top margin (default: 5pc)
-	  bottom:{spec}		bottom margin (default: 5pc)
-				{spec} is a number followed by "in" for
-				inches, "pt" for points (1 point is 1/72 of an
-				inch), "mm" for millimeters or "pc" for a
-				percentage of the media size.
-				Weird example:
-				    left:2in,top:30pt,right:16mm,bottom:3pc
-				If the unit is not recognized there is no
-				error and the default value is used.
-
-	  header:{nr}		Number of lines to reserve for the header.
-				Only the first line is actually filled, thus
-				when {nr} is 2 there is one empty line.  The
-				header is formatted according to
-				'printheader'.
-	  header:0		Do not print a header.
-	  header:2  (default)	Use two lines for the header
-
-	  syntax:n		Do not use syntax highlighting.  This is
-				faster and thus useful when printing large
-				files.
-	  syntax:y		Do syntax highlighting.
-	  syntax:a  (default)	Use syntax highlighting if the printer appears
-				to be able to print color or grey.
-
-	  number:y		Include line numbers in the printed output.
-	  number:n  (default)	No line numbers.
-
-	  wrap:y    (default)	Wrap long lines.
-	  wrap:n		Truncate long lines.
-
-	  duplex:off		Print on one side.
-	  duplex:long (default)	Print on both sides (when possible), bind on
-				long side.
-	  duplex:short		Print on both sides (when possible), bind on
-				short side.
-
-	  collate:y  (default)	Collating: 1 2 3, 1 2 3, 1 2 3
-	  collate:n		No collating: 1 1 1, 2 2 2, 3 3 3
-
-	  jobsplit:n (default)	Do all copies in one print job
-	  jobsplit:y		Do each copy as a separate print job.  Useful
-				when doing N-up postprocessing.
-
-	  portrait:y (default)	Orientation is portrait.
-	  portrait:n		Orientation is landscape.
-							*a4* *letter*
-	  paper:A4   (default)	Paper size: A4
-	  paper:{name}		Paper size from this table:
-				{name}	    size in cm	     size in inch ~
-				10x14	    25.4  x 35.57    10    x 14
-				A3	    29.7  x 42	     11.69 x 16.54
-				A4	    21	  x 29.7      8.27 x 11.69
-				A5	    14.8  x 21	      5.83 x  8.27
-				B4	    25	  x 35.3     10.12 x 14.33
-				B5	    17.6  x 25	      7.17 x 10.12
-				executive   18.42 x 26.67     7.25 x 10.5
-				folio	    21	  x 33	      8.27 x 13
-				ledger	    43.13 x 27.96    17    x 11
-				legal	    21.59 x 35.57     8.5  x 14
-				letter	    21.59 x 27.96     8.5  x 11
-				quarto	    21.59 x 27.5      8.5  x 10.83
-				statement   13.97 x 21.59     5.5  x  8.5
-				tabloid     27.96 x 43.13    11    x 17
-
-	  formfeed:n (default)	Treat form feed characters (0x0c) as a normal
-				print character.
-	  formfeed:y		When a form feed character is encountered,
-				continue printing of the current line at the
-				beginning of the first line on a new page.
-
-	The item indicated with (default) is used when the item is not
-	present.  The values are not always used, especially when using a
-	dialog to select the printer and options.
-	Example: >
-		:set printoptions=paper:letter,duplex:off
-<
 						*'quoteescape''* *'qe'*
 'quoteescape' 'qe'	string	(default "\")
 			local to buffer
diff --git a/runtime/doc/pi_netrw.txt b/runtime/doc/pi_netrw.txt
index 5e28ed6..8bbdb02 100644
--- a/runtime/doc/pi_netrw.txt
+++ b/runtime/doc/pi_netrw.txt
@@ -17,20 +17,6 @@
 5.  Ex Commands.........................................|netrw-ex|
 6.  Variables and Options...............................|netrw-var|
 7.  Remote Directory Browser............................|netrw-browse|
-     ?..........Help....................................|netrw-help|
-     <cr>.......Browsing................................|netrw-cr|
-     <c-l>......Refreshing the Listing..................|netrw-c-l|
-     <del>......Removing Files or Directories...........|netrw-delete|
-     D..........Removing Files or Directories...........|netrw-D|
-     R..........Renaming Files or Directories...........|netrw-R|
-     -..........Going Up................................|netrw--|
-     a..........Hiding Files or Directories.............|netrw-a|
-     h..........Edit File/Directory Hiding..............|netrw-h|
-     o..........Browsing with a Horizontal Split........|netrw-o|
-     r..........Reversing Sorting Order.................|netrw-r|
-     s..........Selecting Sorting Style.................|netrw-s|
-     v..........Browsing with a Vertical Split..........|netrw-v|
-     x..........Customizing Browsing....................|netrw-x|
 8.  Debugging...........................................|netrw-debug|
 9.  History.............................................|netrw-history|
 10. Credits.............................................|netrw-credits|
@@ -514,7 +500,26 @@
 
 ==============================================================================
 7. Remote Directory Browser *netrw-browse* *netrw-dir* *netrw-list* *netrw-help*
+     ?..........Help....................................|netrw-help|
+     <cr>.......Browsing................................|netrw-cr|
+     <c-l>......Refreshing the Listing..................|netrw-c-l|
+     <del>......Removing Files or Directories...........|netrw-delete|
+     D..........Removing Files or Directories...........|netrw-D|
+     \H.........Edit File/Directory Hiding List.........|netrw-H|
+     \M.........Make A New Directory....................|netrw-M|
+     R..........Renaming Files or Directories...........|netrw-R|
+     -..........Going Up................................|netrw--|
+     a..........Hiding Files or Directories.............|netrw-a|
+     i..........Long Listing............................|netrw-i|
+     o..........Browsing with a Horizontal Split........|netrw-o|
+     r..........Reversing Sorting Order.................|netrw-r|
+     s..........Selecting Sorting Style.................|netrw-s|
+     v..........Browsing with a Vertical Split..........|netrw-v|
+     x..........Customizing Browsing....................|netrw-x|
+     				*netrw-browse-cmds*
 >
+			Quick Reference Commands Table
+        -------	-----------
 	Command	Explanation
         -------	-----------
 	   ?	Causes Netrw to issue help
@@ -526,6 +531,7 @@
 	   -	Makes Netrw go up one directory
 	   a	Show all of a directory (temporarily ignore g:netrw_list_hide)
 	   h	Edit file hiding list
+	   i	Toggles between long and short listing
 	   o	Enter the file/directory under the cursor in a new browser
 	   	window.  A horizontal split is used.
 	   r	Reverse sorting order
@@ -540,16 +546,22 @@
 	Var			Explanation
 	---			-----------
 	g:netrw_list_cmd	supports listing
-	g:netrw_rm_cmd		supports removing files
-	g:netrw_rmf_cmd		supports removing softlinks to directories
-	g:netrw_rmdir_cmd	supports removing directories
-	g:netrw_winsize		specify initial size of new o/v windows
 	g:netrw_list_hide	comma separated list of patterns for
 				hiding files
+	g:netrw_local_mkdir	specify command for making a directory locally
+	g:netrw_local_rmdir	remove directory command          default: rmdir
+	g:netrw_local_rename	rename file/directory command
+				unix-default: rm    win32-default: ren
+	g:netrw_mkdir_cmd	specify command for making a directory remotely
+	g:netrw_rm_cmd		supports removing files
+	g:netrw_rmdir_cmd	supports removing directories
+	g:netrw_rmf_cmd		supports removing softlinks to directories
 	g:netrw_sort_by		sort by "name", "time", or "size"
 	g:netrw_sort_direction	sorting direction: "normal" or "reverse"
 	g:netrw_sort_sequence	when sorting by name, first sort by the
 				comma-separated pattern sequence
+	g:netrw_timefmt		specify format string to strftime()  default: %c
+	g:netrw_winsize		specify initial size of new o/v windows
 <
 INTRODUCTION TO REMOTE DIRECTORY BROWSING
 
@@ -588,15 +600,33 @@
 browsing expects that directories will be flagged by a trailing slash.
 
 
-BROWSING 						*netrw-cr*
+BROWSING 							*netrw-cr*
 
 Browsing is simple: move the cursor onto a file or directory of interest.
 Hitting the <cr> (the return key) will select the file or directory.
 Directories will themselves be listed, and files will be opened using the
 protocol given in the original read request.
 
+LONG VS SHORT LISTING						*netrw-i*
 
-REMOVING FILES OR DIRECTORIES	*netrw-delete* *netrw-remove* *netrw-D*
+The short listing format gives just the files' and directories' names.
+The long listing is either based on the "ls" command via ssh for remote
+directories or displays the filename, file size (in bytes), and the
+time and date of last modification for local directories.
+
+
+MAKING A NEW DIRECTORY						*netrw-M*
+
+Actually <Leader>M, where the <Leader> is, by default, the backslash.
+
+With the "<Leader>M" map one may make a new directory either remotely (which
+depends on the global variable g:netrw_mkdir_cmd) or locally (which depends on
+the global variable g:netrw_local_mkdir).  Netrw will issue a request for the
+new directory's name.  A bare <CR> at that point will abort the making of the
+directory.  Attempts to make a local directory that already exists (as either
+a file or a directory) will be detected, reported on, and ignored.
+
+REMOVING FILES OR DIRECTORIES	*netrw-delete* *netrw-remove*	*netrw-D*
 
 Deleting/removing files and directories involves moving the cursor to the
 file/directory to be deleted and pressing "D".  Directories must be empty first
@@ -626,7 +656,7 @@
 	g:netrw_rmf_cmd: ssh HOSTNAME rm -f
 
 
-RENAMING FILES OR DIRECTORIES			*netrw-move* *netrw-rename*
+RENAMING FILES OR DIRECTORIES		*netrw-move* *netrw-rename* *netrw-R*
 
 Renaming/moving files and directories involves moving the cursor to the
 file/directory to be moved (renamed) and pressing "R".  You will then be
@@ -643,13 +673,18 @@
 
 The "a" map lets the browser ignore the g:netrw_list_hide variable.  Normally
 the g:netrw_list_hide variable holds a comma separated list of patterns which
-will be hidden (removed) from the directory listing.
+will be hidden (removed) from the directory listing.  Mnemonically, the
+"a" stands for show All.
 
 
-EDIT FILE OR DIRECTORY HIDING					*netrw-h*
+EDIT FILE OR DIRECTORY HIDING LIST				*netrw-H*
 
-The "h" map brings up a requestor allowing the user to change the
-file/directory hiding list.
+Actually <Leader>H, where the <Leader> is, by default, the backslash.
+
+The "<Leader>H" map brings up a requestor allowing the user to change the
+file/directory hiding list.  The hiding list consists of one or more
+patterns delimited by commas.  Files and/or directories satisfying
+these patterns will be hidden (ie. not shown).
 
 
 BROWSING WITH A HORIZONTALLY SPLIT WINDOW			*netrw-o*
diff --git a/runtime/doc/print.txt b/runtime/doc/print.txt
new file mode 100644
index 0000000..42a6097
--- /dev/null
+++ b/runtime/doc/print.txt
@@ -0,0 +1,751 @@
+*print.txt*     For Vim version 7.0aa.  Last change: 2004 Jul 05
+
+
+		  VIM REFERENCE MANUAL    by Bram Moolenaar
+
+
+Printing						*printing*
+
+1. Introduction				|print-intro|
+2. Print options			|print-options|
+3. PostScript Printing			|postscript-printing|
+4. PostScript Printing Encoding		|postscript-print-encoding|
+5. PostScript CJK Printing 		|postscript-cjk-printing|
+6. PostScript Printing Troubleshooting	|postscript-print-trouble|
+7. PostScript Utilities			|postscript-print-util|
+8. Formfeed Characters			|printing-formfeed|
+
+{Vi has None of this}
+{only available when compiled with the |+printer| feature}
+
+==============================================================================
+1. Introduction						*print-intro*
+
+On MS-Windows Vim can print your text on any installed printer.  On other
+systems a PostScript file is produced.  This can be directly sent to a
+PostScript printer.  For other printers a program like ghostscript needs to be
+used.
+
+					*:ha* *:hardcopy* *E237* *E238* *E324*
+:[range]ha[rdcopy][!] [arguments]
+			Send [range] lines (default whole file) to the
+			printer.
+
+			On MS-Windows a dialog is displayed to allow selection
+			of printer, paper size etc. To skip the dialog, use
+			the [!].  In this case the printer defined by
+			'printdevice' is used, or, if 'printdevice' is empty,
+			the system default printer.
+
+			For systems other than MS-Windows, PostScript is
+			written in a temp file and 'printexpr' is used to
+			actually print it.  Then [arguments] can be used by
+			'printexpr' through |v:cmdarg|.  Otherwise [arguments]
+			is ignored.  'printoptions' can be used to specify
+			paper size, duplex, etc.
+
+:[range]ha[rdcopy][!] >{filename}
+			As above, but write the resulting PostScript in file
+			{filename}.
+			Things like "%" are expanded |cmdline-special|
+			Careful: An existing file is silently overwritten.
+			{only available when compiled with the |+postscript|
+			feature}
+			On MS-Windows use the "print to file" feature of the
+			printer driver.
+
+Progress is displayed during printing as a page number and a percentage.  To
+abort printing use the interrupt key (CTRL-C or, on MS-systems, CTRL-Break).
+
+Printer output is controlled by the 'printfont' and 'printoptions' options.
+'printheader' specifies the format of a page header.
+
+The printed file is always limited to the selected margins, irrespective of
+the current window's 'wrap' or 'linebreak' settings.  The "wrap" item in
+'printoptions' can be used to switch wrapping off.
+The current highlighting colors are used in the printout, with the following
+considerations:
+1) The normal background is always rendered as white (i.e. blank paper.)
+2) White text or the default foreground is rendered as black, so that it shows
+   up!
+3) If 'background' is "dark", then the colours are darkened to compensate for
+   the fact that otherwise they would be too bright to show up clearly on
+   white paper.
+
+==============================================================================
+2. Print options					*print-options*
+
+Here are the details for the options that change the way printing is done.
+For generic info about setting options see |options.txt|.
+
+							*pdev-option*
+'printdevice' 'pdev'	string	(default empty)
+			global
+This defines the name of the printer to be used when the |:hardcopy| command
+is issued with a bang (!) to skip the printer selection dialog.  On Win32, it
+should be the printer name exactly as it appears in the standard printer
+dialog.
+If the option is empty, then vim will use the system default printer for
+":hardcopy!"
+
+							*penc-option* *E620*
+'printencoding' 'penc'	String	(default empty, except for:
+					Windows, OS/2: cp1252,
+					Macintosh: mac-roman,
+					VMS: dec-mcs,
+					HPUX: hp-roman8,
+					EBCDIC: ebcdic-uk)
+			global
+Sets the character encoding used when printing.  This option tells VIM which
+print character encoding file from the "print" directory in 'runtimepath' to
+use.
+
+This option will accept any value from |encoding-names|.  Any recognized names
+are converted to VIM standard names - see 'encoding' for more details.  Names
+not recognized by VIM will just be converted to lower case and underscores
+replaced with '-' signs.
+
+If 'printencoding' is empty or VIM cannot find the file then it will use
+'encoding' (if VIM is compiled with |+multi_byte| and it is set an 8-bit
+encoding) to find the print character encoding file.  If VIM is unable to find
+a character encoding file then it will use the "latin1" print character
+encoding file.
+
+When 'encoding' is set to a multi-byte encoding, VIM will try to convert
+characters to the printing encoding for printing (if 'printencoding' is empty
+then the conversion will be to latin1).  Conversion to a printing encoding
+other than latin1 will require VIM to be compiled with the |+iconv| feature.
+If no conversion is possible then printing will fail.  Any characters that
+cannot be converted will be replaced with upside down question marks.
+
+Four print character encoding files are provided to support default Mac, VMS,
+HPUX, and EBCDIC character encodings and are used by default on these
+platforms.  Code page 1252 print character encoding is used by default on
+Windows and OS/2 platforms.
+
+							*pexpr-option*
+'printexpr' 'pexpr'	String	(default: see below)
+			global
+Expression that is evaluated to print the PostScript produced with
+|:hardcopy|.
+The file name to be printed is in |v:fname_in|.
+The arguments to the ":hardcopy" command are in |v:cmdarg|.
+The expression must take care of deleting the file after printing it.
+When there is an error, the expression must return a non-zero number.
+If there is no error, return zero or an empty string.
+The default for non MS-Windows or VMS systems is to simply use "lpr" to print
+the file: >
+
+    system('lpr' . (&printdevice == '' ? '' : ' -P' . &printdevice)
+	. ' ' . v:fname_in) . delete(v:fname_in) + v:shell_error
+
+On MS-Dos, MS-Windows and OS/2 machines the default is to copy the file to the
+currently specified printdevice: >
+
+    system('copy' . ' ' . v:fname_in . (&printdevice == ''
+		? ' LPT1:' : (' \"' . &printdevice . '\"')))
+		. delete(v:fname_in)
+
+On VMS machines the default is to send the file to either the default or
+currently specified printdevice: >
+
+    system('print' . (&printdevice == '' ? '' : ' /queue=' .
+		&printdevice) . ' ' . v:fname_in) . delete(v:fname_in)
+
+If you change this option, using a function is an easy way to avoid having to
+escape all the spaces.  Example: >
+
+	:set printexpr=PrintFile(v:fname_in)
+	:function PrintFile(fname)
+	:  call system("ghostview " . a:fname)
+	:  call delete(a:fname)
+	:  return v:shell_error
+	:endfunc
+
+Be aware that some print programs return control before they have read the
+file.  If you delete the file too soon it will not be printed.  These programs
+usually offer an option to have them remove the file when printing is done.
+							*E365*
+If evaluating the expression fails or it results in a non-zero number, you get
+an error message.  In that case Vim will delete the file.  In the default
+value for non-MS-Windows a trick is used: Adding "v:shell_error" will result
+in a non-zero number when the system() call fails.
+
+This option cannot be set from a |modeline| or in the |sandbox|, for security
+reasons.
+
+							*pfn-option* *E613*
+'printfont' 'pfn'	string	(default "courier")
+			global
+This is the name of the font that will be used for the |:hardcopy| command's
+output.  It has the same format as the 'guifont' option, except that only one
+font may be named, and the special "guifont=*" syntax is not available.
+
+In the Win32 GUI version this specifies a font name with its extra attributes,
+as with the 'guifont' option.
+
+For other systems, only ":h11" is recognized, where "11" is the point size of
+the font.  When omitted, the point size is 10.
+
+							*pheader-option*
+'printheader' 'pheader'  string  (default "%<%f%h%m%=Page %N")
+			 global
+This defines the format of the header produced in |:hardcopy| output.  The
+option is defined in the same way as the 'statusline' option.  If Vim has not
+been compiled with the |+statusline| feature, this option has no effect and a
+simple default header is used, which shows the page number.
+
+							*pmbcs-option*
+'printmbcharset' 'pmbcs'  string (default "")
+			  global
+Sets the CJK character set to be used when generating CJK output from
+|:hardcopy|.  The following predefined values are currently recognised by VIM:
+
+		Value		Description ~
+  Chinese	GB_2312-80
+  (Simplified)	GBT_12345-90
+		MAC		Apple Mac Simplified Chinese
+		GBT-90_MAC	GB/T 12345-90 Apple Mac Simplified
+				  Chinese
+		GBK		GBK (GB 13000.1-93)
+		ISO10646	ISO 10646-1:1993
+
+  Chinese	CNS_1993	CNS 11643-1993, Planes 1 & 2
+  (Traditional)	BIG5
+		ETEN		Big5 with ETen extensions
+		ISO10646	ISO 10646-1:1993
+
+  Japanese	JIS_C_1978
+		JIS_X_1983
+		JIS_X_1990
+		MSWINDOWS	Win3.1/95J (JIS X 1997 + NEC + 
+				  IBM extensions)
+		KANJITALK6	Apple Mac KanjiTalk V6.x
+		KANJITALK7	Apple Mac KanjiTalk V7.x
+
+  Korean	KS_X_1992
+		MAC		Apple Macintosh Korean
+		MSWINDOWS	KS X 1992 with MS extensions
+		ISO10646	ISO 10646-1:1993
+
+Only certain combinations of the above values and 'printencoding' are
+possible.  The following tables show the valid combinations:
+
+				euc-cn	 gbk	ucs-2	utf-8 ~
+  Chinese	GB_2312-80	   x
+  (Simplified)	GBT_12345-90	   x
+		MAC		   x
+		GBT-90_MAC	   x
+		GBK			   x
+		ISO10646			  x	  x
+
+				euc-tw	 big5	ucs-2	utf-8 ~
+  Chinese	CNS_1993	   x
+  (Traditional)	BIG5			   x
+		ETEN			   x
+		ISO10646			  x	  x
+
+				euc-jp	 sjis	ucs-2	utf-8 ~
+  Japanese	JIS_C_1978	   x	   x
+		JIS_X_1983	   x	   x
+		JIS_X_1990	   x		  x	  x
+		MSWINDOWS	   x
+		KANJITALK6	   x
+		KANJITALK7	   x
+
+				euc-kr	 cp949	ucs-2	utf-8 ~
+  Korean	KS_X_1992	   x   
+		MAC		   x
+		MSWINDOWS		   x
+		ISO10646			  x	  x
+
+To set up the correct encoding and character set for printing some
+Japanese text you would do the following; >
+	:set printencoding=euc-jp
+	:set printmbcharset=JIS_X_1983
+
+If 'printmbcharset' is not one of the above values then it is assumed to
+specify a custom multi-byte character set and no check will be made that it is
+compatible with the value for 'printencoding'.  VIM will look for a file
+defining the character set in the "print" directory in 'runtimepath'.
+
+							*pmbfn-option*
+'printmbfont' 'pmbfn'	string (default "")
+			global
+This is a comma-separated list of fields for font names to be used when
+generating CJK output from |:hardcopy|.  Each font name has to be preceded
+with a letter indicating the style the font is to be used for as follows:
+
+  r:{font-name}		font to use for normal characters
+  b:{font-name}		font to use for bold characters
+  i:{font-name}		font to use for italic characters
+  o:{font-name}		font to use for bold-italic characters
+
+A field with the r: prefix must be specified when doing CJK printing.  The
+other fontname specifiers are optional.  If a specifier is missing then
+another font will be used as follows:
+
+  if b: is missing, then use r:
+  if i: is missing, then use r:
+  if o: is missing, then use i:
+
+Some CJK fonts do not contain characters for codes in the ASCII code range.
+Also, some characters in the CJK ASCII code ranges differ in a few code points
+from traditional ASCII characters.  There are two additional fields to control
+printing of characters in the ASCII code range.
+
+  c:yes			Use Courier font for characters in the ASCII
+  c:no (default)	code range.
+
+  a:yes			Use ASCII character set for codes in the ASCII
+  a:no (default)	code range.
+
+The following is an example of specifying two multi-byte fonts, one for normal
+and italic printing and one for bold and bold-italic printing, and using
+Courier to print codes in the ASCII code range but using the national
+character set: >
+	:set printmbfont=r:WadaMin-Regular,b:WadaMin-Bold,c:yes
+<
+							*popt-option*
+'printoptions' 'popt' 	string (default "")
+			global
+This is a comma-separated list of items that control the format of the output
+of |:hardcopy|:
+
+  left:{spec}		left margin (default: 10pc)
+  right:{spec}		right margin (default: 5pc)
+  top:{spec}		top margin (default: 5pc)
+  bottom:{spec}		bottom margin (default: 5pc)
+			{spec} is a number followed by "in" for inches, "pt"
+			for points (1 point is 1/72 of an inch), "mm" for
+			millimeters or "pc" for a percentage of the media
+			size.
+			Weird example:
+			    left:2in,top:30pt,right:16mm,bottom:3pc
+			If the unit is not recognized there is no error and
+			the default value is used.
+
+  header:{nr}		Number of lines to reserve for the header.
+			Only the first line is actually filled, thus when {nr}
+			is 2 there is one empty line.  The header is formatted
+			according to 'printheader'.
+  header:0		Do not print a header.
+  header:2  (default)	Use two lines for the header
+
+  syntax:n		Do not use syntax highlighting.  This is faster and
+			thus useful when printing large files.
+  syntax:y		Do syntax highlighting.
+  syntax:a  (default)	Use syntax highlighting if the printer appears to be
+  			able to print color or grey.
+
+  number:y		Include line numbers in the printed output.
+  number:n  (default)	No line numbers.
+
+  wrap:y    (default)	Wrap long lines.
+  wrap:n		Truncate long lines.
+
+  duplex:off		Print on one side.
+  duplex:long (default)	Print on both sides (when possible), bind on long
+  			side.
+  duplex:short		Print on both sides (when possible), bind on short
+  			side.
+
+  collate:y  (default)	Collating: 1 2 3, 1 2 3, 1 2 3
+  collate:n		No collating: 1 1 1, 2 2 2, 3 3 3
+
+  jobsplit:n (default)	Do all copies in one print job
+  jobsplit:y		Do each copy as a separate print job.  Useful when
+  			doing N-up postprocessing.
+
+  portrait:y (default)	Orientation is portrait.
+  portrait:n		Orientation is landscape.
+						*a4* *letter*
+  paper:A4   (default)	Paper size: A4
+  paper:{name}		Paper size from this table:
+			{name}	    size in cm	     size in inch ~
+			10x14	    25.4  x 35.57    10    x 14
+			A3	    29.7  x 42	     11.69 x 16.54
+			A4	    21	  x 29.7      8.27 x 11.69
+			A5	    14.8  x 21	      5.83 x  8.27
+			B4	    25	  x 35.3     10.12 x 14.33
+			B5	    17.6  x 25	      7.17 x 10.12
+			executive   18.42 x 26.67     7.25 x 10.5
+			folio	    21	  x 33	      8.27 x 13
+			ledger	    43.13 x 27.96    17    x 11
+			legal	    21.59 x 35.57     8.5  x 14
+			letter	    21.59 x 27.96     8.5  x 11
+			quarto	    21.59 x 27.5      8.5  x 10.83
+			statement   13.97 x 21.59     5.5  x  8.5
+			tabloid     27.96 x 43.13    11    x 17
+
+  formfeed:n (default)	Treat form feed characters (0x0c) as a normal print
+  			character.
+  formfeed:y		When a form feed character is encountered, continue
+			printing of the current line at the beginning of the
+			first line on a new page.
+
+The item indicated with (default) is used when the item is not present.  The
+values are not always used, especially when using a dialog to select the
+printer and options.
+Example: >
+	:set printoptions=paper:letter,duplex:off
+
+==============================================================================
+3. PostScript Printing					*postscript-printing*
+						*E455* *E456* *E457* *E624*
+Provided you have enough disk space there should be no problems generating a
+PostScript file.  You need to have the runtime files correctly installed (if
+you can find the help files, they probably are).
+
+There are currently a number of limitations with PostScript printing:
+
+- 'printfont' - The font name is ignored (the Courier family is always used -
+  it should be available on all PostScript printers) but the font size is
+  used.
+
+- 'printoptions' - The duplex setting is used when generating PostScript
+  output, but it is up to the printer to take notice of the setting.  If the
+  printer does not support duplex printing then it should be silently ignored.
+  Some printers, however, don't print at all.
+
+- 8-bit support - While a number of 8-bit print character encodings are
+  supported it is possible that some characters will not print.  Whether a
+  character will print depends on the font in the printer knowing the
+  character.  Missing characters will be replaced with an upside down question
+  mark, or a space if that character is also not known by the font.  It may be
+  possible to get all the characters in an encoding to print by installing a
+  new version of the Courier font family.
+
+- Multi-byte support - Currently VIM will try to convert multi-byte characters
+  to the 8-bit encoding specified by 'printencoding' (or latin1 if it is
+  empty).  Any characters that are not successfully converted are shown as
+  unknown characters.  Printing will fail if VIM cannot convert the multi-byte
+  to the 8-bit encoding.
+
+==============================================================================
+4. Custom 8-bit Print Character Encodings	*postscript-print-encoding*
+								*E618* *E619*
+To use your own print character encoding when printing 8-bit character data
+you need to define your own PostScript font encoding vector.  Details on how
+to to define a font encoding vector is beyond the scope of this help file, but
+you can find details in the PostScript Language Reference Manual, 3rd Edition,
+published by Addison-Wesley and available in PDF form at
+http://www.adobe.com/.  The following describes what you need to do for VIM to
+locate and use your print character encoding.
+
+i.   Decide on a unique name for your encoding vector, one that does not clash
+     with any of the recognized or standard encoding names that VIM uses (see
+     |encoding-names| for a list), and that no one else is likely to use.
+ii.  Copy $VIMRUNTIME/print/latin1.ps to the print subdirectory in your
+     'runtimepath' and rename it with your unique name.
+iii. Edit your renamed copy of latin1.ps, replacing all occurrences of latin1
+     with your unique name (don't forget the line starting %%Title:), and
+     modify the array of glyph names to define your new encoding vector.  The
+     array must have exactly 256 entries or you will not be able to print!
+iv.  Within VIM, set 'printencoding' to your unique encoding name and then
+     print your file.  VIM will now use your custom print character encoding.
+
+VIM will report an error with the resource file if you change the order or
+content of the first 3 lines, other than the name of the encoding on the line
+starting %%Title: or the version number on the line starting %%Version:.
+
+[Technical explanation for those that know PostScript - VIM looks for a file
+with the same name as the encoding it will use when printing.  The file
+defines a new PostScript Encoding resource called /VIM-name, where name is the
+print character encoding VIM will use.]
+
+==============================================================================
+5. PostScript CJK Printing			*postscript-cjk-printing*
+							*E673* *E674* *E675*
+
+VIM supports printing of Chinese, Japanese, and Korean files.  Setting up VIM
+to correctly print CJK files requires setting up a few more options.
+
+Each of these countries has many standard character sets and encodings which
+require that both be specified when printing.  In addition, CJK fonts normally
+do not have the concept of italic glyphs and use different weight or stroke
+style to achieve emphasis when printing.  This in turn requires a different
+approach to specifying fonts to use when printing.
+
+The encoding and character set are specified with the 'printencoding' and
+'printmbcharset' options.  If 'printencoding' is not specified then 'encoding'
+is used as normal.  If 'printencoding' is specified then characters will be
+translated to this encoding for printing.  You should ensure that the encoding
+is compatible with the character set needed for the file contents or some
+characters may not appear when printed.
+
+The fonts to use for CJK printing are specified with 'printmbfont'.  This
+option allows you to specify different fonts to use when printing characters
+which are syntax highlighted with the font styles normal, italic, bold and
+bold-italic.
+
+No CJK fonts are supplied with VIM.  There are some free Korean, Japanese, and
+Traditional Chinese fonts available at:
+
+  http://examples.oreilly.com/cjkvinfo/adobe/samples/
+
+You can find descriptions of the various fonts in the read me file at 
+
+  http://examples.oreilly.com/cjkvinfo/adobe/00README
+
+Please read your printer documentation on how to install new fonts.
+
+CJK fonts can be large containing several thousand glyphs, and it is not
+uncommon to find that they only contain a subset of a national standard.  It
+is not unusual to find the fonts to not include characters for codes in the
+ASCII code range.  If you find half-width Roman characters are not appearing
+in your printout then you should configure VIM to use the Courier font the
+half-width ASCII characters with 'printmbfont'.  If your font does not include
+other characters then you will need to find another font that does.
+
+Another issue with ASCII characters, is that the various national character
+sets specify a couple of different glyphs in the ASCII code range.  If you
+print ASCII text using the national character set you may see some unexpected
+characters.  If you want true ASCII code printing then you need to configure
+VIM to output ASCII characters for the ASCII code range with 'printmbfont'.
+
+It is possible to define your own multi-byte character set although this
+should not be attempted lightly.  A discussion on the process if beyond the
+scope of these help files.  You can find details on CMap (character map) files
+in the document 'Adobe CMap and CIDFont Files Specification, Version 1.0',
+available from http://www.adobe.com as a PDF file.
+
+==============================================================================
+6. PostScript Printing Troubleshooting		*postscript-print-trouble*
+									*E621*
+Usually the only sign of a problem when printing with PostScript is that your
+printout does not appear.  If you are lucky you may get a printed page that
+tells you the PostScript operator that generated the error that prevented the
+print job completing.
+
+There are a number of possible causes as to why the printing may have failed:
+
+- Wrong version of the prolog resource file.  The prolog resource file
+  contains some PostScript that VIM needs to be able to print.  Each version
+  of VIM needs one particular version.  Make sure you have correctly installed
+  the runtime files, and don't have any old versions of a file called prolog
+  in the print directory in your 'runtimepath' directory.
+
+- Paper size.  Some PostScript printers will abort printing a file if they do
+  not support the requested paper size.  By default VIM uses A4 paper.  Find
+  out what size paper your printer normally uses and set the appropriate paper
+  size with 'printoptions'.  If you cannot find the name of the paper used,
+  measure a sheet and compare it with the table of supported paper sizes listed
+  for 'printoptions', using the paper that is closest in both width AND height.
+  Note: The dimensions of actual paper may vary slightly from the ones listed.
+  If there is no paper listed close enough, then you may want to try psresize
+  from PSUtils, discussed below.
+
+- Two-sided printing (duplex).  Normally a PostScript printer that does not
+  support two-sided printing will ignore any request to do it.  However, some
+  printers may abort the job altogether.  Try printing with duplex turned off.
+  Note: Duplex prints can be achieved manually using PS utils - see below.
+
+- Collated printing.  As with Duplex printing, most PostScript printers that
+  do not support collating printouts will ignore a request to do so.  Some may
+  not.  Try printing with collation turned off.
+
+- Syntax highlighting.  Some print management code may prevent the generated
+  PostScript file from being printed on a black and white printer when syntax
+  highlighting is turned on, even if solid black is the only color used.  Try
+  printing with syntax highlighting turned off.
+
+A safe printoptions setting to try is: >
+
+	:set printoptions=paper:A4,duplex:off,collate:n,syntax:n
+
+Replace "A4" with the paper size that best matches your printer paper.
+
+==============================================================================
+7. PostScript Utilities				*postscript-print-util*
+
+7.1 Ghostscript
+
+Ghostscript is a PostScript and PDF interpreter that can be used to display
+and print on non-PostScript printers PostScript and PDF files.  It can also
+generate PDF files from PostScript.
+
+Ghostscript will run on a wide variety of platforms.
+
+There are three available versions:
+
+- AFPL Ghostscript (formerly Aladdin Ghostscript) which is free for
+  non-commercial use.  It can be obtained from:
+
+    http://www.cs.wisc.edu/~ghost/
+
+- GNU Ghostscript which is available under the GNU General Public License.  It
+  can be obtained from:
+
+    ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/gnu/
+
+- A commercial version for inclusion in commercial products.
+
+Additional information on Ghostscript can also be found at:
+
+  http://www.ghostscript.com/
+
+Support for a number of non PostScript printers is provided in the
+distribution as standard, but if you cannot find support for your printer
+check the Ghostscript site for other printers not included by default.
+
+
+7.2 Ghostscript Previewers.
+
+The interface to Ghostscript is very primitive so a number of graphical front
+ends have been created.  These allow easier PostScript file selection,
+previewing at different zoom levels, and printing.  Check supplied
+documentation for full details.
+
+X11
+
+- Ghostview.  Obtainable from:
+
+    http://www.cs.wisc.edu/~ghost/gv/
+
+- gv.  Derived from Ghostview.  Obtainable from:
+
+    http://wwwthep.physik.uni-mainz.de/~plass/gv/
+
+  Copies (possibly not the most recent) can be found at:
+
+    http://www.cs.wisc.edu/~ghost/gv/
+
+OpenVMS
+
+- Is apparently supported in the main code now (untested).  See:
+
+    http://wwwthep.physik.uni-mainz.de/~plass/gv/
+
+Windows and OS/2
+
+- GSview.  Obtainable from:
+
+    http://www.cs.wisc.edu/~ghost/gsview/
+
+DOS
+
+- ps_view.  Obtainable from:
+
+    ftp://ftp.pg.gda.pl/pub/TeX/support/ps_view/
+    ftp://ftp.dante.de/tex-archive/support/ps_view/
+
+Linux
+
+- GSview.  Linux version of the popular Windows and OS/2 previewer.
+  Obtainable from:
+
+    http://www.cs.wisc.edu/~ghost/gsview/
+
+- BMV.  Different from Ghostview and gv in that it doesn't use X but svgalib.
+  Obtainable from:
+
+    ftp://sunsite.unc.edu/pub/Linux/apps/graphics/viewers/svga/bmv-1.2.tgz
+
+
+7.3 PSUtils
+
+PSUtils is a collection of utility programs for manipulating PostScript
+documents.  Binary distributions are available for many platforms, as well as
+the full source.  PSUtils can be found at:
+
+  http://knackered.org/angus/psutils
+
+The utilities of interest include:
+
+- psnup.     Convert PS files for N-up printing.
+- psselect.  Select page range and order of printing.
+- psresize.  Change the page size.
+- psbook.    Reorder and lay out pages ready for making a book.
+
+The output of one program can be used as the input to the next, allowing for
+complex print document creation.
+
+
+N-UP PRINTING
+
+The psnup utility takes an existing PostScript file generated from VIM and
+convert it to an n-up version.  The simplest way to create a 2-up printout is
+to first create a PostScript file with: >
+
+	:hardcopy > test.ps
+
+Then on your command line execute: >
+
+	psnup -n 2 test.ps final.ps
+
+Note: You may get warnings from some Ghostscript previewers for files produced
+by psnup - these may safely be ignored.
+
+Finally print the file final.ps to your PostScript printer with your
+platform's print command.  (You will need to delete the two PostScript files
+afterwards yourself.)  'printexpr' could be modified to perform this extra
+step before printing.
+
+
+ALTERNATE DUPLEX PRINTING
+
+It is possible to achieve a poor man's version of duplex printing using the PS
+utility psselect.  This utility has options -e and -o for printing just the
+even or odd pages of a PS file respectively.
+
+First generate a PS file with the 'hardcopy' command, then generate a new
+files with all the odd and even numbered pages with: >
+
+	psselect -o test.ps odd.ps
+	psselect -e test.ps even.ps
+
+Next print odd.ps with your platform's normal print command.  Then take the
+print output, turn it over and place it back in the paper feeder.  Now print
+even.ps with your platform's print command.  All the even pages should now
+appear on the back of the odd pages.
+
+There a couple of points to bear in mind:
+
+1. Position of the first page.  If the first page is on top of the printout
+   when printing the odd pages then you need to reverse the order that the odd
+   pages are printed.  This can be done with the -r option to psselect.  This
+   will ensure page 2 is printed on the back of page 1.
+   Note: it is better to reverse the odd numbered pages rather than the even
+   numbered in case there are an odd number of pages in the original PS file.
+
+2. Paper flipping.  When turning over the paper with the odd pages printed on
+   them you may have to either flip them horizontally (along the long edge) or
+   vertically (along the short edge), as well as possibly rotating them 180
+   degrees.  All this depends on the printer - it will be more obvious for
+   desktop ink jets than for small office laser printers where the paper path
+   is hidden from view.
+
+
+==============================================================================
+8. Formfeed Characters					*printing-formfeed*
+
+By default VIM does not do any special processing of |formfeed| control
+characters.  Setting the 'printoptions' formfeed item will make VIM recognize
+formfeed characters and continue printing the current line at the beginning
+of the first line on a new page.  The use of formfeed characters provides
+rudimentary print control but there are certain things to be aware of.
+
+VIM will always start printing a line (including a line number if enabled)
+containing a formfeed character, even if it is the first character on the
+line.  This means if a line starting with a formfeed character is the first
+line of a page then VIM will print a blank page.
+
+Since the line number is printed at the start of printing the line containing
+the formfeed character, the remainder of the line printed on the new page
+will not have a line number printed for it (in the same way as the wrapped
+lines of a long line when wrap in 'printoptions' is enabled).
+
+If the formfeed character is the last character on a line, then printing will
+continue on the second line of the new page, not the first.  This is due to
+VIM processing the end of the line after the formfeed character and moving
+down a line to continue printing.
+
+Due to the points made above it is recommended that when formfeed character
+processing is enabled, printing of line numbers is disabled, and that form
+feed characters are not the last character on a line.  Even then you may need
+to adjust the number of lines before a formfeed character to prevent
+accidental blank pages.
+
+==============================================================================
+ vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/quickref.txt b/runtime/doc/quickref.txt
index ef832eb..a16cd4a 100644
--- a/runtime/doc/quickref.txt
+++ b/runtime/doc/quickref.txt
@@ -1,4 +1,4 @@
-*quickref.txt*  For Vim version 7.0aa.  Last change: 2004 Jul 04
+*quickref.txt*  For Vim version 7.0aa.  Last change: 2004 Jul 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -782,6 +782,8 @@
 |'printexpr'|     |'pexpr'|  expression used to print PostScript for :hardcopy
 |'printfont'|	  |'pfn'|    name of the font to be used for :hardcopy
 |'printheader'|   |'pheader'| format of the header used for :hardcopy
+|'printmbcharset'| |'pmbcs'| CJK character set to be used for :hardcopy
+|'printmbfont'|   |'pmbfn'|  font names to be used for CJK output of :hardcopy
 |'printoptions'|  |'popt'|   controls the format of :hardcopy output
 |'quoteescape'|   |'qe'|     escape characters used in a string
 |'readonly'|	  |'ro'|     disallow writing the buffer
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 4e2a274..c1e7de7 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt*	For Vim version 7.0aa.  Last change: 2004 Jul 01
+*syntax.txt*	For Vim version 7.0aa.  Last change: 2004 Jul 06
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -812,11 +812,20 @@
 this should have the value 1, and for Windows 2000 it should be 2.
 Select the version you want with the following line: >
 
-  :let dosbatch_cmdextversion = 1
+   :let dosbatch_cmdextversion = 1
 
 If this variable is not defined it defaults to a value of 2 to support
 Windows 2000.
 
+A second option covers whether *.btm files should be detected as type
+"dosbatch" (MS-DOS batch files) or type "btm" (4DOS batch files). The latter
+is used by default. You may select the former with the following line: >
+
+   :let g:dosbatch_syntax_for_btm = 1
+
+If this variable is undefined or zero, btm syntax is selected.
+
+
 
 DTD						*dtd.vim* *dtd-syntax*
 
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 485923c..597e307 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -615,6 +615,8 @@
 'pheader'	options.txt	/*'pheader'*
 'pi'	options.txt	/*'pi'*
 'pm'	options.txt	/*'pm'*
+'pmbcs'	options.txt	/*'pmbcs'*
+'pmbfn'	options.txt	/*'pmbfn'*
 'popt'	options.txt	/*'popt'*
 'preserveindent'	options.txt	/*'preserveindent'*
 'previewheight'	options.txt	/*'previewheight'*
@@ -624,6 +626,8 @@
 'printexpr'	options.txt	/*'printexpr'*
 'printfont'	options.txt	/*'printfont'*
 'printheader'	options.txt	/*'printheader'*
+'printmbcharset'	options.txt	/*'printmbcharset'*
+'printmbfont'	options.txt	/*'printmbfont'*
 'printoptions'	options.txt	/*'printoptions'*
 'prompt'	vi_diff.txt	/*'prompt'*
 'pt'	options.txt	/*'pt'*
@@ -1923,8 +1927,8 @@
 :gv	gui_x11.txt	/*:gv*
 :gvim	gui_x11.txt	/*:gvim*
 :h	various.txt	/*:h*
-:ha	various.txt	/*:ha*
-:hardcopy	various.txt	/*:hardcopy*
+:ha	print.txt	/*:ha*
+:hardcopy	print.txt	/*:hardcopy*
 :help	various.txt	/*:help*
 :helpf	various.txt	/*:helpf*
 :helpfind	various.txt	/*:helpfind*
@@ -3046,8 +3050,8 @@
 E234	options.txt	/*E234*
 E235	options.txt	/*E235*
 E236	options.txt	/*E236*
-E237	various.txt	/*E237*
-E238	various.txt	/*E238*
+E237	print.txt	/*E237*
+E238	print.txt	/*E238*
 E239	sign.txt	/*E239*
 E24	message.txt	/*E24*
 E240	remote.txt	/*E240*
@@ -3140,7 +3144,7 @@
 E321	editing.txt	/*E321*
 E322	message.txt	/*E322*
 E323	message.txt	/*E323*
-E324	various.txt	/*E324*
+E324	print.txt	/*E324*
 E325	usr_11.txt	/*E325*
 E326	recover.txt	/*E326*
 E327	gui.txt	/*E327*
@@ -3185,7 +3189,7 @@
 E362	term.txt	/*E362*
 E363	pattern.txt	/*E363*
 E364	eval.txt	/*E364*
-E365	options.txt	/*E365*
+E365	print.txt	/*E365*
 E366	options.txt	/*E366*
 E367	autocmd.txt	/*E367*
 E368	eval.txt	/*E368*
@@ -3284,9 +3288,9 @@
 E452	os_msdos.txt	/*E452*
 E453	os_msdos.txt	/*E453*
 E454	os_msdos.txt	/*E454*
-E455	various.txt	/*E455*
-E456	various.txt	/*E456*
-E457	various.txt	/*E457*
+E455	print.txt	/*E455*
+E456	print.txt	/*E456*
+E457	print.txt	/*E457*
 E458	message.txt	/*E458*
 E459	message.txt	/*E459*
 E46	message.txt	/*E46*
@@ -3454,19 +3458,19 @@
 E610	options.txt	/*E610*
 E611	options.txt	/*E611*
 E612	sign.txt	/*E612*
-E613	options.txt	/*E613*
+E613	print.txt	/*E613*
 E614	editing.txt	/*E614*
 E615	editing.txt	/*E615*
 E616	editing.txt	/*E616*
 E617	options.txt	/*E617*
-E618	various.txt	/*E618*
-E619	various.txt	/*E619*
+E618	print.txt	/*E618*
+E619	print.txt	/*E619*
 E62	pattern.txt	/*E62*
-E620	options.txt	/*E620*
-E621	various.txt	/*E621*
+E620	print.txt	/*E620*
+E621	print.txt	/*E621*
 E622	if_cscop.txt	/*E622*
 E623	if_cscop.txt	/*E623*
-E624	various.txt	/*E624*
+E624	print.txt	/*E624*
 E625	if_cscop.txt	/*E625*
 E626	if_cscop.txt	/*E626*
 E627	netbeans.txt	/*E627*
@@ -3520,6 +3524,9 @@
 E670	various.txt	/*E670*
 E671	starting.txt	/*E671*
 E672	starting.txt	/*E672*
+E673	print.txt	/*E673*
+E674	print.txt	/*E674*
+E675	print.txt	/*E675*
 E68	pattern.txt	/*E68*
 E69	pattern.txt	/*E69*
 E70	pattern.txt	/*E70*
@@ -3882,7 +3889,7 @@
 a'	motion.txt	/*a'*
 a(	motion.txt	/*a(*
 a)	motion.txt	/*a)*
-a4	options.txt	/*a4*
+a4	print.txt	/*a4*
 a:firstline	eval.txt	/*a:firstline*
 a:lastline	eval.txt	/*a:lastline*
 a:var	eval.txt	/*a:var*
@@ -5205,7 +5212,7 @@
 lc_time-variable	eval.txt	/*lc_time-variable*
 left-right-motions	motion.txt	/*left-right-motions*
 less	various.txt	/*less*
-letter	options.txt	/*letter*
+letter	print.txt	/*letter*
 lex-syntax	syntax.txt	/*lex-syntax*
 lex.vim	syntax.txt	/*lex.vim*
 lhaskell.vim	syntax.txt	/*lhaskell.vim*
@@ -5462,6 +5469,8 @@
 new-6	version6.txt	/*new-6*
 new-7	version7.txt	/*new-7*
 new-GTK-GUI	version5.txt	/*new-GTK-GUI*
+new-KDE	version7.txt	/*new-KDE*
+new-MzScheme	version7.txt	/*new-MzScheme*
 new-Select-mode	version5.txt	/*new-Select-mode*
 new-View	version6.txt	/*new-View*
 new-argument-list	version6.txt	/*new-argument-list*
@@ -5490,7 +5499,6 @@
 new-indent-flex	version6.txt	/*new-indent-flex*
 new-items-6	version6.txt	/*new-items-6*
 new-items-7	version7.txt	/*new-items-7*
-new-kde	version7.txt	/*new-kde*
 new-line-continuation	version5.txt	/*new-line-continuation*
 new-multi-byte	version5.txt	/*new-multi-byte*
 new-multi-lang	version6.txt	/*new-multi-lang*
@@ -5500,6 +5508,7 @@
 new-options-5.4	version5.txt	/*new-options-5.4*
 new-perl-python	version5.txt	/*new-perl-python*
 new-plugins	version6.txt	/*new-plugins*
+new-print-multi-byte	version7.txt	/*new-print-multi-byte*
 new-printing	version6.txt	/*new-printing*
 new-runtime-dir	version5.txt	/*new-runtime-dir*
 new-script	version5.txt	/*new-script*
@@ -5589,6 +5598,8 @@
 pattern-overview	pattern.txt	/*pattern-overview*
 pattern-searches	pattern.txt	/*pattern-searches*
 pattern.txt	pattern.txt	/*pattern.txt*
+pdev-option	print.txt	/*pdev-option*
+penc-option	print.txt	/*penc-option*
 perl	if_perl.txt	/*perl*
 perl-Append	if_perl.txt	/*perl-Append*
 perl-Buffer	if_perl.txt	/*perl-Buffer*
@@ -5613,6 +5624,9 @@
 perl-syntax	syntax.txt	/*perl-syntax*
 perl-using	if_perl.txt	/*perl-using*
 perl.vim	syntax.txt	/*perl.vim*
+pexpr-option	print.txt	/*pexpr-option*
+pfn-option	print.txt	/*pfn-option*
+pheader-option	print.txt	/*pheader-option*
 photon-fonts	os_qnx.txt	/*photon-fonts*
 photon-gui	os_qnx.txt	/*photon-gui*
 php-syntax	syntax.txt	/*php-syntax*
@@ -5628,16 +5642,20 @@
 plugin-details	filetype.txt	/*plugin-details*
 plugin-filetype	usr_41.txt	/*plugin-filetype*
 plugin-special	usr_41.txt	/*plugin-special*
+pmbcs-option	print.txt	/*pmbcs-option*
+pmbfn-option	print.txt	/*pmbfn-option*
+popt-option	print.txt	/*popt-option*
 popup-menu	gui.txt	/*popup-menu*
 popup-menu-added	version5.txt	/*popup-menu-added*
 ports-5.2	version5.txt	/*ports-5.2*
 ports-6	version6.txt	/*ports-6*
 postscr-syntax	syntax.txt	/*postscr-syntax*
 postscr.vim	syntax.txt	/*postscr.vim*
-postscript-print-encoding	various.txt	/*postscript-print-encoding*
-postscript-print-trouble	various.txt	/*postscript-print-trouble*
-postscript-print-util	various.txt	/*postscript-print-util*
-postscript-printing	various.txt	/*postscript-printing*
+postscript-cjk-printing	print.txt	/*postscript-cjk-printing*
+postscript-print-encoding	print.txt	/*postscript-print-encoding*
+postscript-print-trouble	print.txt	/*postscript-print-trouble*
+postscript-print-util	print.txt	/*postscript-print-util*
+postscript-printing	print.txt	/*postscript-printing*
 ppwiz-syntax	syntax.txt	/*ppwiz-syntax*
 ppwiz.vim	syntax.txt	/*ppwiz.vim*
 press-enter	message.txt	/*press-enter*
@@ -5645,9 +5663,12 @@
 prevcount-variable	eval.txt	/*prevcount-variable*
 preview-window	windows.txt	/*preview-window*
 prevnonblank()	eval.txt	/*prevnonblank()*
+print-intro	print.txt	/*print-intro*
+print-options	print.txt	/*print-options*
+print.txt	print.txt	/*print.txt*
 printcap-syntax	syntax.txt	/*printcap-syntax*
-printing	various.txt	/*printing*
-printing-formfeed	various.txt	/*printing-formfeed*
+printing	print.txt	/*printing*
+printing-formfeed	print.txt	/*printing-formfeed*
 progname-variable	eval.txt	/*progname-variable*
 progress-syntax	syntax.txt	/*progress-syntax*
 progress.vim	syntax.txt	/*progress.vim*
@@ -6247,6 +6268,7 @@
 tolower()	eval.txt	/*tolower()*
 toolbar-icon	gui.txt	/*toolbar-icon*
 toupper()	eval.txt	/*toupper()*
+tr()	eval.txt	/*tr()*
 trojan-horse	starting.txt	/*trojan-horse*
 try-conditionals	eval.txt	/*try-conditionals*
 try-echoerr	eval.txt	/*try-echoerr*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 880d770..8812496 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.0aa.  Last change: 2004 Jul 05
+*todo.txt*      For Vim version 7.0aa.  Last change: 2004 Jul 09
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -30,78 +30,21 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
+:syn sync ccomment asdf gives a warning without a line number.
+
+@: doesn't work if cmdline has a ^M, requires using ^V. (Tim Chase)
+
+Mac: Compiling --enable-gui=athena doesn't work.  Try to fix without disabling
+Carbon.  Otherwise adjust configure to disable darwin. (raf)
+
+Mac: "make install" doesn't install.
+
+Make aap build script work again.
+
+
 For version 7.0:
 -   Include many PATCHES:
-    8   ":hardcopy":
-	- support printing multi-byte characters.  Patch from Motonobu
-	  Ichimura.  New (better) patch from Mike Williams (2004 Jan 20)
-	  Updated patch: http://www.eandem.co.uk/mrw/vim/special/index.html
-    7   Add patch from Wall for this one ( ~/Mail/oldmail/wall/in.00019 ):
-	'flipcase' variable: upper/lowercase pairs.
-	Insert comma's between pairs and allow a range, make it look like
-	'isfname'.  E.g. ":set flipcase=a-zA-Z,xX,23-33:143-153".  The colon to
-	separate the from and to part is optional.
-	Resp: no time now.
-    8   Add GTK 2.3 file dialog support.  Patch by Grahame Bowland, 2004 Mar 15,
-	but it doesn't use "initdir" or "dflt". (will update patch)
-    8   Add ":n" to fnamemodify(): normalize path, remove "../" when possible.
-	Aric Blumer has a patch for this.
-	He will update the patch for 6.3.
-    8   Add buffer-local autocommands?  Reduces overhead for autocommands that
-	trigger often (inserting a character, switching mode).
-	    :au Event <buffer> do-something
-	E.g.:
-	    :au BufEnter <buffer> menu enable ...
-	    :au BufLeave <buffer> menu disable ...
-	Patch from Yakov Lerner, including test (2004 Jan 7).
-        He'll send updated patch.
-    Autocommands:
-	VimResized	    - When the Vim window has been resized (SIGWINCH)
-	  patch from Yakov Lerner, 2003 July 24.
-	  He'll write documentation and send updated patch.
-    7   Completion of network shares, patch by Yasuhiro Matsumoto.
-	Update 2004 Jun 17.
-	How does this work?  Missing comments.
-    gettext()		Translate a message.  (Patch from Yasuhiro Matsumoto)
-			Update 2004 Jun 17
-			Missing docs.  Search in 'runtimepath'?
-			How to get the messages into the .po files?
-    8   Make it possible to delete marks.  Charles Campbell has a patch that
-	does this with the markclear() function (2004 Jan 9).
-	And the ":delmark" command (2004 Feb 9)
-	http://mysite.verizon.net/astronaut/vim/index.html#Patch
-	~/tmp/ptch.delmark.bz2
-	~/tmp/ptch.markclear
-	Implement setmark(markname, lnum, col [, filename]) instead?
-    --- responses above --
-    7   Make "5dd" on last-but-one-line not delete anything (Vi compatible).
-	Add flag in 'cpoptions' for this.  When not present, "2dd" in the last
-	line should delete the last line.  Patch from greenx 2002 Apr 11.
-    8   Accelerators don't work in a dialog.  Include patch from Martin Dalecki
-	(Jan 3, tested by David Harrison).  Should work with Alt-o then.
-    7   Use accelerators for the Motif file selection dialog.  Patch from
-	Martin Dalecki 2002 Jan 11.
-    8   Add a few more command names to the menus.  Patch from Jiri Brezina
-	(28 feb 2002).
-    7   ATTENTION dialog choices are more logical when "Delete it' appears
-	before "Quit".  Patch by Robert Webb, 2004 May 3.
-    -   Include flipcase patch: ~/vim/patches/wall.flipcase2 ?  Make it work
-	for multi-byte characters.
-    -   Win32: add options to print dialog.  Patch from Vipin Aravind.
-    -   Patch to add highlighting for whitespace. (Tom Schumm, 2003 Jul 5)
-	use the patch that keeps using HLF_8 if HLF_WS has not
-	been given values.
-	Add section in help files for these highlight groups?
-    8   "fg" and "bg" don't work in an xterm.  Get default colors from xterm
-	with an ESC sequence.  Ideas in: ~/vim/patches/vikas.xtermcolors .
-    7   Add "DefaultFG" and "DefaultBG" for the colors of the menu. (Martin
-	Dalecki has a patch for Motif)
-    -   Add possibility to highlight specific columns (for Fortran).  Or put a
-	line in between columns (e.g. for 'textwidth').
-	Patch to add 'hlcolumn' from Vit Stradal, 2004 May 20.
     8   Add functions:
-	tr(expr, from, to)	translate chars (Patch from Ron Aaron, Apr 8
-				2004)
 	strrep()		Repeat a string (patch from Christophe Poucet,
 				2003 Sep 12, also contains XX)
 				Alt: repeat(expr, count) werkt ook voor lists.
@@ -140,7 +83,75 @@
 	search()		Add optional offset argument.
 				Add 'n' flag.  (patch from Nikolai Weibull
 				2003 Jan 13)
-	---
+    8   Make it possible to delete marks.  Charles Campbell has a patch that
+	does this with the markclear() function (2004 Jan 9).
+	And the ":delmark" command (2004 Feb 9)
+	http://mysite.verizon.net/astronaut/vim/index.html#Patch
+	~/tmp/ptch.delmark.bz2
+	~/tmp/ptch.markclear
+	Implement setmark(markname, lnum [, col [, filename]]) instead?
+	When "lnum" is zero delete the mark.
+	When "filename" has no wildcards and there is no matching buffer, add
+	the buffer (unlisted).
+    Patch for \xnn (Ciaran McCreesh)  2004 Jul 7
+    --- awaiting updated patch ---
+    7   Add patch from Wall for this one ( ~/Mail/oldmail/wall/in.00019 ):
+	'flipcase' variable: upper/lowercase pairs.
+	Insert comma's between pairs and allow a range, make it look like
+	'isfname'.  E.g. ":set flipcase=a-zA-Z,xX,23-33:143-153".  The colon to
+	separate the from and to part is optional.
+	Resp: no time now.
+    8   Add GTK 2.3 file dialog support.  Patch by Grahame Bowland, 2004 Mar 15,
+	but it doesn't use "initdir" or "dflt". (will update patch)
+    8   Add ":n" to fnamemodify(): normalize path, remove "../" when possible.
+	Aric Blumer has a patch for this.
+	He will update the patch for 6.3.
+    8   Add buffer-local autocommands?  Reduces overhead for autocommands that
+	trigger often (inserting a character, switching mode).
+	    :au Event <buffer> do-something
+	E.g.:
+	    :au BufEnter <buffer> menu enable ...
+	    :au BufLeave <buffer> menu disable ...
+	Patch from Yakov Lerner, including test (2004 Jan 7).
+        He'll send updated patch.
+    Autocommands:
+	VimResized	    - When the Vim window has been resized (SIGWINCH)
+	  patch from Yakov Lerner, 2003 July 24.
+	  He'll write documentation and send updated patch.
+    7   Completion of network shares, patch by Yasuhiro Matsumoto.
+	Update 2004 Jun 17.
+	How does this work?  Missing comments.
+    gettext()		Translate a message.  (Patch from Yasuhiro Matsumoto)
+			Update 2004 Jun 17
+			Missing docs.  Search in 'runtimepath'?
+			How to get the messages into the .po files?
+    --- did not respond (yet) --
+    7   Make "5dd" on last-but-one-line not delete anything (Vi compatible).
+	Add flag in 'cpoptions' for this.  When not present, "2dd" in the last
+	line should delete the last line.  Patch from greenx 2002 Apr 11.
+    8   Accelerators don't work in a dialog.  Include patch from Martin Dalecki
+	(Jan 3, tested by David Harrison).  Should work with Alt-o then.
+    7   Use accelerators for the Motif file selection dialog.  Patch from
+	Martin Dalecki 2002 Jan 11.
+    8   Add a few more command names to the menus.  Patch from Jiri Brezina
+	(28 feb 2002).
+    7   ATTENTION dialog choices are more logical when "Delete it' appears
+	before "Quit".  Patch by Robert Webb, 2004 May 3.
+    -   Include flipcase patch: ~/vim/patches/wall.flipcase2 ?  Make it work
+	for multi-byte characters.
+    -   Win32: add options to print dialog.  Patch from Vipin Aravind.
+    -   Patch to add highlighting for whitespace. (Tom Schumm, 2003 Jul 5)
+	use the patch that keeps using HLF_8 if HLF_WS has not
+	been given values.
+	Add section in help files for these highlight groups?
+    8   "fg" and "bg" don't work in an xterm.  Get default colors from xterm
+	with an ESC sequence.  Ideas in: ~/vim/patches/vikas.xtermcolors .
+    7   Add "DefaultFG" and "DefaultBG" for the colors of the menu. (Martin
+	Dalecki has a patch for Motif)
+    -   Add possibility to highlight specific columns (for Fortran).  Or put a
+	line in between columns (e.g. for 'textwidth').
+	Patch to add 'hlcolumn' from Vit Stradal, 2004 May 20.
+    8   Add functions:
 	confirm()		add "flags" argument, with 'v' for vertical
 				layout and 'c' for console dialog. (Haegg)
 				Flemming Madsen has a patch for the 'c' flag
diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt
index 3624a7b..9676801 100644
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -1,4 +1,4 @@
-*various.txt*   For Vim version 7.0aa.  Last change: 2004 Jun 18
+*various.txt*   For Vim version 7.0aa.  Last change: 2004 Jul 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -8,8 +8,7 @@
 
 1. Various commands		|various-cmds|
 2. Online help			|online-help|
-3. Printing			|printing|
-4. Using Vim like less or more	|less|
+3. Using Vim like less or more	|less|
 
 ==============================================================================
 1. Various commands					*various-cmds*
@@ -722,369 +721,6 @@
   languages in the specified directory.
 
 ==============================================================================
-3. Printing						*printing*
-
-On MS-Windows Vim can print your text on any installed printer.  On other
-systems a PostScript file is produced.  This can be directly sent to a
-PostScript printer.  For other printers a program like ghostscript needs to be
-used.
-
-3.1 PostScript Printing			|postscript-printing|
-3.2 PostScript Printing Encoding	|postscript-print-encoding|
-3.3 PostScript Printing Troubleshooting |postscript-print-trouble|
-3.4 PostScript Utilities		|postscript-print-util|
-3.5 Formfeed Characters			|printing-formfeed|
-
-{not in Vi}
-{only available when compiled with |+printer| feature}
-
-					*:ha* *:hardcopy* *E237* *E238* *E324*
-:[range]ha[rdcopy][!] [arguments]
-			Send [range] lines (default whole file) to the
-			printer.
-
-			On MS-Windows a dialog is displayed to allow selection
-			of printer, paper size etc. To skip the dialog, use
-			the [!].  In this case the printer defined by
-			'printdevice' is used, or, if 'printdevice' is empty,
-			the system default printer.
-
-			For systems other than MS-Windows, PostScript is
-			written in a temp file and 'printexpr' is used to
-			actually print it.  Then [arguments] can be used by
-			'printexpr' through |v:cmdarg|.  Otherwise [arguments]
-			is ignored.  'printoptions' can be used to specify
-			paper size, duplex, etc.
-
-:[range]ha[rdcopy][!] >{filename}
-			As above, but write the resulting PostScript in file
-			{filename}.
-			Things like "%" are expanded |cmdline-special|
-			Careful: An existing file is silently overwritten.
-			{only available when compiled with the |+postscript|
-			feature}
-			On MS-Windows use the "print to file" feature of the
-			printer driver.
-
-Progress is displayed during printing as a page number and a percentage.  To
-abort printing use the interrupt key (CTRL-C or, on MS-systems, CTRL-Break).
-
-Printer output is controlled by the 'printfont' and 'printoptions' options.
-'printheader' specifies the format of a page header.
-
-The printed file is always limited to the selected margins, irrespective of
-the current window's 'wrap' or 'linebreak' settings.  The "wrap" item in
-'printoptions' can be used to switch wrapping off.
-The current highlighting colors are used in the printout, with the following
-considerations:
-1) The normal background is always rendered as white (i.e. blank paper.)
-2) White text or the default foreground is rendered as black, so that it shows
-   up!
-3) If 'background' is "dark", then the colours are darkened to compensate for
-   the fact that otherwise they would be too bright to show up clearly on
-   white paper.
-
-
-3.1 PostScript Printing					*postscript-printing*
-						*E455* *E456* *E457* *E624*
-Provided you have enough disk space there should be no problems generating a
-PostScript file.  You need to have the runtime files correctly installed (if
-you can find the help files, they probably are).
-
-There are currently a number of limitations with PostScript printing:
-
-- 'printfont' - The font name is ignored (the Courier family is always used -
-  it should be available on all PostScript printers) but the font size is
-  used.
-
-- 'printoptions' - The duplex setting is used when generating PostScript
-  output, but it is up to the printer to take notice of the setting.  If the
-  printer does not support duplex printing then it should be silently ignored.
-  Some printers, however, don't print at all.
-
-- 8-bit support - While a number of 8-bit print character encodings are
-  supported it is possible that some characters will not print.  Whether a
-  character will print depends on the font in the printer knowing the
-  character.  Missing characters will be replaced with an upside down question
-  mark, or a space if that character is also not known by the font.  It may be
-  possible to get all the characters in an encoding to print by installing a
-  new version of the Courier font family.
-
-- Multi-byte support - Currently VIM will try to convert multi-byte characters
-  to the 8-bit encoding specified by 'printencoding' (or latin1 if it is
-  empty).  Any characters that are not successfully converted are shown as
-  unknown characters.  Printing will fail if VIM cannot convert the multi-byte
-  to the 8-bit encoding.
-
-
-3.2 Custom 8-bit Print Character Encodings	*postscript-print-encoding*
-								*E618* *E619*
-To use your own print character encoding when printing 8-bit character data
-you need to define your own PostScript font encoding vector.  Details on how
-to to define a font encoding vector is beyond the scope of this help file, but
-you can find details in the PostScript Language Reference Manual, 3rd Edition,
-published by Addison-Wesley and available in PDF form at
-http://www.adobe.com/.  The following describes what you need to do for VIM to
-locate and use your print character encoding.
-
-i.   Decide on a unique name for your encoding vector, one that does not clash
-     with any of the recognized or standard encoding names that VIM uses (see
-     |encoding-names| for a list), and that no one else is likely to use.
-ii.  Copy $VIMRUNTIME/print/latin1.ps to the print subdirectory in your
-     'runtimepath' and rename it with your unique name.
-iii. Edit your renamed copy of latin1.ps, replacing all occurrences of latin1
-     with your unique name (don't forget the line starting %%Title:), and
-     modify the array of glyph names to define your new encoding vector.  The
-     array must have exactly 256 entries or you will not be able to print!
-iv.  Within VIM, set 'printencoding' to your unique encoding name and then
-     print your file.  VIM will now use your custom print character encoding.
-
-VIM will report an error with the resource file if you change the order or
-content of the first 3 lines, other than the name of the encoding on the line
-starting %%Title: or the version number on the line starting %%Version:.
-
-[Technical explanation for those that know PostScript - VIM looks for a file
-with the same name as the encoding it will use when printing.  The file
-defines a new PostScript Encoding resource called /VIM-name, where name is the
-print character encoding VIM will use.]
-
-
-3.3 PostScript Printing Troubleshooting		*postscript-print-trouble*
-									*E621*
-Usually the only sign of a problem when printing with PostScript is that your
-printout does not appear.  If you are lucky you may get a printed page that
-tells you the PostScript operator that generated the error that prevented the
-print job completing.
-
-There are a number of possible causes as to why the printing may have failed:
-
-- Wrong version of the prolog resource file.  The prolog resource file
-  contains some PostScript that VIM needs to be able to print.  Each version
-  of VIM needs one particular version.  Make sure you have correctly installed
-  the runtime files, and don't have any old versions of a file called prolog
-  in the print directory in your 'runtimepath' directory.
-
-- Paper size.  Some PostScript printers will abort printing a file if they do
-  not support the requested paper size.  By default VIM uses A4 paper.  Find
-  out what size paper your printer normally uses and set the appropriate paper
-  size with 'printoptions'.  If you cannot find the name of the paper used,
-  measure a sheet and compare it with the table of supported paper sizes listed
-  for 'printoptions', using the paper that is closest in both width AND height.
-  Note: The dimensions of actual paper may vary slightly from the ones listed.
-  If there is no paper listed close enough, then you may want to try psresize
-  from PSUtils, discussed below.
-
-- Two-sided printing (duplex).  Normally a PostScript printer that does not
-  support two-sided printing will ignore any request to do it.  However, some
-  printers may abort the job altogether.  Try printing with duplex turned off.
-  Note: Duplex prints can be achieved manually using PS utils - see below.
-
-- Collated printing.  As with Duplex printing, most PostScript printers that
-  do not support collating printouts will ignore a request to do so.  Some may
-  not.  Try printing with collation turned off.
-
-- Syntax highlighting.  Some print management code may prevent the generated
-  PostScript file from being printed on a black and white printer when syntax
-  highlighting is turned on, even if solid black is the only color used.  Try
-  printing with syntax highlighting turned off.
-
-A safe printoptions setting to try is: >
-
-	:set printoptions=paper:A4,duplex:off,collate:n,syntax:n
-
-Replace "A4" with the paper size that best matches your printer paper.
-
-
-3.4 PostScript Utilities			*postscript-print-util*
-
-3.4.1 Ghostscript
-
-Ghostscript is a PostScript and PDF interpreter that can be used to display
-and print on non-PostScript printers PostScript and PDF files.  It can also
-generate PDF files from PostScript.
-
-Ghostscript will run on a wide variety of platforms.
-
-There are three available versions:
-
-- AFPL Ghostscript (formerly Aladdin Ghostscript) which is free for
-  non-commercial use.  It can be obtained from:
-
-    http://www.cs.wisc.edu/~ghost/
-
-- GNU Ghostscript which is available under the GNU General Public License.  It
-  can be obtained from:
-
-    ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/gnu/
-
-- A commercial version for inclusion in commercial products.
-
-Additional information on Ghostscript can also be found at:
-
-  http://www.ghostscript.com/
-
-Support for a number of non PostScript printers is provided in the
-distribution as standard, but if you cannot find support for your printer
-check the Ghostscript site for other printers not included by default.
-
-
-3.4.2 Ghostscript Previewers.
-
-The interface to Ghostscript is very primitive so a number of graphical front
-ends have been created.  These allow easier PostScript file selection,
-previewing at different zoom levels, and printing.  Check supplied
-documentation for full details.
-
-X11
-
-- Ghostview.  Obtainable from:
-
-    http://www.cs.wisc.edu/~ghost/gv/
-
-- gv.  Derived from Ghostview.  Obtainable from:
-
-    http://wwwthep.physik.uni-mainz.de/~plass/gv/
-
-  Copies (possibly not the most recent) can be found at:
-
-    http://www.cs.wisc.edu/~ghost/gv/
-
-OpenVMS
-
-- Is apparently supported in the main code now (untested).  See:
-
-    http://wwwthep.physik.uni-mainz.de/~plass/gv/
-
-Windows and OS/2
-
-- GSview.  Obtainable from:
-
-    http://www.cs.wisc.edu/~ghost/gsview/
-
-DOS
-
-- ps_view.  Obtainable from:
-
-    ftp://ftp.pg.gda.pl/pub/TeX/support/ps_view/
-    ftp://ftp.dante.de/tex-archive/support/ps_view/
-
-Linux
-
-- GSview.  Linux version of the popular Windows and OS/2 previewer.
-  Obtainable from:
-
-    http://www.cs.wisc.edu/~ghost/gsview/
-
-- BMV.  Different from Ghostview and gv in that it doesn't use X but svgalib.
-  Obtainable from:
-
-    ftp://sunsite.unc.edu/pub/Linux/apps/graphics/viewers/svga/bmv-1.2.tgz
-
-
-3.4.3 PSUtils
-
-PSUtils is a collection of utility programs for manipulating PostScript
-documents.  Binary distributions are available for many platforms, as well as
-the full source.  PSUtils can be found at:
-
-  http://knackered.org/angus/psutils
-
-The utilities of interest include:
-
-- psnup.     Convert PS files for N-up printing.
-- psselect.  Select page range and order of printing.
-- psresize.  Change the page size.
-- psbook.    Reorder and lay out pages ready for making a book.
-
-The output of one program can be used as the input to the next, allowing for
-complex print document creation.
-
-
-N-UP PRINTING
-
-The psnup utility takes an existing PostScript file generated from VIM and
-convert it to an n-up version.  The simplest way to create a 2-up printout is
-to first create a PostScript file with: >
-
-	:hardcopy > test.ps
-
-Then on your command line execute: >
-
-	psnup -n 2 test.ps final.ps
-
-Note: You may get warnings from some Ghostscript previewers for files produced
-by psnup - these may safely be ignored.
-
-Finally print the file final.ps to your PostScript printer with your
-platform's print command.  (You will need to delete the two PostScript files
-afterwards yourself.)  'printexpr' could be modified to perform this extra
-step before printing.
-
-
-ALTERNATE DUPLEX PRINTING
-
-It is possible to achieve a poor man's version of duplex printing using the PS
-utility psselect.  This utility has options -e and -o for printing just the
-even or odd pages of a PS file respectively.
-
-First generate a PS file with the 'hardcopy' command, then generate a new
-files with all the odd and even numbered pages with: >
-
-	psselect -o test.ps odd.ps
-	psselect -e test.ps even.ps
-
-Next print odd.ps with your platform's normal print command.  Then take the
-print output, turn it over and place it back in the paper feeder.  Now print
-even.ps with your platform's print command.  All the even pages should now
-appear on the back of the odd pages.
-
-There a couple of points to bear in mind:
-
-1. Position of the first page.  If the first page is on top of the printout
-   when printing the odd pages then you need to reverse the order that the odd
-   pages are printed.  This can be done with the -r option to psselect.  This
-   will ensure page 2 is printed on the back of page 1.
-   Note: it is better to reverse the odd numbered pages rather than the even
-   numbered in case there are an odd number of pages in the original PS file.
-
-2. Paper flipping.  When turning over the paper with the odd pages printed on
-   them you may have to either flip them horizontally (along the long edge) or
-   vertically (along the short edge), as well as possibly rotating them 180
-   degrees.  All this depends on the printer - it will be more obvious for
-   desktop ink jets than for small office laser printers where the paper path
-   is hidden from view.
-
-
-3.5 Formfeed Characters					*printing-formfeed*
-
-By default VIM does not do any special processing of |formfeed| control
-characters.  Setting the 'printoptions' formfeed item will make VIM recognize
-formfeed characters and continue printing the current line at the beginning
-of the first line on a new page.  The use of formfeed characters provides
-rudimentary print control but there are certain things to be aware of.
-
-VIM will always start printing a line (including a line number if enabled)
-containing a formfeed character, even if it is the first character on the
-line.  This means if a line starting with a formfeed character is the first
-line of a page then VIM will print a blank page.
-
-Since the line number is printed at the start of printing the line containing
-the formfeed character, the remainder of the line printed on the new page
-will not have a line number printed for it (in the same way as the wrapped
-lines of a long line when wrap in 'printoptions' is enabled).
-
-If the formfeed character is the last character on a line, then printing will
-continue on the second line of the new page, not the first.  This is due to
-VIM processing the end of the line after the formfeed character and moving
-down a line to continue printing.
-
-Due to the points made above it is recommended that when formfeed character
-processing is enabled, printing of line numbers is disabled, and that form
-feed characters are not the last character on a line.  Even then you may need
-to adjust the number of lines before a formfeed character to prevent
-accidental blank pages.
-
-==============================================================================
 4. Using Vim like less or more					*less*
 
 If you use the less or more program to view a file, you don't get syntax
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index 8ac96b7..96f28c3 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -79,6 +79,13 @@
 The |:mzscheme| command can be used to execute MzScheme commands.
 The |:mzfile| command can be used to execute an MzScheme script file.
 
+Printing multi-byte text				*new-print-multi-byte*
+------------------
+
+The |:hardcopy| command now supports printing multi-byte characters.
+The 'printmbcharset' and 'printmbfont' options are used for this.
+Also see |postscript-cjk-printing|.  (Mike Williams)
+
 
 Various new items					*new-items-7*
 -----------------
@@ -98,27 +105,31 @@
 'numberwidth'		Minimal width of the space used for the 'number'
 			option. (Emmanuel Renieris)
 'mzquantum'		Time in msec to schedule MzScheme threads.
+'printmbcharset'	CJK character set to be used for :hardcopy
+'printmbfont'		font names to be used for CJK output of :hardcopy
 
 
 Ex commands: ~
 
 Win32: The ":winpos" command now also works in the console. (Vipin Aravind)
 
-:startreplace		Start Replace mode. (Charles Campbell)
+|:startreplace|		Start Replace mode. (Charles Campbell)
 
-:0file			Removes the name of the buffer. (Charles Campbell)
+|:0file|		Removes the name of the buffer. (Charles Campbell)
 
 
 New functions: ~
 
+tr(expr, from, to)	|tr()| Translate characters. (Ron Aaron)
+
 
 New autocommand events: ~
 
-InsertEnter		starting Insert or Replace mode
-InsertChange		going from Insert to Replace mode or back
-InsertLeave		leaving Insert or Replace mode
+|InsertEnter|		starting Insert or Replace mode
+|InsertChange|		going from Insert to Replace mode or back
+|InsertLeave|		leaving Insert or Replace mode
 
-ColorScheme		after loading a color scheme
+|ColorScheme|		after loading a color scheme
 
 
 New Syntax/Indent/FTplugin files: ~
@@ -143,6 +154,8 @@
 
 ":helpgrep" accepts a language specifier after the pattern: "pat@it".
 
+Move the help for printing to a separate help file.  It's quite a lot now.
+
 ":breakadd here" and ":breakdel here" can be used to set or delete a
 breakpoint at the cursor.
 
diff --git a/runtime/doc/vimtutor.man b/runtime/doc/vimtutor.man
index c36b1c1..8bc4a80 100644
--- a/runtime/doc/vimtutor.man
+++ b/runtime/doc/vimtutor.man
@@ -1,9 +1,7 @@
+VIMTUTOR(1)                                                        VIMTUTOR(1)
 
 
 
-VIMTUTOR(1)                                           VIMTUTOR(1)
-
-
 NAME
        vimtutor - the Vim tutor
 
@@ -11,18 +9,17 @@
        vimtutor [language]
 
 DESCRIPTION
-       Vimtutor  starts  the Vim tutor.  It copies the tutor file
-       first, so that it can be  modified  without  changing  the
-       original file.
+       Vimtutor starts the Vim tutor.  It copies the tutor file first, so that
+       it can be modified without changing the original file.
 
-       The Vimtutor is useful for people that want to learn their
-       first Vim commands.
+       The Vimtutor is useful for people that want to learn  their  first  Vim
+       commands.
 
-       The optional [language] argument is the two-letter name of
-       a language, like "it" or "es".  If the [language] argument
-       is missing, the language of the  current  locale  will  be
-       used.   If  a tutor in this language is available, it will
-       be used.  Otherwise the English version will be used.
+       The  optional [language] argument is the two-letter name of a language,
+       like "it" or "es".  If the [language] argument is missing, the language
+       of  the  current  locale  will be used.  If a tutor in this language is
+       available, it will be used.  Otherwise  the  English  version  will  be
+       used.
 
        Vim is always started in Vi compatible mode.
 
@@ -31,36 +28,19 @@
                       The Vimtutor text file(s).
 
        /usr/local/lib/vim/tutor/tutor.vim
-                      The Vim script used to  copy  the  Vimtutor
-                      text file.
+                      The Vim script used to copy the Vimtutor text file.
 
 AUTHOR
-       The  Vimtutor  was originally written for Vi by Michael C.
-       Pierce and Robert K. Ware, Colorado School of Mines  using
-       ideas  supplied  by  Charles Smith, Colorado State Univer-
-       sity.  E-mail: bware@mines.colorado.edu.
-       It was modified for Vim by Bram Moolenaar.  For the  names
-       of the translators see the tutor files.
+       The  Vimtutor  was  originally  written for Vi by Michael C. Pierce and
+       Robert K. Ware, Colorado  School  of  Mines  using  ideas  supplied  by
+       Charles  Smith,  Colorado  State  University.  E-mail: bware@mines.col-
+       orado.edu.
+       It was modified for Vim by Bram Moolenaar.  For the names of the trans-
+       lators see the tutor files.
 
 SEE ALSO
        vim(1)
 
 
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-                           2001 April 2                         1
-
-
+                                 2001 April 2                      VIMTUTOR(1)