From 69a7cb473ceae109b61fae9aa04ee0c29afba5d9 Mon Sep 17 00:00:00 2001
From: Bram Moolenaar <Bram@vim.org>
Date: Sun, 20 Jun 2004 12:51:53 +0000
Subject: [PATCH] updated for version 7.0002

---
 runtime/doc/change.txt       |   11 +-
 runtime/doc/editing.txt      |    7 +-
 runtime/doc/eval.txt         |   25 +-
 runtime/doc/farsi.txt        |    6 +-
 runtime/doc/index.txt        |    6 +-
 runtime/doc/insert.txt       |    4 +-
 runtime/doc/mbyte.txt        |    6 +-
 runtime/doc/motion.txt       |   35 +-
 runtime/doc/netbeans.txt     |    6 +-
 runtime/doc/os_mac.txt       |   17 +-
 runtime/doc/os_vms.txt       |    4 +-
 runtime/doc/pi_netrw.txt     |  322 ++++---
 runtime/doc/quickfix.txt     |    4 +-
 runtime/doc/recover.txt      |    4 +-
 runtime/doc/sponsor.txt      |    9 +-
 runtime/doc/starting.txt     |    4 +-
 runtime/doc/syntax.txt       |    6 +-
 runtime/doc/todo.txt         |  177 ++--
 runtime/doc/usr_21.txt       |    4 +-
 runtime/doc/usr_22.txt       |    4 +-
 runtime/doc/various.txt      |    8 +-
 runtime/doc/version5.txt     |   14 +-
 runtime/doc/version6.txt     |   26 +-
 runtime/indent/vb.vim        |    4 +-
 runtime/plugin/netrw.vim     |  460 +++++++---
 runtime/syntax/netrwlist.vim |   29 +
 runtime/syntax/po.vim        |    4 +
 src/Makefile                 |    4 +-
 src/buffer.c                 |    2 +-
 src/eval.c                   |   28 +
 src/ex_cmds.c                |   34 +-
 src/ex_docmd.c               |   27 +-
 src/fileio.c                 |    5 +-
 src/gui_mac.c                |  907 ++++++++++---------
 src/gui_w32.c                |    6 +-
 src/memline.c                |    4 +-
 src/normal.c                 |   35 +-
 src/os_mac.c                 |    2 +-
 src/os_msdos.c               |    7 +-
 src/os_win32.c               |   50 +-
 src/po/Makefile              |    4 +-
 src/po/ru.cp1251.po          | 1661 +++++++++++++++++-----------------
 src/proto/eval.pro           |    1 +
 src/proto/ex_cmds.pro        |    1 +
 src/quickfix.c               |   81 +-
 src/search.c                 |    7 +-
 46 files changed, 2336 insertions(+), 1736 deletions(-)
 create mode 100644 runtime/syntax/netrwlist.vim

diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt
index 63461ee1ae..93c554f33d 100644
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -1,4 +1,4 @@
-*change.txt*    For Vim version 7.0aa.  Last change: 2004 Jun 15
+*change.txt*    For Vim version 7.0aa.  Last change: 2004 Jun 16
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1048,7 +1048,7 @@ operation.  When something has been dropped onto Vim, the "~ register is
 filled in and the <Drop> pseudo key is sent for notification.  You can remap
 this key if you want; the default action (for all modes) is to insert the
 contents of the "~ register at the cursor position.  {not in Vi}
-{only available when compiled with the |+dnd| feature, curently only with the
+{only available when compiled with the |+dnd| feature, currently only with the
 GTK GUI}
 
 Note: The "~ register is only used when dropping plain text onto Vim.
@@ -1138,6 +1138,13 @@ gw{motion}		Format the lines that {motion} moves over.  Similar to
 			the text.  However, 'formatprg' is not used.
 			{not in Vi}
 
+gwgw							*gwgw* *gww*
+gww			Format the current line as with "gw".  {not in Vi}
+
+							*v_gw*
+{Visual}gw		Format the highlighted text as with "gw".  (for
+			{Visual} see |Visual-mode|).  {not in Vi}
+
 Example: To format the current paragraph use:			*gqap*  >
 	gqap
 
diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index 827f78031e..4feef4148b 100644
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -1,4 +1,4 @@
-*editing.txt*   For Vim version 7.0aa.  Last change: 2004 Jun 14
+*editing.txt*   For Vim version 7.0aa.  Last change: 2004 Jun 17
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -340,10 +340,11 @@ directly before the first or just after the last backtick.
 
 							*`=*
 You can have the backticks expanded as a Vim expression, instead of
-an external command, by using the syntax `={expr}` e.g. >
+an external command, by using the syntax `={expr}` e.g.: >
 	:let foo='bar'
 	:e `=foo . ".c" `
-edits "bar.c".  Note that the expression cannot contain a backtick.
+This will edit "bar.c".  The expression can contain just about anything, thus
+this can also be used to avoid the special meaning of '"', '|', '%' and '#'.
 
 							*++opt* *[++opt]*
 The [++opt] argument can be used to force the value of 'fileformat' or
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 4685ff5e6a..462d66bd9b 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*      For Vim version 7.0aa.  Last change: 2004 May 18
+*eval.txt*      For Vim version 7.0aa.  Last change: 2004 Jun 20
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -515,7 +515,7 @@ Another example that does the same: >
 	command Tick let s:counter = s:counter + 1 | echo s:counter
 
 When calling a function and invoking a user-defined command, the context for
-script varialbes is set to the script where the function or command was
+script variables is set to the script where the function or command was
 defined.
 
 The script variables are also available when a function is defined inside a
@@ -972,9 +972,13 @@ browse({save}, {title}, {initdir}, {default})
 bufexists({expr})					*bufexists()*
 		The result is a Number, which is non-zero if a buffer called
 		{expr} exists.
+		If the {expr} argument is a number, buffer numbers are used.
 		If the {expr} argument is a string it must match a buffer name
-		exactly.
-		If the {expr} argument is a number buffer numbers are used.
+		exactly.  The name can be:
+		- Relative to the current directory.
+		- A full path.
+		- The name of a buffer with 'filetype' set to "nofile".
+		- A URL name.
 		Unlisted buffers will be found.
 		Note that help files are listed by their short name in the
 		output of |:buffers|, but bufexists() requires using their
@@ -987,12 +991,12 @@ bufexists({expr})					*bufexists()*
 buflisted({expr})					*buflisted()*
 		The result is a Number, which is non-zero if a buffer called
 		{expr} exists and is listed (has the 'buflisted' option set).
-		The {expr} argument is used like with bufexists().
+		The {expr} argument is used like with |bufexists()|.
 
 bufloaded({expr})					*bufloaded()*
 		The result is a Number, which is non-zero if a buffer called
 		{expr} exists and is loaded (shown in a window or hidden).
-		The {expr} argument is used like with bufexists().
+		The {expr} argument is used like with |bufexists()|.
 
 bufname({expr})						*bufname()*
 		The result is the name of a buffer, as it is displayed by the
@@ -1233,6 +1237,9 @@ executable({expr})					*executable()*
 		This function checks if an executable with the name {expr}
 		exists.  {expr} must be the name of the program without any
 		arguments.  executable() uses the normal $PATH.
+		On MS-DOS and MS-Windows the ".exe", ".bat", etc. must be
+		included.  It only checks if the file exists and is not a
+		directory, not if it's really executable.
 		The result is a Number:
 			1	exists
 			0	does not exist
@@ -1910,7 +1917,7 @@ line({expr})	The result is a Number, which is the line number of the file
 		This autocommand jumps to the last known position in a file
 		just after opening it, if the '" mark is set: >
 	:au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal g'\"" | endif
-<
+
 line2byte({lnum})					*line2byte()*
 		Return the byte count from the start of the buffer for line
 		{lnum}.  This includes the end-of-line character, depending on
@@ -2746,7 +2753,7 @@ fork			Compiled to use fork()/exec() instead of system().
 gettext			Compiled with message translation |multi-lang|
 gui			Compiled with GUI enabled.
 gui_athena		Compiled with Athena GUI.
-gui_beos		Compiled with BeOs GUI.
+gui_beos		Compiled with BeOS GUI.
 gui_gtk			Compiled with GTK+ GUI (any version).
 gui_gtk2		Compiled with GTK+ 2 GUI (gui_gtk is also defined).
 gui_mac			Compiled with Macintosh GUI.
@@ -2801,7 +2808,7 @@ scrollbind		Compiled with 'scrollbind' support.
 showcmd			Compiled with 'showcmd' support.
 signs			Compiled with |:sign| support.
 smartindent		Compiled with 'smartindent' support.
-sniff			Compiled with SniFF interface support.
+sniff			Compiled with SNiFF interface support.
 statusline		Compiled with support for 'statusline', 'rulerformat'
 			and special formats of 'titlestring' and 'iconstring'.
 sun_workshop		Compiled with support for Sun |workshop|.
diff --git a/runtime/doc/farsi.txt b/runtime/doc/farsi.txt
index 9902709da5..6f32f6e83f 100644
--- a/runtime/doc/farsi.txt
+++ b/runtime/doc/farsi.txt
@@ -1,4 +1,4 @@
-*farsi.txt*     For Vim version 7.0aa.  Last change: 2002 Oct 29
+*farsi.txt*     For Vim version 7.0aa.  Last change: 2004 Jun 16
 
 
 		  VIM REFERENCE MANUAL    by Mortaza Ghassab Shiran
@@ -66,7 +66,7 @@ If the "extra" archive has been unpacked, the following files are found in the
 subdirectories of the '$VIM/farsi' directory:
 
    +  far-a01.pcf    X Windows fonts for Unix including Linux systems
-   +  far-a01.bf     X Windows fonts for SunOs
+   +  far-a01.bf     X Windows fonts for SunOS
    +  far-a01.f16    a screen fonts for Unix including Linux systems
    +  far-a01.fon    a monospaced fonts for Windows NT/95/98
    +  far-a01.com    a screen fonts for DOS
@@ -92,7 +92,7 @@ o  Installation of fonts for X Window systems (Unix/Linux)
    >  mkfontdir
    >  xset +fp path_name_of_farsi_fonts_directory
 
-o  Installation of fonts for X Window systems (SunOs)
+o  Installation of fonts for X Window systems (SunOS)
 
    Copy far-a01.bf font into a directory of your choice.
    Change to the directory containing the far-a01.fb fonts and
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index 791e5ba363..77fe085b5b 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 May 24
+*index.txt*     For Vim version 7.0aa.  Last change: 2004 Jun 16
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -130,8 +130,8 @@ tag		char		action	~
 |i_<C-Home>|	<C-Home>	cursor to start of file
 |i_<End>|	<End>		cursor past end of line
 |i_<C-End>|	<C-End>		cursor past end of file
-|i_<PageUp>|	<PageUp>	one screenfull backward
-|i_<PageDown>|	<PageDown>	one screenfull forward
+|i_<PageUp>|	<PageUp>	one screenful backward
+|i_<PageDown>|	<PageDown>	one screenful forward
 |i_<F1>|	<F1>		same as <Help>
 |i_<Help>|	<Help>		stop insert mode and display help window
 |i_<Insert>|	<Insert>	toggle Insert/Replace mode
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index 1439dbeaf9..8028b661f9 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1,4 +1,4 @@
-*insert.txt*    For Vim version 7.0aa.  Last change: 2004 Apr 09
+*insert.txt*    For Vim version 7.0aa.  Last change: 2004 Jun 16
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -908,7 +908,7 @@ gi			Insert text in the same position as where Insert mode
 			The position is corrected for inserted/deleted lines,
 			but NOT for inserted/deleted characters.
 			When the |:keepjumps| command modifier is used the |'^|
-			mark wont be changed.
+			mark won't be changed.
 			{not in Vi}
 
 							*o*
diff --git a/runtime/doc/mbyte.txt b/runtime/doc/mbyte.txt
index 52c3b24063..9e96c3ea49 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 07
+*mbyte.txt*     For Vim version 7.0aa.  Last change: 2004 Jun 16
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar et al.
@@ -141,7 +141,7 @@ There are several ways to enter multi-byte characters:
 - For all systems keymaps can be used.  See |mbyte-keymap|.
 
 The options 'iminsert', 'imsearch' and 'imcmdline' can be used to chose
-the different input medhods or disable them temporarily.
+the different input methods or disable them temporarily.
 
 ==============================================================================
 2.  Locale						*mbyte-locale*
@@ -906,7 +906,7 @@ IME status to that memorized automatically.
 This works on not only insert-normal mode, but also search-command input and
 replace mode.
 The options 'iminsert', 'imsearch' and 'imcmdline' can be used to chose
-the different input medhods or disable them temporarily.
+the different input methods or disable them temporarily.
 
 WHAT IS IME
     IME is a part of East asian version Windows.  That helps you to input
diff --git a/runtime/doc/motion.txt b/runtime/doc/motion.txt
index b22413a84e..b2f6858bbe 100644
--- a/runtime/doc/motion.txt
+++ b/runtime/doc/motion.txt
@@ -1,4 +1,4 @@
-*motion.txt*    For Vim version 7.0aa.  Last change: 2004 May 13
+*motion.txt*    For Vim version 7.0aa.  Last change: 2004 Jun 17
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -672,11 +672,12 @@ m[  or  m]		Set the |'[| or |']| mark.  Useful when an operator is
 			the cursor, this is not a motion command).
 
 						*:ma* *:mark* *E191*
-:[range]ma[rk] {a-zA-Z}	Set mark {a-zA-Z} at last line number in [range],
+:[range]ma[rk] {a-zA-Z'}
+			Set mark {a-zA-Z'} at last line number in [range],
 			column 0.  Default is cursor line.
 
 						*:k*
-:[range]k{a-zA-Z}	Same as :mark, but the space before the mark name can
+:[range]k{a-zA-Z'}	Same as :mark, but the space before the mark name can
 			be omitted.
 
 						*'* *'a* *`* *`a*
@@ -692,7 +693,9 @@ g'{mark}  g`{mark}
 			jumping within the current buffer.  Example: >
 				g`"
 <			jumps to the last known position in a file.  See
-			$VIMRUNTIME/vimrc_example.vim.  {not in Vi}
+			$VIMRUNTIME/vimrc_example.vim.
+			Also see |:keepjumps|.
+			{not in Vi}
 
 						*:marks*
 :marks			List all the current marks (not a motion command).
@@ -868,7 +871,7 @@ These commands are not marks themselves, but jump to a mark:
 			  or larger than before, all marks are kept at the
 			  same line number.
 			- When the number of lines decreases, the marks in the
-			  ilnes that disappeared are deleted.
+			  lines that disappeared are deleted.
 			In any case the marks below the filtered text have
 			their line numbers adjusted, thus stick to the text,
 			as usual.
@@ -877,12 +880,22 @@ These commands are not marks themselves, but jump to a mark:
 
 							*:keepj* *:keepjumps*
 :keepj[umps] {command}
-			Do not change the |''|, |'.| and |'^| marks, the
-			|jumplist| or the |changelist|.  Useful when making a
-			change or inserting text automatically and the user
-			doesn't want to go to this position.  E.g., when
-			updating a "Last change" timestamp: >
-	autocmd BufWritePre,FileWritePre *.abc keepjumps call SetLastChange()
+			Moving around in {command} does not change the |''|,
+			|'.| and |'^| marks, the |jumplist| or the
+			|changelist|.
+			Useful when making a change or inserting text
+			automatically and the user doesn't want to go to this
+			position.  E.g., when updating a "Last change"
+			timestamp in the first line: >
+
+				:let lnum = getline(".")
+				:keepjumps normal gg
+				:call SetLastChange()
+				:keepjumps exe "normal " . lnum . "G"
+<
+			Note that ":keepjumps" must be used for every command.
+			When invoking a function the commands in that function
+			can still change the jumplist.
 
 ==============================================================================
 8. Jumps					*jump-motions*
diff --git a/runtime/doc/netbeans.txt b/runtime/doc/netbeans.txt
index 55725e15e3..ee6adea44a 100644
--- a/runtime/doc/netbeans.txt
+++ b/runtime/doc/netbeans.txt
@@ -1,4 +1,4 @@
-*netbeans.txt*  For Vim version 7.0aa.  Last change: 2004 May 01
+*netbeans.txt*  For Vim version 7.0aa.  Last change: 2004 Jun 16
 
 
 		  VIM REFERENCE MANUAL    by Gordon Prieur
@@ -180,7 +180,7 @@ Region is guarded, cannot modify
 		change.
 
 							*E656*
-NetBeans dissallows writes of unmodified buffers
+NetBeans disallows writes of unmodified buffers
 		NetBeans does not support writes of unmodified buffers that
 		were opened from NetBeans.
 
@@ -245,7 +245,7 @@ could cause confusion. The netbeans_saved() function sent a "save" protocol
 command. In protocol version 2.1 and earlier this was incorrectly interpreted
 as a notification that a write had taken place. In reality, it told NetBeans
 to save the file so multiple writes were being done. This caused various
-problems and has been fixed in 2.2. To decrease the likelyhood of this
+problems and has been fixed in 2.2. To decrease the likelihood of this
 confusion happening again, netbeans_saved() has been renamed to
 netbeans_save_buffer().
 
diff --git a/runtime/doc/os_mac.txt b/runtime/doc/os_mac.txt
index c2102bfc02..f242552453 100644
--- a/runtime/doc/os_mac.txt
+++ b/runtime/doc/os_mac.txt
@@ -1,4 +1,4 @@
-*os_mac.txt*    For Vim version 7.0aa.  Last change: 2004 Apr 27
+*os_mac.txt*    For Vim version 7.0aa.  Last change: 2004 Jun 19
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar et al.
@@ -74,11 +74,16 @@ A: Under Window Settings, Emulation, make sure that "Escape non-ASCII
 ==============================================================================
 4. Mac Lack						*mac-lack*
 
--The filenames containing both ":" and "/" are sometimes misinterpreted.
-  (just re-execute the command)
--Scrollbar are not scrolling live, and  when only the arrow or scroll area,
-   a limit of 32 line or page is scrolled.
--Syntax highlighting works on 68k Macs but is _really_ slow.
+The filenames containing both ":" and "/" are sometimes misinterpreted.  (just
+re-execute the command)
+
+Scrollbar are not scrolling live, and  when only the arrow or scroll area, a
+limit of 32 line or page is scrolled.
+
+Syntax highlighting works on 68k Macs but is _really_ slow.
+
+In a terminal CTRL-^ needs to be entered as Shift-Control-6.  CTRL-@ as
+Shift-Control-2.
 
 ==============================================================================
 5. Mac Bug Report					*mac-bug*
diff --git a/runtime/doc/os_vms.txt b/runtime/doc/os_vms.txt
index 834b35b167..aab5a2407a 100644
--- a/runtime/doc/os_vms.txt
+++ b/runtime/doc/os_vms.txt
@@ -1,4 +1,4 @@
-*os_vms.txt*    For Vim version 7.0aa.  Last change: 2004 May 16
+*os_vms.txt*    For Vim version 7.0aa.  Last change: 2004 Jun 16
 
 
 		  VIM REFERENCE MANUAL
@@ -280,7 +280,7 @@ For more information type $help set disp in VMS prompt.
    You need to set up one X server and run Vim as in point 2.
    For MS Windows there are available free X servers as MIX , Omni X etc.
    as well as excellent commercial products as eXcursion or ReflectionX with
-   buit in DEC support.
+   built in DEC support.
 
 Please note, that executables without GUI are slightly faster during startup
 then with enabled GUI in character mode. Therefore, if you do not use GUI
diff --git a/runtime/doc/pi_netrw.txt b/runtime/doc/pi_netrw.txt
index abfa8ce2ff..0a13dc2510 100644
--- a/runtime/doc/pi_netrw.txt
+++ b/runtime/doc/pi_netrw.txt
@@ -1,11 +1,11 @@
-*pi_netrw.txt*  For Vim version 7.0aa.  Last change: Apr 21, 2004
+*pi_netrw.txt*  For Vim version 6.2.  Last change: Jun 15, 2004
 
 
 		VIM REFERENCE MANUAL    by Charles E. Campbell, Jr.
 
-*dav*		*http*		*network*	*rcp*		*scp*
-*fetch*		*netrw*		*Nread*		*rsync*		*sftp*
-*ftp*		*netrw.vim*	*Nwrite*	*netrw-file*
+*dav*           *http*          *network*       *rcp*           *scp*
+*fetch*         *netrw*         *Nread*         *rsync*         *sftp*
+*ftp*           *netrw.vim*     *Nwrite*        *netrw-file*
 
 ==============================================================================
 0. Contents						*netrw-contents*
@@ -16,15 +16,16 @@
 4.  Transparent File Transfer...........................|netrw-transparent|
 5.  Ex Commands.........................................|netrw-ex|
 6.  Variables and Options...............................|netrw-var|
-7.  Debugging...........................................|netrw-debug|
-8.  New Stuff...........................................|netrw-new|
-9.  Credits.............................................|netrw-credits|
+7.  Remote Directory Listing............................|netrw-dir|
+8.  Debugging...........................................|netrw-debug|
+9.  History.............................................|netrw-history|
+10. Credits.............................................|netrw-credits|
 
 The functionality mentioned here is done via using |standard-plugin|
 techniques.  This plugin is only available if
 
-	set nocp		    " 'compatible' is not set
-	filetype plugin on	    " plugins are enabled
+	set nocp                    " 'compatible' is not set
+	filetype plugin on          " plugins are enabled
 
 You can avoid loading this plugin by setting the "loaded_netrw" variable
 in your <.vimrc> file: >
@@ -49,16 +50,16 @@ in your <.vimrc> file: >
 
 	Controlling External Applications
 
-	 Protocol  Variable	       Default Value
-	 --------  ----------------    -------------
-	   dav:    g:netrw_dav_cmd   = "cadaver"
-	   fetch:  g:netrw_fetch_cmd = "fetch -o"
-	   ftp:    g:netrw_ftp_cmd   = "ftp"
-	   http:   g:netrw_http_cmd  = "fetch -o"   else if fetch is available
-	   http:   g:netrw_http_cmd  = "wget -q -O"    If wget is available
-	   rcp:    g:netrw_rcp_cmd   = "rcp"
-	   rsync:  g:netrw_rsync_cmd = "rsync -a"
-	   scp:    g:netrw_scp_cmd   = "scp -q"
+	 Protocol  Variable	     Default Value
+	 --------  ----------------  -------------
+	    dav:    g:netrw_dav_cmd  = "cadaver"
+	  fetch:  g:netrw_fetch_cmd  = "fetch -o"
+	    ftp:    g:netrw_ftp_cmd  = "ftp"
+           http:   g:netrw_http_cmd  = "fetch -o"    if fetch is available
+	   http:   g:netrw_http_cmd  = "wget -q -O"  If wget  is available
+	    rcp:    g:netrw_rcp_cmd  = "rcp"
+	  rsync:  g:netrw_rsync_cmd  = "rsync -a"
+	    scp:    g:netrw_scp_cmd  = "scp -q"
 	   sftp:   g:netrw_sftp_cmd  = "sftp"
 
     READING
@@ -76,7 +77,7 @@ in your <.vimrc> file: >
 	:Nread "sftp://[user@]machine/file"		uses sftp
 
     WRITING
-	:Nwrite ?					give help
+	:Nwrite ?    					give help
 	:Nwrite "machine:file"				uses rcp
 	:Nwrite "machine file"				uses ftp   with <.netrc>
 	:Nwrite "machine id password file"		uses ftp
@@ -88,6 +89,9 @@ in your <.vimrc> file: >
 	:Nwrite "sftp://[user@]machine/file"		uses sftp
 	http: not supported!
 
+    DIRECTORY LISTING
+	:Nread [protocol]://[user]@hostname/path/
+
     USER AND PASSWORD CHANGING
 	Attempts to use ftp will prompt you for a user-id and a password.
 	These will be saved in g:netrw_uid and g:netrw_passwd Subsequent uses
@@ -148,7 +152,7 @@ transfer/protocol.  Files are read from/written to a temporary file
 clean up.
 
 One may modify any protocol's implementing external application
-by setting a variable (ex. scp uses the variable g:netrw_scp_cmd,
+by settinbg a variable (ex. scp uses the variable g:netrw_scp_cmd,
 which is defaulted to "scp -q").
 
 Ftp, an old protocol, seems to be blessed by numerous implementations.
@@ -181,57 +185,57 @@ additional prompting.
 
 								*netrw-urls*
   +=================================+============================+============+
-  |  Reading			    | Writing			 |  Uses      |
+  |  Reading                        | Writing                    |  Uses      |
   +=================================+============================+============+
-  | DAV:			    |				 |	      |
-  |  dav://host/path		    |				 | cadaver    |
-  |  :Nread dav://host/path	    | :Nwrite dav://host/path	 | cadaver    |
+  | DAV:                            |                            |            |
+  |  dav://host/path                |                            | cadaver    |
+  |  :Nread dav://host/path         | :Nwrite dav://host/path    | cadaver    |
   +---------------------------------+----------------------------+------------+
-  | FETCH:			    |				 |	      |
-  |  fetch://[user@]host/path	    |				 |	      |
-  |  fetch://[user@]host:http/path  |  Not Available		 | fetch      |
-  |  :Nread fetch://[user@]host/path|				 |	      |
+  | FETCH:                          |                            |            |
+  |  fetch://[user@]host/path       |                            |            |
+  |  fetch://[user@]host:http/path  |  Not Available             | fetch      |
+  |  :Nread fetch://[user@]host/path|                            |            |
   +---------------------------------+----------------------------+------------+
-  | FILE:			    |				 |	      |
-  |  file:///*			    | file:///*			 |	      |
-  |  file://localhost/*		    | file://localhost/*	 |	      |
+  | FILE:                           |                            |            |
+  |  file:///*                      | file:///*                  |            |
+  |  file://localhost/*             | file://localhost/*         |            |
   +---------------------------------+----------------------------+------------+
-  | FTP:	  (*3)		    |		   (*3)		 |	      |
-  |  ftp://[user@]host/path	    | ftp://[user@]host/path	 | ftp	(*2)  |
-  |  :Nread ftp://host/path	    | :Nwrite ftp://host/path	 | ftp+.netrc |
-  |  :Nread host path		    | :Nwrite host path		 | ftp+.netrc |
-  |  :Nread host uid pass path	    | :Nwrite host uid pass path | ftp	      |
+  | FTP:          (*3)              |              (*3)          |            |
+  |  ftp://[user@]host/path         | ftp://[user@]host/path     | ftp  (*2)  |
+  |  :Nread ftp://host/path         | :Nwrite ftp://host/path    | ftp+.netrc |
+  |  :Nread host path               | :Nwrite host path          | ftp+.netrc |
+  |  :Nread host uid pass path      | :Nwrite host uid pass path | ftp        |
   +---------------------------------+----------------------------+------------+
-  | HTTP: wget is executable: (*4)  |				 |	      |
-  |  http://[user@]host/path	    |	     Not Available	 | wget       |
+  | HTTP: wget is executable: (*4)  |                            |            |
+  |  http://[user@]host/path        |        Not Available       | wget       |
   +---------------------------------+----------------------------+------------+
-  | HTTP: fetch is executable (*4)  |				 |	      |
-  |  http://[user@]host/path	    |	     Not Available	 | fetch      |
+  | HTTP: fetch is executable (*4)  |                            |            |
+  |  http://[user@]host/path        |        Not Available       | fetch      |
   +---------------------------------+----------------------------+------------+
-  | RCP:			    |				 |	      |
-  |  rcp://[user@]host/path	    | rcp://[user@]host/path	 | rcp	      |
+  | RCP:                            |                            |            |
+  |  rcp://[user@]host/path         | rcp://[user@]host/path     | rcp        |
   +---------------------------------+----------------------------+------------+
-  | RSYNC:			    |				 |	      |
-  |  rsync://[user@]host/path	    | rsync://[user@]host/path	 | rsync      |
-  |  :Nread rsync://host/path	    | :Nwrite rsync://host/path  | rsync      |
-  |  :Nread rcp://host/path	    | :Nwrite rcp://host/path	 | rcp	      |
+  | RSYNC:                          |                            |            |
+  |  rsync://[user@]host/path       | rsync://[user@]host/path   | rsync      |
+  |  :Nread rsync://host/path       | :Nwrite rsync://host/path  | rsync      |
+  |  :Nread rcp://host/path         | :Nwrite rcp://host/path    | rcp        |
   +---------------------------------+----------------------------+------------+
-  | SCP:			    |				 |	      |
-  |  scp://[user@]host/path	    | scp://[user@]host/path	 | scp	      |
-  |  :Nread scp://host/path	    | :Nwrite scp://host/path	 | scp	(*1)  |
+  | SCP:                            |                            |            |
+  |  scp://[user@]host/path         | scp://[user@]host/path     | scp        |
+  |  :Nread scp://host/path         | :Nwrite scp://host/path    | scp  (*1)  |
   +---------------------------------+----------------------------+------------+
-  | SFTP:			    |				 |	      |
-  |  sftp://[user@]host/path	    | sftp://[user@]host/path	 | sftp       |
-  |  :Nread sftp://host/path	    | :Nwrite sftp://host/path	 | sftp  (*1) |
+  | SFTP:                           |                            |            |
+  |  sftp://[user@]host/path        | sftp://[user@]host/path    | sftp       |
+  |  :Nread sftp://host/path        | :Nwrite sftp://host/path   | sftp  (*1) |
   +=================================+============================+============+
 
 	(*1) For an absolute path use scp://machine//path.
 
 	(*2) if <.netrc> is present, it is assumed that it will
 	work with your ftp client.  Otherwise the script will
-	prompt for user-id and password.
+	prompt for user-id and pasword.
 
-	(*3) for ftp, "machine" may be machine#port or machine:port
+        (*3) for ftp, "machine" may be machine#port or machine:port
 	if a different port is needed than the standard ftp port
 
 	(*4) for http:..., if wget is available it will be used.  Otherwise,
@@ -327,67 +331,88 @@ additional commands available.
 
 
 ==============================================================================
-6. Variables and Options			*netrw-options* *netrw-var*
+6. Variables and Options       			*netrw-options* *netrw-var*
 
 The script <netrw.vim> uses several variables which can affect <netrw.vim>'s
 behavior.  These variables typically may be set in the user's <.vimrc> file:
-
-	g:netrw_uid		Holds current user-id for ftp.
-	g:netrw_passwd		Holds current password for ftp.
-	b:netrw_lastfile	Holds latest method/machine/path.
-	b:netrw_line		Holds current line number     (during NetWrite)
-	b:netrw_col		Holds current cursor position (during NetWrite)
-	g:netrw_ftp		=0 use default ftp	      (uid password)
-				=1 use alternate ftp	      (user uid password)
-				(see |netrw-options|)
-	g:netrw_ftpmode		="binary"		      (default)
-				="ascii"		      (your choice)
-	g:netrw_ignorenetrc	=1			      (default)
-				   if you have a <.netrc> file but you don't
+>
+                                -------------
+                           	Netrw Options
+                                -------------
+	Option			Meaning
+	--------------		-----------------------------------------------
+<
+        b:netrw_col             Holds current cursor position (during NetWrite)
+        g:netrw_cygwin          =1 assume scp under windows is from cygwin
+                                                              (default/windows)
+                                =0 assume scp under windows accepts windows
+                                   style paths                (default/else)
+        g:netrw_ftp             =0 use default ftp            (uid password)
+        g:netrw_ftpmode         ="binary"                     (default)
+                                ="ascii"                      (your choice)
+	g:netrw_ignorenetrc     =1                            (default)
+	                           if you have a <.netrc> file but you don't
 				   want it used, then set this variable.  Its
 				   mere existence is enough to cause <.netrc>
 				   to be ignored.
-	g:netrw_win95ftp	=0 use unix-style ftp even if win95/98/ME/etc
-				=1 use default method to do ftp
-	g:netrw_cygwin		=1 assume scp under windows is from cygwin
-							      (default/windows)
-				=0 assume scp under windows accepts windows
-				   style paths		      (default/else)
-	g:netrw_use_nt_rcp	=0 don't use WinNT/2K/XP's rcp (default)
-				=1 use WinNT/2K/XP's rcp, binary mode
-
-
+        b:netrw_lastfile        Holds latest method/machine/path.
+        b:netrw_line            Holds current line number     (during NetWrite)
+        g:netrw_passwd          Holds current password for ftp.
+	g:netrw_silent          =0 transfers done normally
+	                        =1 transfers done silently
+        g:netrw_uid             Holds current user-id for ftp.
+                                =1 use alternate ftp          (user uid password)
+                                (see |netrw-options|)
+        g:netrw_use_nt_rcp      =0 don't use WinNT/2K/XP's rcp (default)
+                                =1 use WinNT/2K/XP's rcp, binary mode
+        g:netrw_win95ftp        =0 use unix-style ftp even if win95/98/ME/etc
+                                =1 use default method to do ftp >
+	-----------------------------------------------------------------------
+<
 The script will also make use of the following variables internally, albeit
 temporarily.
-
+>
+			     -------------------
+			     Temporary Variables
+			     -------------------
+	Variable		Meaning
+	--------		------------------------------------
+<
 	g:netrw_method		Index indicating rcp/ftp+.netrc/ftp
 	g:netrw_machine		Holds machine name parsed from input
-	g:netrw_fname		Holds filename being accessed
-
+	g:netrw_fname		Holds filename being accessed >
+	------------------------------------------------------------
+<
 								*netrw-protocol*
+
+Netrw supports a number of protocols.  These protocols are invoked using the
+variables listed below, and may be modified by the user.
 >
 			   ------------------------
-			   Protocol Control Options
+                           Protocol Control Options
 			   ------------------------
-    Option	      Type	  Setting	  Meaning ~
-    ---------	      --------	  --------------  --------------------------- >
-    netrw_ftp	      variable	  =doesn't exist  userid set by "user userid"
-				  =0		  userid set by "user userid"
-				  =1		  userid set by "userid"
-    NetReadFixup      function	  =doesn't exist  no change
-				  =exists	  Allows user to have files
-						  read via ftp automatically
-						  transformed however they wish
-						  by NetReadFixup()
+    Option            Type        Setting         Meaning
+    ---------         --------    --------------  ---------------------------
+<
+    netrw_ftp         variable    =doesn't exist  userid set by "user userid"
+                                  =0              userid set by "user userid"
+                                  =1              userid set by "userid"
+    NetReadFixup      function    =doesn't exist  no change
+                                  =exists         Allows user to have files
+                                                  read via ftp automatically
+                                                  transformed however they wish
+                                                  by NetReadFixup()
     g:netrw_dav_cmd    variable   ="cadaver"
     g:netrw_fetch_cmd  variable   ="fetch -o"
     g:netrw_ftp_cmd    variable   ="ftp"
     g:netrw_http_cmd   variable   ="fetch -o" else if fetch is executable
     g:netrw_http_cmd   variable   ="wget -O"  if      wget  is executable
+    g:netrw_list_cmd   variable   ="ssh HOSTNAME ls -Fa"
     g:netrw_rcp_cmd    variable   ="rcp"
     g:netrw_rsync_cmd  variable   ="rsync -a"
     g:netrw_scp_cmd    variable   ="scp -q"
-    g:netrw_sftp_cmd   variable   ="sftp"
+    g:netrw_sftp_cmd   variable   ="sftp" >
+    -------------------------------------------------------------------------
 <
 The first two options both help with certain ftp's that give trouble otherwise.
 In order to best understand how to use these options if ftp is giving you
@@ -396,16 +421,21 @@ troubles, a bit of discussion follows on how netrw does ftp reads.
 The g:netrw_..._cmd variables specify the external program to use handle
 the associated protocol (rcp, ftp, etc), plus any options.
 
-Netrw typically builds up lines of one of the following formats in a
+The g:netrw_list_cmd's HOSTNAME entry will be changed via substitution with
+whatever the current request is for a hostname.
+
+For ftp, netrw typically builds up lines of one of the following formats in a
 temporary file:
 >
   IF g:netrw_ftp !exists or is not 1     IF g:netrw_ftp exists and is 1
   ----------------------------------     ------------------------------
-       open machine [port]		      open machine [port]
-       user userid password		      userid password
-       [g:netrw_ftpmode]		      password
-       get filename tempfile		      [g:netrw_ftpmode]
-					      get filename tempfile
+<
+       open machine [port]                    open machine [port]
+       user userid password                   userid password
+       [g:netrw_ftpmode]                      password
+       get filename tempfile                  [g:netrw_ftpmode]
+                                              get filename tempfile >
+  ---------------------------------------------------------------------
 <
 Netrw then executes the lines above by use of a filter:
 >
@@ -418,14 +448,14 @@ where
 	-n means don't use netrc and is used for Method #3 (ftp w/o <.netrc>)
 
 If <.netrc> exists it will be used to avoid having to query the user for
-userid and password).  The transferred file is put into a temporary file.
+userid and password.  The transferred file is put into a temporary file.
 The temporary file is then read into the main editing session window that
 requested it and the temporary file deleted.
 
 If your ftp doesn't accept the "user" command and immediately just demands
 a userid, then try putting "let netrw_ftp=1" in your <.vimrc>.
 
-								*netrw-fixup*
+							 	*netrw-fixup*
 If your ftp for whatever reason generates unwanted lines (such as AUTH
 messages) you may write a NetReadFixup(tmpfile) function:
 >
@@ -441,7 +471,7 @@ messages) you may write a NetReadFixup(tmpfile) function:
       elseif a:method == 7 "rsync
       elseif a:method == 8 "fetch
       elseif a:method == 9 "sftp
-      else		 " complain
+      else               " complain
       endif
     endfunction
 >
@@ -453,17 +483,42 @@ and so it is desirable to automate their removal.  Here's some code taken
 from <netrw.vim> itself:
 >
     if has("win95") && g:netrw_win95ftp
-     fu! NetReadFixup(method, line1, line2)
+     fun! NetReadFixup(method, line1, line2)
        if method == 3   " ftp (no <.netrc>)
-	let fourblanklines= line2 - 3
-	silent fourblanklines.",".line2."g/^\s*/d"
+        let fourblanklines= line2 - 3
+        silent fourblanklines.",".line2."g/^\s*/d"
        endif
      endfunction
     endif
 >
 
 ==============================================================================
-7. Debugging						*netrw-debug*
+7. Remote Directory Listing				*netrw-dir* *netrw-list*
+
+Netrw supports listing (browsing) directories on remote hosts; simply attempt
+to read a "file" with a trailing slash and it will be interpreted as a
+request to browse a directory:
+
+	vim [protocol]://[user@]hostname/path/
+
+Netrw will modify the command in g:netrw_list to perform the directory listing
+operation.  By default the command is:
+
+	ssh HOSTNAME ls -Fa
+
+where the HOSTNAME becomes the hostname as requested by the attempted
+read.  Naturally, the user may override this command with whatever is
+preferred.  The NetList function which implements remote directory
+browsing expects that directories will be flagged by a trailing slash.
+
+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.
+
+
+==============================================================================
+8. Debugging						*netrw-debug*
 
 The <netrw.vim> script is typically available as:
 
@@ -494,31 +549,40 @@ which is loaded automatically at startup (assuming :set nocp).
 		drchipNOSPAM at campbellfamily.biz - NOSPAM
 
 ==============================================================================
-8. New Stuff						*netrw-new* *netrw-newstuff*
-
-       v43: * moved "Explanation" comments to <pi_netrw.txt> help file
-	      as "Network Reference" (|netrw-ref|)
-	    * <netrw.vim> now uses Dfunc() Decho() and Dret() for debugging
-	    * removed superfluous NetRestorePosn() calls
-       v42: * now does BufReadPre and BufReadPost events on file:///*
-	      and file://localhost/*
-       v41: * installed file:///* and file://localhost/* handling
-       v40: * prevents redraw when a protocol error occurs so that the
-	      user may see it
-       v39: * sftp support
-       v38: * Now uses NetRestorePosn() calls with Nread/Nwrite commands
-	    * Temporary files now removed via bwipe! instead of bwipe
-	      (thanks to Dave Roberts)
-       v37: * Claar's modifications which test if ftp is successful, otherwise
-	      give an error message
-	    * After a read, the alternate file was pointing to the temp file.
-	      The temp file buffer is now wiped out.
-	    * removed silent from transfer methods so user can see what's
-	      happening
+9. History						*netrw-history*
+
+	v46: * now handles remote directory browsing
+	     * g:netrw_silent (if 1) will cause all transfers to be silent'd
+	v45: * made the [user@]hostname:path form a bit more restrictive
+	       to better handle errors in using protocols
+	       (e.g. scp:usr@host:file was being recognized as an rcp request)
+	v44: * changed from "rsync -a" to just "rsync"
+	     * somehow an editing error messed up the test to recognize
+	       use of the fetch method for NetRead.
+	     * more debugging statements included
+	v43: * moved "Explanation" comments to <pi_netrw.txt> help file
+	       as "Network Reference" (|netrw-ref|)
+	     * <netrw.vim> now uses Dfunc() Decho() and Dret() for debugging
+	     * removed superfluous NetRestorePosn() calls
+	v42: * now does BufReadPre and BufReadPost events on file:///*
+	       and file://localhost/*
+	v41: * installed file:///* and file://localhost/* handling
+	v40: * prevents redraw when a protocol error occurs so that the
+	       user may see it
+	v39: * sftp support
+	v38: * Now uses NetRestorePosn() calls with Nread/Nwrite commands
+	     * Temporary files now removed via bwipe! instead of bwipe
+	       (thanks to Dave Roberts)
+	v37: * Claar's modifications which test if ftp is successful, otherwise
+	       give an error message
+	     * After a read, the alternate file was pointing to the temp file.
+	       The temp file buffer is now wiped out.
+	     * removed silent from transfer methods so user can see what's
+	       happening
 
 
 ==============================================================================
-9. Credits						*netrw-credits*
+10. Credits						*netrw-credits*
 
 	Vim editor	by Bram Moolenaar (Thanks, Bram!)
 	dav		support by C Campbell
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index 1c35d685a9..4f8174b073 100644
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -1,4 +1,4 @@
-*quickfix.txt*  For Vim version 7.0aa.  Last change: 2004 May 20
+*quickfix.txt*  For Vim version 7.0aa.  Last change: 2004 Jun 16
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -795,7 +795,7 @@ processing.
 
 Maintaining the correct directory is more complicated if you don't use
 GNU-make. AIX-make for example doesn't print any information about its working
-directory. Then you need to enhance the makefile. In the makefile of lesstiff
+directory. Then you need to enhance the makefile. In the makefile of LessTif
 there is a command which echoes "Making {target} in {dir}". The special
 problem here is that it doesn't print informations on leaving the directory
 and that it doesn't print the absolute path.
diff --git a/runtime/doc/recover.txt b/runtime/doc/recover.txt
index 19cbe01309..6913be2e80 100644
--- a/runtime/doc/recover.txt
+++ b/runtime/doc/recover.txt
@@ -1,4 +1,4 @@
-*recover.txt*   For Vim version 7.0aa.  Last change: 2004 Apr 16
+*recover.txt*   For Vim version 7.0aa.  Last change: 2004 Jun 16
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -61,7 +61,7 @@ Disadvantages:
   directories (although Vim tries to avoid that by comparing the path name).
   This will result in bogus ATTENTION warning messages.
 - When you use your home directory, and somebody else tries to edit the same
-  file, he will not see your swap file and will not get the ATTENTION waring
+  file, he will not see your swap file and will not get the ATTENTION warning
   message.
 On the Amiga you can also use a recoverable ram disk, but there is no 100%
 guarantee that this works.  Putting swap files in a normal ram disk (like RAM:
diff --git a/runtime/doc/sponsor.txt b/runtime/doc/sponsor.txt
index 34abc46d4a..766c3d8c0a 100644
--- a/runtime/doc/sponsor.txt
+++ b/runtime/doc/sponsor.txt
@@ -1,4 +1,4 @@
-*sponsor.txt*   For Vim version 7.0aa.  Last change: 2004 Apr 23
+*sponsor.txt*   For Vim version 7.0aa.  Last change: 2004 Jun 16
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -83,9 +83,10 @@ Bank transfer	Transfer to Bram's account at the Postbank: 1644503.  For
 		show others you are a registered Vim user or sponsor.
 
 Cash		Small amounts can be send with ordinary mail.  Put something
-		around the money, so that it's not noticable from the outside.
-		Mention your e-mail address if you want to vote for features
-		and show others you are a registered Vim user or sponsor.
+		around the money, so that it's not noticeable from the
+		outside.  Mention your e-mail address if you want to vote for
+		features and show others you are a registered Vim user or
+		sponsor.
 
 This is Bram's address: Bram Moolenaar
 			Clematisstraat 30
diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt
index f9e1301aca..c73d17e4be 100644
--- a/runtime/doc/starting.txt
+++ b/runtime/doc/starting.txt
@@ -1,4 +1,4 @@
-*starting.txt*  For Vim version 7.0aa.  Last change: 2004 Jun 15
+*starting.txt*  For Vim version 7.0aa.  Last change: 2004 Jun 18
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1222,7 +1222,7 @@ Note that Views and Sessions are not perfect:
 - They don't restore everything.  For example, defined functions, autocommands
   and ":syntax on" are not included.  Things like register contents and
   command line history are in viminfo, not in Sessions or Views.
-- Global option values are only set when the differ from the default value.
+- Global option values are only set when they differ from the default value.
   When the current value is not the default value, loading a Session will not
   set it back to the default value.  Local options will be set back to the
   default value though.
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 5bd9723acf..ac4c235d03 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 Jun 15
+*syntax.txt*	For Vim version 7.0aa.  Last change: 2004 Jun 16
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -739,7 +739,7 @@ variable.
 CYNLIB						*cynlib.vim* *cynlib-syntax*
 
 Cynlib files are C++ files that use the Cynlib class library to enable
-hardware modeling and simulation using C++. Typically Cynlib files have a .cc
+hardware modelling and simulation using C++. Typically Cynlib files have a .cc
 or a .cpp extension, which makes it very difficult to distinguish them from a
 normal C++ file. Thus, to enable Cynlib highlighting for .cc files, add this
 line to your .vimrc file: >
@@ -1664,7 +1664,7 @@ file: >
 
 	let b:preprocs_as_sections = 1
 
-As well, the syntax file adds an extra paragraph marker for the exdented
+As well, the syntax file adds an extra paragraph marker for the extended
 paragraph macro (.XP) in the ms package.
 
 Finally, there is a |groff.vim| syntax file that can be used for enabling
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 00d94c1c0b..d5d44dff1c 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 Jun 16
+*todo.txt*      For Vim version 7.0aa.  Last change: 2004 Jun 20
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -30,19 +30,10 @@ be worked on, but only if you sponsor Vim development.  See |sponsor|.
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-This example doesn't work:
-    :e `=foo . ".c" `
-Inside `` don't use " as the start of a comment.
-Also don't expand % or #.
-
-Corrections for docs from A3.  Skip ones already done.
-
-
 For version 7.0:
 -   Include many PATCHES:
-    9   Win32 GuI: The print dialog uses a font which doesn't display multi-byte
-	messages.  Include patch from Vipin Aravind?  Update from Yasuhiro
-	Matsumoto.
+    9   Merge in ideas from tutor.txt (Gabriel Zachmann)
+	New version 2004 June 16.
     8   ":winpos" doesn't work.  Patch from Vipin Aravind.
     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)
@@ -51,7 +42,7 @@ For version 7.0:
     8   Add file locking.  Lock a file when starting to edit it with flock() or
 	fcntl().  This patch has advisory file locking while reading/writing
 	the file: ~/vim/patches/kahn_file_locking .
-	Do we still want this/
+	Do we still want this?  Andy doesn't have time to work on it.
     8   Add buffer-local autocommands?  Reduces overhead for autocommands that
 	trigger often (inserting a character, switching mode).
 	    :au Event <buffer> do-something
@@ -64,10 +55,79 @@ For version 7.0:
 	VimResized	    - When the Vim window has been resized (SIGWINCH)
 	  patch from Yakov Lerner, 2003 July 24.
 	  He'll write documentation and send updated patch.
+        InsmodEnter
+	InsmodLeave	    Taro Muraoka, 2004 Jun 16
     -   Include the kvim patch. http://freenux.org/vim/ (Mickael Marchand)
 	Do not add Qtopia yet, it doesn't work very well.
 	Mickael will update the patch before 21st.
-    --- responses above
+    8   Unix: When libcall() fails there is no clear error message.  Johannes
+	Zellner has a patch for this.
+	updated patch 2004 June 16.
+    7   Add the MzScheme interface.  Patch on http://iamphet.nm.ru/scheme/
+	(Sergey Khorev)
+	Alt URL: http://cyber.miem.edu.ru/~iamphet/scheme/mzvim-0.560.tar.gz
+    8   Add patch from Muraoka Taro (Mar 16) to support input method on Mac?
+	New patch 2004 Jun 16
+    8   Add expression-expansion, so that the user can define his own kind of
+	completion.  Patch from Taro Muraoka, 2003 Aug 26.
+	New patch 2004 Jun 16
+    8   Text objects: Add "a'" and 'a"': a single or double quoted string.
+	(Tim Chase) Patch from Taro Muraoka (2003 Dec 16).
+	New patch 2004 Jun 16
+    7   Add "nbsp" in 'listchars'?  Patch from David Blanchet, 2003 Jul 28.
+	again 2004 Jun 16
+    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.
+    9   Add cursor-column highlighting.  Enable it with 'cursorcolumn' option,
+	set highlighting with "CursorColumn" group.  Useful for aligning text.
+	Also cursor-row highlighting.  Patch from Yasuhiro Matsumoto for
+	underlining the cursor line, 2004 Mar 24.  Update 2004 Jun 17
+	Alternatie: when 'number' is set highlight the number of the current
+	line.
+    7   Completion of network shares, patch by Yasuhiro Matsumoto.
+	Update 2004 Jun 17.
+    8   Patches from Peter "Rain Dog" Cucka:
+	- guifont selector (2002 Dec 15)  will send update
+    7   Add an option to set the width of the 'number' column.  Eight
+	positions is often more than needed.  Or adjust the width to the
+	length of the file?
+	Add patch that adds 'numberlen' option. (James Harvey)
+	Other patch with min and max from Emmanuel Renieris (2002 Jul 24)
+	Other patch without an option by Gilles Roy (2002 Jul 25)
+	New patch from Emmanuel Renieris, 2004 Jun 17
+	Needs more work: use one option with one or two numbers
+    7   Be able to call a function while passing on a variable number of
+	arguments:
+	    :function Foo(abc, ...)
+	    :  call Bar(a:abc, a:*)
+	Charles Campbell has a patch for this
+	He lost the patch himself.
+    7   Make ":startinsert" command work directly for functions and scripts?
+	Also make it possible to append (it's difficult at end of line).
+	And add ":startreplace" (patch by Charles Campbell, 2004 Jan 9,
+	http://www.erols.com/astronaut/vim/index.html#Patch)
+	Update 2004 June 18
+    8   Add patch from Charles Campbell to have ":0file!" remove the name of
+	the current buffer. (2003 June 17)
+	Lost the patch himself.
+    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)
+	Update 2004 June 18
+    8   ":hardcopy":
+	- Patch to append CTRL-D to PostScript output (Mike Williams, 2004 Jun
+	  14)
+	- 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.
+    --- 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.
@@ -77,30 +137,10 @@ For version 7.0:
 	Martin Dalecki 2002 Jan 11.
     8   Add a few more command names to the menus.  Patch from Jiri Brezina
 	(28 feb 2002).
-    8   Patch to add 'transparency' option.  Disadvantage: it's slow. (Eckehard
-	Berns, 2004 May 9) http://ecki.to/vim-icns/TransBack.diff
-    8   Patches from "Rain Dog" Cucka:
-	- guifont selector (2002 Dec 15)
-	- scrollbar (2002 Dec 8)
-	- Quartz fonts (2002 Dec 8)
     7   ATTENTION dialog choices are more logical when "Delete it' appears
 	before "Quit".  Patch by Robert Webb, 2004 May 3.
-    8   Unix: When libcall() fails there is no clear error message.  Johannes
-	Zellner has a patch for this.
-    8   ":hardcopy":
-	- Patch to append CTRL-D to PostScript output (Mike Williams, 2004 Jun
-	  14)
-	- support printing multi-byte characters.  Patch from Motonobu
-	  Ichimura.  New (better) patch from Mike Williams (2004 Jan 20)
-    9   Merge in ideas from ~/vim/patches/tutor.txt (Gabriel Zachmann)
-    8   Add patch from Muraoka Taro (Mar 16) to support input method on Mac?
     -   Include flipcase patch: ~/vim/patches/wall.flipcase2 ?  Make it work
 	for multi-byte characters.
-    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.
     -   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
@@ -113,19 +153,6 @@ For version 7.0:
     -   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.
-    9   Add cursor-column highlighting.  Enable it with 'cursorcolumn' option,
-	set highlighting with "CursorColumn" group.  Useful for aligning text.
-	Also cursor-row highlighting.  Patch from Yasuhiro Matsumoto for
-	underlining the cursor line, 2004 Mar 24.
-	Alternatie: when 'number' is set highlight the number of the current
-	line.
-    7   Be able to call a function while passing on a variable number of
-	arguments:
-	    :function Foo(abc, ...)
-	    :  call Bar(a:abc, a:*)
-	Charles Campbell has a patch for this
-    8   Add ":n" to fnamemodify(): normalize path, remove "../" when possible.
-	Aric Blumer has a patch for this.
     8   Add functions:
 	tr(expr, from, to)	translate chars (Patch from Ron Aaron, Apr 8
 				2004)
@@ -136,9 +163,9 @@ For version 7.0:
 				Presser)
 				He will send a new patch.
 				Is this really useful?
-	---
 	multibyteidx(string, idx) Byte index in multi-byte character.
 				Patch by Ilya Sher, 2004 Feb 25
+				Update June 18 (third one).
 	menuprop({name}, {idx}, {what})
 				Get menu property of menu {name} item {idx}.
 				menuprop("", 1, "name") returns "File".
@@ -148,9 +175,15 @@ For version 7.0:
 	mapname({idx}, mode)	return the name of the idx'th mapping.
 				Patch by Ilya Sher, 2004 Mar 4.
 	match({pat}, {string} [,start] [,count]) get index of count'th match
-				Patch by Ilya Sher, 2004 Mar 31
+				Patch by Ilya Sher, 2004 Jun 19
 	find()			find file in 'path' (patch from Johannes
 				Zellner 2001 Dec 20)
+				Update 2004 Jun 16.
+	gettext()		Translate a message.  (Patch from Yasuhiro
+				Matsumoto) How to get the messages into the
+				.po files?
+				Update 2004 Jun 17
+	---
 	realname()		Get user name (first, last, full)
 				user_fullname() patch by Nikolai Weibull, Nov
 				3 2002)
@@ -175,10 +208,6 @@ For version 7.0:
 				(Patch from Yegappan Lakshmanan)
 	raisewin()		raise gvim window (see HierAssist patch for
 				Tcl implementation ~/vim/HierAssist/ )
-	gettext()		Translate a message.  (Patch from Yasuhiro
-				Matsumoto) How to get the messages into the
-				.po files?
-    7   Add "nbsp" in 'listchars'?  Patch from David Blanchet, 2003 Jul 28.
     7   Add patch from Benoit Cerrina to integrate Vim and Perl functions
 	better.  Now also works for Ruby (2001 Nov 10)
     7   Add 'taglistfiles' option, show file name and type when listing matching
@@ -186,37 +215,20 @@ For version 7.0:
     7   Motif: use the menu font consistently.  Patch from Martin Dalecki 2002
 	Jan 11.
     -   Motif: add 3D shading for the menu entries?  Patch from Martin Dalecki.
-    8   Add expression-expansion, so that the user can define his own kind of
-	completion.  Patch from Taro Muraoka, 2003 Aug 26.
-    7   Completion of network shares, patch by Yasuhiro Matsumoto.
     9   When 'autoindent' is set, hitting <CR> twice, while there is text after
 	the cursor, doesn't delete the autoindent in the resulting blank line.
 	(Rich Wales) This is Vi compatible, but it looks like a bug.  Rich has
 	a suggestion for a patch to fix this.
 	e-mail to Rich bounced.
-    7   Make ":startinsert" command work directly for functions and scripts?
-	Also make it possible to append (it's difficult at end of line).
-	And add ":startreplace" (patch by Charles Campbell, 2004 Jan 9,
-	http://www.erols.com/astronaut/vim/index.html#Patch)
-    8   Text objects: Add "a'" and 'a"': a single or double quoted string.
-	(Tim Chase) Patch from Taro Muraoka (2003 Dec 16).
     7   For Visual mode: Command to do a search for the string in the marked
 	area.  Only when fewer than two lines. Use "g/" and "gb".  Patch from
 	Yegappan Lakshmanan.
     7   When 'rightleft' is set, the search pattern should be displayed right
 	to left as well?  See patch of Dec 26. (Nadim Shaikli)
-    8   Add patch from Charles Campbell to have ":0file!" remove the name of
-	the current buffer. (2003 June 17)
-    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)
-    7   Win32: Add patch for 5-button mouse. (Michael Geddes 2001 Nov 26)
     8   Lock all used memory so that it doesn't get swapped to disk (uncrypted).
 	Patch by Jason Holt, 2003 May 23.
     7   Support a stronger encryption.  Jason Holt implemented AES (May 6 2003).
     7   Add ! register, for shell commands. (patch from Grenie)
-    7   Add the MzScheme interface.  Patch on http://iamphet.nm.ru/scheme/
-	(Sergey Khorev)
     8   Make 'statusline' local, so that each window can have a different
 	value.  But should it also be local to a buffer? (Yegappan Lakshmanan
 	has a patch, 2002 feb 15)
@@ -233,21 +245,10 @@ For version 7.0:
     8   Include a connection to an external program through a pipe?  See
 	patches from Felbinger for a mathematica interface.
 	Or use emacs server kind of thing?
-    7   Add an option to set the width of the 'number' column.  Eight
-	positions is often more than needed.  Or adjust the width to the
-	length of the file?
-	Add patch that adds 'numberlen' option. (James Harvey)
-	Other patch with min and max from Emmanuel Renieris (2002 Jul 24)
-	Other patch without an option by Gilles Roy (2002 Jul 25)
     7   Add ":justify" command.  Patch from Vit Stradal 2002 Nov 25.
     -   findmatch() should be adjusted for Lisp.  See remark at
 	get_lisp_indent().  Esp. \( and \) should be skipped. (Dorai Sitaram,
 	incomplete patch Mar 18)
-    8   Sorting of filenames for completion is wrong on systems that ignore
-	case of filenames.  Add 'ignorefncase' option.  When set, case in
-	filenames is ignored for sorting them. Patch by Mike Williams:
-	~/vim/patches/ignorefncase.  Also change what matches?  Or use another
-	option name.
 -   Change ga_room into ga_maxlen, so that it doesn't need to be
     incremented/decremented each time.
 -   new DATA TYPES: lists, dictionaries and function references.
@@ -716,8 +717,9 @@ Amiga:
 
 
 Macintosh:
-9   Mac: The motion type is not stored on the clipboard.  Using ":set
-    clipboard=unnamed" makes "yyp" work characterwise. (Michael DeMoney)
+7   Patch to add 'transparency' option.  Disadvantage: it's slow. (Eckehard
+    Berns, 2004 May 9) http://ecki.to/vim/TransBack-2004-05-09.diff
+    Needs more work.  Add when someone really wants it.
 7   Loading the Perl library only works on OS/X 10.2 or 10.3, never on both.
     Load the Perl library dynamically see Python sources file dynload_mac
     (Jack)
@@ -1745,7 +1747,7 @@ Scrolling:
     bound windows.
 -   Add 'search' option to 'scrollopt' to allow 'scrollbind' windows to
     be bound by regexp searches
--   Add "z>" and "z<": scroll sideways one screenfull. (Campbell)
+-   Add "z>" and "z<": scroll sideways one screenful. (Campbell)
 -   Add option to set the number of lines when not to scroll, instead of the
     fixed number used now (for terminals that scroll slow with a large number
     of lines but not with a single line).
@@ -2971,7 +2973,7 @@ Registers:
 Debug mode:
 7   Add something to enable debugging when a remote message is received.
 8   Add breakpoints for setting an option
-8   Add breakpoits for assigning to a variable.
+8   Add breakpoints for assigning to a variable.
 7   Add a watchpoint in the debug mode: An expression that breaks execution
     when evaluating to non-zero.
 7   Store the history from debug mode in viminfo.
@@ -3361,6 +3363,11 @@ Various improvements:
 -   Support mapping for replace mode and "r" command (Vi doesn't do this)?
 5   Add 'ignorefilecase' option: Ignore case when expanding file names.
     ":e ma<Tab>" would also find "Makefile" on Unix.
+8   Sorting of filenames for completion is wrong on systems that ignore
+    case of filenames.  Add 'ignorefncase' option.  When set, case in
+    filenames is ignored for sorting them. Patch by Mike Williams:
+    ~/vim/patches/ignorefncase.  Also change what matches?  Or use another
+    option name.
 8   Should be able to compile Vim in another directory, with $(srcdir) set to
     where the sources are. Add $(srcdir) in the Makefile in a lot of places.
     (Netherton)
diff --git a/runtime/doc/usr_21.txt b/runtime/doc/usr_21.txt
index a277b1375f..39ee4d25c5 100644
--- a/runtime/doc/usr_21.txt
+++ b/runtime/doc/usr_21.txt
@@ -1,4 +1,4 @@
-*usr_21.txt*	For Vim version 7.0aa.  Last change: 2004 Mar 29
+*usr_21.txt*	For Vim version 7.0aa.  Last change: 2004 Jun 16
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -65,7 +65,7 @@ a look at an overview:
 	:w !{program}		execute {program} and send text to its input
 	:[range]!{program}	filter text through {program}
 
-Notice that the precense of a range before "!{program}" makes a big
+Notice that the presense of a range before "!{program}" makes a big
 difference.  Without it executes the program normally, with the range a number
 of text lines is filtered through the program.
 
diff --git a/runtime/doc/usr_22.txt b/runtime/doc/usr_22.txt
index c355cb31d9..b18b085a7d 100644
--- a/runtime/doc/usr_22.txt
+++ b/runtime/doc/usr_22.txt
@@ -1,4 +1,4 @@
-*usr_22.txt*	For Vim version 7.0aa.  Last change: 2003 Mar 17
+*usr_22.txt*	For Vim version 7.0aa.  Last change: 2004 Jun 16
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -95,7 +95,7 @@ The following commands are used to display other information:
 	s		Use the field the cursor is in to sort on.  First
 			display the size and date with i.  Then Move the
 			cursor to the size of any file and press s.  The files
-			will now be sorted on size.  Press s wile the cursor
+			will now be sorted on size.  Press s while the cursor
 			is on a date and the items will be sorted on date.
 	r		reverse the sorting order (either size or date)
 
diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt
index 8753bfa07d..537f15d1ca 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 14
+*various.txt*   For Vim version 7.0aa.  Last change: 2004 Jun 18
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -571,9 +571,11 @@ g CTRL-A		Only when Vim was compiled with MEM_PROFILING defined
 			current file.  See |help-translated|.
 
 							*:helpg* *:helpgrep*
-:helpg[rep] {pattern}
+:helpg[rep] {pattern}[@xx]
 			Search all help text files and make a list of lines
 			in which {pattern} matches.  Jumps to the first match.
+			The optional [@xx] specifies that only matches in the
+			"xx" language are to be found.
 			You can navigate through the matches with the
 			|quickfix| commands, e.g., |:cnext| to jump to the
 			next one.  Or use |:cwindow| to get the list of
@@ -584,6 +586,8 @@ g CTRL-A		Only when Vim was compiled with MEM_PROFILING defined
 				:helpgrep Uganda
 <			Example for case ignoring search: >
 				:helpgrep uganda\c
+<			Example for searching in French help: >
+				:helpgrep backspace@fr
 <			Cannot be followed by another command, everything is
 			used as part of the pattern.  But you can use
 			|:execute| when needed.
diff --git a/runtime/doc/version5.txt b/runtime/doc/version5.txt
index 4f53463cbc..bc2f45ef51 100644
--- a/runtime/doc/version5.txt
+++ b/runtime/doc/version5.txt
@@ -1,4 +1,4 @@
-*version5.txt*  For Vim version 7.0aa.  Last change: 2004 Jan 17
+*version5.txt*  For Vim version 7.0aa.  Last change: 2004 Jun 16
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1517,7 +1517,7 @@ Menus defined in the .vimrc were removed when GUI started.
 
 Crash when pasting with the mouse in insert mode.
 
-Crash whith ":unmenu *" in .gvimrc for Athena.
+Crash with ":unmenu *" in .gvimrc for Athena.
 
 "5>>" shifted 5 lines 5 times, instead of 1 time.
 
@@ -2026,7 +2026,7 @@ $vim/macros".  If no initial dir specified for ":browse e", can be compiled to
 either begin in the current directory, or that of the current buffer. (Negri
 and Kahn)
 Added the 'browsedir' option, with value "current", "last" or "buffer".  Tells
-wether a browse dialog starts in last used dir, dir of current buffer, or
+whether a browse dialog starts in last used dir, dir of current buffer, or
 current dir.  ":browse w" is unaffected.
 The default menus have been changed to use the ":browse" command.
 
@@ -3667,8 +3667,8 @@ and starts Vim on it.  "make install" now also copies the tutor.
 In the output of ":clist" the current entry is highlighted, with the 'i'
 highlighting (same as used for 'incsearch').
 
-For the ":clist" command, you can scroll backwards with "b" (one screenfull),
-"u" (half a screenfull) and "k" (one line).
+For the ":clist" command, you can scroll backwards with "b" (one screenful),
+"u" (half a screenful) and "k" (one line).
 
 Multi-byte support:
 - X-input method for multi-byte characters.  And various fixes for multi-byte
@@ -4582,7 +4582,7 @@ buffers, only beep and continue with the insert command.
 Dos and Win32 console: Setting t_me didn't work to get another color.  Made
 this works backwards compatible.
 
-For turkish (LANG = "tr") uppercase 'i' is not an 'I'.  Use ASCII uppercase
+For Turkish (LANG = "tr") uppercase 'i' is not an 'I'.  Use ASCII uppercase
 translation in vim_strup() to avoid language problems. (Komur)
 
 Unix: Use usleep() or nanosleep() for mch_delay() when available.  Hopefully
@@ -7578,7 +7578,7 @@ Fixed compiling under NeXT. (Jeroen C.M. Goudswaard)
 
 optwin.vim gave an error when used in Vi compatible mode ('cpo' contains 'C').
 
-Tcl interpreter: "buffer" command didn't check for precense of an argument.
+Tcl interpreter: "buffer" command didn't check for presense of an argument.
 (Dave Bodenstab)
 
 dosinst.c: Added checks for too long file name.
diff --git a/runtime/doc/version6.txt b/runtime/doc/version6.txt
index d97cf92a85..611a782875 100644
--- a/runtime/doc/version6.txt
+++ b/runtime/doc/version6.txt
@@ -1,4 +1,4 @@
-*version6.txt*  For Vim version 7.0aa.  Last change: 2004 Jun 07
+*version6.txt*  For Vim version 7.0aa.  Last change: 2004 Jun 16
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1764,7 +1764,7 @@ Motif: (Martin Dalecki)
 - Use XPM bitmaps for the icon when possible.  Use the Solaris XpmP.h include
   file when it's available.
 - Change the shadow of the toolbar items to get a visual feedback of it being
-  pressed on non-LessTiff.
+  pressed on non-LessTif.
 - Use gadgets instead of windows for some items for speed.
 
 Command line completion:
@@ -6645,7 +6645,7 @@ Solution:   Don't map CTRL-N after CTRL-X CTRL-N.  Same for CTRL-P.
 Files:	    src/getchar.c
 
 Patch 6.1.031
-Problem:    Cygwin: Xxd could read a file in text mode intead of binary mode.
+Problem:    Cygwin: Xxd could read a file in text mode instead of binary mode.
 Solution:   Use "rb" or "rt" when needed. (Pavol Juhas)
 Files:	    src/xxd/xxd.c
 
@@ -6947,7 +6947,7 @@ Solution:   Fix explorer plugin and key modifiers. (Axel Kielhorn)
 Files:	    src/edit.c, src/feature.h, src/gui_mac.c, src/os_mac.c
 
 Patch 6.1.077
-Problem:    On a Debian systEm wht ACL linking fails. (Lubomir Host)
+Problem:    On a Debian system with ACL linking fails. (Lubomir Host)
 Solution:   When the "acl" library is used, check if the "attr" library is
 	    present and use it.
 Files:	    src/auto/configure, src/configure.in, src/link.sh
@@ -7229,7 +7229,7 @@ Files:	    src/move.c
 
 Patch 6.1.121 (depends on 6.1.098)
 Problem:    When starting Select mode from Insert mode, then using the Paste
-	    menu entry, the cursor is left before the laste pasted character.
+	    menu entry, the cursor is left before the last pasted character.
 	    (Mario Schweigler)
 Solution:   Set the cursor for Insert mode one character to the right.
 Files:	    runtime/menu.vim
@@ -7963,7 +7963,7 @@ Patch 6.1.231
 Problem:    Double clicking with the mouse to select a word does not work for
 	    multi-byte characters.
 Solution:   Use vim_iswordc() instead of vim_isIDc().  This means 'iskeyword'
-	    is used intead of 'isident'.  Also fix that mixing ASCII with
+	    is used instead of 'isident'.  Also fix that mixing ASCII with
 	    multi-byte word characters doesn't work, the mouse class for
 	    punctuation and word characters was mixed up.
 Files:	    src/normal.c
@@ -10262,7 +10262,7 @@ Files:	    src/ex_cmds.c
 
 Patch 6.2.053
 Problem:    Prototype for bzero() doesn't match most systems.
-Solution:   Use "void *" instead of "char *" and "size_t" intead of "int".
+Solution:   Use "void *" instead of "char *" and "size_t" instead of "int".
 Files:	    src/osdef1.h.in
 
 Patch 6.2.054
@@ -10534,7 +10534,7 @@ Files:	    src/buffer.c
 Patch 6.2.096
 Problem:    Win32: ":let @* = ''" put a newline on the clipboard. (Klaus
 	    Bosau)
-Solution:   Put zero bytes on the clibpoard for an empty string.
+Solution:   Put zero bytes on the clipboard for an empty string.
 Files:	    src/ops.c
 
 Patch 6.2.097
@@ -11339,7 +11339,7 @@ Files:	    src/fileio.c, src/netbeans.c, src/proto/netbeans.pro,
 	    runtime/doc/netbeans.txt, runtime/doc/tags
 
 Patch 6.2.216 (after 6.2.206)
-Problem:    Multi-byte characters stil cannot be used as hotkeys in a console
+Problem:    Multi-byte characters still cannot be used as hotkeys in a console
 	    dialog.  (Mattias Erkisson)
 Solution:   Make get_keystroke() handle multi-byte characters.
 Files:	    src/misc1.c
@@ -11376,7 +11376,7 @@ Files:	    src/ex_cmds.h
 Patch 6.2.222
 Problem:    Using "--remote" several times on a row only opens some of the
 	    files. (Dany St-Amant)
-Solution:   Don't delete all typehead when the server receives a command from
+Solution:   Don't delete all typeahead when the server receives a command from
 	    a client, only delete typed characters.
 Files:	    src/main.c
 
@@ -11874,7 +11874,7 @@ Problem:    When in debug mode, receiving a message from a remote client
 	    causes a crash.  Evaluating an expression causes Vim to wait for
 	    "cont" to be typed, without a prompt.  (Hari Krishna Dara)
 Solution:   Disable debugging when evaluating an expression for a client.
-	    (Michael Geddes)  Don't try reading into the typehead buffer when
+	    (Michael Geddes)  Don't try reading into the typeahead buffer when
 	    it may have been filled in another way.
 Files:	    src/ex_getln.c, src/getchar.c, src/if_xcmdsrv.c, src/main.c,
 	    src/misc1.c, src/proto/getchar.pro, src/proto/main.pro,
@@ -12556,7 +12556,7 @@ Patch 6.2.398 (extra)
 Problem:    Win32 console: no extra key modifiers are supported.
 Solution:   Encode the modifiers into the input stream.  Also fix that special
 	    keys are converted and stop working when 'tenc' is set.  Also fix
-	    that when 'tenc' is intialized the input and output conversion is
+	    that when 'tenc' is initialized the input and output conversion is
 	    not setup properly until 'enc' or 'tenc' is set.
 Files:	    src/getchar.c, src/option.c, src/os_win32.c
 
@@ -13081,7 +13081,7 @@ Patch 6.2.476
 Problem:    When reloading a hidden buffer changed outside of Vim and the
 	    current buffer is read-only, the reloaded buffer becomes
 	    read-only.  (Hari Krishna Dara)
-Solution:   Save the 'readonly' flag of the realoaded buffer instead of the
+Solution:   Save the 'readonly' flag of the reloaded buffer instead of the
 	    current buffer.
 Files:	    src/fileio.c
 
diff --git a/runtime/indent/vb.vim b/runtime/indent/vb.vim
index 515e4dc6b6..b570b56b85 100644
--- a/runtime/indent/vb.vim
+++ b/runtime/indent/vb.vim
@@ -1,7 +1,7 @@
 " Vim indent file
 " Language:	VisualBasic (ft=vb) / Basic (ft=basic) / SaxBasic (ft=vb)
 " Author:	Johannes Zellner <johannes@zellner.org>
-" Last Change:	Tue, 27 Apr 2004 14:54:59 CEST
+" Last Change:	Fri, 18 Jun 2004 07:22:42 CEST
 
 if exists("b:did_indent")
     finish
@@ -10,7 +10,7 @@ let b:did_indent = 1
 
 setlocal indentexpr=VbGetIndent(v:lnum)
 setlocal indentkeys&
-setlocal indentkeys+==~else,=~elseif,=~end,=~wend,=~case,=~next,=~select,~=loop,<:>
+setlocal indentkeys+==~else,=~elseif,=~end,=~wend,=~case,=~next,=~select,=~loop,<:>
 
 " Only define the function once.
 if exists("*VbGetIndent")
diff --git a/runtime/plugin/netrw.vim b/runtime/plugin/netrw.vim
index d3058c55dd..fdb6d27939 100644
--- a/runtime/plugin/netrw.vim
+++ b/runtime/plugin/netrw.vim
@@ -1,7 +1,7 @@
 " netrw.vim: (global plugin) Handles file transfer across a network
-" Last Change:	Jun 04, 2004
+" Last Change:	Jun 18, 2004
 " Maintainer:	Charles E. Campbell, Jr. PhD   <drchipNOSPAM at campbellfamily.biz>
-" Version:	44
+" Version:	46
 " License:	Vim License  (see vim's :help license)
 "
 "  But be doers of the word, and not only hearers, deluding your own selves
@@ -12,7 +12,7 @@
 if exists("loaded_netrw") || &cp
   finish
 endif
-let loaded_netrw = "v44"
+let loaded_netrw = "v46"
 let s:save_cpo   = &cpo
 set cpo&vim
 
@@ -68,6 +68,20 @@ if !exists("g:netrw_fetch_cmd")
   let g:netrw_fetch_cmd	= ""
  endif
 endif
+if !exists("g:netrw_list_cmd")
+ if executable("ssh")
+  let g:netrw_list_cmd= "ssh HOSTNAME ls -Fa"
+ else
+"  call Decho("ssh is not executable, can't do netlist")
+  let g:netrw_list_cmd= ""
+ endif
+endif
+if exists("g:netrw_silent") && g:netrw_silent != 0
+ let g:netrw_silentxfer= "silent "
+else
+ let g:netrw_silentxfer= ""
+endif
+ 
 
 if has("win32")
   \ && exists("g:netrw_use_nt_rcp")
@@ -97,7 +111,7 @@ if version >= 600
   endif
   au BufReadCmd  ftp://*,rcp://*,scp://*,http://*,dav://*,rsync://*,sftp://*	exe "doau BufReadPre ".expand("<afile>")|exe "Nread 0r ".expand("<afile>")|exe "doau BufReadPost ".expand("<afile>")
   au FileReadCmd ftp://*,rcp://*,scp://*,http://*,dav://*,rsync://*,sftp://*	exe "doau BufReadPre ".expand("<afile>")|exe "Nread "   .expand("<afile>")|exe "doau BufReadPost ".expand("<afile>")
-  au BufWriteCmd ftp://*,rcp://*,scp://*,dav://*,rsync://*,sftp://*		exe "Nwrite "  .expand("<afile>")|call <SID>NetRestorePosn()
+  au BufWriteCmd ftp://*,rcp://*,scp://*,dav://*,rsync://*,sftp://*    		exe "Nwrite "  .expand("<afile>")|call <SID>NetRestorePosn()
  augroup END
 endif
 
@@ -151,9 +165,6 @@ fun! s:NetRead(...)
  " save options
  call s:NetOptionSave()
 
- " get name of a temporary file
- let tmpfile= tempname()
-
  " Special Exception: if a file is named "0r", then
  "		      "0r" will be used to read the
  "		      following files instead of "r"
@@ -168,6 +179,10 @@ fun! s:NetRead(...)
   let ichoice = 1
  endif
 
+ " get name of a temporary file
+ let tmpfile= tempname()
+
+" call Decho("ichoice=".ichoice." readcmd<".readcmd.">")
  while ichoice <= a:0
 
   " attempt to repeat with previous host-file-etc
@@ -178,7 +193,7 @@ fun! s:NetRead(...)
 
   else
    exe "let choice= a:" . ichoice
-"   call Decho("NetRead1: choice<" . choice . ">")
+"   call Decho("no lastfile: choice<" . choice . ">")
 
    " Reconstruct Choice if choice starts with '"'
    if match(choice,"?") == 0
@@ -219,13 +234,13 @@ fun! s:NetRead(...)
     endif
    endif
   endif
-"  call Decho("NetRead2: choice<" . choice . ">")
+"  call Decho("choice<" . choice . ">")
   let ichoice= ichoice + 1
 
   " fix up windows urls
   if has("win32")
    let choice = substitute(choice,'\\','/','ge')
-"   call Decho("fixing up windows url to <".choice.">")
+"   call Decho("fixing up windows url to <".choice."> tmpfile<".tmpfile)
    exe 'lcd ' . fnamemodify(tmpfile,':h')
    let tmpfile = fnamemodify(tmpfile,':t')
   endif
@@ -233,12 +248,24 @@ fun! s:NetRead(...)
   " Determine method of read (ftp, rcp, etc)
   call s:NetMethod(choice)
 
+  " Check if NetList() should be handling this request
+"  call Decho("checking if netlist: choice<".choice."> netrw_list_cmd<".g:netrw_list_cmd.">")
+  if choice =~ "^.*/$"
+   if strlen(g:netrw_list_cmd) > 0
+    call s:NetList(choice)
+"    call Dret("NetRead")
+   else
+    echoerr "sorry, can't do a remote listing; ssh isn't executable"
+   endif
+   return
+  endif
+
   " ============
   " Perform Read
   " ============
 
   ".........................................
-  " rcp:  Method #1
+  " rcp:  NetRead Method #1
   if  b:netrw_method == 1 " read with rcp
 "   call Decho("read via rcp (method #1)")
   " ER: noting done with g:netrw_uid yet?
@@ -260,12 +287,12 @@ fun! s:NetRead(...)
    endif
   endif
 "  call Decho("executing: !".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".uid_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile)
-  exe "!".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".uid_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile
-  let result		= s:NetGetFile(readcmd, tmpfile, b:netrw_method)
+  exe g:netrw_silentxfer."!".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".uid_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile
+  let result           = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
   let b:netrw_lastfile = choice
 
   ".........................................
-  " ftp + <.netrc>:  Method #2
+  " ftp + <.netrc>:  NetRead Method #2
   elseif b:netrw_method  == 2		" read with ftp + <.netrc>
 "   call Decho("read via ftp+.netrc (method #2)")
     let netrw_fname= b:netrw_fname
@@ -275,10 +302,10 @@ fun! s:NetRead(...)
     exe "put ='get ".netrw_fname." ".tmpfile."'"
     if exists("g:netrw_port") && g:netrw_port != ""
 "     call Decho("executing: %!".g:netrw_ftp_cmd." -i ".g:netrw_machine." ".g:netrw_port)
-     exe "%!".g:netrw_ftp_cmd." -i ".g:netrw_machine." ".g:netrw_port
+     exe g:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i ".g:netrw_machine." ".g:netrw_port
     else
 "     call Decho("executing: %!".g:netrw_ftp_cmd." -i ".g:netrw_machine)
-     exe "%!".g:netrw_ftp_cmd." -i ".g:netrw_machine
+     exe g:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i ".g:netrw_machine
     endif
     " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
     if getline(1) !~ "^$"
@@ -289,7 +316,7 @@ fun! s:NetRead(...)
     let b:netrw_lastfile = choice
 
   ".........................................
-  " ftp + machine,id,passwd,filename:  Method #3
+  " ftp + machine,id,passwd,filename:  NetRead Method #3
   elseif b:netrw_method == 3		" read with ftp + machine, id, passwd, and fname
    " Construct execution string (four lines) which will be passed through filter
 "  call Decho("read via ftp+mipf (method #3)")
@@ -321,7 +348,7 @@ fun! s:NetRead(...)
 "   call Decho('performing ftp -i -n')
    norm 1Gdd
 "   call Decho("executing: %!".g:netrw_ftp_cmd." -i -n")
-   exe "%!".g:netrw_ftp_cmd." -i -n"
+   exe g:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i -n"
    " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
    if getline(1) !~ "^$"
     echoerr getline(1)
@@ -331,7 +358,7 @@ fun! s:NetRead(...)
    let b:netrw_lastfile = choice
 
   ".........................................
-  " scp: Method #4
+  " scp: NetRead Method #4
   elseif     b:netrw_method  == 4	" read with scp
 "   call Decho("read via scp (method #4)")
    if exists("g:netrw_port") && g:netrw_port != ""
@@ -342,10 +369,10 @@ fun! s:NetRead(...)
    if g:netrw_cygwin == 1
     let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
 "    call Decho("executing: !".g:netrw_scp_cmd.useport." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile)
-    exe "!".g:netrw_scp_cmd.useport." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile
+    exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile
    else
 "    call Decho("executing: !".g:netrw_scp_cmd.useport." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile)
-    exe "!".g:netrw_scp_cmd.useport." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile
+    exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile
    endif
    let result		= s:NetGetFile(readcmd, tmpfile, b:netrw_method)
    let b:netrw_lastfile = choice
@@ -361,7 +388,7 @@ fun! s:NetRead(...)
    if match(b:netrw_fname,"#") == -1
     " simple wget
 "    call Decho("executing: !".g:netrw_http_cmd." ".tmpfile." http://".g:netrw_machine.escape(b:netrw_fname,' ?&'))
-    exe "!".g:netrw_http_cmd." ".tmpfile." http://".g:netrw_machine.escape(b:netrw_fname,' ?&')
+    exe g:netrw_silentxfer."!".g:netrw_http_cmd." ".tmpfile." http://".g:netrw_machine.escape(b:netrw_fname,' ?&')
     let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
 
    else
@@ -371,7 +398,7 @@ fun! s:NetRead(...)
 "	call Decho("netrw_html<".netrw_html.">")
 "	call Decho("netrw_tag <".netrw_tag.">")
 "    call Decho("executing: !".g:netrw_http_cmd." ".tmpfile." http://".g:netrw_machine.netrw_html)
-    exe "!".g:netrw_http_cmd." ".tmpfile." http://".g:netrw_machine.netrw_html
+    exe g:netrw_silentxfer."!".g:netrw_http_cmd." ".tmpfile." http://".g:netrw_machine.netrw_html
     let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
 "    call Decho('<\s*a\s*name=\s*"'.netrw_tag.'"/')
     exe 'norm! 1G/<\s*a\s*name=\s*"'.netrw_tag.'"/'."\<CR>"
@@ -379,7 +406,7 @@ fun! s:NetRead(...)
    let b:netrw_lastfile = choice
 
   ".........................................
-  " cadaver: Method #6
+  " cadaver: NetRead Method #6
   elseif     b:netrw_method  == 6	" read with cadaver
 "   call Decho("read via cadaver (method #6)")
 
@@ -404,28 +431,28 @@ fun! s:NetRead(...)
    " perform cadaver operation:
    norm 1Gdd
 "   call Decho("executing: %!".g:netrw_dav_cmd)
-   exe "%!".g:netrw_dav_cmd
+   exe g:netrw_silentxfer."%!".g:netrw_dav_cmd
    bd!
    let result		= s:NetGetFile(readcmd, tmpfile, b:netrw_method)
    let b:netrw_lastfile = choice
 
   ".........................................
-  " rsync: Method #7
+  " rsync: NetRead Method #7
   elseif     b:netrw_method  == 7	" read with rsync
 "   call Decho("read via rsync (method #7)")
    if g:netrw_cygwin == 1
     let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
 "    call Decho("executing: !".g:netrw_rsync_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile)
-    exe "!".g:netrw_rsync_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile
+    exe g:netrw_silentxfer."!".g:netrw_rsync_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile
    else
 "    call Decho("executing: !".g:netrw_rsync_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile)
-    exe "!".g:netrw_rsync_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile
+    exe g:netrw_silentxfer."!".g:netrw_rsync_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile
    endif
    let result		= s:NetGetFile(readcmd,tmpfile, b:netrw_method)
    let b:netrw_lastfile = choice
 
   ".........................................
-  " fetch: Method #8
+  " fetch: NetRead Method #8
   "    fetch://[user@]host[:http]/path
   elseif     b:netrw_method  == 8	" read with fetch
    if g:netrw_fetch_cmd == ""
@@ -441,17 +468,17 @@ fun! s:NetRead(...)
 
    if exists("g:netrw_uid") && g:netrw_uid != "" && exists("g:netrw_passwd") && g:netrw_passwd != ""
 "    call Decho("executing: !".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_uid.':'.g:netrw_passwd.'@'.g:netrw_machine."/".escape(b:netrw_fname,' ?&'))
-    exe "!".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_uid.':'.g:netrw_passwd.'@'.g:netrw_machine."/".escape(b:netrw_fname,' ?&')
+    exe g:netrw_silentxfer."!".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_uid.':'.g:netrw_passwd.'@'.g:netrw_machine."/".escape(b:netrw_fname,' ?&')
    else
 "    call Decho("executing: !".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_machine."/".escape(b:netrw_fname,' ?&'))
-    exe "!".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_machine."/".escape(b:netrw_fname,' ?&')
+    exe g:netrw_silentxfer."!".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_machine."/".escape(b:netrw_fname,' ?&')
    endif
 
    let result		= s:NetGetFile(readcmd,tmpfile, b:netrw_method)
    let b:netrw_lastfile = choice
 
   ".........................................
-  " sftp: Method #9
+  " sftp: NetRead Method #9
   elseif     b:netrw_method  == 9	" read with sftp
 "   call Decho("read via sftp (method #4)")
    if g:netrw_cygwin == 1
@@ -461,7 +488,7 @@ fun! s:NetRead(...)
     exe "!".g:netrw_sftp_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile
    else
 "    call Decho("executing: !".g:netrw_sftp_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile)
-    exe "!".g:netrw_sftp_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile
+    exe g:netrw_silentxfer."!".g:netrw_sftp_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile
    endif
    let result		= s:NetGetFile(readcmd, tmpfile, b:netrw_method)
    let b:netrw_lastfile = choice
@@ -488,7 +515,7 @@ endfun
 " ------------------------------------------------------------------------
 " NetGetFile: Function to read file "fname" with command "readcmd". {{{1
 fun! s:NetGetFile(readcmd, fname, method)
-"  call Dfunc("NetGetFile(readcmd<".a:readcmd.">,fname<".a:fname."> method<".a:method.">)")
+""  call Dfunc("NetGetFile(readcmd<".a:readcmd.">,fname<".a:fname."> method<".a:method.">)")
 
  if exists("*NetReadFixup")
   " for the use of NetReadFixup (not otherwise used internally)
@@ -499,14 +526,14 @@ fun! s:NetGetFile(readcmd, fname, method)
  if &term == "win32"
   if &shell == "bash"
    let fname=a:fname
-"  call Decho("(win32 && bash) fname<".fname.">")
+""  call Decho("(win32 && bash) fname<".fname.">")
   else
    let fname=substitute(a:fname,'/','\\\\','ge')
-"  call Decho("(win32 && !bash) fname<".fname.">")
+""  call Decho("(win32 && !bash) fname<".fname.">")
   endif
  else
   let fname= a:fname
-"  call Decho("(copied) fname<".fname.">")
+""  call Decho("(copied) fname<".fname.">")
  endif
 
  " get the file, but disable undo when reading a new buffer
@@ -576,21 +603,21 @@ fun! s:NetGetFile(readcmd, fname, method)
   else
    let line2= line("$") - line2
   endif
-"  call Decho("calling NetReadFixup(method<".a:method."> line1=".line1." line2=".line2.")")
+""  call Decho("calling NetReadFixup(method<".a:method."> line1=".line1." line2=".line2.")")
   call NetReadFixup(a:method, line1, line2)
  endif
-" call Decho("readcmd<".a:readcmd."> cmdarg<".v:cmdarg."> fname<".a:fname."> readable=".filereadable(a:fname))
+"" call Decho("readcmd<".a:readcmd."> cmdarg<".v:cmdarg."> fname<".a:fname."> readable=".filereadable(a:fname))
 
 " insure that we have the right filetype and that its being displayed
  filetype detect
  redraw!
-" call Dret("NetGetFile")
+"" call Dret("NetGetFile")
 endfun
 
 " ------------------------------------------------------------------------
 " NetWrite: responsible for writing a file over the net {{{1
 fun! s:NetWrite(...) range
-" call Dfunc("NetWrite(a:0=".a:0.")")
+"" call Dfunc("NetWrite(a:0=".a:0.")")
 
  " option handling
  let mod= 0
@@ -612,7 +639,7 @@ fun! s:NetWrite(...) range
 
   " attempt to repeat with previous host-file-etc
   if exists("b:netrw_lastfile") && a:0 == 0
-"   call Decho("using b:netrw_lastfile<" . b:netrw_lastfile . ">")
+""   call Decho("using b:netrw_lastfile<" . b:netrw_lastfile . ">")
    let choice = b:netrw_lastfile
    let ichoice= ichoice + 1
   else
@@ -647,7 +674,7 @@ fun! s:NetWrite(...) range
       let ichoice    = ichoice + 1
       if choice > a:0
        echoerr "Unbalanced string in filename '". wholechoice ."'"
-"       call Dret("NetWrite")
+""       call Dret("NetWrite")
        return
       endif
       let choice= a:{ichoice}
@@ -656,7 +683,7 @@ fun! s:NetWrite(...) range
     endif
    endif
   endif
-"  call Decho("choice<" . choice . ">")
+""  call Decho("choice<" . choice . ">")
   let ichoice= ichoice + 1
 
   " fix up windows urls
@@ -675,9 +702,9 @@ fun! s:NetWrite(...) range
   " =============
 
   ".........................................
-  " rcp: Method #1
+  " rcp: NetWrite Method #1
   if  b:netrw_method == 1	" write with rcp
-"	Decho "write via rcp (method #1)"
+""	Decho "write via rcp (method #1)"
    if s:netrw_has_nt_rcp == 1
     if exists("g:netrw_uid") &&  ( g:netrw_uid != "" )
      let uid_machine = g:netrw_machine .'.'. g:netrw_uid
@@ -691,26 +718,26 @@ fun! s:NetWrite(...) range
      let uid_machine = g:netrw_machine
     endif
    endif
-"   call Decho("executing: !".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".tmpfile." ".uid_machine.":".escape(b:netrw_fname,' ?&'))
-   exe "!".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".tmpfile." ".uid_machine.":".escape(b:netrw_fname,' ?&')
+""   call Decho("executing: !".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".tmpfile." ".uid_machine.":".escape(b:netrw_fname,' ?&'))
+   exe g:netrw_silentxfer."!".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".tmpfile." ".uid_machine.":".escape(b:netrw_fname,' ?&')
    let b:netrw_lastfile = choice
 
   ".........................................
-  " ftp + <.netrc>: Method #2
+  " ftp + <.netrc>: NetWrite Method #2
   elseif b:netrw_method == 2	" write with ftp + <.netrc>
    let netrw_fname = b:netrw_fname
    new
    set ff=unix
    exe "put ='".g:netrw_ftpmode."'"
-"   call Decho(" NetWrite: put ='".g:netrw_ftpmode."'")
+""   call Decho(" NetWrite: put ='".g:netrw_ftpmode."'")
    exe "put ='put ".tmpfile." ".netrw_fname."'"
-"   call Decho("put ='put ".tmpfile." ".netrw_fname."'")
+""   call Decho("put ='put ".tmpfile." ".netrw_fname."'")
    if exists("g:netrw_port") && g:netrw_port != ""
-"    call Decho("executing: %!".g:netrw_ftp_cmd." -i ".g:netrw_machine." ".g:netrw_port)
-    exe "%!".g:netrw_ftp_cmd." -i ".g:netrw_machine." ".g:netrw_port
+""    call Decho("executing: %!".g:netrw_ftp_cmd." -i ".g:netrw_machine." ".g:netrw_port)
+    exe g:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i ".g:netrw_machine." ".g:netrw_port
    else
-"    call Decho("executing: %!".g:netrw_ftp_cmd." -i ".g:netrw_machine)
-    exe "%!".g:netrw_ftp_cmd." -i ".g:netrw_machine
+""    call Decho("executing: %!".g:netrw_ftp_cmd." -i ".g:netrw_machine)
+    exe g:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i ".g:netrw_machine
    endif
    " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
    if getline(1) !~ "^$"
@@ -721,7 +748,7 @@ fun! s:NetWrite(...) range
    let b:netrw_lastfile = choice
 
   ".........................................
-  " ftp + machine, id, passwd, filename: Method #3
+  " ftp + machine, id, passwd, filename: NetWrite Method #3
   elseif b:netrw_method == 3	" write with ftp + machine, id, passwd, and fname
    let netrw_fname= b:netrw_fname
    new
@@ -745,10 +772,10 @@ fun! s:NetWrite(...) range
    " -i       : turns off interactive prompting from ftp
    " -n  unix : DON'T use <.netrc>, even though it exists
    " -n  win32: quit being obnoxious about password
-"   call Decho('performing ftp -i -n')
+""   call Decho('performing ftp -i -n')
    norm 1Gdd
-"   call Decho("executing: %!".g:netrw_ftp_cmd." -i -n")
-   exe "%!".g:netrw_ftp_cmd." -i -n"
+""   call Decho("executing: %!".g:netrw_ftp_cmd." -i -n")
+   exe g:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i -n"
    " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
    if getline(1) !~ "^$"
     echoerr getline(1)
@@ -757,7 +784,7 @@ fun! s:NetWrite(...) range
    bd!
 
   ".........................................
-  " scp: Method #4
+  " scp: NetWrite Method #4
   elseif     b:netrw_method == 4	" write with scp
    if exists("g:netrw_port") && g:netrw_port != ""
     let useport= " -P ".g:netrw_port
@@ -766,23 +793,23 @@ fun! s:NetWrite(...) range
    endif
    if g:netrw_cygwin == 1
     let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
-"    call Decho("executing: !".g:netrw_scp_cmd.useport." ".cygtmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&'))
-    exe "!".g:netrw_scp_cmd.useport." ".cygtmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')
+""    call Decho("executing: !".g:netrw_scp_cmd.useport." ".cygtmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&'))
+    exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".cygtmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')
    else
-"    call Decho("executing: !".g:netrw_scp_cmd.useport." ".tmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&'))
-    exe "!".g:netrw_scp_cmd.useport." ".tmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')
+""    call Decho("executing: !".g:netrw_scp_cmd.useport." ".tmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&'))
+    exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".tmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')
    endif
    let b:netrw_lastfile = choice
 
   ".........................................
-  " http: Method #5
+  " http: NetWrite Method #5
   elseif     b:netrw_method == 5
    echoerr "***warning*** currently <netrw.vim> does not support writing using http:"
 
   ".........................................
-  " dav: Method #6
+  " dav: NetWrite Method #6
   elseif     b:netrw_method == 6	" write with cadaver
-"   call Decho("write via cadaver (method #6)")
+""   call Decho("write via cadaver (method #6)")
 
    " Construct execution string (four lines) which will be passed through filter
    let netrw_fname= b:netrw_fname
@@ -804,26 +831,26 @@ fun! s:NetWrite(...) range
 
    " perform cadaver operation:
    norm 1Gdd
-"   call Decho("executing: %!".g:netrw_dav_cmd)
-   exe "%!".g:netrw_dav_cmd
+""   call Decho("executing: %!".g:netrw_dav_cmd)
+   exe g:netrw_silentxfer."%!".g:netrw_dav_cmd
    bd!
    let b:netrw_lastfile = choice
 
   ".........................................
-  " rsync: Method #7
+  " rsync: NetWrite Method #7
   elseif     b:netrw_method == 7	" write with rsync
    if g:netrw_cygwin == 1
     let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
-"    call Decho("executing: !".g:netrw_rsync_cmd." ".cygtmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&'))
-    exe "!".g:netrw_rsync_cmd." ".cygtmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')
+""    call Decho("executing: !".g:netrw_rsync_cmd." ".cygtmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&'))
+    exe g:netrw_silentxfer."!".g:netrw_rsync_cmd." ".cygtmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')
    else
-"    call Decho("executing: !".g:netrw_rsync_cmd." ".tmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&'))
-    exe "!".g:netrw_rsync_cmd." ".tmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')
+""    call Decho("executing: !".g:netrw_rsync_cmd." ".tmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&'))
+    exe g:netrw_silentxfer."!".g:netrw_rsync_cmd." ".tmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')
    endif
    let b:netrw_lastfile = choice
 
   ".........................................
-  " scp: Method #9
+  " scp: NetWrite Method #9
   elseif     b:netrw_method == 9	" write with sftp
    let netrw_fname= b:netrw_fname
    if exists("g:netrw_uid") &&  ( g:netrw_uid != "" )
@@ -835,8 +862,8 @@ fun! s:NetWrite(...) range
    set ff=unix
    put ='put '.tmpfile.' '.netrw_fname
    norm 1Gdd
-"   call Decho("executing: %!".g:netrw_sftp_cmd.' '.uid_machine)
-   exe "%!".g:netrw_sftp_cmd.' '.uid_machine
+""   call Decho("executing: %!".g:netrw_sftp_cmd.' '.uid_machine)
+   exe g:netrw_silentxfer."%!".g:netrw_sftp_cmd.' '.uid_machine
    bd!
    let b:netrw_lastfile= choice
 
@@ -847,7 +874,7 @@ fun! s:NetWrite(...) range
  endwhile
 
  " cleanup
-" call Decho("cleanup")
+"" call Decho("cleanup")
  let result=delete(tmpfile)
  call s:NetOptionRestore()
 
@@ -855,10 +882,145 @@ fun! s:NetWrite(...) range
   let &mod= mod	" usually equivalent to set nomod
  endif
 
-" call Dret("NetWrite")
+"" call Dret("NetWrite")
 endfun
 " end of NetWrite
 
+" ------------------------------------------------------------------------
+" NetList: This function uses the command in g:netrw_list_cmd to get a list {{{1
+"  of the contents of a remote directory.  It is assumed that the
+"  g:netrw_list_cmd has a string, HOSTNAME, that needs to be substituted
+"  with the requested remote hostname first.
+fun! <SID>NetList(dirname)
+""  call Dfunc("NetList(dirname<".a:dirname.">)")
+
+  " sanity maintenance
+  let dirname= a:dirname
+  if dirname !~ '/$' && (!exists("g:netrw_machine") || !exists("b:netlist_method") || !exists("b:netlist_path"))
+   let dirname= dirname."/"
+  endif
+  set ma
+
+  if dirname !~ '/$' && dirname !~ '^"'
+   " looks like a regular file, attempt transfer
+""   call Decho("attempt transfer with regular file<".dirname.">")
+""   call Decho("netlist method<".b:netlist_method."> cmd<".b:netlist_cmd."> path<".b:netlist_path.">")
+   %d
+
+   " remove any filetype indicator from end of dirname, except for the
+   " "this is a directory" indicator (/)
+   let dirname= substitute(dirname,"[*=@|]$","","e")
+""   call Decho("modified dirname<".dirname.">")
+
+   " remote-read the requested file into current buffer
+   let machine= g:netrw_machine
+   let method = b:netlist_method
+   let path   = b:netlist_path
+   enew!
+   exe "file ".method."://".machine."/".path.dirname
+   exe "doau BufReadPre ".dirname
+   silent call s:NetRead(method."://".machine."/".path.dirname)
+   exe "doau BufReadPost ".dirname
+   1d
+   set nomod noma
+
+   silent! unlet b:netlist_method
+   silent! unlet b:netlist_cmd
+   silent! unlet b:netlist_path
+""   call Dret("NetList")
+   return
+
+  elseif dirname == './'
+   " refresh the directory list
+""   call Decho("refresh directory listing")
+""   call Decho("netlist method<".b:netlist_method."> cmd<".b:netlist_cmd."> path<".b:netlist_path.">")
+   %d
+
+  elseif dirname == '../'
+   " go up one directory
+
+   if b:netlist_path !~ '/' && strlen(b:netlist_path) > 0
+    " go to top (rltv) directory
+""    call Decho("go up one directory : 1 path<".b:netlist_path.">")
+    let b:netlist_path= ""
+
+   elseif b:netlist_path !~ '^[./]\+$' && strlen(b:netlist_path) > 0
+    " remove a directory from the netlist_path
+""    call Decho("go up one directory : 2 path<".b:netlist_path.">")
+    if b:netlist_path =~ '^[^/]*/$'
+     let b:netlist_path= ""
+    else
+     let b:netlist_path= substitute(b:netlist_path,'^\(.*/\)[^/]*/$','\1','')
+    endif
+
+   else
+    " append ../
+""    call Decho("go up one directory : 3 path<".b:netlist_path.">")
+    let b:netlist_path= b:netlist_path.'../'
+   endif
+""   call Decho("netlist method<".b:netlist_method."> cmd<".b:netlist_cmd."> path<".b:netlist_path.">")
+   %d
+
+  elseif dirname !~ '^\w\+:' && dirname =~ '/$'
+   " go down one directory
+""   call Decho("go down one directory<".dirname.">")
+   let b:netlist_path=b:netlist_path.dirname
+""   call Decho("netlist method<".b:netlist_method."> cmd<".b:netlist_cmd."> path<".b:netlist_path.">")
+   %d
+
+  else
+   " normal initial directory listing
+""   call Decho("normal initial directory listing")
+
+   let listcmd = substitute(g:netrw_list_cmd,'\<HOSTNAME\>',g:netrw_machine,'')
+   let method  = substitute(dirname,'^\(\w\+\):.*$','\1','')
+   let fname   = b:netrw_fname
+""   call Decho("set up listcmd<".listcmd.">")
+""   call Decho("set up method <".method.">")
+""   call Decho("set up fname  <".fname.">")
+
+   " set up window
+   if &mod == 1
+    wincmd s
+   endif
+   enew!
+   if v:version >= 602
+    setlocal bh=wipe
+   endif
+   
+   " set up buffer-local variables
+   let b:netlist_method = method
+   let b:netlist_cmd    = listcmd
+   let b:netlist_path   = fname
+
+   " set up buffer-local map
+   nnoremap <buffer> <cr>	:call <SID>NetList(expand("<cWORD>"))<cr>
+
+""   call Decho("netlist method<".b:netlist_method."> cmd<".b:netlist_cmd."> path<".b:netlist_path.">")
+  endif
+
+""  call Decho("executing: r! ".b:netlist_cmd." '".b:netlist_path."'")
+  put ='\" =============================='
+  put ='\" Netrw Remote Directory Listing'
+  put ='\"   '.g:netrw_machine.':'.b:netlist_path
+  put ='\" =============================='
+  exe "silent r! ".b:netlist_cmd." '".b:netlist_path."'"
+  1d
+  set ft=netrwlist
+  silent 5,$s/^\(.*\)\/$/ \1/e
+  silent 5,$call s:NetSort()
+  silent 5,$s/^ \(.*\)$/\1\//e
+  5
+  exe 'file ['.g:netrw_machine.':'.b:netlist_path.']'
+  if v:version >= 602
+   setlocal nomod bh=wipe bt=nofile nobl noma
+  else
+   setlocal nomod
+  endif
+
+""  call Dret("NetList")
+endfun
+
 " ------------------------------------------------------------------------
 " NetMethod:  determine method of transfer {{{1
 "  method == 1: rcp
@@ -871,7 +1033,7 @@ endfun
 "	     8: fetch
 "	     9: sftp
 fun! s:NetMethod(choice)  " globals: method machine id passwd fname
-" call Dfunc("NetMethod(a:choice<".a:choice.">)")
+"" call Dfunc("NetMethod(a:choice<".a:choice.">)")
 
  " initialization
  let b:netrw_method  = 0
@@ -891,23 +1053,23 @@ fun! s:NetMethod(choice)  " globals: method machine id passwd fname
  " rsyncurm : rsync://host[:port]/path              Use rsync
  " fetchurm : fetch://[user@]host[:http]/filename   Use fetch (defaults to ftp, override for http)
  " sftpurm  : sftp://[user@]host/filename  Use scp
- let mipf     = '\(\S\+\)\s\+\(\S\+\)\s\+\(\S\+\)\s\+\(\S\+\)'
- let mf       = '\(\S\+\)\s\+\(\S\+\)'
- let ftpurm   = 'ftp://\(\([^/@]\{-}\)@\)\=\([^/#:]\{-}\)\([#:]\d\+\)\=/\(.*\)$'
- let rcpurm   = 'rcp://\(\([^/@]\{-}\)@\)\=\([^/]\{-}\)/\(.*\)$'
- let rcphf    = '\(\([^@]\{-}\)@\)\=\(\I\i*\):\(\S\+\)'
- let scpurm   = 'scp://\([^/]\{-}\)\([#:]\d\+\)\=/\(.*\)$'
- let httpurm  = 'http://\([^/]\{-}\)\(/.*\)\=$'
- let davurm   = 'dav://\([^/]\{-}\)/\(.*\)\=$'
- let rsyncurm = 'rsync://\([^/]\{-}\)/\(.*\)\=$'
- let fetchurm = 'fetch://\(\([^/@]\{-}\)@\)\=\([^/#:]\{-}\)\(:http\)\=/\(.*\)$'
- let sftpurm  = 'sftp://\([^/]\{-}\)/\(.*\)\=$'
-
-" call Decho("determine method:")
+ let mipf     = '^\(\S\+\)\s\+\(\S\+\)\s\+\(\S\+\)\s\+\(\S\+\)$'
+ let mf       = '^\(\S\+\)\s\+\(\S\+\)$'
+ let ftpurm   = '^ftp://\(\([^/@]\{-}\)@\)\=\([^/#:]\{-}\)\([#:]\d\+\)\=/\(.*\)$'
+ let rcpurm   = '^rcp://\(\([^/@]\{-}\)@\)\=\([^/]\{-}\)/\(.*\)$'
+ let rcphf    = '^\(\(\h\w*\)@\)\=\(\h\w*\):\([^@]\+\)$'
+ let scpurm   = '^scp://\([^/]\{-}\)\([#:]\d\+\)\=/\(.*\)$'
+ let httpurm  = '^http://\([^/]\{-}\)\(/.*\)\=$'
+ let davurm   = '^dav://\([^/]\{-}\)/\(.*\)\=$'
+ let rsyncurm = '^rsync://\([^/]\{-}\)/\(.*\)\=$'
+ let fetchurm = '^fetch://\(\([^/@]\{-}\)@\)\=\([^/#:]\{-}\)\(:http\)\=/\(.*\)$'
+ let sftpurm  = '^sftp://\([^/]\{-}\)/\(.*\)\=$'
+
+"" call Decho("determine method:")
  " Determine Method
  " rcp://user@hostname/...path-to-file
  if match(a:choice,rcpurm) == 0
-"  call Decho("rcp://...")
+""  call Decho("rcp://...")
   let b:netrw_method = 1
   let userid	     = substitute(a:choice,rcpurm,'\2',"")
   let g:netrw_machine= substitute(a:choice,rcpurm,'\3',"")
@@ -918,7 +1080,7 @@ fun! s:NetMethod(choice)  " globals: method machine id passwd fname
 
  " scp://user@hostname/...path-to-file
  elseif match(a:choice,scpurm) == 0
-"  call Decho("scp://...")
+""  call Decho("scp://...")
   let b:netrw_method = 4
   let g:netrw_machine= substitute(a:choice,scpurm,'\1',"")
   let b:netrw_port   = substitute(a:choice,scpurm,'\2',"")
@@ -926,28 +1088,28 @@ fun! s:NetMethod(choice)  " globals: method machine id passwd fname
 
  " http://user@hostname/...path-to-file
  elseif match(a:choice,httpurm) == 0
-"  call Decho("http://...")
+""  call Decho("http://...")
   let b:netrw_method = 5
   let g:netrw_machine= substitute(a:choice,httpurm,'\1',"")
   let b:netrw_fname  = substitute(a:choice,httpurm,'\2',"")
 
  " dav://hostname[:port]/..path-to-file..
  elseif match(a:choice,davurm) == 0
-"  call Decho("dav://...")
+""  call Decho("dav://...")
   let b:netrw_method= 6
   let g:netrw_machine= substitute(a:choice,davurm,'\1',"")
   let b:netrw_fname  = substitute(a:choice,davurm,'\2',"")
 
  " rsync://user@hostname/...path-to-file
  elseif match(a:choice,rsyncurm) == 0
-"  call Decho("rsync://...")
+""  call Decho("rsync://...")
   let b:netrw_method = 7
   let g:netrw_machine= substitute(a:choice,rsyncurm,'\1',"")
   let b:netrw_fname  = substitute(a:choice,rsyncurm,'\2',"")
 
  " ftp://[user@]hostname[[:#]port]/...path-to-file
  elseif match(a:choice,ftpurm) == 0
-"  call Decho("ftp://...")
+""  call Decho("ftp://...")
   let userid	     = substitute(a:choice,ftpurm,'\2',"")
   let g:netrw_machine= substitute(a:choice,ftpurm,'\3',"")
   let g:netrw_port   = substitute(a:choice,ftpurm,'\4',"")
@@ -975,7 +1137,7 @@ fun! s:NetMethod(choice)  " globals: method machine id passwd fname
   endif
 
  elseif match(a:choice,fetchurm) == 0
-"  call Decho("fetch://...")
+""  call Decho("fetch://...")
   let b:netrw_method = 8
   let g:netrw_userid = substitute(a:choice,fetchurm,'\2',"")
   let g:netrw_machine= substitute(a:choice,fetchurm,'\3',"")
@@ -984,7 +1146,7 @@ fun! s:NetMethod(choice)  " globals: method machine id passwd fname
 
  " Issue an ftp : "machine id password [path/]filename"
  elseif match(a:choice,mipf) == 0
-"  call Decho("(ftp) host id pass file")
+""  call Decho("(ftp) host id pass file")
   let b:netrw_method  = 3
   let g:netrw_machine = substitute(a:choice,mipf,'\1',"")
   let g:netrw_uid     = substitute(a:choice,mipf,'\2',"")
@@ -993,7 +1155,7 @@ fun! s:NetMethod(choice)  " globals: method machine id passwd fname
 
  " Issue an ftp: "hostname [path/]filename"
  elseif match(a:choice,mf) == 0
-"  call Decho("(ftp) host file")
+""  call Decho("(ftp) host file")
   if exists("g:netrw_uid") && exists("g:netrw_passwd")
    let b:netrw_method  = 3
    let g:netrw_machine = substitute(a:choice,mf,'\1',"")
@@ -1007,18 +1169,22 @@ fun! s:NetMethod(choice)  " globals: method machine id passwd fname
 
  " sftp://user@hostname/...path-to-file
  elseif match(a:choice,sftpurm) == 0
-"  call Decho("sftp://...")
+""  call Decho("sftp://...")
   let b:netrw_method = 9
   let g:netrw_machine= substitute(a:choice,sftpurm,'\1',"")
   let b:netrw_fname  = substitute(a:choice,sftpurm,'\2',"")
 
  " Issue an rcp: hostname:filename"  (this one should be last)
  elseif match(a:choice,rcphf) == 0
-"  call Decho("(rcp) host:file)")
+""  call Decho("(rcp) [user@]host:file) rcphf<".rcphf.">")
   let b:netrw_method = 1
   let userid	     = substitute(a:choice,rcphf,'\2',"")
   let g:netrw_machine= substitute(a:choice,rcphf,'\3',"")
   let b:netrw_fname  = substitute(a:choice,rcphf,'\4',"")
+""  call Decho('\1<'.substitute(a:choice,rcphf,'\1',"").">")
+""  call Decho('\2<'.substitute(a:choice,rcphf,'\2',"").">")
+""  call Decho('\3<'.substitute(a:choice,rcphf,'\3',"").">")
+""  call Decho('\4<'.substitute(a:choice,rcphf,'\4',"").">")
   if userid != ""
    let g:netrw_uid= userid
   endif
@@ -1032,18 +1198,18 @@ fun! s:NetMethod(choice)  " globals: method machine id passwd fname
   let b:netrw_method  = -1
  endif
 
-" call Decho("a:choice       <".a:choice.">")
-" call Decho("b:netrw_method <".b:netrw_method.">")
-" call Decho("g:netrw_machine<".g:netrw_machine.">")
-" call Decho("g:netrw_port   <".g:netrw_port.">")
-" if exists("g:netrw_uid")		"Decho
-"  call Decho("g:netrw_uid    <".g:netrw_uid.">")
-" endif					"Decho
-" if exists("g:netrw_passwd")		"Decho
-"  call Decho("g:netrw_passwd <".g:netrw_passwd.">")
-" endif					"Decho
-" call Decho("b:netrw_fname  <".b:netrw_fname.">")
-" call Dret("NetMethod")
+"" call Decho("a:choice       <".a:choice.">")
+"" call Decho("b:netrw_method <".b:netrw_method.">")
+"" call Decho("g:netrw_machine<".g:netrw_machine.">")
+"" call Decho("g:netrw_port   <".g:netrw_port.">")
+"" if exists("g:netrw_uid")		"Decho
+""  call Decho("g:netrw_uid    <".g:netrw_uid.">")
+"" endif					"Decho
+"" if exists("g:netrw_passwd")		"Decho
+""  call Decho("g:netrw_passwd <".g:netrw_passwd.">")
+"" endif					"Decho
+"" call Decho("b:netrw_fname  <".b:netrw_fname.">")
+"" call Dret("NetMethod")
 endfun
 " end of NetMethod
 
@@ -1056,32 +1222,32 @@ fun! NetUserPass(...)
 
  " get/set userid
  if a:0 == 0
-"  call Dfunc("NetUserPass(a:0<".a:0.">)")
+""  call Dfunc("NetUserPass(a:0<".a:0.">)")
   if !exists("g:netrw_uid") || g:netrw_uid == ""
    " via prompt
    let g:netrw_uid= input('Enter username: ')
   endif
  else	" from command line
-"  call Dfunc("NetUserPass(a:1<".a:1.">) {")
+""  call Dfunc("NetUserPass(a:1<".a:1.">) {")
   let g:netrw_uid= a:1
  endif
 
  " get password
  if a:0 <= 1 " via prompt
-"  call Decho("a:0=".a:0." case <=1:")
+""  call Decho("a:0=".a:0." case <=1:")
   let g:netrw_passwd= inputsecret("Enter Password: ")
  else " from command line
-"  call Decho("a:0=".a:0." case >1: a:2<".a:2.">")
+""  call Decho("a:0=".a:0." case >1: a:2<".a:2.">")
   let g:netrw_passwd=a:2
  endif
-"  call Dret("NetUserPass")
+""  call Dret("NetUserPass")
 endfun
 " end NetUserPass
 
 " ------------------------------------------------------------------------
 " NetOptionSave: save options and set to "standard" form {{{1
 fun!s:NetOptionSave()
-" call Dfunc("NetOptionSave()")
+"" call Dfunc("NetOptionSave()")
 
  " Get Temporary Filename
  let s:aikeep	= &ai
@@ -1100,16 +1266,16 @@ fun!s:NetOptionSave()
  if has("win32") && !has("win95")
   let s:swfkeep= &swf
   set noswf
-"  call Decho("setting s:swfkeep to <".&swf.">")
+""  call Decho("setting s:swfkeep to <".&swf.">")
  endif
 
-" call Dret("NetOptionSave")
+"" call Dret("NetOptionSave")
 endfun
 
 " ------------------------------------------------------------------------
 " NetOptionRestore: restore options {{{1
 fun! s:NetOptionRestore()
-" call Dfunc("NetOptionRestore()")
+"" call Dfunc("NetOptionRestore()")
 
  let &ai	= s:aikeep
  let &cin	= s:cinkeep
@@ -1132,27 +1298,55 @@ fun! s:NetOptionRestore()
  unlet s:twkeep
  unlet s:dirkeep
 
-" call Dret("NetOptionRestore")
+"" call Dret("NetOptionRestore")
 endfun
 
 " ------------------------------------------------------------------------
 " NetReadFixup: this sort of function is typically written by the user {{{1
-"		to handle extra junk that their system's ftp dumps
-"		into the transfer.  This function is provided as an
-"		example and as a fix for a Windows 95 problem: in my
-"		experience, win95's ftp always dumped four blank lines
-"		at the end of the transfer.
+"               to handle extra junk that their system's ftp dumps
+"               into the transfer.  This function is provided as an
+"               example and as a fix for a Windows 95 problem: in my
+"               experience, win95's ftp always dumped four blank lines
+"               at the end of the transfer.
 if has("win95") && g:netrw_win95ftp
  fun! NetReadFixup(method, line1, line2)
-"   call Dfunc("NetReadFixup(method<".a:method."> line1=".a:line1." line2=".a:line2.")")
+""   call Dfunc("NetReadFixup(method<".a:method."> line1=".a:line1." line2=".a:line2.")")
    if method == 3   " ftp (no <.netrc>)
     let fourblanklines= line2 - 3
     silent fourblanklines.",".line2."g/^\s*/d"
    endif
-"   call Dret("NetReadFixup")
+""   call Dret("NetReadFixup")
  endfun
 endif
 
+" ---------------------------------------------------------------------
+" NetSort: Piet Delport's BISort2() function, modified to take a range
+fun! <SID>NetSort() range
+  let i = a:firstline + 1
+  while i <= a:lastline
+    " find insertion point via binary search
+    let i_val = getline(i)
+    let lo    = a:firstline
+    let hi    = i
+    while lo < hi
+      let mid     = (lo + hi) / 2
+      let mid_val = getline(mid)
+      if i_val < mid_val
+        let hi = mid
+      else
+        let lo = mid + 1
+        if i_val == mid_val | break | endif
+      endif
+    endwhile
+    " do insert
+    if lo < i
+      exec i.'d_'
+      call append(lo - 1, i_val)
+    endif
+    let i = i + 1
+  endwhile
+endfun
+
 " ------------------------------------------------------------------------
 " Restore {{{1
 let &cpo= s:save_cpo
diff --git a/runtime/syntax/netrwlist.vim b/runtime/syntax/netrwlist.vim
new file mode 100644
index 0000000000..09967f5146
--- /dev/null
+++ b/runtime/syntax/netrwlist.vim
@@ -0,0 +1,29 @@
+" Language   : Netrw Remote-Directory Listing Syntax
+" Maintainer : Charles E. Campbell, Jr.
+" Last change: Jun 10, 2004
+" Version    : 1
+
+" Syntax Clearing: {{{1
+if version < 600
+ syntax clear
+elseif exists("b:current_syntax")
+ finish
+endif
+
+" Directory List Syntax Highlighting: {{{1
+syn match netrwDir		"^.*/$" contains=netrwSpecial
+syn match netrwSpecial		"[*=@|/]$"
+syn match netrwSlash contained	"/"
+syn match netrwComment		'".*$'
+
+" Highlighting Links: {{{1
+if !exists("did_drchip_dbg_syntax")
+ let did_drchip_netrwlist_syntax= 1
+ hi link netrwComment	Comment
+ hi link netrwDir	Directory
+ hi link netrwSpecial	Function
+endif
+
+" Current Syntax: {{{1
+let   b:current_syntax = "netrwlist"
+" vim: ts=8 fdm=marker
diff --git a/runtime/syntax/po.vim b/runtime/syntax/po.vim
index 6da75d630c..4c1aac12ef 100644
--- a/runtime/syntax/po.vim
+++ b/runtime/syntax/po.vim
@@ -19,6 +19,8 @@ syn match  poFormat	"%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|
 syn match  poFormat	"%%" contained
 syn region poString	start=+"+ skip=+\\\\\|\\"+ end=+"+
 			\ contains=poSpecial,poFormat
+syn region poFuzzy       start=+^#,\sfuzzy+ end=+^$+
+syn match  poUntranslated +^msgstr\s""\n\n+
 
 " Define the default highlighting.
 " For version 5.7 and earlier: only when not done already
@@ -37,6 +39,8 @@ if version >= 508 || !exists("did_po_syn_inits")
   HiLink poSpecial	Special
   HiLink poFormat	poSpecial
   HiLink poString	String
+  HiLink poFuzzy	Todo
+  HiLink poUntranslated	Todo
 
   delcommand HiLink
 endif
diff --git a/src/Makefile b/src/Makefile
index 46a40ad297..d59f32abe3 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -432,7 +432,7 @@ CClink = $(CC)
 #CONF_OPT_FEAT = --with-features=small
 #CONF_OPT_FEAT = --with-features=normal
 #CONF_OPT_FEAT = --with-features=big
-CONF_OPT_FEAT = --with-features=huge
+#CONF_OPT_FEAT = --with-features=huge
 
 # COMPILED BY - For including a specific e-mail address for ":version".
 #CONF_OPT_COMPBY = "--with-compiledby=John Doe <JohnDoe@yahoo.com>"
@@ -493,7 +493,7 @@ CONF_OPT_FEAT = --with-features=huge
 
 # Often used for GCC: mixed optimizing, lot of optimizing, debugging
 #CFLAGS = -g -O2 -fno-strength-reduce -Wall -Wshadow -Wmissing-prototypes
-CFLAGS = -g -O2 -fno-strength-reduce -Wall -Wmissing-prototypes
+#CFLAGS = -g -O2 -fno-strength-reduce -Wall -Wmissing-prototypes
 #CFLAGS = -O6 -fno-strength-reduce -Wall -Wshadow -Wmissing-prototypes
 #CFLAGS = -g -DDEBUG -Wall -Wshadow -Wmissing-prototypes
 #CFLAGS = -g -O2 -DSTARTUPTIME=\"vimstartup\" -fno-strength-reduce -Wall -Wmissing-prototypes
diff --git a/src/buffer.c b/src/buffer.c
index 83b570f612..27f64bd5f8 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -4579,7 +4579,7 @@ buf_spname(buf)
     }
 #endif
     if (buf->b_fname == NULL)
-	return _("[No File]");
+	return _("[No Name]");
     return NULL;
 }
 
diff --git a/src/eval.c b/src/eval.c
index 2e339e6d04..561857a37b 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -598,6 +598,20 @@ eval_to_string_skip(arg, nextcmd, skip)
     return retval;
 }
 
+/*
+ * Skip over an expression at "*pp".
+ * Return FAIL for an error, OK otherwise.
+ */
+    int
+skip_expr(pp)
+    char_u	**pp;
+{
+    var		retvar;
+
+    *pp = skipwhite(*pp);
+    return eval1(pp, &retvar, FALSE);
+}
+
 /*
  * Top level evaluation function, returning a string.
  * Return pointer to allocated memory, or NULL for failure.
@@ -3375,6 +3389,20 @@ find_buffer(avar)
 	    buf = buflist_findname(name);
 	    vim_free(name);
 	}
+	if (buf == NULL)
+	{
+	    /* No full path name match, try a match with a URL or a "nofile"
+	     * buffer, these don't use the full path. */
+	    for (buf = firstbuf; buf != NULL; buf = buf->b_next)
+		if (buf->b_fname != NULL
+			&& (path_with_url(buf->b_fname)
+#ifdef FEAT_QUICKFIX
+			    || bt_nofile(buf)
+#endif
+			   )
+			&& STRCMP(buf->b_fname, avar->var_val.var_string) == 0)
+		    break;
+	}
     }
     return buf;
 }
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index e6036ca342..ad612cd706 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -4573,7 +4573,7 @@ ex_help(eap)
     buf_T	*buf;
 #ifdef FEAT_MULTI_LANG
     int		len;
-    char_u	*lang = NULL;
+    char_u	*lang;
 #endif
 
     if (eap != NULL)
@@ -4613,13 +4613,7 @@ ex_help(eap)
 
 #ifdef FEAT_MULTI_LANG
     /* Check for a specified language */
-    len = STRLEN(arg);
-    if (len >= 3 && arg[len - 3] == '@' && ASCII_ISALPHA(arg[len - 2])
-					       && ASCII_ISALPHA(arg[len - 1]))
-    {
-	lang = arg + len - 2;
-	lang[-1] = NUL;		/* remove the '@' */
-    }
+    lang = check_help_lang(arg);
 #endif
 
     /* When no argument given go to the index. */
@@ -4748,6 +4742,28 @@ erret:
 }
 
 
+#if defined(FEAT_MULTI_LANG) || defined(PROTO)
+/*
+ * In an argument search for a language specifiers in the form "@xx".
+ * Changes the "@" to NUL if found, and returns a pointer to "xx".
+ * Returns NULL if not found.
+ */
+    char_u *
+check_help_lang(arg)
+    char_u *arg;
+{
+    int len = STRLEN(arg);
+
+    if (len >= 3 && arg[len - 3] == '@' && ASCII_ISALPHA(arg[len - 2])
+					       && ASCII_ISALPHA(arg[len - 1]))
+    {
+	arg[len - 3] = NUL;		/* remove the '@' */
+	return arg + len - 2;
+    }
+    return NULL;
+}
+#endif
+
 /*
  * Return a heuristic indicating how well the given string matches.  The
  * smaller the number, the better the match.  This is the order of priorities,
@@ -5180,7 +5196,9 @@ ex_helptags(eap)
     garray_T	ga;
     int		i, j;
     int		len;
+#ifdef FEAT_MULTI_LANG
     char_u	lang[2];
+#endif
     char_u	ext[5];
     char_u	fname[8];
     int		filecount;
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index c4b9012ca1..af8d3fc7c4 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -2319,8 +2319,8 @@ do_one_cmd(cmdlinep, sourcing,
 	}
     }
 						/* no arguments allowed */
-    if (!ni && !(ea.argt & EXTRA) && *ea.arg != NUL &&
-				 vim_strchr((char_u *)"|\"", *ea.arg) == NULL)
+    if (!ni && !(ea.argt & EXTRA) && *ea.arg != NUL
+			      && vim_strchr((char_u *)"|\"", *ea.arg) == NULL)
     {
 	errormsg = (char_u *)_(e_trailing);
 	goto doend;
@@ -3885,6 +3885,17 @@ expand_filename(eap, cmdlinep, errormsgp)
     has_wildcards = mch_has_wildcard(eap->arg);
     for (p = eap->arg; *p; )
     {
+#ifdef FEAT_EVAL
+	/* Skip over `=expr`, wildcards in it are not expanded. */
+	if (p[0] == '`' && p[1] == '=')
+	{
+	    p += 2;
+	    (void)skip_expr(&p);
+	    if (*p == '`')
+		++p;
+	    continue;
+	}
+#endif
 	/*
 	 * Quick check if this cannot be the start of a special string.
 	 * Also removes backslash before '%', '#' and '<'.
@@ -4157,6 +4168,18 @@ separate_nextcmd(eap)
 	    if (*p == NUL)		/* stop at NUL after CTRL-V */
 		break;
 	}
+
+#ifdef FEAT_EVAL
+	/* Skip over `=expr` when wildcards are expanded. */
+	else if (p[0] == '`' && p[1] == '=')
+	{
+	    p += 2;
+	    (void)skip_expr(&p);
+	    if (*p == '`')
+		++p;
+	}
+#endif
+
 	/* Check for '"': start of comment or '|': next command */
 	/* :@" and :*" do not start a comment!
 	 * :redir @" doesn't either. */
diff --git a/src/fileio.c b/src/fileio.c
index e8d4e27bbd..a0947aa6d6 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -5290,8 +5290,11 @@ shorten_fnames(force)
 	    }
 	    if (p == NULL || buf->b_fname == NULL)
 		buf->b_fname = buf->b_ffname;
-	    mf_fullname(buf->b_ml.ml_mfp);
 	}
+
+	/* Always make the swap file name a full path, a "nofile" buffer may
+	 * also have a swap file. */
+	mf_fullname(buf->b_ml.ml_mfp);
     }
 #ifdef FEAT_WINDOWS
     status_redraw_all();
diff --git a/src/gui_mac.c b/src/gui_mac.c
index 2b74c63281..e6a8433493 100644
--- a/src/gui_mac.c
+++ b/src/gui_mac.c
@@ -74,6 +74,9 @@ static    OSType	_ftype = 'TEXT';
 # endif
 #endif
 
+/* Vim's Scrap flavor. */
+#define VIMSCRAPFLAVOR 'VIM!'
+
 /* CARBON version only tested with Project Builder under MacOS X */
 #undef USE_CARBONIZED
 #if (defined(__APPLE_CC__) || defined(__MRC__)) && defined(TARGET_API_MAC_CARBON)
@@ -326,7 +329,7 @@ static struct
  */
 
 #ifdef USE_AEVENT
-OSErr HandleUnusedParms (const AppleEvent *theAEvent);
+OSErr HandleUnusedParms(const AppleEvent *theAEvent);
 #endif
 
 /*
@@ -511,7 +514,7 @@ char_u **new_fnames_from_AEDesc(AEDesc *theList, long *numFiles, OSErr *error)
     if (*error)
     {
 #ifdef USE_SIOUX
-	printf ("fname_from_AEDesc: AECountItems error: %d\n", error);
+	printf("fname_from_AEDesc: AECountItems error: %d\n", error);
 #endif
 	return(fnames);
     }
@@ -535,13 +538,13 @@ char_u **new_fnames_from_AEDesc(AEDesc *theList, long *numFiles, OSErr *error)
 	    /* Caller is able to clean up */
 	    /* TODO: Should be clean up or not? For safety. */
 #ifdef USE_SIOUX
-	    printf ("aevt_odoc: AEGetNthPtr error: %d\n", newError);
+	    printf("aevt_odoc: AEGetNthPtr error: %d\n", newError);
 #endif
 	    return(fnames);
 	}
 
 	/* Convert the FSSpec to a pathname */
-	fnames[fileCount - 1] = FullPathFromFSSpec_save (fileToOpen);
+	fnames[fileCount - 1] = FullPathFromFSSpec_save(fileToOpen);
     }
 
     return (fnames);
@@ -574,7 +577,7 @@ char_u **new_fnames_from_AEDesc(AEDesc *theList, long *numFiles, OSErr *error)
  * When the editor receives this event, determine whether the specified
  * file is open. If it is, return the modification date/time for that file
  * in the appropriate location specified in the structure. If the file is
- * not opened, put the value fnfErr (file not found) in that location.
+ * not opened, put the value fnfErr(file not found) in that location.
  *
  */
 
@@ -591,7 +594,8 @@ struct WindowSearch /* for handling class 'KAHL', event 'SRCH', keyDirectObject
 # pragma options align=reset
 #endif
 
-pascal OSErr Handle_KAHL_SRCH_AE (const AppleEvent *theAEvent, AppleEvent *theReply, long refCon)
+    pascal OSErr
+Handle_KAHL_SRCH_AE(const AppleEvent *theAEvent, AppleEvent *theReply, long refCon)
 {
     OSErr	error = noErr;
     buf_T	*buf;
@@ -604,16 +608,16 @@ pascal OSErr Handle_KAHL_SRCH_AE (const AppleEvent *theAEvent, AppleEvent *theRe
     if (error)
     {
 #ifdef USE_SIOUX
-	printf ("KAHL_SRCH: AEGetParamPtr error: %d\n", error);
+	printf("KAHL_SRCH: AEGetParamPtr error: %d\n", error);
 #endif
 	return(error);
     }
 
-    error = HandleUnusedParms (theAEvent);
+    error = HandleUnusedParms(theAEvent);
     if (error)
     {
 #ifdef USE_SIOUX
-	printf ("KAHL_SRCH: HandleUnusedParms error: %d\n", error);
+	printf("KAHL_SRCH: HandleUnusedParms error: %d\n", error);
 #endif
 	return(error);
     }
@@ -634,10 +638,10 @@ pascal OSErr Handle_KAHL_SRCH_AE (const AppleEvent *theAEvent, AppleEvent *theRe
 	*SearchData.theDate = buf->b_mtime;
 
 #ifdef USE_SIOUX
-    printf ("KAHL_SRCH: file \"%#s\" {%d}", SearchData.theFile.name,SearchData.theFile.parID);
+    printf("KAHL_SRCH: file \"%#s\" {%d}", SearchData.theFile.name,SearchData.theFile.parID);
     if (foundFile == false)
-	printf (" NOT");
-    printf (" found. [date %lx, %lx]\n", *SearchData.theDate, buf->b_mtime_read);
+	printf(" NOT");
+    printf(" found. [date %lx, %lx]\n", *SearchData.theDate, buf->b_mtime_read);
 #endif
 
     return error;
@@ -684,7 +688,8 @@ struct ModificationInfo /* for replying to class 'KAHL', event 'MOD ', keyDirect
 # pragma options align=reset
 #endif
 
-pascal OSErr Handle_KAHL_MOD_AE (const AppleEvent *theAEvent, AppleEvent *theReply, long refCon)
+    pascal OSErr
+Handle_KAHL_MOD_AE(const AppleEvent *theAEvent, AppleEvent *theReply, long refCon)
 {
     OSErr	error = noErr;
     AEDescList	replyList;
@@ -694,11 +699,11 @@ pascal OSErr Handle_KAHL_MOD_AE (const AppleEvent *theAEvent, AppleEvent *theRep
 
     theFile.saved = 0;
 
-    error = HandleUnusedParms (theAEvent);
+    error = HandleUnusedParms(theAEvent);
     if (error)
     {
 #ifdef USE_SIOUX
-	printf ("KAHL_MOD: HandleUnusedParms error: %d\n", error);
+	printf("KAHL_MOD: HandleUnusedParms error: %d\n", error);
 #endif
 	return(error);
     }
@@ -712,7 +717,7 @@ pascal OSErr Handle_KAHL_MOD_AE (const AppleEvent *theAEvent, AppleEvent *theRep
     if (error)
     {
 #ifdef USE_SIOUX
-	printf ("KAHL_MOD: AECreateList error: %d\n", error);
+	printf("KAHL_MOD: AECreateList error: %d\n", error);
 #endif
 	return(error);
     }
@@ -720,12 +725,12 @@ pascal OSErr Handle_KAHL_MOD_AE (const AppleEvent *theAEvent, AppleEvent *theRep
 #if 0
     error = AECountItems(&replyList, &numFiles);
 #ifdef USE_SIOUX
-    printf ("KAHL_MOD ReplyList: %x %x\n", replyList.descriptorType, replyList.dataHandle);
-    printf ("KAHL_MOD ItemInList: %d\n", numFiles);
+    printf("KAHL_MOD ReplyList: %x %x\n", replyList.descriptorType, replyList.dataHandle);
+    printf("KAHL_MOD ItemInList: %d\n", numFiles);
 #endif
 
-    /* AEPutKeyDesc (&replyList, keyAEPnject, &aDesc)
-     * AEPutKeyPtr  (&replyList, keyAEPosition, typeChar, (Ptr)&theType,
+    /* AEPutKeyDesc(&replyList, keyAEPnject, &aDesc)
+     * AEPutKeyPtr(&replyList, keyAEPosition, typeChar, (Ptr)&theType,
      * sizeof(DescType))
      */
 
@@ -739,37 +744,37 @@ pascal OSErr Handle_KAHL_MOD_AE (const AppleEvent *theAEvent, AppleEvent *theRep
 	    /* Add this file to the list */
 	    theFile.theFile = buf->b_FSSpec;
 	    theFile.theDate = buf->b_mtime;
-/*	    theFile.theDate = time (NULL) & (time_t) 0xFFFFFFF0; */
-	    error = AEPutPtr (&replyList, numFiles, typeChar, (Ptr) &theFile, sizeof(theFile));
+/*	    theFile.theDate = time(NULL) & (time_t) 0xFFFFFFF0; */
+	    error = AEPutPtr(&replyList, numFiles, typeChar, (Ptr) &theFile, sizeof(theFile));
 #ifdef USE_SIOUX
 	    if (numFiles == 0)
-		printf ("KAHL_MOD: ");
+		printf("KAHL_MOD: ");
 	    else
-		printf (", ");
-	    printf ("\"%#s\" {%d} [date %lx, %lx]", theFile.theFile.name, theFile.theFile.parID, theFile.theDate, buf->b_mtime_read);
+		printf(", ");
+	    printf("\"%#s\" {%d} [date %lx, %lx]", theFile.theFile.name, theFile.theFile.parID, theFile.theDate, buf->b_mtime_read);
 	    if (error)
-		printf (" (%d)", error);
+		printf(" (%d)", error);
 	    numFiles++;
 #endif
 	};
 
 #ifdef USE_SIOUX
-    printf ("\n");
+    printf("\n");
 #endif
 
 #if 0
     error = AECountItems(&replyList, &numFiles);
 #ifdef USE_SIOUX
-    printf ("KAHL_MOD ItemInList: %d\n", numFiles);
+    printf("KAHL_MOD ItemInList: %d\n", numFiles);
 #endif
 #endif
 
     /* We can add data only if something to reply */
-    error = AEPutParamDesc (theReply, keyDirectObject, &replyList);
+    error = AEPutParamDesc(theReply, keyDirectObject, &replyList);
 
 #ifdef USE_SIOUX
     if (error)
-	printf ("KAHL_MOD: AEPutParamDesc error: %d\n", error);
+	printf("KAHL_MOD: AEPutParamDesc error: %d\n", error);
 #endif
 
     if (replyList.dataHandle)
@@ -819,7 +824,8 @@ struct CW_GetText /* for handling class 'KAHL', event 'GTTX', keyDirectObject ty
 # pragma options align=reset
 #endif
 
-pascal OSErr Handle_KAHL_GTTX_AE (const AppleEvent *theAEvent, AppleEvent *theReply, long refCon)
+    pascal OSErr
+Handle_KAHL_GTTX_AE(const AppleEvent *theAEvent, AppleEvent *theReply, long refCon)
 {
     OSErr	error = noErr;
     buf_T	*buf;
@@ -839,7 +845,7 @@ pascal OSErr Handle_KAHL_GTTX_AE (const AppleEvent *theAEvent, AppleEvent *theRe
     if (error)
     {
 #ifdef USE_SIOUX
-	printf ("KAHL_GTTX: AEGetParamPtr error: %d\n", error);
+	printf("KAHL_GTTX: AEGetParamPtr error: %d\n", error);
 #endif
 	return(error);
     }
@@ -854,7 +860,7 @@ pascal OSErr Handle_KAHL_GTTX_AE (const AppleEvent *theAEvent, AppleEvent *theRe
 
     if (foundFile)
     {
-	BufferSize = 0; /* GetHandleSize (GetTextData.theText); */
+	BufferSize = 0; /* GetHandleSize(GetTextData.theText); */
 	for (lineno = 0; lineno <= buf->b_ml.ml_line_count; lineno++)
 	{
 	    /* Must use the right buffer */
@@ -863,48 +869,48 @@ pascal OSErr Handle_KAHL_GTTX_AE (const AppleEvent *theAEvent, AppleEvent *theRe
 	    lineStart = BufferSize;
 	    BufferSize += linesize;
 	    /* Resize handle to linesize+1 to include the linefeed */
-	    SetHandleSize (GetTextData.theText, BufferSize);
-	    if (GetHandleSize (GetTextData.theText) != BufferSize)
+	    SetHandleSize(GetTextData.theText, BufferSize);
+	    if (GetHandleSize(GetTextData.theText) != BufferSize)
 	    {
 	#ifdef USE_SIOUX
-		printf ("KAHL_GTTX: SetHandleSize increase: %d, size %d\n",
+		printf("KAHL_GTTX: SetHandleSize increase: %d, size %d\n",
 			linesize, BufferSize);
 	#endif
 		break; /* Simple handling for now */
 	    }
 	    else
 	    {
-		HLock (GetTextData.theText);
+		HLock(GetTextData.theText);
 		fullbuffer = (char_u *) *GetTextData.theText;
-		STRCPY ((char_u *) (fullbuffer + lineStart), line);
+		STRCPY((char_u *)(fullbuffer + lineStart), line);
 		fullbuffer[BufferSize-1] = '\r';
-		HUnlock (GetTextData.theText);
+		HUnlock(GetTextData.theText);
 	    }
 	}
 	if (fullbuffer != NULL)
 	{
-	    HLock (GetTextData.theText);
+	    HLock(GetTextData.theText);
 	    fullbuffer[BufferSize-1] = 0;
-	    HUnlock (GetTextData.theText);
+	    HUnlock(GetTextData.theText);
 	}
 	if (foundFile == false)
 	    *GetTextData.theDate = fnfErr;
 	else
-/*	    *GetTextData.theDate = time (NULL) & (time_t) 0xFFFFFFF0;*/
+/*	    *GetTextData.theDate = time(NULL) & (time_t) 0xFFFFFFF0;*/
 	    *GetTextData.theDate = buf->b_mtime;
     }
 #ifdef USE_SIOUX
-    printf ("KAHL_GTTX: file \"%#s\" {%d} [date %lx, %lx]", GetTextData.theFile.name, GetTextData.theFile.parID, *GetTextData.theDate, buf->b_mtime_read);
+    printf("KAHL_GTTX: file \"%#s\" {%d} [date %lx, %lx]", GetTextData.theFile.name, GetTextData.theFile.parID, *GetTextData.theDate, buf->b_mtime_read);
     if (foundFile == false)
-	printf (" NOT");
-    printf (" found. (BufferSize = %d)\n", BufferSize);
+	printf(" NOT");
+    printf(" found. (BufferSize = %d)\n", BufferSize);
 #endif
 
-    error = HandleUnusedParms (theAEvent);
+    error = HandleUnusedParms(theAEvent);
     if (error)
     {
 #ifdef USE_SIOUX
-	printf ("KAHL_GTTX: HandleUnusedParms error: %d\n", error);
+	printf("KAHL_GTTX: HandleUnusedParms error: %d\n", error);
 #endif
 	return(error);
     }
@@ -917,48 +923,45 @@ pascal OSErr Handle_KAHL_GTTX_AE (const AppleEvent *theAEvent, AppleEvent *theRe
  */
 
 /* Taken from MoreAppleEvents:ProcessHelpers*/
-pascal	OSErr	FindProcessBySignature( const OSType targetType,
+pascal	OSErr	FindProcessBySignature(const OSType targetType,
 					const OSType targetCreator,
-					      ProcessSerialNumberPtr psnPtr )
+					      ProcessSerialNumberPtr psnPtr)
 {
     OSErr	anErr = noErr;
     Boolean	lookingForProcess = true;
 
     ProcessInfoRec  infoRec;
 
-    infoRec.processInfoLength = sizeof( ProcessInfoRec );
+    infoRec.processInfoLength = sizeof(ProcessInfoRec);
     infoRec.processName = nil;
     infoRec.processAppSpec = nil;
 
     psnPtr->lowLongOfPSN = kNoProcess;
     psnPtr->highLongOfPSN = kNoProcess;
 
-    while ( lookingForProcess )
+    while (lookingForProcess)
     {
-	anErr = GetNextProcess( psnPtr );
-	if ( anErr != noErr )
-	{
+	anErr = GetNextProcess(psnPtr);
+	if (anErr != noErr)
 	    lookingForProcess = false;
-	}
 	else
 	{
-	    anErr = GetProcessInformation( psnPtr, &infoRec );
-	    if ( ( anErr == noErr )
-		 && ( infoRec.processType == targetType )
-		 && ( infoRec.processSignature == targetCreator ) )
-	    {
+	    anErr = GetProcessInformation(psnPtr, &infoRec);
+	    if ((anErr == noErr)
+		    && (infoRec.processType == targetType)
+		    && (infoRec.processSignature == targetCreator))
 		lookingForProcess = false;
-	    }
 	}
     }
 
     return anErr;
 }//end FindProcessBySignature
 
-void Send_KAHL_MOD_AE (buf_T *buf)
+    void
+Send_KAHL_MOD_AE(buf_T *buf)
 {
-    OSErr   anErr = noErr;
-    AEDesc  targetAppDesc = { typeNull, nil };
+    OSErr	anErr = noErr;
+    AEDesc	targetAppDesc = { typeNull, nil };
     ProcessSerialNumber	    psn = { kNoProcess, kNoProcess };
     AppleEvent	theReply = { typeNull, nil };
     AESendMode	sendMode;
@@ -967,48 +970,48 @@ void Send_KAHL_MOD_AE (buf_T *buf)
     ModificationInfo ModData;
 
 
-    anErr = FindProcessBySignature( 'APPL', 'CWIE', &psn );
+    anErr = FindProcessBySignature('APPL', 'CWIE', &psn);
 #ifdef USE_SIOUX
-    printf ("CodeWarrior is");
+    printf("CodeWarrior is");
     if (anErr != noErr)
-	printf (" NOT");
-    printf (" running\n");
+	printf(" NOT");
+    printf(" running\n");
 #endif
-    if ( anErr == noErr )
+    if (anErr == noErr)
     {
-	anErr = AECreateDesc (typeProcessSerialNumber, &psn,
-			      sizeof( ProcessSerialNumber ), &targetAppDesc);
+	anErr = AECreateDesc(typeProcessSerialNumber, &psn,
+			      sizeof(ProcessSerialNumber), &targetAppDesc);
 
-	if ( anErr == noErr )
+	if (anErr == noErr)
 	{
 	    anErr = AECreateAppleEvent( 'KAHL', 'MOD ', &targetAppDesc,
 					kAutoGenerateReturnID, kAnyTransactionID, &theEvent);
 	}
 
-	AEDisposeDesc( &targetAppDesc );
+	AEDisposeDesc(&targetAppDesc);
 
 	/* Add the parms */
 	ModData.theFile = buf->b_FSSpec;
 	ModData.theDate = buf->b_mtime;
 
 	if (anErr == noErr)
-	    anErr =AEPutParamPtr (&theEvent, keyDirectObject, typeChar, &ModData, sizeof(ModData));
+	    anErr = AEPutParamPtr(&theEvent, keyDirectObject, typeChar, &ModData, sizeof(ModData));
 
-	if ( idleProcUPP == nil )
+	if (idleProcUPP == nil)
 	    sendMode = kAENoReply;
 	else
 	    sendMode = kAEWaitReply;
 
-	if ( anErr == noErr )
-	    anErr = AESend( &theEvent, &theReply, sendMode, kAENormalPriority, kNoTimeOut, idleProcUPP, nil );
-	if ( anErr == noErr  &&  sendMode == kAEWaitReply )
+	if (anErr == noErr)
+	    anErr = AESend(&theEvent, &theReply, sendMode, kAENormalPriority, kNoTimeOut, idleProcUPP, nil);
+	if (anErr == noErr  &&  sendMode == kAEWaitReply)
 	{
 #ifdef USE_SIOUX
-	    printf ("KAHL_MOD: Send error: %d\n", anErr);
+	    printf("KAHL_MOD: Send error: %d\n", anErr);
 #endif
-/*	    anErr =  AEHGetHandlerError( &theReply );*/
+/*	    anErr =  AEHGetHandlerError(&theReply);*/
 	}
-	(void) AEDisposeDesc( &theReply );
+	(void) AEDisposeDesc(&theReply);
     }
 }
 #endif /* FEAT_CW_EDITOR */
@@ -1024,7 +1027,8 @@ void Send_KAHL_MOD_AE (buf_T *buf)
  * Handle the Unused parms of an AppleEvent
  */
 
-OSErr HandleUnusedParms (const AppleEvent *theAEvent)
+    OSErr
+HandleUnusedParms(const AppleEvent *theAEvent)
 {
     OSErr	error;
     long	actualSize;
@@ -1086,7 +1090,8 @@ struct SelectionRange /* for handling kCoreClassEvent:kOpenDocuments:keyAEPositi
    endRange are all negative, there is no selection range specified.
  */
 
-pascal OSErr HandleODocAE (const AppleEvent *theAEvent, AppleEvent *theReply, long refCon)
+    pascal OSErr
+HandleODocAE(const AppleEvent *theAEvent, AppleEvent *theReply, long refCon)
 {
     /*
      * TODO: Clean up the code with convert the AppleEvent into
@@ -1107,7 +1112,7 @@ pascal OSErr HandleODocAE (const AppleEvent *theAEvent, AppleEvent *theReply, lo
     long	lnum;
 
 #ifdef USE_SIOUX
-    printf ("aevt_odoc:\n");
+    printf("aevt_odoc:\n");
 #endif
 
     /* the direct object parameter is the list of aliases to files (one or more) */
@@ -1115,7 +1120,7 @@ pascal OSErr HandleODocAE (const AppleEvent *theAEvent, AppleEvent *theReply, lo
     if (error)
     {
 #ifdef USE_SIOUX
-	printf ("aevt_odoc: AEGetParamDesc error: %d\n", error);
+	printf("aevt_odoc: AEGetParamDesc error: %d\n", error);
 #endif
 	return(error);
     }
@@ -1129,13 +1134,13 @@ pascal OSErr HandleODocAE (const AppleEvent *theAEvent, AppleEvent *theReply, lo
     if (error)
     {
 #ifdef USE_SIOUX
-	printf ("aevt_odoc: AEGetParamPtr error: %d\n", error);
+	printf("aevt_odoc: AEGetParamPtr error: %d\n", error);
 #endif
 	return(error);
     }
 
 #ifdef USE_SIOUX
-    printf ("aevt_odoc: lineNum: %d, startRange %d, endRange %d, [date %lx]\n",
+    printf("aevt_odoc: lineNum: %d, startRange %d, endRange %d, [date %lx]\n",
 	    thePosition.lineNum, thePosition.startRange, thePosition.endRange,
 	    thePosition.theDate);
 #endif
@@ -1216,11 +1221,11 @@ pascal OSErr HandleODocAE (const AppleEvent *theAEvent, AppleEvent *theReply, lo
   finished:
     AEDisposeDesc(&theList); /* dispose what we allocated */
 
-    error = HandleUnusedParms (theAEvent);
+    error = HandleUnusedParms(theAEvent);
     if (error)
     {
 #ifdef USE_SIOUX
-	printf ("aevt_odoc: HandleUnusedParms error: %d\n", error);
+	printf("aevt_odoc: HandleUnusedParms error: %d\n", error);
 #endif
 	return(error);
     }
@@ -1231,15 +1236,16 @@ pascal OSErr HandleODocAE (const AppleEvent *theAEvent, AppleEvent *theReply, lo
  *
  */
 
-pascal OSErr Handle_aevt_oapp_AE (const AppleEvent *theAEvent, AppleEvent *theReply, long refCon)
+    pascal OSErr
+Handle_aevt_oapp_AE(const AppleEvent *theAEvent, AppleEvent *theReply, long refCon)
 {
     OSErr	error = noErr;
 
 #ifdef USE_SIOUX
-    printf ("aevt_oapp:\n");
+    printf("aevt_oapp:\n");
 #endif
 
-    error = HandleUnusedParms (theAEvent);
+    error = HandleUnusedParms(theAEvent);
     if (error)
     {
 	return(error);
@@ -1252,15 +1258,16 @@ pascal OSErr Handle_aevt_oapp_AE (const AppleEvent *theAEvent, AppleEvent *theRe
  *
  */
 
-pascal OSErr Handle_aevt_quit_AE (const AppleEvent *theAEvent, AppleEvent *theReply, long refCon)
+    pascal OSErr
+Handle_aevt_quit_AE(const AppleEvent *theAEvent, AppleEvent *theReply, long refCon)
 {
     OSErr	error = noErr;
 
 #ifdef USE_SIOUX
-    printf ("aevt_quit\n");
+    printf("aevt_quit\n");
 #endif
 
-    error = HandleUnusedParms (theAEvent);
+    error = HandleUnusedParms(theAEvent);
     if (error)
     {
 	return(error);
@@ -1276,15 +1283,16 @@ pascal OSErr Handle_aevt_quit_AE (const AppleEvent *theAEvent, AppleEvent *theRe
  *
  */
 
-pascal OSErr Handle_aevt_pdoc_AE (const AppleEvent *theAEvent, AppleEvent *theReply, long refCon)
+    pascal OSErr
+Handle_aevt_pdoc_AE(const AppleEvent *theAEvent, AppleEvent *theReply, long refCon)
 {
     OSErr	error = noErr;
 
 #ifdef USE_SIOUX
-    printf ("aevt_pdoc:\n");
+    printf("aevt_pdoc:\n");
 #endif
 
-    error = HandleUnusedParms (theAEvent);
+    error = HandleUnusedParms(theAEvent);
     if (error)
     {
 	return(error);
@@ -1298,15 +1306,16 @@ pascal OSErr Handle_aevt_pdoc_AE (const AppleEvent *theAEvent, AppleEvent *theRe
  *
  * (Just get rid of all the parms)
  */
-pascal OSErr Handle_unknown_AE (const AppleEvent *theAEvent, AppleEvent *theReply, long refCon)
+    pascal OSErr
+Handle_unknown_AE(const AppleEvent *theAEvent, AppleEvent *theReply, long refCon)
 {
     OSErr	error = noErr;
 
 #ifdef USE_SIOUX
-    printf ("Unknown Event: %x\n", theAEvent->descriptorType);
+    printf("Unknown Event: %x\n", theAEvent->descriptorType);
 #endif
 
-    error = HandleUnusedParms (theAEvent);
+    error = HandleUnusedParms(theAEvent);
     if (error)
     {
 	return(error);
@@ -1324,7 +1333,8 @@ pascal OSErr Handle_unknown_AE (const AppleEvent *theAEvent, AppleEvent *theRepl
 /*
  * Install the various AppleEvent Handlers
  */
-OSErr   InstallAEHandlers (void)
+    OSErr
+InstallAEHandlers(void)
 {
     OSErr   error;
 
@@ -1438,7 +1448,7 @@ OSErr   InstallAEHandlers (void)
  *  Returns the index inside the menu wher
  */
     short /* Shoulde we return MenuItemIndex? */
-gui_mac_get_menu_item_index (pMenu)
+gui_mac_get_menu_item_index(pMenu)
     vimmenu_T *pMenu;
 {
     short	index;
@@ -1475,7 +1485,7 @@ gui_mac_get_menu_item_index (pMenu)
 }
 
     static vimmenu_T *
-gui_mac_get_vim_menu (menuID, itemIndex, pMenu)
+gui_mac_get_vim_menu(menuID, itemIndex, pMenu)
     short	menuID;
     short	itemIndex;
     vimmenu_T	*pMenu;
@@ -1529,7 +1539,7 @@ gui_mac_get_vim_menu (menuID, itemIndex, pMenu)
  */
     pascal
     void
-gui_mac_drag_thumb (ControlHandle theControl, short partCode)
+gui_mac_drag_thumb(ControlHandle theControl, short partCode)
 {
     scrollbar_T		*sb;
     int			value, dragging;
@@ -1538,13 +1548,13 @@ gui_mac_drag_thumb (ControlHandle theControl, short partCode)
 
     theControlToUse = dragged_sb;
 
-    sb = gui_find_scrollbar((long) GetControlReference (theControlToUse));
+    sb = gui_find_scrollbar((long) GetControlReference(theControlToUse));
 
     if (sb == NULL)
 	return;
 
     /* Need to find value by diff between Old Poss New Pos */
-    value = GetControl32BitValue (theControlToUse);
+    value = GetControl32BitValue(theControlToUse);
     dragging = (partCode != 0);
 
     /* When "allow_scrollbar" is FALSE still need to remember the new
@@ -1556,7 +1566,7 @@ gui_mac_drag_thumb (ControlHandle theControl, short partCode)
 
     pascal
     void
-gui_mac_scroll_action (ControlHandle theControl, short partCode)
+gui_mac_scroll_action(ControlHandle theControl, short partCode)
 {
     /* TODO: have live support */
     scrollbar_T *sb, *sb_info;
@@ -1566,7 +1576,7 @@ gui_mac_scroll_action (ControlHandle theControl, short partCode)
     int		dragging = FALSE;
     int		dont_scroll_save = dont_scroll;
 
-    sb = gui_find_scrollbar((long) GetControlReference (theControl));
+    sb = gui_find_scrollbar((long)GetControlReference(theControl));
 
     if (sb == NULL)
 	return;
@@ -1648,7 +1658,7 @@ gui_mac_scroll_action (ControlHandle theControl, short partCode)
  * TODO: Add support for potential TOOLBAR
  */
     void
-gui_mac_doInContentClick (theEvent, whichWindow)
+gui_mac_doInContentClick(theEvent, whichWindow)
     EventRecord *theEvent;
     WindowPtr	 whichWindow;
 {
@@ -1660,10 +1670,10 @@ gui_mac_doInContentClick (theEvent, whichWindow)
     short		dblClick;
 
     thePoint = theEvent->where;
-    GlobalToLocal (&thePoint);
-    SelectWindow (whichWindow);
+    GlobalToLocal(&thePoint);
+    SelectWindow(whichWindow);
 
-    thePortion = FindControl (thePoint, whichWindow, &theControl);
+    thePortion = FindControl(thePoint, whichWindow, &theControl);
 
     if (theControl != NUL)
     {
@@ -1685,7 +1695,7 @@ gui_mac_doInContentClick (theEvent, whichWindow)
 #endif
 	    /* pass 0 as the part to tell gui_mac_drag_thumb, that the mouse
 	     * button has been released */
-	    gui_mac_drag_thumb (theControl, 0); /* Should it be thePortion ? (Dany) */
+	    gui_mac_drag_thumb(theControl, 0); /* Should it be thePortion ? (Dany) */
 	    dragged_sb = NULL;
 	}
     }
@@ -1731,7 +1741,7 @@ gui_mac_doInContentClick (theEvent, whichWindow)
 #endif
 #endif
 	{
-	    SetRect (&dragRect, FILL_X(X_2_COL(thePoint.h)),
+	    SetRect(&dragRect, FILL_X(X_2_COL(thePoint.h)),
 				FILL_Y(Y_2_ROW(thePoint.v)),
 				FILL_X(X_2_COL(thePoint.h)+1),
 				FILL_Y(Y_2_ROW(thePoint.v)+1));
@@ -1746,7 +1756,7 @@ gui_mac_doInContentClick (theEvent, whichWindow)
  * Handle the click in the titlebar (to move the window)
  */
     void
-gui_mac_doInDragClick (where, whichWindow)
+gui_mac_doInDragClick(where, whichWindow)
     Point	where;
     WindowPtr	whichWindow;
 {
@@ -1755,11 +1765,11 @@ gui_mac_doInDragClick (where, whichWindow)
 
     /* TODO: may try to prevent move outside screen? */
 #ifdef USE_CARBONIZED
-    movingLimitsPtr = GetRegionBounds ( GetGrayRgn(), &movingLimits );
+    movingLimitsPtr = GetRegionBounds(GetGrayRgn(), &movingLimits);
 #else
     movingLimitsPtr = &(*GetGrayRgn())->rgnBBox;
 #endif
-    DragWindow (whichWindow, where, movingLimitsPtr);
+    DragWindow(whichWindow, where, movingLimitsPtr);
 }
 
 /*
@@ -1779,7 +1789,7 @@ gui_mac_doInGrowClick(where, whichWindow)
 #ifdef USE_CARBONIZED
     Rect	    NewContentRect;
 
-    resizeLimitsPtr = GetRegionBounds ( GetGrayRgn(), &resizeLimits );
+    resizeLimitsPtr = GetRegionBounds(GetGrayRgn(), &resizeLimits);
 #else
     resizeLimits = qd.screenBits.bounds;
 #endif
@@ -1919,17 +1929,17 @@ gui_mac_doUpdateEvent(event)
     whichWindow = (WindowPtr) event->message;
 
     /* Save Current Port */
-    GetPort (&savePort);
+    GetPort(&savePort);
 
     /* Select the Window's Port */
 #ifdef USE_CARBONIZED
-    SetPortWindowPort (whichWindow);
+    SetPortWindowPort(whichWindow);
 #else
-    SetPort (whichWindow);
+    SetPort(whichWindow);
 #endif
 
     /* Let's update the window */
-      BeginUpdate (whichWindow);
+      BeginUpdate(whichWindow);
 	/* Redraw the biggest rectangle covering the area
 	 * to be updated.
 	 */
@@ -1945,9 +1955,9 @@ gui_mac_doUpdateEvent(event)
 	updateRgn = whichWindow->visRgn;
 #endif
 	/* Use the HLock useless in Carbon? Is it harmful?*/
-	HLock ((Handle) updateRgn);
+	HLock((Handle) updateRgn);
 #ifdef USE_CARBONIZED
-	  updateRectPtr = GetRegionBounds ( updateRgn, &updateRect );
+	  updateRectPtr = GetRegionBounds(updateRgn, &updateRect);
 # if 0
 	  /* Code from original Carbon Port (using GetWindowRegion.
 	   * I believe the UpdateRgn is already in local (Dany)
@@ -1966,33 +1976,33 @@ gui_mac_doUpdateEvent(event)
 	  gui_mch_set_bg_color(gui.back_pixel);
 	  if (updateRectPtr->left < FILL_X(0))
 	  {
-	    SetRect (&rc, 0, 0, FILL_X(0), FILL_Y(Rows));
-	    EraseRect (&rc);
+	    SetRect(&rc, 0, 0, FILL_X(0), FILL_Y(Rows));
+	    EraseRect(&rc);
 	  }
 	  if (updateRectPtr->top < FILL_Y(0))
 	  {
-	    SetRect (&rc, 0, 0, FILL_X(Columns), FILL_Y(0));
-	    EraseRect (&rc);
+	    SetRect(&rc, 0, 0, FILL_X(Columns), FILL_Y(0));
+	    EraseRect(&rc);
 	  }
 	  if (updateRectPtr->right > FILL_X(Columns))
 	  {
-	    SetRect (&rc, FILL_X(Columns), 0,
+	    SetRect(&rc, FILL_X(Columns), 0,
 			   FILL_X(Columns) + gui.border_offset, FILL_Y(Rows));
-	    EraseRect (&rc);
+	    EraseRect(&rc);
 	  }
 	  if (updateRectPtr->bottom > FILL_Y(Rows))
 	  {
-	    SetRect (&rc, 0, FILL_Y(Rows), FILL_X(Columns) + gui.border_offset,
+	    SetRect(&rc, 0, FILL_Y(Rows), FILL_X(Columns) + gui.border_offset,
 					    FILL_Y(Rows) + gui.border_offset);
-	    EraseRect (&rc);
+	    EraseRect(&rc);
 	  }
-	HUnlock ((Handle) updateRgn);
+	HUnlock((Handle) updateRgn);
 #ifdef USE_CARBONIZED
-	DisposeRgn (updateRgn);
+	DisposeRgn(updateRgn);
 #endif
 
 	/* Update scrollbars */
-	DrawControls (whichWindow);
+	DrawControls(whichWindow);
 
 	/* Update the GrowBox */
 	/* Taken from FAQ 33-27 */
@@ -2004,15 +2014,15 @@ gui_mac_doUpdateEvent(event)
 	growRect.top  = growRect.bottom - 15;
 	growRect.left = growRect.right  - 15;
 #endif
-	GetClip (saveRgn);
-	ClipRect (&growRect);
-	DrawGrowIcon (whichWindow);
-	SetClip (saveRgn);
-	DisposeRgn (saveRgn);
-      EndUpdate (whichWindow);
+	GetClip(saveRgn);
+	ClipRect(&growRect);
+	DrawGrowIcon(whichWindow);
+	SetClip(saveRgn);
+	DisposeRgn(saveRgn);
+      EndUpdate(whichWindow);
 
     /* Restore original Port */
-    SetPort (savePort);
+    SetPort(savePort);
 }
 
 /*
@@ -2040,8 +2050,8 @@ gui_mac_doActivateEvent(event)
 
 #if 0	/* Removed by Dany as per above June 2001 */
 	a_bool = false;
-	SetPreserveGlyph (a_bool);
-	SetOutlinePreferred (a_bool);
+	SetPreserveGlyph(a_bool);
+	SetOutlinePreferred(a_bool);
 #endif
     }
 }
@@ -2099,8 +2109,20 @@ gui_mac_doKeyEvent(EventRecord *theEvent)
 
     /* Intercept CTRL-C */
     if (theEvent->modifiers & controlKey)
+    {
 	if (key_char == Ctrl_C && ctrl_c_interrupts)
 	    got_int = TRUE;
+	else if ((theEvent->modifiers & ~(controlKey|shiftKey)) == 0
+		&& (key_char == '2' || key_char == '6'))
+	{
+	    /* CTRL-^ and CTRL-@ don't work in the normal way. */
+	    if (key_char == '2')
+		key_char = Ctrl_AT;
+	    else
+		key_char = Ctrl_HAT;
+	    theEvent->modifiers = 0;
+	}
+    }
 
     /* Intercept CMD-. */
     if (theEvent->modifiers & cmdKey)
@@ -2143,8 +2165,8 @@ gui_mac_doKeyEvent(EventRecord *theEvent)
 			key_char = special_keys[i].vim_code0;
 		    else
 # endif
-			key_char = TO_SPECIAL( special_keys[i].vim_code0,
-						special_keys[i].vim_code1 );
+			key_char = TO_SPECIAL(special_keys[i].vim_code0,
+						special_keys[i].vim_code1);
 		    key_char = simplify_key(key_char,&modifiers);
 		    break;
 		}
@@ -2162,36 +2184,38 @@ gui_mac_doKeyEvent(EventRecord *theEvent)
     {
 #if 1
     /* Clear modifiers when only one modifier is set */
-	if( (modifiers == MOD_MASK_SHIFT) ||
-	    (modifiers == MOD_MASK_CTRL)  ||
-	    (modifiers == MOD_MASK_ALT))
+	if ((modifiers == MOD_MASK_SHIFT)
+		|| (modifiers == MOD_MASK_CTRL)
+		|| (modifiers == MOD_MASK_ALT))
 	    modifiers = 0;
 #else
-	if( modifiers & MOD_MASK_CTRL)
+	if (modifiers & MOD_MASK_CTRL)
 	    modifiers = modifiers & ~MOD_MASK_CTRL;
-	if( modifiers & MOD_MASK_ALT)
+	if (modifiers & MOD_MASK_ALT)
 	    modifiers = modifiers & ~MOD_MASK_ALT;
-	if( modifiers & MOD_MASK_SHIFT)
+	if (modifiers & MOD_MASK_SHIFT)
 	    modifiers = modifiers & ~MOD_MASK_SHIFT;
 #endif
     }
-	if( modifiers )
+	if (modifiers)
 	{
-	    string[ len++ ] = CSI;
-	    string[ len++ ] = KS_MODIFIER;
-	    string[ len++ ] = modifiers;
+	    string[len++] = CSI;
+	    string[len++] = KS_MODIFIER;
+	    string[len++] = modifiers;
 	}
 
-	if( IS_SPECIAL( key_char ) )
+	if (IS_SPECIAL(key_char))
 	{
-	    string[ len++ ] = CSI;
-	    string[ len++ ] = K_SECOND( key_char );
-	    string[ len++ ] = K_THIRD( key_char );
+	    string[len++] = CSI;
+	    string[len++] = K_SECOND(key_char);
+	    string[len++] = K_THIRD(key_char);
 	}
 	else
 	{
 #ifdef FEAT_MBYTE
-	    if (input_conv.vc_type != CONV_NONE)
+	    /* Convert characters when needed (e.g., from MacRoman to latin1).
+	     * This doesn't work for the NUL byte. */
+	    if (input_conv.vc_type != CONV_NONE && key_char > 0)
 	    {
 		char_u	from[2], *to;
 		int	l;
@@ -2236,13 +2260,13 @@ gui_mac_doKeyEvent(EventRecord *theEvent)
  * Handle MouseClick
  */
     void
-gui_mac_doMouseDownEvent (theEvent)
+gui_mac_doMouseDownEvent(theEvent)
     EventRecord *theEvent;
 {
     short		thePart;
     WindowPtr		whichWindow;
 
-    thePart = FindWindow (theEvent->where, &whichWindow);
+    thePart = FindWindow(theEvent->where, &whichWindow);
 
     switch (thePart)
     {
@@ -2251,19 +2275,19 @@ gui_mac_doMouseDownEvent (theEvent)
 	    break;
 
 	case (inMenuBar):
-	    gui_mac_handle_menu(MenuSelect (theEvent->where));
+	    gui_mac_handle_menu(MenuSelect(theEvent->where));
 	    break;
 
 	case (inContent):
-	    gui_mac_doInContentClick (theEvent, whichWindow);
+	    gui_mac_doInContentClick(theEvent, whichWindow);
 	    break;
 
 	case (inDrag):
-	    gui_mac_doInDragClick (theEvent->where, whichWindow);
+	    gui_mac_doInDragClick(theEvent->where, whichWindow);
 	    break;
 
 	case (inGrow):
-	    gui_mac_doInGrowClick (theEvent->where, whichWindow);
+	    gui_mac_doInGrowClick(theEvent->where, whichWindow);
 	    break;
 
 	case (inGoAway):
@@ -2285,18 +2309,18 @@ gui_mac_doMouseDownEvent (theEvent)
  * [this event is a moving in and out of a region]
  */
     void
-gui_mac_doMouseMovedEvent (event)
+gui_mac_doMouseMovedEvent(event)
     EventRecord *event;
 {
     Point   thePoint;
     int_u   vimModifiers;
 
     thePoint = event->where;
-    GlobalToLocal (&thePoint);
+    GlobalToLocal(&thePoint);
     vimModifiers = EventModifiers2VimMouseModifiers(event->modifiers);
 
     if (!Button())
-	gui_mouse_moved (thePoint.h, thePoint.v);
+	gui_mouse_moved(thePoint.h, thePoint.v);
     else
 #ifdef USE_CTRLCLICKMENU
 	if (!clickIsPopup)
@@ -2305,7 +2329,7 @@ gui_mac_doMouseMovedEvent (event)
 					     thePoint.v, FALSE, vimModifiers);
 
     /* Reset the region from which we move in and out */
-    SetRect (&dragRect, FILL_X(X_2_COL(thePoint.h)),
+    SetRect(&dragRect, FILL_X(X_2_COL(thePoint.h)),
 			FILL_Y(Y_2_ROW(thePoint.v)),
 			FILL_X(X_2_COL(thePoint.h)+1),
 			FILL_Y(Y_2_ROW(thePoint.v)+1));
@@ -2319,7 +2343,7 @@ gui_mac_doMouseMovedEvent (event)
  * Handle the mouse release
  */
     void
-gui_mac_doMouseUpEvent (theEvent)
+gui_mac_doMouseUpEvent(theEvent)
     EventRecord *theEvent;
 {
     Point   thePoint;
@@ -2331,7 +2355,7 @@ gui_mac_doMouseUpEvent (theEvent)
     dragRectEnbl = FALSE;
     dragRectControl = kCreateEmpty;
     thePoint = theEvent->where;
-    GlobalToLocal (&thePoint);
+    GlobalToLocal(&thePoint);
 
     vimModifiers = EventModifiers2VimMouseModifiers(theEvent->modifiers);
 #ifdef USE_CTRLCLICKMENU
@@ -2341,8 +2365,7 @@ gui_mac_doMouseUpEvent (theEvent)
 	clickIsPopup = FALSE;
     }
 #endif
-    gui_send_mouse_event
-      (MOUSE_RELEASE, thePoint.h, thePoint.v, FALSE, vimModifiers);
+    gui_send_mouse_event(MOUSE_RELEASE, thePoint.h, thePoint.v, FALSE, vimModifiers);
 }
 
 #ifdef USE_MOUSEWHEEL
@@ -2431,7 +2454,7 @@ gui_mac_handle_contextual_menu(event)
 	/* Handle the menu CntxMenuID, CntxMenuItem */
 	/* The submenu can be handle directly by gui_mac_handle_menu */
 	/* But what about the current menu, is the meny changed by ContextualMenuSelect */
-	gui_mac_handle_menu ((CntxMenuID << 16) + CntxMenuItem);
+	gui_mac_handle_menu((CntxMenuID << 16) + CntxMenuItem);
     }
     else if (CntxMenuID == kCMShowHelpSelected)
     {
@@ -2464,9 +2487,9 @@ gui_mac_handle_menu(menuChoice)
 	{
 #ifndef USE_CARBONIZED
 	    /* Desk Accessory doesn't exist in Carbon */
-	    appleMenu = GetMenuHandle (menu);
-	    GetMenuItemText (appleMenu, item, itemName);
-	    (void) OpenDeskAcc (itemName);
+	    appleMenu = GetMenuHandle(menu);
+	    GetMenuItemText(appleMenu, item, itemName);
+	    (void) OpenDeskAcc(itemName);
 #endif
 	}
     }
@@ -2477,7 +2500,7 @@ gui_mac_handle_menu(menuChoice)
 	if (theVimMenu)
 	    gui_menu_cb(theVimMenu);
     }
-    HiliteMenu (0);
+    HiliteMenu(0);
 }
 
 /*
@@ -2485,7 +2508,7 @@ gui_mac_handle_menu(menuChoice)
  */
 
     void
-gui_mac_handle_event (event)
+gui_mac_handle_event(event)
     EventRecord *event;
 {
     OSErr	error;
@@ -2509,7 +2532,7 @@ gui_mac_handle_event (event)
     {
 	case (keyDown):
 	case (autoKey):
-	    gui_mac_doKeyEvent (event);
+	    gui_mac_doKeyEvent(event);
 	    break;
 
 	case (keyUp):
@@ -2525,7 +2548,7 @@ gui_mac_handle_event (event)
 	    break;
 
 	case (updateEvt):
-	    gui_mac_doUpdateEvent (event);
+	    gui_mac_doUpdateEvent(event);
 	    break;
 
 	case (diskEvt):
@@ -2533,17 +2556,17 @@ gui_mac_handle_event (event)
 	    break;
 
 	case (activateEvt):
-	    gui_mac_doActivateEvent (event);
+	    gui_mac_doActivateEvent(event);
 	    break;
 
 	case (osEvt):
 	    switch ((event->message >> 24) & 0xFF)
 	    {
 		case (0xFA): /* mouseMovedMessage */
-		    gui_mac_doMouseMovedEvent (event);
+		    gui_mac_doMouseMovedEvent(event);
 		    break;
 		case (0x01): /* suspendResumeMessage */
-		    gui_mac_doSuspendEvent (event);
+		    gui_mac_doSuspendEvent(event);
 		    break;
 	    }
 	    break;
@@ -2565,7 +2588,7 @@ gui_mac_handle_event (event)
 
 
     GuiFont
-gui_mac_find_font (font_name)
+gui_mac_find_font(font_name)
     char_u *font_name;
 {
     char_u	c;
@@ -2590,12 +2613,12 @@ gui_mac_find_font (font_name)
     pFontName[0] = STRLEN(font_name);
     *p = c;
 
-    GetFNum (pFontName, &font_id);
+    GetFNum(pFontName, &font_id);
 #else
     /* name = C2Pascal_save(menu->dname); */
     fontNamePtr = C2Pascal_save_and_remove_backslash(font_name);
 
-    GetFNum (fontNamePtr, &font_id);
+    GetFNum(fontNamePtr, &font_id);
 #endif
 
 
@@ -2603,7 +2626,7 @@ gui_mac_find_font (font_name)
     {
 	/* Oups, the system font was it the one the user want */
 
-	GetFontName (0, systemFontname);
+	GetFontName(0, systemFontname);
 	if (!EqualString(pFontName, systemFontname, false, false))
 	    return NOFONT;
     }
@@ -2709,36 +2732,36 @@ gui_mch_prepare(argc, argv)
     SIOUXSettings.showstatusline = true;
     SIOUXSettings.toppixel = 300;
     SIOUXSettings.leftpixel = 10;
-    InstallConsole (1); /* fileno(stdout) = 1, on page 430 of MSL C */
-    printf ("Debugging console enabled\n");
-    /*	SIOUXSetTitle ((char_u *) "Vim Stdout"); */
+    InstallConsole(1); /* fileno(stdout) = 1, on page 430 of MSL C */
+    printf("Debugging console enabled\n");
+    /*	SIOUXSetTitle((char_u *) "Vim Stdout"); */
 #endif
 
-    pomme = NewMenu (256, "\p\024"); /* 0x14= = Apple Menu */
+    pomme = NewMenu(256, "\p\024"); /* 0x14= = Apple Menu */
 
-    AppendMenu (pomme, "\pAbout VIM");
+    AppendMenu(pomme, "\pAbout VIM");
 #ifndef USE_CARBONIZED
-    AppendMenu (pomme, "\p-");
-    AppendResMenu (pomme, 'DRVR');
+    AppendMenu(pomme, "\p-");
+    AppendResMenu(pomme, 'DRVR');
 #endif
 
-    InsertMenu (pomme, 0);
+    InsertMenu(pomme, 0);
 
     DrawMenuBar();
 
 
 #ifndef USE_OFFSETED_WINDOW
-    SetRect (&windRect, 10, 48, 10+80*7 + 16, 48+24*11);
+    SetRect(&windRect, 10, 48, 10+80*7 + 16, 48+24*11);
 #else
-    SetRect (&windRect, 300, 40, 300+80*7 + 16, 40+24*11);
+    SetRect(&windRect, 300, 40, 300+80*7 + 16, 40+24*11);
 #endif
 
 
 #ifdef USE_CARBONIZED
     CreateNewWindow(kDocumentWindowClass,
 		kWindowResizableAttribute | kWindowCollapseBoxAttribute,
-		&windRect, &gui.VimWindow );
-    SetPortWindowPort ( gui.VimWindow );
+		&windRect, &gui.VimWindow);
+    SetPortWindowPort(gui.VimWindow);
 #else
     gui.VimWindow = NewCWindow(nil, &windRect, "\pgVim on Macintosh", true, documentProc,
 			(WindowPtr) -1L, false, 0);
@@ -2753,11 +2776,11 @@ gui_mch_prepare(argc, argv)
     gui.in_focus = TRUE; /* For the moment -> syn. of front application */
 
 #if TARGET_API_MAC_CARBON
-    gScrollAction = NewControlActionUPP (gui_mac_scroll_action);
-    gScrollDrag   = NewControlActionUPP (gui_mac_drag_thumb);
+    gScrollAction = NewControlActionUPP(gui_mac_scroll_action);
+    gScrollDrag   = NewControlActionUPP(gui_mac_drag_thumb);
 #else
-    gScrollAction = NewControlActionProc (gui_mac_scroll_action);
-    gScrollDrag   = NewControlActionProc (gui_mac_drag_thumb);
+    gScrollAction = NewControlActionProc(gui_mac_scroll_action);
+    gScrollDrag   = NewControlActionProc(gui_mac_drag_thumb);
 #endif
 
     /* Getting a handle to the Help menu */
@@ -2769,7 +2792,7 @@ gui_mch_prepare(argc, argv)
 # endif
 
     if (gui.MacOSHelpMenu != nil)
-	gui.MacOSHelpItems = CountMenuItems (gui.MacOSHelpMenu);
+	gui.MacOSHelpItems = CountMenuItems(gui.MacOSHelpMenu);
     else
 	gui.MacOSHelpItems = 0;
 #endif
@@ -2781,25 +2804,25 @@ gui_mch_prepare(argc, argv)
 #endif
 #ifdef USE_EXE_NAME
 # ifndef USE_FIND_BUNDLE_PATH
-    HGetVol (volName, &applVRefNum, &applDirID);
+    HGetVol(volName, &applVRefNum, &applDirID);
     /* TN2015: mention a possible bad VRefNum */
-    FSMakeFSSpec (applVRefNum, applDirID, "\p", &applDir);
+    FSMakeFSSpec(applVRefNum, applDirID, "\p", &applDir);
 # else
     /* OSErr GetApplicationBundleFSSpec(FSSpecPtr theFSSpecPtr)
      * of TN2015
      * This technic remove the ../Contents/MacOS/etc part
      */
-    (void) GetCurrentProcess(&psn);
+    (void)GetCurrentProcess(&psn);
     /* if (err != noErr) return err; */
 
-    (void) GetProcessBundleLocation(&psn, &applFSRef);
+    (void)GetProcessBundleLocation(&psn, &applFSRef);
     /* if (err != noErr) return err; */
 
-    (void) FSGetCatalogInfo(&applFSRef, kFSCatInfoNone, NULL, NULL, &applDir, NULL);
+    (void)FSGetCatalogInfo(&applFSRef, kFSCatInfoNone, NULL, NULL, &applDir, NULL);
 
     /* This technic return NIL when we disallow_gui */
 # endif
-    exe_name = FullPathFromFSSpec_save (applDir);
+    exe_name = FullPathFromFSSpec_save(applDir);
 #endif
 
 #ifdef USE_VIM_CREATOR_ID
@@ -2925,28 +2948,28 @@ gui_mch_init()
     SIOUXSettings.showstatusline = true;
     SIOUXSettings.toppixel = 300;
     SIOUXSettings.leftpixel = 10;
-    InstallConsole (1); /* fileno(stdout) = 1, on page 430 of MSL C */
-    printf ("Debugging console enabled\n");
-    /*	SIOUXSetTitle ((char_u *) "Vim Stdout"); */
+    InstallConsole(1); /* fileno(stdout) = 1, on page 430 of MSL C */
+    printf("Debugging console enabled\n");
+    /*	SIOUXSetTitle((char_u *) "Vim Stdout"); */
 #endif
 
-    pomme = NewMenu (256, "\p\024"); /* 0x14= = Apple Menu */
+    pomme = NewMenu(256, "\p\024"); /* 0x14= = Apple Menu */
 
-    AppendMenu (pomme, "\pAbout VIM");
+    AppendMenu(pomme, "\pAbout VIM");
 #ifndef USE_CARBONIZED
-    AppendMenu (pomme, "\p-");
-    AppendResMenu (pomme, 'DRVR');
+    AppendMenu(pomme, "\p-");
+    AppendResMenu(pomme, 'DRVR');
 #endif
 
-    InsertMenu (pomme, 0);
+    InsertMenu(pomme, 0);
 
     DrawMenuBar();
 
 
 #ifndef USE_OFFSETED_WINDOW
-    SetRect (&windRect, 10, 48, 10+80*7 + 16, 48+24*11);
+    SetRect(&windRect, 10, 48, 10+80*7 + 16, 48+24*11);
 #else
-    SetRect (&windRect, 300, 40, 300+80*7 + 16, 40+24*11);
+    SetRect(&windRect, 300, 40, 300+80*7 + 16, 40+24*11);
 #endif
 
     gui.VimWindow = NewCWindow(nil, &windRect, "\pgVim on Macintosh", true,
@@ -2959,7 +2982,7 @@ gui_mch_init()
     InstallReceiveHandler((DragReceiveHandlerUPP)receiveHandler,
 	    gui.VimWindow, NULL);
 #ifdef USE_CARBONIZED
-    SetPortWindowPort ( gui.VimWindow );
+    SetPortWindowPort(gui.VimWindow);
 #else
     SetPort(gui.VimWindow);
 #endif
@@ -2972,11 +2995,11 @@ gui_mch_init()
     gui.in_focus = TRUE; /* For the moment -> syn. of front application */
 
 #if TARGET_API_MAC_CARBON
-    gScrollAction = NewControlActionUPP (gui_mac_scroll_action);
-    gScrollDrag   = NewControlActionUPP (gui_mac_drag_thumb);
+    gScrollAction = NewControlActionUPP(gui_mac_scroll_action);
+    gScrollDrag   = NewControlActionUPP(gui_mac_drag_thumb);
 #else
-    gScrollAction = NewControlActionProc (gui_mac_scroll_action);
-    gScrollDrag   = NewControlActionProc (gui_mac_drag_thumb);
+    gScrollAction = NewControlActionProc(gui_mac_scroll_action);
+    gScrollDrag   = NewControlActionProc(gui_mac_drag_thumb);
 #endif
 
     /* Getting a handle to the Help menu */
@@ -2988,7 +3011,7 @@ gui_mch_init()
 # endif
 
     if (gui.MacOSHelpMenu != nil)
-	gui.MacOSHelpItems = CountMenuItems (gui.MacOSHelpMenu);
+	gui.MacOSHelpItems = CountMenuItems(gui.MacOSHelpMenu);
     else
 	gui.MacOSHelpItems = 0;
 #endif
@@ -3123,7 +3146,7 @@ gui_mch_get_winpos(int *x, int *y)
     OSStatus	status;
 
     /* Carbon >= 1.0.2, MacOS >= 8.5 */
-    status = GetWindowBounds (gui.VimWindow, kWindowStructureRgn, &bounds);
+    status = GetWindowBounds(gui.VimWindow, kWindowStructureRgn, &bounds);
 
     if (status != noErr)
 	return FAIL;
@@ -3164,10 +3187,10 @@ gui_mch_set_shellsize(
     if (gui.which_scrollbars[SBAR_LEFT])
     {
 #ifdef USE_CARBONIZED
-	VimPort = GetWindowPort ( gui.VimWindow );
-	GetPortBounds (VimPort, &VimBound);
+	VimPort = GetWindowPort(gui.VimWindow);
+	GetPortBounds(VimPort, &VimBound);
 	VimBound.left = -gui.scrollbar_width; /* + 1;*/
-	SetPortBounds (VimPort, &VimBound);
+	SetPortBounds(VimPort, &VimBound);
     /*	GetWindowBounds(gui.VimWindow, kWindowGlobalPortRgn, &winPortRect); ??*/
 #else
 	gui.VimWindow->portRect.left = -gui.scrollbar_width; /* + 1;*/
@@ -3177,10 +3200,10 @@ gui_mch_set_shellsize(
     else
     {
 #ifdef USE_CARBONIZED
-	VimPort = GetWindowPort ( gui.VimWindow );
-	GetPortBounds (VimPort, &VimBound);
+	VimPort = GetWindowPort(gui.VimWindow);
+	GetPortBounds(VimPort, &VimBound);
 	VimBound.left = 0;
-	SetPortBounds (VimPort, &VimBound);
+	SetPortBounds(VimPort, &VimBound);
 #else
 	gui.VimWindow->portRect.left = 0;
 #endif;
@@ -3241,20 +3264,20 @@ gui_mch_init_font(font_name, fontset)
     }
     else
     {
-	font = gui_mac_find_font (font_name);
+	font = gui_mac_find_font(font_name);
 
 	if (font == NOFONT)
 	    return FAIL;
     }
     gui.norm_font = font;
 
-    TextSize (font >> 16);
-    TextFont (font & 0xFFFF);
+    TextSize(font >> 16);
+    TextFont(font & 0xFFFF);
 
-    GetFontInfo (&font_info);
+    GetFontInfo(&font_info);
 
     gui.char_ascent = font_info.ascent;
-    gui.char_width  = CharWidth ('_');
+    gui.char_width  = CharWidth('_');
     gui.char_height = font_info.ascent + font_info.descent + p_linespace;
 
     return OK;
@@ -3266,7 +3289,7 @@ gui_mch_adjust_charsize()
 {
     FontInfo    font_info;
 
-    GetFontInfo (&font_info);
+    GetFontInfo(&font_info);
     gui.char_height = font_info.ascent + font_info.descent + p_linespace;
     gui.char_ascent = font_info.ascent + p_linespace / 2;
     return OK;
@@ -3425,10 +3448,10 @@ gui_mch_get_color(name)
     }
     else
     {
-	if (STRICMP (name, "hilite") == 0)
+	if (STRICMP(name, "hilite") == 0)
 	{
-	    LMGetHiliteRGB (&MacColor);
-	    return (RGB (MacColor.red >> 8, MacColor.green >> 8, MacColor.blue >> 8));
+	    LMGetHiliteRGB(&MacColor);
+	    return (RGB(MacColor.red >> 8, MacColor.green >> 8, MacColor.blue >> 8));
 	}
 	/* Check if the name is one of the colors we know */
 	for (i = 0; i < sizeof(table) / sizeof(table[0]); i++)
@@ -3504,7 +3527,7 @@ gui_mch_set_fg_color(color)
     TheColor.green = Green(color) * 0x0101;
     TheColor.blue = Blue(color) * 0x0101;
 
-    RGBForeColor (&TheColor);
+    RGBForeColor(&TheColor);
 }
 
 /*
@@ -3520,7 +3543,7 @@ gui_mch_set_bg_color(color)
     TheColor.green = Green(color) * 0x0101;
     TheColor.blue = Blue(color) * 0x0101;
 
-    RGBBackColor (&TheColor);
+    RGBBackColor(&TheColor);
 }
 
     void
@@ -3597,31 +3620,31 @@ gui_mch_draw_string(row, col, s, len, flags)
 #endif
     {
 	/* Use old-style, non-antialiased QuickDraw text rendering. */
-	TextMode (srcCopy);
-	TextFace (normal);
+	TextMode(srcCopy);
+	TextFace(normal);
 
     /*  SelectFont(hdc, gui.currFont); */
 
 	if (flags & DRAW_TRANSP)
 	{
-	    TextMode (srcOr);
+	    TextMode(srcOr);
 	}
 
-	MoveTo (TEXT_X(col), TEXT_Y(row));
-	DrawText ((char *)s, 0, len);
+	MoveTo(TEXT_X(col), TEXT_Y(row));
+	DrawText((char *)s, 0, len);
 
 
 	if (flags & DRAW_BOLD)
 	{
-	    TextMode (srcOr);
-	    MoveTo (TEXT_X(col) + 1, TEXT_Y(row));
-	    DrawText ((char *)s, 0, len);
+	    TextMode(srcOr);
+	    MoveTo(TEXT_X(col) + 1, TEXT_Y(row));
+	    DrawText((char *)s, 0, len);
 	}
 
 	if (flags & DRAW_UNDERL)
 	{
-	    MoveTo (FILL_X(col), FILL_Y(row + 1) - 1);
-	    LineTo (FILL_X(col + len) - 1, FILL_Y(row + 1) - 1);
+	    MoveTo(FILL_X(col), FILL_Y(row + 1) - 1);
+	    LineTo(FILL_X(col + len) - 1, FILL_Y(row + 1) - 1);
 	}
     }
 
@@ -3649,7 +3672,7 @@ gui_mch_haskey(name)
     void
 gui_mch_beep()
 {
-    SysBeep (1); /* Should this be 0? (????) */
+    SysBeep(1); /* Should this be 0? (????) */
 }
 
     void
@@ -3740,7 +3763,7 @@ gui_mch_draw_hollow_cursor(color)
 
     gui_mch_set_fg_color(color);
 
-    FrameRect (&rc);
+    FrameRect(&rc);
 }
 
 /*
@@ -3767,7 +3790,7 @@ gui_mch_draw_part_cursor(w, h, color)
 
     gui_mch_set_fg_color(color);
 
-    PaintRect (&rc);
+    PaintRect(&rc);
 }
 
 
@@ -3791,7 +3814,7 @@ gui_mch_update()
      */
     EventRecord theEvent;
 
-    if (EventAvail (everyEvent, &theEvent))
+    if (EventAvail(everyEvent, &theEvent))
 	if (theEvent.what != nullEvent)
 	    gui_mch_wait_for_chars(0);
 }
@@ -3806,7 +3829,7 @@ gui_mch_update()
 #endif
     pascal
     Boolean
-WaitNextEventWrp (EventMask eventMask, EventRecord *theEvent, UInt32 sleep, RgnHandle mouseRgn)
+WaitNextEventWrp(EventMask eventMask, EventRecord *theEvent, UInt32 sleep, RgnHandle mouseRgn)
 {
     if (((long) sleep) < -1)
 	sleep = 32767;
@@ -3857,7 +3880,7 @@ gui_mch_wait_for_chars(wtime)
 	else*/ if (dragRectControl == kCreateRect)
 	{
 	    dragRgn = cursorRgn;
-	    RectRgn (dragRgn, &dragRect);
+	    RectRgn(dragRgn, &dragRect);
 	    dragRectControl = kNothing;
 	}
 	/*
@@ -3871,12 +3894,12 @@ gui_mch_wait_for_chars(wtime)
 	    sleeppyTick = 60*wtime/1000;
 	else
 	    sleeppyTick = 32767;
-	if (WaitNextEventWrp (mask, &event, sleeppyTick, dragRgn))
+	if (WaitNextEventWrp(mask, &event, sleeppyTick, dragRgn))
 	{
 #ifdef USE_SIOUX
 	    if (!SIOUXHandleOneEvent(&event))
 #endif
-		gui_mac_handle_event (&event);
+		gui_mac_handle_event(&event);
 	    if (input_available())
 	    {
 		allow_scrollbar = FALSE;
@@ -3929,7 +3952,7 @@ gui_mch_clear_block(row1, col1, row2, col2)
     rc.bottom = FILL_Y(row2 + 1);
 
     gui_mch_set_bg_color(gui.back_pixel);
-    EraseRect (&rc);
+    EraseRect(&rc);
 }
 
 /*
@@ -3970,7 +3993,7 @@ gui_mch_delete_lines(row, num_lines)
     rc.bottom = FILL_Y(gui.scroll_region_bot + 1);
 
     gui_mch_set_bg_color(gui.back_pixel);
-    ScrollRect (&rc, 0, -num_lines * gui.char_height, (RgnHandle) nil);
+    ScrollRect(&rc, 0, -num_lines * gui.char_height, (RgnHandle) nil);
 
     gui_clear_block(gui.scroll_region_bot - num_lines + 1,
 						       gui.scroll_region_left,
@@ -3995,7 +4018,7 @@ gui_mch_insert_lines(row, num_lines)
 
     gui_mch_set_bg_color(gui.back_pixel);
 
-    ScrollRect (&rc, 0, gui.char_height * num_lines, (RgnHandle) nil);
+    ScrollRect(&rc, 0, gui.char_height * num_lines, (RgnHandle) nil);
 
     /* Update gui.cursor_row if the cursor scrolled or copied over */
     if (gui.cursor_row >= gui.row
@@ -4028,6 +4051,7 @@ clip_mch_request_selection(cbd)
     ScrapFlavorFlags	scrapFlags;
     ScrapRef    scrap = nil;
     OSStatus	error;
+    int		flavor;
 #else
     long	scrapOffset;
     long	scrapSize;
@@ -4038,19 +4062,31 @@ clip_mch_request_selection(cbd)
 
 
 #ifdef USE_CARBONIZED
-    error = GetCurrentScrap (&scrap);
+    error = GetCurrentScrap(&scrap);
     if (error != noErr)
 	return;
 
-    error = GetScrapFlavorFlags(scrap, kScrapFlavorTypeText, &scrapFlags);
-    if (error != noErr)
-	return;
+    flavor = 0;
+    error = GetScrapFlavorFlags(scrap, VIMSCRAPFLAVOR, &scrapFlags);
+    if (error == noErr)
+    {
+	error = GetScrapFlavorSize(scrap, VIMSCRAPFLAVOR, &scrapSize);
+	if (error == noErr && scrapSize > 1)
+	    flavor = 1;
+    }
 
-    error = GetScrapFlavorSize (scrap, kScrapFlavorTypeText, &scrapSize);
-    if (error != noErr)
-	return;
+    if (flavor == 0)
+    {
+	error = GetScrapFlavorFlags(scrap, kScrapFlavorTypeText, &scrapFlags);
+	if (error != noErr)
+	    return;
+
+	error = GetScrapFlavorSize(scrap, kScrapFlavorTypeText, &scrapSize);
+	if (error != noErr)
+	    return;
+    }
 
-    ReserveMem (scrapSize);
+    ReserveMem(scrapSize);
 #else
     /* Call to LoadScrap seem to avoid problem with crash on first paste */
     scrapSize = LoadScrap();
@@ -4061,23 +4097,28 @@ clip_mch_request_selection(cbd)
     {
 #ifdef USE_CARBONIZED
 	/* In CARBON we don't need a Handle, a pointer is good */
-	textOfClip = NewHandle (scrapSize);
+	textOfClip = NewHandle(scrapSize);
 	/* tempclip = lalloc(scrapSize+1, TRUE); */
 #else
 	textOfClip = NewHandle(0);
 #endif
-	HLock (textOfClip);
+	HLock(textOfClip);
 #ifdef USE_CARBONIZED
-	error = GetScrapFlavorData (scrap, kScrapFlavorTypeText, &scrapSize, *textOfClip);
+	error = GetScrapFlavorData(scrap,
+		flavor ? VIMSCRAPFLAVOR : kScrapFlavorTypeText,
+		&scrapSize, *textOfClip);
 #else
 	scrapSize = GetScrap(textOfClip, 'TEXT', &scrapOffset);
 #endif
 
-	type = (strchr(*textOfClip, '\r') != NULL) ? MLINE : MCHAR;
+	if (flavor)
+	    type = **textOfClip;
+	else
+	    type = (strchr(*textOfClip, '\r') != NULL) ? MLINE : MCHAR;
 
 	tempclip = lalloc(scrapSize+1, TRUE);
-	STRNCPY(tempclip, *textOfClip, scrapSize);
-	tempclip[scrapSize] = 0;
+	STRNCPY(tempclip, *textOfClip + flavor, scrapSize - flavor);
+	tempclip[scrapSize - flavor] = 0;
 
 	searchCR = (char *)tempclip;
 	while (searchCR != NULL)
@@ -4184,15 +4225,23 @@ clip_mch_set_selection(cbd)
 	ZeroScrap();
 #endif
 
+#ifdef USE_CARBONIZED
+	textOfClip = NewHandle(scrapSize + 1);
+#else
 	textOfClip = NewHandle(scrapSize);
+#endif
 	HLock(textOfClip);
 
-	STRNCPY(*textOfClip, str, scrapSize);
 #ifdef USE_CARBONIZED
-	GetCurrentScrap (&scrap);
+	**textOfClip = type;
+	STRNCPY(*textOfClip + 1, str, scrapSize);
+	GetCurrentScrap(&scrap);
 	PutScrapFlavor(scrap, kScrapFlavorTypeText, kScrapFlavorMaskNone,
-			scrapSize, *textOfClip);
+		scrapSize, *textOfClip + 1);
+	PutScrapFlavor(scrap, VIMSCRAPFLAVOR, kScrapFlavorMaskNone,
+		scrapSize + 1, *textOfClip);
 #else
+	STRNCPY(*textOfClip, str, scrapSize);
 	PutScrap(scrapSize, 'TEXT', *textOfClip);
 #endif
 	HUnlock(textOfClip);
@@ -4211,7 +4260,7 @@ gui_mch_set_text_area_pos(x, y, w, h)
 {
     Rect	VimBound;
 
-/*  HideWindow (gui.VimWindow); */
+/*  HideWindow(gui.VimWindow); */
 #ifdef USE_CARBONIZED
     GetWindowBounds(gui.VimWindow, kWindowGlobalPortRgn, &VimBound);
 #else
@@ -4231,7 +4280,7 @@ gui_mch_set_text_area_pos(x, y, w, h)
     SetWindowBounds(gui.VimWindow, kWindowGlobalPortRgn, &VimBound);
 #endif
 
-    ShowWindow (gui.VimWindow);
+    ShowWindow(gui.VimWindow);
 }
 
 /*
@@ -4321,11 +4370,11 @@ gui_mch_add_menu(menu, idx)
 #endif
     {
 	/* Carbon suggest use of
-	 * OSStatus CreateNewMenu ( MenuID, MenuAttributes, MenuRef *);
-	 * OSStatus SetMenuTitle ( MenuRef, ConstStr255Param title );
+	 * OSStatus CreateNewMenu(MenuID, MenuAttributes, MenuRef *);
+	 * OSStatus SetMenuTitle(MenuRef, ConstStr255Param title);
 	 */
 	menu->submenu_id = next_avail_id;
-	menu->submenu_handle = NewMenu (menu->submenu_id, name);
+	menu->submenu_handle = NewMenu(menu->submenu_id, name);
 	next_avail_id++;
     }
 
@@ -4341,7 +4390,7 @@ gui_mch_add_menu(menu, idx)
 #ifdef USE_HELPMENU
 	if (menu->submenu_id != kHMHelpMenuID)
 #endif
-	    InsertMenu (menu->submenu_handle, menu_after_me); /* insert before */
+	    InsertMenu(menu->submenu_handle, menu_after_me); /* insert before */
 #if 1
 	/* Vim should normally update it. TODO: verify */
 	DrawMenuBar();
@@ -4351,7 +4400,7 @@ gui_mch_add_menu(menu, idx)
     {
 	/* Adding as a submenu */
 
-	index = gui_mac_get_menu_item_index (menu);
+	index = gui_mac_get_menu_item_index(menu);
 
 	/* Call InsertMenuItem followed by SetMenuItemText
 	 * to avoid special character recognition by InsertMenuItem
@@ -4363,7 +4412,7 @@ gui_mch_add_menu(menu, idx)
 	InsertMenu(menu->submenu_handle, hierMenu);
     }
 
-    vim_free (name);
+    vim_free(name);
 
 #if 0
     /* Done by Vim later on */
@@ -4502,7 +4551,7 @@ gui_mch_toggle_tearoffs(enable)
 gui_mch_destroy_menu(menu)
     vimmenu_T	*menu;
 {
-    short	index = gui_mac_get_menu_item_index (menu);
+    short	index = gui_mac_get_menu_item_index(menu);
 
     if (index > 0)
     {
@@ -4513,20 +4562,20 @@ gui_mch_destroy_menu(menu)
 #endif
 	{
 	    /* For now just don't delete help menu items. (Huh? Dany) */
-	    DeleteMenuItem (menu->parent->submenu_handle, index);
+	    DeleteMenuItem(menu->parent->submenu_handle, index);
 
 	    /* Delete the Menu if it was a hierarchical Menu */
 	    if (menu->submenu_id != 0)
 	    {
-		DeleteMenu (menu->submenu_id);
-		DisposeMenu (menu->submenu_handle);
+		DeleteMenu(menu->submenu_id);
+		DisposeMenu(menu->submenu_handle);
 	    }
 	}
 #ifdef USE_HELPMENU
 # ifdef DEBUG_MAC_MENU
 	else
 	{
-	    printf ("gmdm 1\n");
+	    printf("gmdm 1\n");
 	}
 # endif
 #endif
@@ -4534,7 +4583,7 @@ gui_mch_destroy_menu(menu)
 #ifdef DEBUG_MAC_MENU
       else
       {
-	printf ("gmdm 2\n");
+	printf("gmdm 2\n");
       }
 #endif
     }
@@ -4545,8 +4594,8 @@ gui_mch_destroy_menu(menu)
 	if (menu->submenu_id != kHMHelpMenuID)
 #endif
 	{
-	    DeleteMenu (menu->submenu_id);
-	    DisposeMenu (menu->submenu_handle);
+	    DeleteMenu(menu->submenu_id);
+	    DisposeMenu(menu->submenu_handle);
 	}
     }
     /* Shouldn't this be already done by Vim. TODO: Check */
@@ -4562,7 +4611,7 @@ gui_mch_menu_grey(menu, grey)
     int		grey;
 {
     /* TODO: Check if menu really exists */
-    short index = gui_mac_get_menu_item_index (menu);
+    short index = gui_mac_get_menu_item_index(menu);
 /*
     index = menu->index;
 */
@@ -4593,7 +4642,7 @@ gui_mch_menu_hidden(menu, hidden)
     int		hidden;
 {
     /* There's no hidden mode on MacOS */
-    gui_mch_menu_grey (menu, hidden);
+    gui_mch_menu_grey(menu, hidden);
 }
 
 
@@ -4622,7 +4671,7 @@ gui_mch_enable_scrollbar(sb, flag)
 	HideControl(sb->id);
 
 #ifdef DEBUG_MAC_SB
-    printf ("enb_sb (%x) %x\n",sb->id, flag);
+    printf("enb_sb (%x) %x\n",sb->id, flag);
 #endif
 }
 
@@ -4637,7 +4686,7 @@ gui_mch_set_scrollbar_thumb(sb, val, size, max)
     SetControl32BitMinimum (sb->id, 0);
     SetControl32BitValue   (sb->id, val);
 #ifdef DEBUG_MAC_SB
-    printf ("thumb_sb (%x) %x, %x,%x\n",sb->id, val, size, max);
+    printf("thumb_sb (%x) %x, %x,%x\n",sb->id, val, size, max);
 #endif
 }
 
@@ -4652,13 +4701,13 @@ gui_mch_set_scrollbar_pos(sb, x, y, w, h)
     gui_mch_set_bg_color(gui.back_pixel);
 /*  if (gui.which_scrollbars[SBAR_LEFT])
     {
-	MoveControl (sb->id, x-16, y);
-	SizeControl (sb->id, w + 1, h);
+	MoveControl(sb->id, x-16, y);
+	SizeControl(sb->id, w + 1, h);
     }
     else
     {
-	MoveControl (sb->id, x, y);
-	SizeControl (sb->id, w + 1, h);
+	MoveControl(sb->id, x, y);
+	SizeControl(sb->id, w + 1, h);
     }*/
     if (sb == &gui.bottom_sbar)
 	h += 1;
@@ -4668,10 +4717,10 @@ gui_mch_set_scrollbar_pos(sb, x, y, w, h)
     if (gui.which_scrollbars[SBAR_LEFT])
 	x -= 15;
 
-    MoveControl (sb->id, x, y);
-    SizeControl (sb->id, w, h);
+    MoveControl(sb->id, x, y);
+    SizeControl(sb->id, w, h);
 #ifdef DEBUG_MAC_SB
-    printf ("size_sb (%x) %x, %x, %x, %x\n",sb->id, x, y, w, h);
+    printf("size_sb (%x) %x, %x, %x, %x\n",sb->id, x, y, w, h);
 #endif
 }
 
@@ -4687,7 +4736,7 @@ gui_mch_create_scrollbar(sb, orient)
     bounds.right = -10;
     bounds.left = -16;
 
-    sb->id = NewControl (gui.VimWindow,
+    sb->id = NewControl(gui.VimWindow,
 			 &bounds,
 			 "\pScrollBar",
 			 TRUE,
@@ -4701,7 +4750,7 @@ gui_mch_create_scrollbar(sb, orient)
 #endif
 			 (long) sb->ident);
 #ifdef DEBUG_MAC_SB
-    printf ("create_sb (%x) %x\n",sb->id, orient);
+    printf("create_sb (%x) %x\n",sb->id, orient);
 #endif
 }
 
@@ -4710,9 +4759,9 @@ gui_mch_destroy_scrollbar(sb)
     scrollbar_T *sb;
 {
     gui_mch_set_bg_color(gui.back_pixel);
-    DisposeControl (sb->id);
+    DisposeControl(sb->id);
 #ifdef DEBUG_MAC_SB
-    printf ("dest_sb (%x) \n",sb->id);
+    printf("dest_sb (%x) \n",sb->id);
 #endif
 }
 
@@ -4818,7 +4867,7 @@ gui_mch_browse(
     OSErr		error;
 
     /* Get Navigation Service Defaults value */
-    NavGetDefaultDialogOptions (&navOptions);
+    NavGetDefaultDialogOptions(&navOptions);
 
 
     /* TODO: If we get a :browse args, set the Multiple bit. */
@@ -4828,8 +4877,8 @@ gui_mch_browse(
 			    /*	 |  kNavAllowMultipleFiles */
 				 |  kNavAllowStationery;
 
-    (void) C2PascalString (title,   &navOptions.message);
-    (void) C2PascalString (dflt,    &navOptions.savedFileName);
+    (void) C2PascalString(title,   &navOptions.message);
+    (void) C2PascalString(dflt,    &navOptions.savedFileName);
     /* Could set clientName?
      *		 windowTitle? (there's no title bar?)
      */
@@ -4837,7 +4886,7 @@ gui_mch_browse(
     if (saving)
     {
 	/* Change first parm AEDesc (typeFSS) *defaultLocation to match dflt */
-	NavPutFile (NULL, &reply, &navOptions, NULL, 'TEXT', 'VIM!', NULL);
+	NavPutFile(NULL, &reply, &navOptions, NULL, 'TEXT', 'VIM!', NULL);
 	if (!reply.validRecord)
 	    return NULL;
     }
@@ -4851,7 +4900,7 @@ gui_mch_browse(
 
     fnames = new_fnames_from_AEDesc(&reply.selection, &numFiles, &error);
 
-    NavDisposeReply (&reply);
+    NavDisposeReply(&reply);
 
     if (fnames)
     {
@@ -4870,26 +4919,26 @@ gui_mch_browse(
 
     /* TODO: split dflt in path and filename */
 
-    (void) C2PascalString (title,   &Prompt);
-    (void) C2PascalString (dflt,    &DefaultName);
-    (void) C2PascalString (initdir, &Directory);
+    (void) C2PascalString(title,   &Prompt);
+    (void) C2PascalString(dflt,    &DefaultName);
+    (void) C2PascalString(initdir, &Directory);
 
     if (saving)
     {
 	/* Use a custon filter instead of nil FAQ 9-4 */
-	StandardPutFile (Prompt, DefaultName,  &reply);
+	StandardPutFile(Prompt, DefaultName,  &reply);
 	if (!reply.sfGood)
 	    return NULL;
     }
     else
     {
-	StandardGetFile (nil, -1, fileTypes, &reply);
+	StandardGetFile(nil, -1, fileTypes, &reply);
 	if (!reply.sfGood)
 	    return NULL;
     }
 
     /* Work fine but append a : for new file */
-    return (FullPathFromFSSpec_save (reply.sfFile));
+    return (FullPathFromFSSpec_save(reply.sfFile));
 
     /* Shorten the file name if possible */
 /*    mch_dirname(IObuff, IOSIZE);
@@ -4943,9 +4992,9 @@ macMoveDialogItem(
 {
 #if 0 /* USE_CARBONIZED */
     /* Untested */
-    MoveDialogItem (theDialog, itemNumber, X, Y);
+    MoveDialogItem(theDialog, itemNumber, X, Y);
     if (inBox != nil)
-	GetDialogItem (theDialog, itemNumber, &itemType, &itemHandle, inBox);
+	GetDialogItem(theDialog, itemNumber, &itemType, &itemHandle, inBox);
 #else
     short	itemType;
     Handle	itemHandle;
@@ -4955,14 +5004,14 @@ macMoveDialogItem(
     if (inBox != nil)
 	itemBox = inBox;
 
-    GetDialogItem (theDialog, itemNumber, &itemType, &itemHandle, itemBox);
-    OffsetRect (itemBox, -itemBox->left, -itemBox->top);
-    OffsetRect (itemBox, X, Y);
+    GetDialogItem(theDialog, itemNumber, &itemType, &itemHandle, itemBox);
+    OffsetRect(itemBox, -itemBox->left, -itemBox->top);
+    OffsetRect(itemBox, X, Y);
     /* To move a control (like a button) we need to call both
      * MoveControl and SetDialogItem. FAQ 6-18 */
     if (1) /*(itemType & kControlDialogItem) */
-	MoveControl ((ControlRef) itemHandle, X, Y);
-    SetDialogItem (theDialog, itemNumber, itemType, itemHandle, itemBox);
+	MoveControl((ControlRef) itemHandle, X, Y);
+    SetDialogItem(theDialog, itemNumber, itemType, itemHandle, itemBox);
 #endif
 }
 
@@ -4977,7 +5026,7 @@ macSizeDialogItem(
     Handle	itemHandle;
     Rect	itemBox;
 
-    GetDialogItem (theDialog, itemNumber, &itemType, &itemHandle, &itemBox);
+    GetDialogItem(theDialog, itemNumber, &itemType, &itemHandle, &itemBox);
 
     /* When width or height is zero do not change it */
     if (width  == 0)
@@ -4986,7 +5035,7 @@ macSizeDialogItem(
 	height = itemBox.bottom - itemBox.top;
 
 #if 0 /* USE_CARBONIZED */
-    SizeDialogItem (theDialog, itemNumber, width, height); /* Untested */
+    SizeDialogItem(theDialog, itemNumber, width, height); /* Untested */
 #else
     /* Resize the bounding box */
     itemBox.right  = itemBox.left + width;
@@ -4995,10 +5044,10 @@ macSizeDialogItem(
     /* To resize a control (like a button) we need to call both
      * SizeControl and SetDialogItem. (deducted from FAQ 6-18) */
     if (itemType & kControlDialogItem)
-	SizeControl ((ControlRef) itemHandle, width, height);
+	SizeControl((ControlRef) itemHandle, width, height);
 
     /* Configure back the item */
-    SetDialogItem (theDialog, itemNumber, itemType, itemHandle, &itemBox);
+    SetDialogItem(theDialog, itemNumber, itemType, itemHandle, &itemBox);
 #endif
 }
 
@@ -5012,12 +5061,12 @@ macSetDialogItemText(
     Handle	itemHandle;
     Rect	itemBox;
 
-    GetDialogItem (theDialog, itemNumber, &itemType, &itemHandle, &itemBox);
+    GetDialogItem(theDialog, itemNumber, &itemType, &itemHandle, &itemBox);
 
     if (itemType & kControlDialogItem)
-	SetControlTitle ((ControlRef) itemHandle, itemName);
+	SetControlTitle((ControlRef) itemHandle, itemName);
     else
-	SetDialogItemText (itemHandle, itemName);
+	SetDialogItemText(itemHandle, itemName);
 }
 
     int
@@ -5072,7 +5121,7 @@ gui_mch_dialog(
     vertical = (vim_strchr(p_go, GO_VERTICAL) != NULL);
 
     /* Create a new Dialog Box from template. */
-    theDialog = GetNewDialog (129, nil, (WindowRef) -1);
+    theDialog = GetNewDialog(129, nil, (WindowRef) -1);
 
     /* Get the WindowRef */
     theWindow = GetDialogWindow(theDialog);
@@ -5083,15 +5132,15 @@ gui_mch_dialog(
      *    within a visible window. (non-Carbon MacOS 9)
      * Could be avoided by changing the resource.
      */
-    HideWindow (theWindow);
+    HideWindow(theWindow);
 
     /* Change the graphical port to the dialog,
      * so we can measure the text with the proper font */
-    GetPort (&oldPort);
+    GetPort(&oldPort);
 #ifdef USE_CARBONIZED
-    SetPortDialogPort (theDialog);
+    SetPortDialogPort(theDialog);
 #else
-    SetPort (theDialog);
+    SetPort(theDialog);
 #endif
 
     /* Get the info about the default text,
@@ -5102,12 +5151,12 @@ gui_mch_dialog(
     /*	Set the dialog title */
     if (title != NULL)
     {
-	(void) C2PascalString (title, &PascalTitle);
-	SetWTitle (theWindow, PascalTitle);
+	(void) C2PascalString(title, &PascalTitle);
+	SetWTitle(theWindow, PascalTitle);
     }
 
     /* Creates the buttons and add them to the Dialog Box. */
-    buttonDITL = GetResource ('DITL', 130);
+    buttonDITL = GetResource('DITL', 130);
     buttonChar = buttons;
     button = 0;
 
@@ -5126,30 +5175,30 @@ gui_mch_dialog(
 	name[0] = len;
 
 	/* Add the button */
-	AppendDITL (theDialog, buttonDITL, overlayDITL); /* appendDITLRight); */
+	AppendDITL(theDialog, buttonDITL, overlayDITL); /* appendDITLRight); */
 
 	/* Change the button's name */
-	macSetDialogItemText (theDialog, button, name);
+	macSetDialogItemText(theDialog, button, name);
 
 	/* Resize the button to fit its name */
-	width = StringWidth (name) + 2 * dfltButtonEdge;
+	width = StringWidth(name) + 2 * dfltButtonEdge;
 	/* Limite the size of any button to an acceptable value. */
 	/* TODO: Should be based on the message width */
 	if (width > maxButtonWidth)
 	    width = maxButtonWidth;
-	macSizeDialogItem (theDialog, button, width, 0);
+	macSizeDialogItem(theDialog, button, width, 0);
 
 	totalButtonWidth += width;
 
 	if (width > widestButton)
 	    widestButton = width;
     }
-    ReleaseResource (buttonDITL);
+    ReleaseResource(buttonDITL);
     lastButton = button;
 
     /* Add the icon to the Dialog Box. */
     iconItm.idx = lastButton + 1;
-    iconDITL = GetResource ('DITL', 131);
+    iconDITL = GetResource('DITL', 131);
     switch (type)
     {
 	case VIM_GENERIC:  useIcon = kNoteIcon;
@@ -5159,41 +5208,41 @@ gui_mch_dialog(
 	case VIM_QUESTION: useIcon = kNoteIcon;
 	default:      useIcon = kStopIcon;
     };
-    AppendDITL (theDialog, iconDITL, overlayDITL);
-    ReleaseResource (iconDITL);
-    GetDialogItem (theDialog, iconItm.idx, &itemType, &itemHandle, &box);
+    AppendDITL(theDialog, iconDITL, overlayDITL);
+    ReleaseResource(iconDITL);
+    GetDialogItem(theDialog, iconItm.idx, &itemType, &itemHandle, &box);
     /* TODO: Should the item be freed? */
-    iconHandle = GetIcon (useIcon);
-    SetDialogItem (theDialog, iconItm.idx, itemType, iconHandle, &box);
+    iconHandle = GetIcon(useIcon);
+    SetDialogItem(theDialog, iconItm.idx, itemType, iconHandle, &box);
 
     /* Add the message to the Dialog box. */
     messageItm.idx = lastButton + 2;
-    messageDITL = GetResource ('DITL', 132);
-    AppendDITL (theDialog, messageDITL, overlayDITL);
-    ReleaseResource (messageDITL);
-    GetDialogItem (theDialog, messageItm.idx, &itemType, &itemHandle, &box);
-    (void) C2PascalString (message, &name);
-    SetDialogItemText (itemHandle, name);
-    messageItm.width = StringWidth (name);
+    messageDITL = GetResource('DITL', 132);
+    AppendDITL(theDialog, messageDITL, overlayDITL);
+    ReleaseResource(messageDITL);
+    GetDialogItem(theDialog, messageItm.idx, &itemType, &itemHandle, &box);
+    (void) C2PascalString(message, &name);
+    SetDialogItemText(itemHandle, name);
+    messageItm.width = StringWidth(name);
 
     /* Add the input box if needed */
     if (textfield != NULL)
     {
 	/* Cheat for now reuse the message and convet to text edit */
 	inputItm.idx = lastButton + 3;
-	inputDITL = GetResource ('DITL', 132);
-	AppendDITL (theDialog, inputDITL, overlayDITL);
-	ReleaseResource (inputDITL);
-	GetDialogItem (theDialog, inputItm.idx, &itemType, &itemHandle, &box);
-/*	  SetDialogItem (theDialog, inputItm.idx, kEditTextDialogItem, itemHandle, &box);*/
-	(void) C2PascalString (textfield, &name);
-	SetDialogItemText (itemHandle, name);
-	inputItm.width = StringWidth (name);
+	inputDITL = GetResource('DITL', 132);
+	AppendDITL(theDialog, inputDITL, overlayDITL);
+	ReleaseResource(inputDITL);
+	GetDialogItem(theDialog, inputItm.idx, &itemType, &itemHandle, &box);
+/*	  SetDialogItem(theDialog, inputItm.idx, kEditTextDialogItem, itemHandle, &box);*/
+	(void) C2PascalString(textfield, &name);
+	SetDialogItemText(itemHandle, name);
+	inputItm.width = StringWidth(name);
     }
 
     /* Set the <ENTER> and <ESC> button. */
-    SetDialogDefaultItem (theDialog, dfltbutton);
-    SetDialogCancelItem (theDialog, 0);
+    SetDialogDefaultItem(theDialog, dfltbutton);
+    SetDialogCancelItem(theDialog, 0);
 
     /* Reposition element */
 
@@ -5202,26 +5251,26 @@ gui_mch_dialog(
 	vertical = TRUE;
 
     /* Place icon */
-    macMoveDialogItem (theDialog, iconItm.idx, dfltIconSideSpace, dfltElementSpacing, &box);
+    macMoveDialogItem(theDialog, iconItm.idx, dfltIconSideSpace, dfltElementSpacing, &box);
     iconItm.box.right = box.right;
     iconItm.box.bottom = box.bottom;
 
     /* Place Message */
     messageItm.box.left = iconItm.box.right + dfltIconSideSpace;
-    macSizeDialogItem (theDialog, messageItm.idx, 0,  messageLines * (textFontInfo.ascent + textFontInfo.descent));
-    macMoveDialogItem (theDialog, messageItm.idx, messageItm.box.left, dfltElementSpacing, &messageItm.box);
+    macSizeDialogItem(theDialog, messageItm.idx, 0,  messageLines * (textFontInfo.ascent + textFontInfo.descent));
+    macMoveDialogItem(theDialog, messageItm.idx, messageItm.box.left, dfltElementSpacing, &messageItm.box);
 
     /* Place Input */
     if (textfield != NULL)
     {
 	inputItm.box.left = messageItm.box.left;
 	inputItm.box.top  = messageItm.box.bottom + dfltElementSpacing;
-	macSizeDialogItem (theDialog, inputItm.idx, 0, textFontInfo.ascent + textFontInfo.descent);
-	macMoveDialogItem (theDialog, inputItm.idx, inputItm.box.left, inputItm.box.top, &inputItm.box);
+	macSizeDialogItem(theDialog, inputItm.idx, 0, textFontInfo.ascent + textFontInfo.descent);
+	macMoveDialogItem(theDialog, inputItm.idx, inputItm.box.left, inputItm.box.top, &inputItm.box);
 	/* Convert the static text into a text edit.
 	 * For some reason this change need to be done last (Dany) */
-	GetDialogItem (theDialog, inputItm.idx, &itemType, &itemHandle, &inputItm.box);
-	SetDialogItem (theDialog, inputItm.idx, kEditTextDialogItem, itemHandle, &inputItm.box);
+	GetDialogItem(theDialog, inputItm.idx, &itemType, &itemHandle, &inputItm.box);
+	SetDialogItem(theDialog, inputItm.idx, kEditTextDialogItem, itemHandle, &inputItm.box);
 	SelectDialogItemText(theDialog, inputItm.idx, 0, 32767);
     }
 
@@ -5240,12 +5289,12 @@ gui_mch_dialog(
     for (button=1; button <= lastButton; button++)
     {
 
-	macMoveDialogItem (theDialog, button, buttonItm.box.left, buttonItm.box.top, &box);
+	macMoveDialogItem(theDialog, button, buttonItm.box.left, buttonItm.box.top, &box);
 	/* With vertical, it's better to have all button the same lenght */
 	if (vertical)
 	{
-	    macSizeDialogItem (theDialog, button, widestButton, 0);
-	    GetDialogItem (theDialog, button, &itemType, &itemHandle, &box);
+	    macSizeDialogItem(theDialog, button, widestButton, 0);
+	    GetDialogItem(theDialog, button, &itemType, &itemHandle, &box);
 	}
 	/* Calculate position of next button */
 	if (vertical)
@@ -5260,7 +5309,7 @@ gui_mch_dialog(
 
 #ifdef USE_CARBONIZED
     /* Magic resize */
-    AutoSizeDialog (theDialog);
+    AutoSizeDialog(theDialog);
     /* Need a horizontal resize anyway so not that useful */
 #endif
 
@@ -5269,27 +5318,27 @@ gui_mch_dialog(
 /*  BringToFront(theWindow); */
     SelectWindow(theWindow);
 
-/*  DrawDialog (theDialog); */
+/*  DrawDialog(theDialog); */
 #if 0
-    GetPort (&oldPort);
+    GetPort(&oldPort);
 #ifdef USE_CARBONIZED
-    SetPortDialogPort (theDialog);
+    SetPortDialogPort(theDialog);
 #else
-    SetPort (theDialog);
+    SetPort(theDialog);
 #endif
 #endif
 
     /* Hang until one of the button is hit */
     do
     {
-	ModalDialog (nil, &itemHit);
+	ModalDialog(nil, &itemHit);
     } while ((itemHit < 1) || (itemHit > lastButton));
 
     /* Copy back the text entered by the user into the param */
     if (textfield != NULL)
     {
-	GetDialogItem (theDialog, inputItm.idx, &itemType, &itemHandle, &box);
-	GetDialogItemText (itemHandle, (char_u *) &name);
+	GetDialogItem(theDialog, inputItm.idx, &itemType, &itemHandle, &box);
+	GetDialogItemText(itemHandle, (char_u *) &name);
 #if IOSIZE < 256
 	/* Truncate the name to IOSIZE if needed */
 	if (name[0] > IOSIZE)
@@ -5300,10 +5349,10 @@ gui_mch_dialog(
     }
 
     /* Restore the original graphical port */
-    SetPort (oldPort);
+    SetPort(oldPort);
 
     /* Get ride of th edialog (free memory) */
-    DisposeDialog (theDialog);
+    DisposeDialog(theDialog);
 
     return itemHit;
 /*
@@ -5339,8 +5388,8 @@ display_errors()
 		    pError[0] = STRLEN(p);
 
 		STRNCPY(&pError[1], p, pError[0]);
-		ParamText (pError, nil, nil, nil);
-		Alert (128, nil);
+		ParamText(pError, nil, nil, nil);
+		Alert(128, nil);
 		break;
 		/* TODO: handled message longer than 256 chars
 		 *	 use auto-sizeable alert
@@ -5388,8 +5437,8 @@ gui_mch_setmouse(x, y)
     CursorDevicePtr myMouse;
     Point	    where;
 
-    if (   NGetTrapAddress (_CursorDeviceDispatch, ToolTrap)
-	!= NGetTrapAddress (_Unimplemented,   ToolTrap) )
+    if (   NGetTrapAddress(_CursorDeviceDispatch, ToolTrap)
+	!= NGetTrapAddress(_Unimplemented,   ToolTrap))
     {
 	/* New way */
 
@@ -5407,9 +5456,9 @@ gui_mch_setmouse(x, y)
 	    /* Get the next cursor device */
 	    CursorDeviceNextDevice(&myMouse);
 	}
-	while ( (myMouse != nil) && (myMouse->cntButtons != 1) );
+	while ((myMouse != nil) && (myMouse->cntButtons != 1));
 
-	CursorDeviceMoveTo (myMouse, x, y);
+	CursorDeviceMoveTo(myMouse, x, y);
     }
     else
     {
@@ -5445,10 +5494,10 @@ gui_mch_show_popupmenu(menu)
     GrafPtr	savePort;
 
     /* Save Current Port: On MacOS X we seem to lose the port */
-    GetPort (&savePort); /*OSX*/
+    GetPort(&savePort); /*OSX*/
 
-    GetMouse (&where);
-    LocalToGlobal (&where); /*OSX*/
+    GetMouse(&where);
+    LocalToGlobal(&where); /*OSX*/
     CntxMenu = menu->submenu_handle;
 
     /* TODO: Get the text selection from Vim */
@@ -5463,7 +5512,7 @@ gui_mch_show_popupmenu(menu)
 	    /* Handle the menu CntxMenuID, CntxMenuItem */
 	    /* The submenu can be handle directly by gui_mac_handle_menu */
 	    /* But what about the current menu, is the menu changed by ContextualMenuSelect */
-	    gui_mac_handle_menu ((CntxMenuID << 16) + CntxMenuItem);
+	    gui_mac_handle_menu((CntxMenuID << 16) + CntxMenuItem);
 	}
 	else if (CntxMenuID == kCMShowHelpSelected)
 	{
@@ -5472,7 +5521,7 @@ gui_mch_show_popupmenu(menu)
     }
 
     /* Restore original Port */
-    SetPort (savePort); /*OSX*/
+    SetPort(savePort); /*OSX*/
 #endif
 }
 
@@ -5482,10 +5531,10 @@ gui_mch_show_popupmenu(menu)
 mch_post_buffer_write(buf_T *buf)
 {
 # ifdef USE_SIOUX
-    printf ("Writing Buf...\n");
+    printf("Writing Buf...\n");
 # endif
-    GetFSSpecFromPath (buf->b_ffname, &buf->b_FSSpec);
-    Send_KAHL_MOD_AE (buf);
+    GetFSSpecFromPath(buf->b_ffname, &buf->b_FSSpec);
+    Send_KAHL_MOD_AE(buf);
 }
 #endif
 
@@ -5521,7 +5570,7 @@ gui_mch_settitle(title, icon)
  */
 
     int
-C2PascalString (CString, PascalString)
+C2PascalString(CString, PascalString)
     char_u  *CString;
     Str255  *PascalString;
 {
@@ -5546,7 +5595,7 @@ C2PascalString (CString, PascalString)
 }
 
     int
-GetFSSpecFromPath (file, fileFSSpec)
+GetFSSpecFromPath(file, fileFSSpec)
     char_u *file;
     FSSpec *fileFSSpec;
 {
@@ -5555,17 +5604,17 @@ GetFSSpecFromPath (file, fileFSSpec)
     CInfoPBRec	myCPB;
     OSErr	err;
 
-    (void) C2PascalString (file, &filePascal);
+    (void) C2PascalString(file, &filePascal);
 
     myCPB.dirInfo.ioNamePtr   = filePascal;
     myCPB.dirInfo.ioVRefNum   = 0;
     myCPB.dirInfo.ioFDirIndex = 0;
     myCPB.dirInfo.ioDrDirID   = 0;
 
-    err= PBGetCatInfo (&myCPB, false);
+    err= PBGetCatInfo(&myCPB, false);
 
     /*    vRefNum, dirID, name */
-    FSMakeFSSpec (0, 0, filePascal, fileFSSpec);
+    FSMakeFSSpec(0, 0, filePascal, fileFSSpec);
 
     /* TODO: Use an error code mechanism */
     return 0;
@@ -5575,7 +5624,7 @@ GetFSSpecFromPath (file, fileFSSpec)
  * Convert a FSSpec to a fuill path
  */
 
-char_u *FullPathFromFSSpec_save (FSSpec file)
+char_u *FullPathFromFSSpec_save(FSSpec file)
 {
     /*
      * TODO: Add protection for 256 char max.
@@ -5603,7 +5652,7 @@ char_u *FullPathFromFSSpec_save (FSSpec file)
 #ifdef USE_UNIXFILENAME
     /* Get the default volume */
     /* TODO: Remove as this only work if Vim is on the Boot Volume*/
-    error=HGetVol ( NULL, &dfltVol_vRefNum, &dfltVol_dirID );
+    error=HGetVol(NULL, &dfltVol_vRefNum, &dfltVol_dirID);
 
     if (error)
       return NULL;
@@ -5622,7 +5671,7 @@ char_u *FullPathFromFSSpec_save (FSSpec file)
 
     /* As ioFDirIndex = 0, get the info of ioNamePtr,
        which is relative to ioVrefNum, ioDirID */
-    error = PBGetCatInfo (&theCPB, false);
+    error = PBGetCatInfo(&theCPB, false);
 
     /* If we are called for a new file we expect fnfErr */
     if ((error) && (error != fnfErr))
@@ -5671,20 +5720,20 @@ char_u *FullPathFromFSSpec_save (FSSpec file)
     {
 	/* If the file to be saved already exists, we can get its full path
 	   by converting its FSSpec into an FSRef. */
-	error=FSpMakeFSRef (&file, &refFile);
+	error=FSpMakeFSRef(&file, &refFile);
 	if (error)
 	    return NULL;
 
-	status=FSRefMakePath (&refFile, (UInt8 *) path, pathSize);
+	status=FSRefMakePath(&refFile, (UInt8 *) path, pathSize);
 	if (status)
 	    return NULL;
     }
 
     /* Add a slash at the end if needed */
     if (folder)
-	STRCAT (path, "/");
+	STRCAT(path, "/");
 
-    return (vim_strsave (path));
+    return (vim_strsave(path));
 #else
     /* TODO: Get rid of all USE_UNIXFILENAME below */
     /* Set ioNamePtr, it's the same area which is always reused. */
@@ -5695,7 +5744,7 @@ char_u *FullPathFromFSSpec_save (FSSpec file)
     theCPB.dirInfo.ioDrParID = file.parID;
     theCPB.dirInfo.ioDrDirID = file.parID;
 
-    if ((TRUE) && (file.parID != fsRtDirID /*fsRtParID*/ ))
+    if ((TRUE) && (file.parID != fsRtDirID /*fsRtParID*/))
     do
     {
 	theCPB.dirInfo.ioFDirIndex = -1;
@@ -5706,7 +5755,7 @@ char_u *FullPathFromFSSpec_save (FSSpec file)
 
 	/* As ioFDirIndex = -1, get the info of ioDrDirID, */
 	/*  *ioNamePtr[0 TO 31] will be updated		   */
-	error = PBGetCatInfo (&theCPB,false);
+	error = PBGetCatInfo(&theCPB,false);
 
 	if (error)
 	  return NULL;
@@ -5734,7 +5783,7 @@ char_u *FullPathFromFSSpec_save (FSSpec file)
 
     /* As ioFDirIndex = -1, get the info of ioDrDirID, */
     /*	*ioNamePtr[0 TO 31] will be updated	       */
-    error = PBGetCatInfo (&theCPB,false);
+    error = PBGetCatInfo(&theCPB,false);
 
     if (error)
       return NULL;
@@ -5763,7 +5812,7 @@ char_u *FullPathFromFSSpec_save (FSSpec file)
 
     /* Append final path separator if it's a folder */
     if (folder)
-	STRCAT (fname, ":");
+	STRCAT(fname, ":");
 
     /* As we use Unix File Name for MacOS X convert it */
 #ifdef USE_UNIXFILENAME
@@ -5780,7 +5829,7 @@ char_u *FullPathFromFSSpec_save (FSSpec file)
     }
 #endif
 
-    return (vim_strsave (fname));
+    return (vim_strsave(fname));
 #endif
 }
 
diff --git a/src/gui_w32.c b/src/gui_w32.c
index df079538ac..a3a7ffa248 100644
--- a/src/gui_w32.c
+++ b/src/gui_w32.c
@@ -818,9 +818,11 @@ FindWindowTitle(HWND hwnd, LPARAM lParam)
     {
 	if (strstr(buf, title) != NULL)
 	{
-	    /* Found it.  Store the window ref. and quit searching. */
+	    /* Found it.  Store the window ref. and quit searching if MDI
+	     * works. */
 	    vim_parent_hwnd = FindWindowEx(hwnd, NULL, "MDIClient", NULL);
-	    return FALSE;
+	    if (vim_parent_hwnd != NULL)
+		return FALSE;
 	}
     }
     return TRUE;	/* continue searching */
diff --git a/src/memline.c b/src/memline.c
index 7c18663292..7a0210f1a4 100644
--- a/src/memline.c
+++ b/src/memline.c
@@ -1518,7 +1518,7 @@ swapfile_info(fname)
 	    {
 		MSG_PUTS(_("         file name: "));
 		if (b0.b0_fname[0] == NUL)
-		    MSG_PUTS(_("[No File]"));
+		    MSG_PUTS(_("[No Name]"));
 		else
 		    msg_outtrans(b0.b0_fname);
 
@@ -3781,7 +3781,7 @@ findswapname(buf, dirp, old_fname)
 	 * Change the ".swp" extension to find another file that can be used.
 	 * First decrement the last char: ".swo", ".swn", etc.
 	 * If that still isn't enough decrement the last but one char: ".svz"
-	 * Can happen when editing many "No File" buffers.
+	 * Can happen when editing many "No Name" buffers.
 	 */
 	if (fname[n - 1] == 'a')	/* ".s?a" */
 	{
diff --git a/src/normal.c b/src/normal.c
index 89196da0f4..222e475894 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -5186,7 +5186,23 @@ nv_scroll(cap)
 	if (cap->count1 - 1 >= curwin->w_cursor.lnum)
 	    curwin->w_cursor.lnum = 1;
 	else
-	    curwin->w_cursor.lnum -= cap->count1 - 1;
+	{
+#ifdef FEAT_FOLDING
+	    if (hasAnyFolding(curwin))
+	    {
+		/* Count a fold for one screen line. */
+		for (n = cap->count1 - 1; n > 0
+			    && curwin->w_cursor.lnum > curwin->w_topline; --n)
+		{
+		    (void)hasFolding(curwin->w_cursor.lnum,
+						&curwin->w_cursor.lnum, NULL);
+		    --curwin->w_cursor.lnum;
+		}
+	    }
+	    else
+#endif
+		curwin->w_cursor.lnum -= cap->count1 - 1;
+	}
     }
     else
     {
@@ -5222,8 +5238,23 @@ nv_scroll(cap)
 	    if (n > 0 && used > curwin->w_height)
 		--n;
 	}
-	else
+	else /* (cap->cmdchar == 'H') */
+	{
 	    n = cap->count1 - 1;
+#ifdef FEAT_FOLDING
+	    if (hasAnyFolding(curwin))
+	    {
+		/* Count a fold for one screen line. */
+		lnum = curwin->w_topline;
+		while (n-- > 0 && lnum < curwin->w_botline - 1)
+		{
+		    hasFolding(lnum, NULL, &lnum);
+		    ++lnum;
+		}
+		n = lnum - curwin->w_topline;
+	    }
+#endif
+	}
 	curwin->w_cursor.lnum = curwin->w_topline + n;
 	if (curwin->w_cursor.lnum > curbuf->b_ml.ml_line_count)
 	    curwin->w_cursor.lnum = curbuf->b_ml.ml_line_count;
diff --git a/src/os_mac.c b/src/os_mac.c
index 0f6a76ceb5..d38f12a615 100644
--- a/src/os_mac.c
+++ b/src/os_mac.c
@@ -527,7 +527,7 @@ mch_breakcheck()
      */
     EventRecord theEvent;
 
-    if (EventAvail (keyDownMask, &theEvent))
+    if (EventAvail(keyDownMask, &theEvent))
 	if ((theEvent.message & charCodeMask) == Ctrl_C && ctrl_c_interrupts)
 	    got_int = TRUE;
 #if 0
diff --git a/src/os_msdos.c b/src/os_msdos.c
index 2d8b127e62..92b14ea304 100644
--- a/src/os_msdos.c
+++ b/src/os_msdos.c
@@ -2987,7 +2987,12 @@ mch_isdir(char_u *name)
 mch_can_exe(name)
     char_u	*name;
 {
-    return (searchpath(name) != NULL);
+    char	*p;
+
+    p = searchpath(name);
+    if (p == NULL || mch_isdir(p))
+	return FALSE;
+    return TRUE;
 }
 #endif
 
diff --git a/src/os_win32.c b/src/os_win32.c
index 74b8960325..434362b115 100644
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -1519,29 +1519,45 @@ theend:
 # include <shellapi.h>	/* required for FindExecutable() */
 #endif
 
+/*
+ * Return TRUE if "name" is in $PATH.
+ * TODO: Should also check if it's really executable.
+ */
     static int
 executable_exists(char *name)
 {
-    char location[2 * _MAX_PATH + 2];
-    char widename[2 * _MAX_PATH];
+    char	*dum;
+    char	fname[_MAX_PATH];
 
-    /* There appears to be a bug in FindExecutableA() on Windows NT.
-     * Use FindExecutableW() instead... */
-    if (g_PlatformId == VER_PLATFORM_WIN32_NT)
-    {
-	MultiByteToWideChar(CP_ACP, 0, (LPCTSTR)name, -1,
-						 (LPWSTR)widename, _MAX_PATH);
-	if (FindExecutableW((LPCWSTR)widename, (LPCWSTR)"",
-					    (LPWSTR)location) > (HINSTANCE)32)
-	    return TRUE;
-    }
-    else
+#ifdef FEAT_MBYTE
+    if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
     {
-	if (FindExecutableA((LPCTSTR)name, (LPCTSTR)"",
-					    (LPTSTR)location) > (HINSTANCE)32)
-	    return TRUE;
+	WCHAR	*p = enc_to_ucs2(name, NULL);
+	WCHAR	fnamew[_MAX_PATH];
+	WCHAR	*dumw;
+	long	n;
+
+	if (p != NULL)
+	{
+	    n = (long)SearchPathW(NULL, p, NULL, _MAX_PATH, fnamew, &dumw);
+	    vim_free(p);
+	    if (n > 0 || GetLastError() != ERROR_CALL_NOT_IMPLEMENTED)
+	    {
+		if (n == 0)
+		    return FALSE;
+		if (GetFileAttributesW(fnamew) & FILE_ATTRIBUTE_DIRECTORY)
+		    return FALSE;
+		return TRUE;
+	    }
+	    /* Retry with non-wide function (for Windows 98). */
+	}
     }
-    return FALSE;
+#endif
+    if (SearchPath(NULL, name, NULL, _MAX_PATH, fname, &dum) == 0)
+	return FALSE;
+    if (mch_isdir(fname))
+	return FALSE;
+    return TRUE;
 }
 
 #ifdef FEAT_GUI_W32
diff --git a/src/po/Makefile b/src/po/Makefile
index d54913062b..364210c6e5 100644
--- a/src/po/Makefile
+++ b/src/po/Makefile
@@ -97,8 +97,8 @@ zh_CN.cp936.po: zh_CN.po
 # Convert ru.po to create ru.cp1251.po.
 ru.cp1251.po: ru.po
 	rm -f ru.cp1251.po
-	iconv -f koi8-r -t cp1251 ru.po | \
-		sed -e 's/charset=koi8-r/charset=cp1251/' -e 's/# Original translations/# Generated from ru.po, DO NOT EDIT/' > ru.cp1251.po
+	iconv -f utf-8 -t cp1251 ru.po | \
+		sed -e 's/charset=utf-8/charset=cp1251/' -e 's/# Original translations/# Generated from ru.po, DO NOT EDIT/' > ru.cp1251.po
 
 check:
 	@if test "x" = "x$(prefix)"; then \
diff --git a/src/po/ru.cp1251.po b/src/po/ru.cp1251.po
index f0b0ac2a4e..85b1d6835f 100644
--- a/src/po/ru.cp1251.po
+++ b/src/po/ru.cp1251.po
@@ -9,10 +9,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Vim 6.3a\n"
+"Project-Id-Version: Vim 6.3\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-05-10 21:37+0400\n"
-"PO-Revision-Date: 2004-05-10 21:37+0400\n"
+"POT-Creation-Date: 2004-06-15 09:39+0400\n"
+"PO-Revision-Date: 2004-05-19 00:23+0400\n"
 "Last-Translator: vassily ragosin <vrr@users.sourceforge.net>\n"
 "Language-Team: vassily ragosin <vrr@users.sourceforge.net>\n"
 "MIME-Version: 1.0\n"
@@ -27,172 +27,172 @@ msgstr "E82: 
 msgid "E83: Cannot allocate buffer, using other one..."
 msgstr "E83: Íåâîçìîæíî âûäåëèòü ïàìÿòü äëÿ áóôåðà, èñïîëüçóåì äðóãîé áóôåð..."
 
-#: buffer.c:805
+#: buffer.c:808
 #, c-format
 msgid "E515: No buffers were unloaded"
 msgstr "E515: Íè îäèí áóôåð íå áûë âûãðóæåí èç ïàìÿòè"
 
-#: buffer.c:807
+#: buffer.c:810
 #, c-format
 msgid "E516: No buffers were deleted"
 msgstr "E516: Íè îäèí áóôåð íå áûë óäàë¸í"
 
-#: buffer.c:809
+#: buffer.c:812
 #, c-format
 msgid "E517: No buffers were wiped out"
 msgstr "E517: Íè îäèí áóôåð íå áûë î÷èùåí"
 
-#: buffer.c:817
+#: buffer.c:820
 msgid "1 buffer unloaded"
 msgstr "Îäèí áóôåð âûãðóæåí èç ïàìÿòè"
 
-#: buffer.c:819
+#: buffer.c:822
 #, c-format
 msgid "%d buffers unloaded"
 msgstr "Âñåãî âûãðóæåíî áóôåðîâ èç ïàìÿòè: %d"
 
-#: buffer.c:824
+#: buffer.c:827
 msgid "1 buffer deleted"
 msgstr "Îäèí áóôåð óäàë¸í"
 
-#: buffer.c:826
+#: buffer.c:829
 #, c-format
 msgid "%d buffers deleted"
 msgstr "Âñåãî óäàëåíî áóôåðîâ: %d"
 
-#: buffer.c:831
+#: buffer.c:834
 msgid "1 buffer wiped out"
 msgstr "Îäèí áóôåð î÷èùåí"
 
-#: buffer.c:833
+#: buffer.c:836
 #, c-format
 msgid "%d buffers wiped out"
 msgstr "Âñåãî î÷èùåíî áóôåðîâ: %d"
 
-#: buffer.c:894
+#: buffer.c:897
 msgid "E84: No modified buffer found"
 msgstr "E84: Èçìåí¸ííûõ áóôåðîâ íå îáíàðóæåíî"
 
 #. back where we started, didn't find anything.
-#: buffer.c:933
+#: buffer.c:936
 msgid "E85: There is no listed buffer"
 msgstr "E85: Áóôåðû â ñïèñêå îòñóòñòâóþò"
 
-#: buffer.c:945
+#: buffer.c:948
 #, c-format
 msgid "E86: Buffer %ld does not exist"
 msgstr "E86: Áóôåð %ld íå ñóùåñòâóåò"
 
-#: buffer.c:948
+#: buffer.c:951
 msgid "E87: Cannot go beyond last buffer"
 msgstr "E87: Ýòî ïîñëåäíèé áóôåð"
 
-#: buffer.c:950
+#: buffer.c:953
 msgid "E88: Cannot go before first buffer"
 msgstr "E88: Ýòî ïåðâûé áóôåð"
 
-#: buffer.c:988
+#: buffer.c:991
 #, c-format
 msgid "E89: No write since last change for buffer %ld (add ! to override)"
 msgstr "E89: Èçìåíåíèÿ â áóôåðå %ld íå ñîõðàíåíû (!, ÷òîáû îáîéòè ïðîâåðêó)"
 
-#: buffer.c:1005
+#: buffer.c:1008
 msgid "E90: Cannot unload last buffer"
 msgstr "E90: Íåâîçìîæíî âûãðóçèòü èç ïàìÿòè ïîñëåäíèé áóôåð"
 
-#: buffer.c:1538
+#: buffer.c:1544
 msgid "W14: Warning: List of file names overflow"
 msgstr "W14: Ïðåäóïðåæäåíèå: ïåðåïîëíåíèå ñïèñêà èì¸í ôàéëîâ"
 
-#: buffer.c:1709
+#: buffer.c:1716
 #, c-format
 msgid "E92: Buffer %ld not found"
 msgstr "E92: Áóôåð %ld íå íàéäåí"
 
-#: buffer.c:1940
+#: buffer.c:1947
 #, c-format
 msgid "E93: More than one match for %s"
 msgstr "E93: Íåñêîëüêî ñîîòâåòñòâèé äëÿ %s"
 
-#: buffer.c:1942
+#: buffer.c:1949
 #, c-format
 msgid "E94: No matching buffer for %s"
 msgstr "E94: Íåò ñîîòâåòñòâóþùåãî %s áóôåðà"
 
-#: buffer.c:2337
+#: buffer.c:2344
 #, c-format
 msgid "line %ld"
 msgstr "ñòðîêà %ld"
 
-#: buffer.c:2420
+#: buffer.c:2429
 msgid "E95: Buffer with this name already exists"
 msgstr "E95: Áóôåð ñ òàêèì èìåíåì óæå ñóùåñòâóåò"
 
-#: buffer.c:2713
+#: buffer.c:2724
 msgid " [Modified]"
 msgstr " [Èçìåí¸í]"
 
-#: buffer.c:2718
+#: buffer.c:2729
 msgid "[Not edited]"
 msgstr "[Íå ðåäàêòèðîâàëñÿ]"
 
-#: buffer.c:2723
+#: buffer.c:2734
 msgid "[New file]"
 msgstr "[Íîâûé ôàéë]"
 
-#: buffer.c:2724
+#: buffer.c:2735
 msgid "[Read errors]"
 msgstr "[Îøèáêè ÷òåíèÿ]"
 
-#: buffer.c:2726 fileio.c:2112
+#: buffer.c:2737 fileio.c:2124
 msgid "[readonly]"
 msgstr "[òîëüêî äëÿ ÷òåíèÿ]"
 
-#: buffer.c:2747
+#: buffer.c:2758
 #, c-format
 msgid "1 line --%d%%--"
 msgstr "Îäíà ñòðîêà --%d%%--"
 
-#: buffer.c:2749
+#: buffer.c:2760
 #, c-format
 msgid "%ld lines --%d%%--"
 msgstr "%ld ñòð. --%d%%--"
 
-#: buffer.c:2756
+#: buffer.c:2767
 #, c-format
 msgid "line %ld of %ld --%d%%-- col "
 msgstr "ñòð. %ld èç %ld --%d%%-- êîë. "
 
-#: buffer.c:2864
+#: buffer.c:2875
 msgid "[No file]"
 msgstr "[Íåò ôàéëà]"
 
 #. must be a help buffer
-#: buffer.c:2904
+#: buffer.c:2915
 msgid "help"
 msgstr "ñïðàâêà"
 
-#: buffer.c:3463 screen.c:5075
+#: buffer.c:3474 screen.c:5079
 msgid "[help]"
 msgstr "[ñïðàâêà]"
 
-#: buffer.c:3495 screen.c:5081
+#: buffer.c:3506 screen.c:5085
 msgid "[Preview]"
 msgstr "[Ïðåäïðîñìîòð]"
 
-#: buffer.c:3775
+#: buffer.c:3786
 msgid "All"
 msgstr "Âåñü"
 
-#: buffer.c:3775
+#: buffer.c:3786
 msgid "Bot"
 msgstr "Âíèçó"
 
-#: buffer.c:3777
+#: buffer.c:3788
 msgid "Top"
 msgstr "Íàâåðõó"
 
-#: buffer.c:4523
+#: buffer.c:4536
 #, c-format
 msgid ""
 "\n"
@@ -201,15 +201,15 @@ msgstr ""
 "\n"
 "# Ñïèñîê áóôåðîâ:\n"
 
-#: buffer.c:4556
+#: buffer.c:4569
 msgid "[Error List]"
 msgstr "[Ñïèñîê îøèáîê]"
 
-#: buffer.c:4569 memline.c:1520
+#: buffer.c:4582 memline.c:1521
 msgid "[No File]"
 msgstr "[Íåò ôàéëà]"
 
-#: buffer.c:4882
+#: buffer.c:4895
 msgid ""
 "\n"
 "--- Signs ---"
@@ -217,12 +217,12 @@ msgstr ""
 "\n"
 "--- Çíà÷êè ---"
 
-#: buffer.c:4901
+#: buffer.c:4914
 #, c-format
 msgid "Signs for %s:"
 msgstr "Çíà÷êè äëÿ %s:"
 
-#: buffer.c:4907
+#: buffer.c:4920
 #, c-format
 msgid "    line=%ld  id=%d  name=%s"
 msgstr "    ñòðîêà=%ld  id=%d  èìÿ=%s"
@@ -473,7 +473,7 @@ msgstr "E120: <SID> 
 #. * this way has the compelling advantage that translations need not to
 #. * be touched at all.  See below what 'ok' and 'ync' are used for.
 #.
-#: eval.c:3687 gui.c:4382 gui_gtk.c:2059
+#: eval.c:3687 gui.c:4385 gui_gtk.c:2059
 msgid "&Ok"
 msgstr "&Ok"
 
@@ -498,121 +498,121 @@ msgstr "
 msgid "E655: Too many symbolic links (cycle?)"
 msgstr "E656: Ñëèøêîì ìíîãî ñèìâîëè÷åñêèõ ññûëîê (öèêë?)"
 
-#: eval.c:6609
+#: eval.c:6626
 msgid "E240: No connection to Vim server"
 msgstr "E240: Íåò ñâÿçè ñ ñåðâåðîì Vim"
 
-#: eval.c:6706
+#: eval.c:6724
 msgid "E277: Unable to read a server reply"
 msgstr "E227: Ñåðâåð íå îòâå÷àåò"
 
-#: eval.c:6734
+#: eval.c:6752
 msgid "E258: Unable to send to client"
 msgstr "E258: Íå ìîãó îòâåòèòü êëèåíòó"
 
-#: eval.c:6782
+#: eval.c:6800
 #, c-format
 msgid "E241: Unable to send to %s"
 msgstr "E241: Íå ìîãó îòïðàâèòü ñîîáùåíèå äëÿ %s"
 
-#: eval.c:6882
+#: eval.c:6900
 msgid "(Invalid)"
 msgstr "(Íåïðàâèëüíî)"
 
-#: eval.c:8060
+#: eval.c:8078
 #, c-format
 msgid "E121: Undefined variable: %s"
 msgstr "E121: Íåîïðåäåëåííàÿ ïåðåìåííàÿ: %s"
 
-#: eval.c:8492
+#: eval.c:8510
 #, c-format
 msgid "E461: Illegal variable name: %s"
 msgstr "E461: Íåäîïóñòèìîå èìÿ ïåðåìåííîé: %s"
 
-#: eval.c:8784
+#: eval.c:8802
 #, c-format
 msgid "E122: Function %s already exists, add ! to replace it"
 msgstr "E122: Ôóíêöèÿ %s óæå ñóùåñòâóåò. Äîáàâüòå !, ÷òîáû çàìåíèòü å¸."
 
-#: eval.c:8857
+#: eval.c:8875
 #, c-format
 msgid "E123: Undefined function: %s"
 msgstr "E123: Íåîïðåäåëåííàÿ ôóíêöèÿ: %s"
 
-#: eval.c:8870
+#: eval.c:8888
 #, c-format
 msgid "E124: Missing '(': %s"
 msgstr "E124: Ïðîïóùåíà '(': %s"
 
-#: eval.c:8903
+#: eval.c:8921
 #, c-format
 msgid "E125: Illegal argument: %s"
 msgstr "E125: Íåäîïóñòèìûé ïàðàìåòð: %s"
 
-#: eval.c:8982
+#: eval.c:9000
 msgid "E126: Missing :endfunction"
 msgstr "E126: Ïðîïóùåíà êîìàíäà :endfunction"
 
-#: eval.c:9089
+#: eval.c:9107
 #, c-format
 msgid "E127: Cannot redefine function %s: It is in use"
 msgstr "E127: Íåâîçìîæíî ïåðåîïðåäåëèòü ôóíêöèþ %s, îíà èñïîëüçóåòñÿ"
 
-#: eval.c:9159
+#: eval.c:9177
 msgid "E129: Function name required"
 msgstr "E129: Òðåáóåòñÿ èìÿ ôóíêöèè"
 
-#: eval.c:9210
+#: eval.c:9228
 #, c-format
 msgid "E128: Function name must start with a capital: %s"
 msgstr "E128: Èìÿ ôóíêöèè äîëæíî íà÷èíàòüñÿ ñ ïðîïèñíîé áóêâû: %s"
 
-#: eval.c:9402
+#: eval.c:9420
 #, c-format
 msgid "E130: Undefined function: %s"
 msgstr "E130: Ôóíêöèÿ %s íå îïðåäåëåíà"
 
-#: eval.c:9407
+#: eval.c:9425
 #, c-format
 msgid "E131: Cannot delete function %s: It is in use"
 msgstr "E131: Íåâîçìîæíî óäàëèòü ôóíêöèþ %s, îíà èñïîëüçóåòñÿ"
 
-#: eval.c:9455
+#: eval.c:9473
 msgid "E132: Function call depth is higher than 'maxfuncdepth'"
 msgstr "E132: Ãëóáèíà âûçîâà ôóíêöèè áîëüøå, ÷åì çíà÷åíèå 'maxfuncdepth'"
 
 #. always scroll up, don't overwrite
-#: eval.c:9508
+#: eval.c:9526
 #, c-format
 msgid "calling %s"
 msgstr "âûçîâ %s"
 
-#: eval.c:9570
+#: eval.c:9588
 #, c-format
 msgid "%s aborted"
 msgstr "%s ïðåðâàíà"
 
-#: eval.c:9572
+#: eval.c:9590
 #, c-format
 msgid "%s returning #%ld"
 msgstr "%s âîçâðàùàåò #%ld"
 
-#: eval.c:9579
+#: eval.c:9597
 #, c-format
 msgid "%s returning \"%s\""
 msgstr "%s âîçâðàùàåò \"%s\""
 
 #. always scroll up, don't overwrite
-#: eval.c:9595 ex_cmds2.c:2365
+#: eval.c:9613 ex_cmds2.c:2370
 #, c-format
 msgid "continuing in %s"
 msgstr "ïðîäîëæåíèå â %s"
 
-#: eval.c:9621
+#: eval.c:9639
 msgid "E133: :return not inside a function"
 msgstr "E133: êîìàíäà :return âíå ôóíêöèè"
 
-#: eval.c:9952
+#: eval.c:9970
 #, c-format
 msgid ""
 "\n"
@@ -728,7 +728,7 @@ msgstr "# 
 msgid "Illegal starting char"
 msgstr "Íåäîïóñòèìûé íà÷àëüíûé ñèìâîë"
 
-#: ex_cmds.c:2097 ex_cmds.c:2362 ex_cmds2.c:763
+#: ex_cmds.c:2097 ex_cmds2.c:761
 msgid "Save As"
 msgstr "Ñîõðàíèòü êàê"
 
@@ -756,11 +756,11 @@ msgstr "
 msgid "E141: No file name for buffer %ld"
 msgstr "E141: Áóôåð %ld íå ñâÿçàí ñ èìåíåì ôàéëà"
 
-#: ex_cmds.c:2405
+#: ex_cmds.c:2406
 msgid "E142: File not written: Writing is disabled by 'write' option"
 msgstr "E142: Ôàéë íå ñîõðàí¸í: çàïèñü îòêëþ÷åíà îïöèåé 'write'"
 
-#: ex_cmds.c:2425
+#: ex_cmds.c:2426
 #, c-format
 msgid ""
 "'readonly' option is set for \"%.*s\".\n"
@@ -769,68 +769,68 @@ msgstr ""
 "Äëÿ \"%.*s\" âêëþ÷åíà îïöèÿ 'readonly'.\n"
 "Çàïèñàòü?"
 
-#: ex_cmds.c:2597
+#: ex_cmds.c:2599
 msgid "Edit File"
 msgstr "Ðåäàêòèðîâàíèå ôàéëà"
 
-#: ex_cmds.c:3205
+#: ex_cmds.c:3206
 #, c-format
 msgid "E143: Autocommands unexpectedly deleted new buffer %s"
 msgstr "E143: Àâòîêîìàíäû íåîæèäàííî óáèëè íîâûé áóôåð %s"
 
-#: ex_cmds.c:3339
+#: ex_cmds.c:3340
 msgid "E144: non-numeric argument to :z"
 msgstr "E144: Ïàðàìåòð êîìàíäû :z äîëæåí áûòü ÷èñëîì"
 
-#: ex_cmds.c:3424
+#: ex_cmds.c:3425
 msgid "E145: Shell commands not allowed in rvim"
 msgstr "E145: Èñïîëüçîâàíèå êîìàíä îáîëî÷êè íå äîïóñêàåòñÿ â rvim."
 
-#: ex_cmds.c:3531
+#: ex_cmds.c:3532
 msgid "E146: Regular expressions can't be delimited by letters"
 msgstr "E146: Ðåãóëÿðíûå âûðàæåíèÿ íå ìîãóò ðàçäåëÿòüñÿ áóêâàìè"
 
-#: ex_cmds.c:3877
+#: ex_cmds.c:3878
 #, c-format
 msgid "replace with %s (y/n/a/q/l/^E/^Y)?"
 msgstr "çàìåíèòü íà %s? (y/n/a/q/l/^E/^Y)"
 
-#: ex_cmds.c:4270
+#: ex_cmds.c:4271
 msgid "(Interrupted) "
 msgstr "(Ïðåðâàíî)"
 
-#: ex_cmds.c:4274
+#: ex_cmds.c:4275
 msgid "1 substitution"
 msgstr "Îäíà çàìåíà"
 
-#: ex_cmds.c:4276
+#: ex_cmds.c:4277
 #, c-format
 msgid "%ld substitutions"
 msgstr "%ld çàìåí"
 
-#: ex_cmds.c:4279
+#: ex_cmds.c:4280
 msgid " on 1 line"
 msgstr " â îäíîé ñòðîêå"
 
-#: ex_cmds.c:4281
+#: ex_cmds.c:4282
 #, c-format
 msgid " on %ld lines"
 msgstr " â %ld ñòð."
 
-#: ex_cmds.c:4332
+#: ex_cmds.c:4333
 msgid "E147: Cannot do :global recursive"
 msgstr "E147: Êîìàíäà :global íå ìîæåò áûòü ðåêóðñèâíîé"
 
-#: ex_cmds.c:4367
+#: ex_cmds.c:4368
 msgid "E148: Regular expression missing from global"
 msgstr "E148: Â êîìàíäå :global ïðîïóùåíî ðåãóëÿðíîå âûðàæåíèå"
 
-#: ex_cmds.c:4416
+#: ex_cmds.c:4417
 #, c-format
 msgid "Pattern found in every line: %s"
 msgstr "Ñîîòâåòñòâèå øàáëîíó íàéäåíî íà êàæäîé ñòðîêå: %s"
 
-#: ex_cmds.c:4497
+#: ex_cmds.c:4498
 #, c-format
 msgid ""
 "\n"
@@ -841,96 +841,96 @@ msgstr ""
 "# Ïîñëåäíÿÿ ñòðîêà äëÿ çàìåíû:\n"
 "$"
 
-#: ex_cmds.c:4598
+#: ex_cmds.c:4599
 msgid "E478: Don't panic!"
 msgstr "E478: Ñïîêîéñòâèå, òîëüêî ñïîêîéñòâèå!"
 
-#: ex_cmds.c:4650
+#: ex_cmds.c:4651
 #, c-format
 msgid "E661: Sorry, no '%s' help for %s"
 msgstr "E661: ê ñîæàëåíèþ, ñïðàâêà '%s' äëÿ %s îòñóòñòâóåò"
 
-#: ex_cmds.c:4653
+#: ex_cmds.c:4654
 #, c-format
 msgid "E149: Sorry, no help for %s"
 msgstr "E149: Ê ñîæàëåíèþ ñïðàâêà äëÿ %s îòñóòñòâóåò"
 
-#: ex_cmds.c:4687
+#: ex_cmds.c:4688
 #, c-format
 msgid "Sorry, help file \"%s\" not found"
 msgstr "Èçâèíèòå, ôàéë ñïðàâêè \"%s\" íå íàéäåí"
 
-#: ex_cmds.c:5170
+#: ex_cmds.c:5191
 #, c-format
 msgid "E150: Not a directory: %s"
 msgstr "E150: %s íå ÿâëÿåòñÿ êàòàëîãîì"
 
-#: ex_cmds.c:5309
+#: ex_cmds.c:5330
 #, c-format
 msgid "E152: Cannot open %s for writing"
 msgstr "E152: Íåâîçìîæíî îòêðûòü %s äëÿ çàïèñè"
 
-#: ex_cmds.c:5345
+#: ex_cmds.c:5366
 #, c-format
 msgid "E153: Unable to open %s for reading"
 msgstr "E153: Íåâîçìîæíî îòêðûòü %s äëÿ ÷òåíèÿ"
 
-#: ex_cmds.c:5367
+#: ex_cmds.c:5388
 #, c-format
 msgid "E670: Mix of help file encodings within a language: %s"
 msgstr "E670: Ôàéëû ñïðàâêè èñïîëüçóþò ðàçíûå êîäèðîâêè äëÿ îäíîãî ÿçûêà: %s"
 
-#: ex_cmds.c:5445
+#: ex_cmds.c:5466
 #, c-format
 msgid "E154: Duplicate tag \"%s\" in file %s"
 msgstr "E154: Ïîâòîðÿþùàÿñÿ ìåòêà \"%s\" â ôàéëå %s"
 
-#: ex_cmds.c:5557
+#: ex_cmds.c:5578
 #, c-format
 msgid "E160: Unknown sign command: %s"
 msgstr "E160: Íåèçâåñòíàÿ êîìàíäà çíà÷êà %s"
 
-#: ex_cmds.c:5577
+#: ex_cmds.c:5598
 msgid "E156: Missing sign name"
 msgstr "E156: Ïðîïóùåíî èìÿ çíà÷êà"
 
-#: ex_cmds.c:5623
+#: ex_cmds.c:5644
 msgid "E612: Too many signs defined"
 msgstr "E612: Îïðåäåëåíî ñëèøêîì ìíîãî çíà÷êîâ"
 
-#: ex_cmds.c:5691
+#: ex_cmds.c:5712
 #, c-format
 msgid "E239: Invalid sign text: %s"
 msgstr "E239: Íåïðàâèëüíûé òåêñò çíà÷êà: %s"
 
-#: ex_cmds.c:5722 ex_cmds.c:5913
+#: ex_cmds.c:5743 ex_cmds.c:5934
 #, c-format
 msgid "E155: Unknown sign: %s"
 msgstr "E155: Íåèçâåñòíûé çíà÷îê: %s"
 
-#: ex_cmds.c:5771
+#: ex_cmds.c:5792
 msgid "E159: Missing sign number"
 msgstr "E159: Ïðîïóùåí íîìåð çíà÷êà"
 
-#: ex_cmds.c:5853
+#: ex_cmds.c:5874
 #, c-format
 msgid "E158: Invalid buffer name: %s"
 msgstr "E158: Íåïðàâèëüíîå èìÿ áóôåðà: %s"
 
-#: ex_cmds.c:5892
+#: ex_cmds.c:5913
 #, c-format
 msgid "E157: Invalid sign ID: %ld"
 msgstr "E157: Íåïðàâèëüíûé ID çíà÷êà: %ld"
 
-#: ex_cmds.c:5962
+#: ex_cmds.c:5983
 msgid " (NOT FOUND)"
 msgstr " (ÍÅ ÍÀÉÄÅÍÎ)"
 
-#: ex_cmds.c:5964
+#: ex_cmds.c:5985
 msgid " (not supported)"
 msgstr " (íå ïîääåðæèâàåòñÿ)"
 
-#: ex_cmds.c:6063
+#: ex_cmds.c:6084
 msgid "[Deleted]"
 msgstr "[Óäàëåíî]"
 
@@ -938,7 +938,7 @@ msgstr "[
 msgid "Entering Debug mode.  Type \"cont\" to continue."
 msgstr "Âêëþ÷¸í ðåæèì îòëàäêè. Äëÿ ïðîäîëæåíèÿ íàáåðèòå \"cont\""
 
-#: ex_cmds2.c:96 ex_docmd.c:966
+#: ex_cmds2.c:96 ex_docmd.c:968
 #, c-format
 msgid "line %ld: %s"
 msgstr "ñòðîêà %ld: %s"
@@ -972,7 +972,7 @@ msgstr "%3d  %s %s 
 msgid "Save changes to \"%.*s\"?"
 msgstr "Ñîõðàíèòü èçìåíåíèÿ â \"%.*s\"?"
 
-#: ex_cmds2.c:788 ex_docmd.c:9378
+#: ex_cmds2.c:788 ex_docmd.c:9398
 msgid "Untitled"
 msgstr "Áåç èìåíè"
 
@@ -1003,168 +1003,168 @@ msgstr "E165: 
 msgid "E666: compiler not supported: %s"
 msgstr "E666: êîìïèëÿòîð íå ïîääåðæèâàåòñÿ: %s"
 
-#: ex_cmds2.c:1897
+#: ex_cmds2.c:1901
 #, c-format
 msgid "Searching for \"%s\" in \"%s\""
 msgstr "Ïîèñê \"%s\" â \"%s\""
 
-#: ex_cmds2.c:1919
+#: ex_cmds2.c:1923
 #, c-format
 msgid "Searching for \"%s\""
 msgstr "Ïîèñê \"%s\""
 
-#: ex_cmds2.c:1940
+#: ex_cmds2.c:1945
 #, c-format
 msgid "not found in 'runtimepath': \"%s\""
 msgstr "íå íàéäåíî â 'runtimepath': \"%s\""
 
-#: ex_cmds2.c:1974
+#: ex_cmds2.c:1979
 msgid "Source Vim script"
 msgstr "Âûïîëíèòü ñöåíàðèé Vim"
 
-#: ex_cmds2.c:2164
+#: ex_cmds2.c:2169
 #, c-format
 msgid "Cannot source a directory: \"%s\""
 msgstr "Íåëüçÿ ñ÷èòàòü êàòàëîã: \"%s\""
 
-#: ex_cmds2.c:2202
+#: ex_cmds2.c:2207
 #, c-format
 msgid "could not source \"%s\""
 msgstr "íåâîçìîæíî ñ÷èòàòü \"%s\""
 
-#: ex_cmds2.c:2204
+#: ex_cmds2.c:2209
 #, c-format
 msgid "line %ld: could not source \"%s\""
 msgstr "ñòðîêà %ld: íåâîçìîæíî ñ÷èòàòü \"%s\""
 
-#: ex_cmds2.c:2218
+#: ex_cmds2.c:2223
 #, c-format
 msgid "sourcing \"%s\""
 msgstr "ñ÷èòûâàíèå ñöåíàðèÿ \"%s\""
 
-#: ex_cmds2.c:2220
+#: ex_cmds2.c:2225
 #, c-format
 msgid "line %ld: sourcing \"%s\""
 msgstr "ñòðîêà %ld: ñ÷èòûâàíèå \"%s\""
 
-#: ex_cmds2.c:2363
+#: ex_cmds2.c:2368
 #, c-format
 msgid "finished sourcing %s"
 msgstr "ñ÷èòûâàíèå ñöåíàðèÿ %s çàâåðøåíî"
 
-#: ex_cmds2.c:2707
+#: ex_cmds2.c:2712
 msgid "W15: Warning: Wrong line separator, ^M may be missing"
 msgstr ""
 "W15: Ïðåäóïðåæäåíèå: íåïðàâèëüíûé ðàçäåëèòåëü ñòðîêè. Âîçìîæíî ïðîïóùåíî ^M"
 
-#: ex_cmds2.c:2756
+#: ex_cmds2.c:2761
 msgid "E167: :scriptencoding used outside of a sourced file"
 msgstr "E167: Êîìàíäà :scriptencoding èñïîëüçóåòñÿ âíå ôàéëà ñöåíàðèÿ"
 
-#: ex_cmds2.c:2789
+#: ex_cmds2.c:2794
 msgid "E168: :finish used outside of a sourced file"
 msgstr "E168: Êîìàíäà :finish èñïîëüçóåòñÿ âíå ôàéëà ñöåíàðèÿ"
 
-#: ex_cmds2.c:3238
+#: ex_cmds2.c:3243
 #, c-format
 msgid "Page %d"
 msgstr "Ñòðàíèöà %d"
 
-#: ex_cmds2.c:3394
+#: ex_cmds2.c:3399
 msgid "No text to be printed"
 msgstr "Ïå÷àòàòü íå÷åãî"
 
-#: ex_cmds2.c:3472
+#: ex_cmds2.c:3477
 #, c-format
 msgid "Printing page %d (%d%%)"
 msgstr "Ïå÷àòü ñòð. %d (%d%%)"
 
-#: ex_cmds2.c:3484
+#: ex_cmds2.c:3489
 #, c-format
 msgid " Copy %d of %d"
 msgstr " Êîïèÿ %d èç %d"
 
-#: ex_cmds2.c:3542
+#: ex_cmds2.c:3547
 #, c-format
 msgid "Printed: %s"
 msgstr "Íàïå÷àòàíî: %s"
 
-#: ex_cmds2.c:3549
+#: ex_cmds2.c:3554
 #, c-format
 msgid "Printing aborted"
 msgstr "Ïå÷àòü ïðåêðàùåíà"
 
-#: ex_cmds2.c:3914
+#: ex_cmds2.c:3919
 msgid "E455: Error writing to PostScript output file"
 msgstr "E455: Îøèáêà çàïèñè â ôàéë PostScript"
 
-#: ex_cmds2.c:4189
+#: ex_cmds2.c:4194
 #, c-format
 msgid "E624: Can't open file \"%s\""
 msgstr "E624: Íåâîçìîæíî îòêðûòü ôàéë \"%s\""
 
-#: ex_cmds2.c:4199 ex_cmds2.c:4824
+#: ex_cmds2.c:4204 ex_cmds2.c:4829
 #, c-format
 msgid "E457: Can't read PostScript resource file \"%s\""
 msgstr "E457: Íåâîçìîæíî ïðî÷èòàòü ôàéë ðåñóðñîâ PostScript \"%s\""
 
-#: ex_cmds2.c:4207
+#: ex_cmds2.c:4212
 #, c-format
 msgid "E618: file \"%s\" is not a PostScript resource file"
 msgstr "E618: ôàéë \"%s\" íå ÿâëÿåòñÿ ôàéëîì ðåñóðñîâ PostScript"
 
-#: ex_cmds2.c:4222 ex_cmds2.c:4242 ex_cmds2.c:4257 ex_cmds2.c:4279
+#: ex_cmds2.c:4227 ex_cmds2.c:4247 ex_cmds2.c:4262 ex_cmds2.c:4284
 #, c-format
 msgid "E619: file \"%s\" is not a supported PostScript resource file"
 msgstr "E619: ôàéë \"%s\" íå ÿâëÿåòñÿ äîïóñòèìûì ôàéëîì ðåñóðñîâ PostScript"
 
-#: ex_cmds2.c:4309
+#: ex_cmds2.c:4314
 #, c-format
 msgid "E621: \"%s\" resource file has wrong version"
 msgstr "E621: ôàéë ðåñóðñîâ \"%s\" íåèçâåñòíîé âåðñèè"
 
-#: ex_cmds2.c:4776
+#: ex_cmds2.c:4781
 msgid "E324: Can't open PostScript output file"
 msgstr "E324: Íåâîçìîæíî îòêðûòü ôàéë PostScript"
 
-#: ex_cmds2.c:4809
+#: ex_cmds2.c:4814
 #, c-format
 msgid "E456: Can't open file \"%s\""
 msgstr "E456: Íåâîçìîæíî îòêðûòü ôàéë \"%s\""
 
-#: ex_cmds2.c:4928
+#: ex_cmds2.c:4933
 msgid "E456: Can't find PostScript resource file \"prolog.ps\""
 msgstr "E456: Ôàéë ðåñóðñîâ PostScript \"prolog.ps\" íå íàéäåí"
 
-#: ex_cmds2.c:4959
+#: ex_cmds2.c:4964
 #, c-format
 msgid "E456: Can't find PostScript resource file \"%s.ps\""
 msgstr "E456: Ôàéë ðåñóðñîâ PostScript \"%s.ps\" íå íàéäåí"
 
-#: ex_cmds2.c:4977
+#: ex_cmds2.c:4982
 #, c-format
 msgid "E620: Unable to convert from multi-byte to \"%s\" encoding"
 msgstr ""
 "E620: Ïðåîáðàçîâàíèå èç ìóëüòèáàéòíûõ ñèìâîëîâ â êîäèðîâêó \"%s\" íåâîçìîæíî"
 
-#: ex_cmds2.c:5102
+#: ex_cmds2.c:5107
 msgid "Sending to printer..."
 msgstr "Îòïðàâêà íà ïå÷àòü..."
 
-#: ex_cmds2.c:5106
+#: ex_cmds2.c:5111
 msgid "E365: Failed to print PostScript file"
 msgstr "E365: Íå óäàëîñü âûïîëíèòü ïå÷àòü ôàéëà PostScript"
 
-#: ex_cmds2.c:5108
+#: ex_cmds2.c:5113
 msgid "Print job sent."
 msgstr "Çàäàíèå íà ïå÷àòü îòïðàâëåíî."
 
-#: ex_cmds2.c:5618
+#: ex_cmds2.c:5623
 #, c-format
 msgid "Current %slanguage: \"%s\""
 msgstr "Àêòèâíûé %sÿçûê: \"%s\""
 
-#: ex_cmds2.c:5629
+#: ex_cmds2.c:5634
 #, c-format
 msgid "E197: Cannot set language to \"%s\""
 msgstr "E197: Íåâîçìîæíî ñìåíèòü ÿçûê íà \"%s\""
@@ -1178,74 +1178,74 @@ msgstr "
 msgid "E501: At end-of-file"
 msgstr "E501: Â êîíöå ôàéëà"
 
-#: ex_docmd.c:669
+#: ex_docmd.c:670
 msgid "E169: Command too recursive"
 msgstr "E169: Cëèøêîì ðåêóðñèâíàÿ êîìàíäà"
 
-#: ex_docmd.c:1229
+#: ex_docmd.c:1232
 #, c-format
 msgid "E605: Exception not caught: %s"
 msgstr "E605: Èñêëþ÷èòåëüíàÿ ñèòóàöèÿ íå îáðàáîòàíà: %s"
 
-#: ex_docmd.c:1317
+#: ex_docmd.c:1320
 msgid "End of sourced file"
 msgstr "Êîíåö ñ÷èòàííîãî ôàéëà"
 
-#: ex_docmd.c:1318
+#: ex_docmd.c:1321
 msgid "End of function"
 msgstr "Êîíåö ôóíêöèè"
 
-#: ex_docmd.c:1907
+#: ex_docmd.c:1910
 msgid "E464: Ambiguous use of user-defined command"
 msgstr "E464: Íåîäíîçíà÷íîå èñïîëüçîâàíèå êîìàíäû ïîëüçîâàòåëÿ"
 
-#: ex_docmd.c:1921
+#: ex_docmd.c:1924
 msgid "E492: Not an editor command"
 msgstr "E492: Ýòî íå êîìàíäà ðåäàêòîðà"
 
-#: ex_docmd.c:2028
+#: ex_docmd.c:2031
 msgid "E493: Backwards range given"
 msgstr "E493: Çàäàí îáðàòíûé äèàïàçîí"
 
-#: ex_docmd.c:2037
+#: ex_docmd.c:2040
 msgid "Backwards range given, OK to swap"
 msgstr "Çàäàí îáðàòíûé äèàïàçîí, ìåíÿåì ãðàíèöû ìåñòàìè"
 
-#: ex_docmd.c:2160
+#: ex_docmd.c:2163
 msgid "E494: Use w or w>>"
 msgstr "E494: Èñïîëüçóéòå w èëè w>>"
 
-#: ex_docmd.c:3786
+#: ex_docmd.c:3789
 msgid "E319: Sorry, the command is not available in this version"
 msgstr "E319: Èçâèíèòå, ýòà êîìàíäà íåäîñòóïíà â äàííîé âåðñèè"
 
-#: ex_docmd.c:3989
+#: ex_docmd.c:3992
 msgid "E172: Only one file name allowed"
 msgstr "E172: Ðàçðåøåíî èñïîëüçîâàòü òîëüêî îäíî èìÿ ôàéëà"
 
-#: ex_docmd.c:4569
+#: ex_docmd.c:4572
 msgid "1 more file to edit.  Quit anyway?"
 msgstr "1 ôàéë îæèäàåò ðåäàêòèðîâàíèÿ. Âûéòè?"
 
-#: ex_docmd.c:4572
+#: ex_docmd.c:4575
 #, c-format
 msgid "%d more files to edit.  Quit anyway?"
 msgstr "Åñòü íåîòðåäàêòèðîâàííûå ôàéëû (%d). Âûéòè?"
 
-#: ex_docmd.c:4579
+#: ex_docmd.c:4582
 msgid "E173: 1 more file to edit"
 msgstr "E173: 1 ôàéë îæèäàåò ðåäàêòèðîâàíèÿ."
 
-#: ex_docmd.c:4581
+#: ex_docmd.c:4584
 #, c-format
 msgid "E173: %ld more files to edit"
 msgstr "E173: Åñòü íåîòðåäàêòèðîâàííûå ôàéëû (%d)."
 
-#: ex_docmd.c:4676
+#: ex_docmd.c:4679
 msgid "E174: Command already exists: add ! to replace it"
 msgstr "E174: Êîìàíäà óæå ñóùåñòâóåò. Äîáàâüòå ! äëÿ çàìåíû."
 
-#: ex_docmd.c:4787
+#: ex_docmd.c:4790
 msgid ""
 "\n"
 "    Name        Args Range Complete  Definition"
@@ -1253,177 +1253,177 @@ msgstr ""
 "\n"
 "    Èìÿ      Ïàðàì. Äèàï. Äîïîëí.    Îïðåäåëåíèå"
 
-#: ex_docmd.c:4876
+#: ex_docmd.c:4879
 msgid "No user-defined commands found"
 msgstr "Êîìàíäû, îïðåäåë¸ííûå ïîëüçîâàòåëåì, íå îáíàðóæåíû."
 
-#: ex_docmd.c:4908
+#: ex_docmd.c:4911
 msgid "E175: No attribute specified"
 msgstr "E175: ïàðàìåòð íå çàäàí"
 
-#: ex_docmd.c:4960
+#: ex_docmd.c:4963
 msgid "E176: Invalid number of arguments"
 msgstr "E176: Íåïðàâèëüíîå êîëè÷åñòâî ïàðàìåòðîâ"
 
-#: ex_docmd.c:4975
+#: ex_docmd.c:4978
 msgid "E177: Count cannot be specified twice"
 msgstr "E177: ×èñëî-ïðèñòàâêó íåëüçÿ óêàçûâàòü äâàæäû"
 
-#: ex_docmd.c:4985
+#: ex_docmd.c:4988
 msgid "E178: Invalid default value for count"
 msgstr "E178: Íåïðàâèëüíîå çíà÷åíèå ÷èñëà-ïðèñòàâêè ïî óìîë÷àíèþ"
 
-#: ex_docmd.c:5016
+#: ex_docmd.c:5019
 msgid "E179: argument required for complete"
 msgstr "E179: äëÿ çàâåðøåíèÿ òðåáóåòñÿ óêàçàòü ïàðàìåòð"
 
-#: ex_docmd.c:5048
+#: ex_docmd.c:5051
 #, c-format
 msgid "E180: Invalid complete value: %s"
 msgstr "E180: Íåïðàâèëüíîå çíà÷åíèå äîïîëíåíèÿ: %s"
 
-#: ex_docmd.c:5057
+#: ex_docmd.c:5060
 msgid "E468: Completion argument only allowed for custom completion"
 msgstr ""
 "E468: Ïàðàìåòð àâòîäîïîëíåíèÿ ìîæíî èñïîëüçîâàòü òîëüêî ñ îñîáûì äîïîëíåíèåì"
 
-#: ex_docmd.c:5063
+#: ex_docmd.c:5066
 msgid "E467: Custom completion requires a function argument"
 msgstr "E467: Îñîáîå äîïîëíåíèå òðåáóåò óêàçàíèÿ ïàðàìåòðà ôóíêöèè"
 
-#: ex_docmd.c:5074
+#: ex_docmd.c:5077
 #, c-format
 msgid "E181: Invalid attribute: %s"
 msgstr "E181: Íåïðàâèëüíûé àòðèáóò: %s"
 
-#: ex_docmd.c:5117
+#: ex_docmd.c:5120
 msgid "E182: Invalid command name"
 msgstr "E182: Íåïðàâèëüíîå èìÿ êîìàíäû"
 
-#: ex_docmd.c:5132
+#: ex_docmd.c:5135
 msgid "E183: User defined commands must start with an uppercase letter"
 msgstr "E183: Êîìàíäà ïîëüçîâàòåëÿ äîëæíà íà÷èíàòüñÿ ñ çàãëàâíîé áóêâû"
 
-#: ex_docmd.c:5203
+#: ex_docmd.c:5206
 #, c-format
 msgid "E184: No such user-defined command: %s"
 msgstr "E184: Íåò òàêîé êîìàíäû ïîëüçîâàòåëÿ: %s"
 
-#: ex_docmd.c:5664
+#: ex_docmd.c:5667
 #, c-format
 msgid "E185: Cannot find color scheme %s"
 msgstr "E185: Öâåòîâàÿ ñõåìà %s íå íàéäåíà"
 
-#: ex_docmd.c:5672
+#: ex_docmd.c:5675
 msgid "Greetings, Vim user!"
 msgstr "Ïðèâåò, ïîëüçîâàòåëü Vim!"
 
-#: ex_docmd.c:6389
+#: ex_docmd.c:6393
 msgid "Edit File in new window"
 msgstr "Ðåäàêòèðîâàòü ôàéë â íîâîì îêíå"
 
-#: ex_docmd.c:6684
+#: ex_docmd.c:6688
 msgid "No swap file"
 msgstr "Áåç ñâîï-ôàéëà"
 
-#: ex_docmd.c:6788
+#: ex_docmd.c:6792
 msgid "Append File"
 msgstr "Äîáàâèòü ôàéë"
 
-#: ex_docmd.c:6852
+#: ex_docmd.c:6856
 msgid "E186: No previous directory"
 msgstr "E186: Íåò ïðåäûäóùåãî êàòàëîãà"
 
-#: ex_docmd.c:6934
+#: ex_docmd.c:6938
 msgid "E187: Unknown"
 msgstr "E187: Íåèçâåñòíî"
 
-#: ex_docmd.c:7019
+#: ex_docmd.c:7023
 msgid "E465: :winsize requires two number arguments"
 msgstr "E465: êîìàíäà :winsize òðåáóåò óêàçàíèÿ äâóõ ÷èñëîâûõ ïàðàìåòðîâ"
 
-#: ex_docmd.c:7075
+#: ex_docmd.c:7079
 #, c-format
 msgid "Window position: X %d, Y %d"
 msgstr "Ïîëîæåíèå îêíà: X %d, Y %d"
 
-#: ex_docmd.c:7080
+#: ex_docmd.c:7084
 msgid "E188: Obtaining window position not implemented for this platform"
 msgstr "E188: Â äàííîé ñèñòåìå îïðåäåëåíèå ïîëîæåíèÿ îêíà íå ðàáîòàåò"
 
-#: ex_docmd.c:7090
+#: ex_docmd.c:7094
 msgid "E466: :winpos requires two number arguments"
 msgstr "E466: êîìàíäà :winpos òðåáóåò óêàçàíèÿ äâóõ ÷èñëîâûõ ïàðàìåòðîâ"
 
-#: ex_docmd.c:7368
+#: ex_docmd.c:7372
 msgid "Save Redirection"
 msgstr "Ïåðåíàïðàâëåíèå çàïèñè"
 
-#: ex_docmd.c:7558
+#: ex_docmd.c:7562
 msgid "Save View"
 msgstr "Ñîõðàíåíèå âèäà"
 
-#: ex_docmd.c:7559
+#: ex_docmd.c:7563
 msgid "Save Session"
 msgstr "Ñîõðàíåíèå ñåàíñà"
 
-#: ex_docmd.c:7561
+#: ex_docmd.c:7565
 msgid "Save Setup"
 msgstr "Ñîõðàíåíèå íàñòðîåê"
 
-#: ex_docmd.c:7713
+#: ex_docmd.c:7717
 #, c-format
 msgid "E189: \"%s\" exists (add ! to override)"
 msgstr "E189: \"%s\" ñóùåñòâóåò (!, ÷òîáû îáîéòè ïðîâåðêó)"
 
-#: ex_docmd.c:7718
+#: ex_docmd.c:7722
 #, c-format
 msgid "E190: Cannot open \"%s\" for writing"
 msgstr "E190: Íåâîçìîæíî îòêðûòü äëÿ çàïèñè \"%s\""
 
 #. set mark
-#: ex_docmd.c:7742
+#: ex_docmd.c:7746
 msgid "E191: Argument must be a letter or forward/backward quote"
 msgstr "E191: Ïàðàìåòð äîëæåí áûòü ïðÿìîé/îáðàòíîé êàâû÷êîé èëè áóêâîé"
 
-#: ex_docmd.c:7784
+#: ex_docmd.c:7788
 msgid "E192: Recursive use of :normal too deep"
 msgstr "E192: Ñëèøêîì ãëóáîêàÿ ðåêóðñèÿ ïðè èñïîëüçîâàíèè êîìàíäû :normal"
 
-#: ex_docmd.c:8302
+#: ex_docmd.c:8306
 msgid "E194: No alternate file name to substitute for '#'"
 msgstr "E194: Íåò ñîñåäíåãî èìåíè ôàéëà äëÿ çàìåíû '#'"
 
-#: ex_docmd.c:8333
+#: ex_docmd.c:8337
 msgid "E495: no autocommand file name to substitute for \"<afile>\""
 msgstr "E495: Íåò àâòîêîìàíäíîãî èìåíè ôàéëà äëÿ çàìåíû \"<afile>\""
 
-#: ex_docmd.c:8341
+#: ex_docmd.c:8345
 msgid "E496: no autocommand buffer number to substitute for \"<abuf>\""
 msgstr "E496: Íåò àâòîêîìàíäíîãî íîìåðà áóôåðà äëÿ çàìåíû \"<abuf>\""
 
-#: ex_docmd.c:8352
+#: ex_docmd.c:8356
 msgid "E497: no autocommand match name to substitute for \"<amatch>\""
 msgstr "E497: Íåò àâòîêîìàíäíîãî èìåíè ñîîòâåòñòâèÿ äëÿ çàìåíû \"<amatch>\""
 
-#: ex_docmd.c:8362
+#: ex_docmd.c:8366
 msgid "E498: no :source file name to substitute for \"<sfile>\""
 msgstr "E498: íåò èìåíè ôàéëà :source äëÿ çàìåíû \"<sfile>\""
 
-#: ex_docmd.c:8403
+#: ex_docmd.c:8407
 #, no-c-format
 msgid "E499: Empty file name for '%' or '#', only works with \":p:h\""
 msgstr "E499: Ïóñòîå èìÿ ôàéëà äëÿ '%' èëè '#', âîçìîæíî òîëüêî c \":p:h\""
 
-#: ex_docmd.c:8405
+#: ex_docmd.c:8409
 msgid "E500: Evaluates to an empty string"
 msgstr "E500: Ðåçóëüòàòîì âûðàæåíèÿ ÿâëÿåòñÿ ïóñòàÿ ñòðîêà"
 
-#: ex_docmd.c:9360
+#: ex_docmd.c:9380
 msgid "E195: Cannot open viminfo file for reading"
 msgstr "E195: Íåâîçìîæíî îòêðûòü ôàéë viminfo äëÿ ÷òåíèÿ"
 
-#: ex_docmd.c:9533
+#: ex_docmd.c:9553
 msgid "E196: No digraphs in this version"
 msgstr "E196: Â ýòîé âåðñèè äèãðàôû íå ðàáîòàþò"
 
@@ -1482,7 +1482,7 @@ msgstr "
 msgid "Error and interrupt"
 msgstr "Îøèáêà è ïðåðûâàíèå"
 
-#: ex_eval.c:754 gui.c:4381
+#: ex_eval.c:754 gui.c:4384
 msgid "Error"
 msgstr "Îøèáêà"
 
@@ -1558,19 +1558,19 @@ msgstr "E602: :endtry 
 msgid "E193: :endfunction not inside a function"
 msgstr "E193: êîìàíäà :endfunction ìîæåò èñïîëüçîâàòüñÿ òîëüêî âíóòðè ôóíêöèè"
 
-#: ex_getln.c:3296
+#: ex_getln.c:3299
 msgid "tagname"
 msgstr "èìÿ ìåòêè"
 
-#: ex_getln.c:3299
+#: ex_getln.c:3302
 msgid " kind file\n"
 msgstr " òèï ôàéëà\n"
 
-#: ex_getln.c:4752
+#: ex_getln.c:4768
 msgid "'history' option is zero"
 msgstr "çíà÷åíèå îïöèè 'history' ðàâíî íóëþ"
 
-#: ex_getln.c:5023
+#: ex_getln.c:5039
 #, c-format
 msgid ""
 "\n"
@@ -1579,259 +1579,259 @@ msgstr ""
 "\n"
 "# %s, èñòîðèÿ (íà÷èíàÿ îò ñâåæåãî ê ñòàðîìó):\n"
 
-#: ex_getln.c:5024
+#: ex_getln.c:5040
 msgid "Command Line"
 msgstr "Êîìàíäíàÿ ñòðîêà"
 
-#: ex_getln.c:5025
+#: ex_getln.c:5041
 msgid "Search String"
 msgstr "Ñòðîêà ïîèñêà"
 
-#: ex_getln.c:5026
+#: ex_getln.c:5042
 msgid "Expression"
 msgstr "Âûðàæåíèå"
 
-#: ex_getln.c:5027
+#: ex_getln.c:5043
 msgid "Input Line"
 msgstr "Ñòðîêà ââîäà"
 
-#: ex_getln.c:5065
+#: ex_getln.c:5081
 msgid "E198: cmd_pchar beyond the command length"
 msgstr "E198: cmd_pchar áîëüøå äëèíû êîìàíäû"
 
-#: ex_getln.c:5242
+#: ex_getln.c:5258
 msgid "E199: Active window or buffer deleted"
 msgstr "E199: Óäàëåíî àêòèâíîå îêíî èëè áóôåð"
 
-#: fileio.c:377
+#: fileio.c:378
 msgid "Illegal file name"
 msgstr "Íåäîïóñòèìîå èìÿ ôàéëà"
 
-#: fileio.c:401 fileio.c:535 fileio.c:2913 fileio.c:2954
+#: fileio.c:402 fileio.c:540 fileio.c:2925 fileio.c:2966
 msgid "is a directory"
 msgstr "ÿâëÿåòñÿ êàòàëîãîì"
 
-#: fileio.c:403
+#: fileio.c:404
 msgid "is not a file"
 msgstr "íå ÿâëÿåòñÿ ôàéëîì"
 
-#: fileio.c:557 fileio.c:4131
+#: fileio.c:562 fileio.c:4143
 msgid "[New File]"
 msgstr "[Íîâûé ôàéë]"
 
-#: fileio.c:590
+#: fileio.c:595
 msgid "[Permission Denied]"
 msgstr "[Äîñòóï çàïðåù¸í]"
 
-#: fileio.c:694
+#: fileio.c:706
 msgid "E200: *ReadPre autocommands made the file unreadable"
 msgstr "E200:  ðåçóëüòàòå âûïîëíåíèÿ àâòîêîìàíä *ReadPre ôàéë ñòàë íå÷èòàåìûì"
 
-#: fileio.c:696
+#: fileio.c:708
 msgid "E201: *ReadPre autocommands must not change current buffer"
 msgstr "E201: àâòîêîìàíäû *ReadPre íå äîëæíû èçìåíÿòü àêòèâíûé áóôåð"
 
-#: fileio.c:717
+#: fileio.c:729
 msgid "Vim: Reading from stdin...\n"
 msgstr "Vim: âûïîëíÿåòñÿ ÷òåíèå èç ñòàíäàðòíîãî ïîòîêà ââîäà stdin...\n"
 
-#: fileio.c:723
+#: fileio.c:735
 msgid "Reading from stdin..."
 msgstr "Âûïîëíÿåòñÿ ÷òåíèå èç ñòàíäàðòíîãî ïîòîêà ââîäà stdin..."
 
 #. Re-opening the original file failed!
-#: fileio.c:1000
+#: fileio.c:1012
 msgid "E202: Conversion made file unreadable!"
 msgstr "E202:  ðåçóëüòàòå ïðåîáðàçîâàíèÿ ôàéë ñòàë íå÷èòàåìûì!"
 
-#: fileio.c:2090
+#: fileio.c:2102
 msgid "[fifo/socket]"
 msgstr "[fifo/ãíåçäî]"
 
-#: fileio.c:2097
+#: fileio.c:2109
 msgid "[fifo]"
 msgstr "[fifo]"
 
-#: fileio.c:2104
+#: fileio.c:2116
 msgid "[socket]"
 msgstr "[ãíåçäî]"
 
-#: fileio.c:2112
+#: fileio.c:2124
 msgid "[RO]"
 msgstr "[RO]"
 
-#: fileio.c:2122
+#: fileio.c:2134
 msgid "[CR missing]"
 msgstr "[ïðîïóùåíû ñèìâîëû CR]"
 
-#: fileio.c:2127
+#: fileio.c:2139
 msgid "[NL found]"
 msgstr "[Îáíàðóæåíû ñèìâîëû NL]"
 
-#: fileio.c:2132
+#: fileio.c:2144
 msgid "[long lines split]"
 msgstr "[äëèííûå ñòðîêè ðàçáèòû]"
 
-#: fileio.c:2138 fileio.c:4115
+#: fileio.c:2150 fileio.c:4127
 msgid "[NOT converted]"
 msgstr "[ÁÅÇ ïðåîáðàçîâàíèé]"
 
-#: fileio.c:2143 fileio.c:4120
+#: fileio.c:2155 fileio.c:4132
 msgid "[converted]"
 msgstr "[ïåðåêîäèðîâàíî]"
 
-#: fileio.c:2150 fileio.c:4145
+#: fileio.c:2162 fileio.c:4157
 msgid "[crypted]"
 msgstr "[çàøèôðîâàíî]"
 
-#: fileio.c:2157
+#: fileio.c:2169
 msgid "[CONVERSION ERROR]"
 msgstr "[ÎØÈÁÊÀ ÏÐÅÎÁÐÀÇÎÂÀÍÈß]"
 
-#: fileio.c:2163
+#: fileio.c:2175
 #, c-format
 msgid "[ILLEGAL BYTE in line %ld]"
 msgstr "[ÍÅÄÎÏÓÑÒÈÌÛÉ ÁÀÉÒ â ñòðîêå %ld]"
 
-#: fileio.c:2170
+#: fileio.c:2182
 msgid "[READ ERRORS]"
 msgstr "[ÎØÈÁÊÈ ×ÒÅÍÈß]"
 
-#: fileio.c:2386
+#: fileio.c:2398
 msgid "Can't find temp file for conversion"
 msgstr "Âðåìåííûé ôàéë äëÿ ïåðåêîäèðîâàíèÿ íå íàéäåí"
 
-#: fileio.c:2393
+#: fileio.c:2405
 msgid "Conversion with 'charconvert' failed"
 msgstr "Ïðåîáðàçîâàíèå ñ ïîìîùüþ 'charconvert' íå âûïîëíåíî"
 
-#: fileio.c:2396
+#: fileio.c:2408
 msgid "can't read output of 'charconvert'"
 msgstr "íåâîçìîæíî ïðî÷èòàòü âûâîä 'charconvert'"
 
-#: fileio.c:2796
+#: fileio.c:2808
 msgid "E203: Autocommands deleted or unloaded buffer to be written"
 msgstr ""
 "E203: Áóôåð, êîòîðûé òðåáîâàëîñü çàïèñàòü, óäàë¸í èëè âûãðóæåí àâòîêîìàíäîé"
 
-#: fileio.c:2819
+#: fileio.c:2831
 msgid "E204: Autocommand changed number of lines in unexpected way"
 msgstr "E204: Êîëè÷åñòâî ñòðîê èçìåíåíî àâòîêîìàíäîé íåîæèäàííûì îáðàçîì"
 
-#: fileio.c:2857
+#: fileio.c:2869
 msgid "NetBeans dissallows writes of unmodified buffers"
 msgstr "NetBeans íå ïîçâîëÿåò âûïîëíÿòü çàïèñü íåèçìåí¸ííûõ áóôåðîâ"
 
-#: fileio.c:2865
+#: fileio.c:2877
 msgid "Partial writes disallowed for NetBeans buffers"
 msgstr "×àñòè÷íàÿ çàïèñü áóôåðîâ NetBeans íå äîïóñêàåòñÿ"
 
-#: fileio.c:2919 fileio.c:2937
+#: fileio.c:2931 fileio.c:2949
 msgid "is not a file or writable device"
 msgstr "íå ÿâëÿåòñÿ ôàéëîì èëè óñòðîéñòâîì, äîñòóïíûì äëÿ çàïèñè"
 
-#: fileio.c:2989
+#: fileio.c:3001
 msgid "is read-only (add ! to override)"
 msgstr "îòêðûò òîëüêî äëÿ ÷òåíèÿ (!, ÷òîáû îáîéòè ïðîâåðêó)"
 
-#: fileio.c:3335
+#: fileio.c:3347
 msgid "E506: Can't write to backup file (add ! to override)"
 msgstr "E506: Çàïèñü â ðåçåðâíûé ôàéë íåâîçìîæíà (!, ÷òîáû îáîéòè ïðîâåðêó)"
 
-#: fileio.c:3347
+#: fileio.c:3359
 msgid "E507: Close error for backup file (add ! to override)"
 msgstr "E507: Îøèáêà çàêðûòèÿ ðåçåðâíîãî ôàéëà (!, ÷òîáû îáîéòè ïðîâåðêó)"
 
-#: fileio.c:3349
+#: fileio.c:3361
 msgid "E508: Can't read file for backup (add ! to override)"
 msgstr "E508: Íåâîçìîæíî ïðî÷èòàòü ðåçåðâíûé ôàéë (!, ÷òîáû îáîéòè ïðîâåðêó)"
 
-#: fileio.c:3365
+#: fileio.c:3377
 msgid "E509: Cannot create backup file (add ! to override)"
 msgstr "E509: Íåâîçìîæíî ñîçäàòü ðåçåðâíûé ôàéë (!, ÷òîáû îáîéòè ïðîâåðêó)"
 
-#: fileio.c:3468
+#: fileio.c:3480
 msgid "E510: Can't make backup file (add ! to override)"
 msgstr "E510: Íåâîçìîæíî ñîçäàòü ðåçåðâíûé ôàéë (!, ÷òîáû îáîéòè ïðîâåðêó)"
 
-#: fileio.c:3530
+#: fileio.c:3542
 msgid "E460: The resource fork would be lost (add ! to override)"
 msgstr "E460: Âèëêà ðåñóðñà áóäåò ïîòåðÿíà (!, ÷òîáû îáîéòè ïðîâåðêó)"
 
-#: fileio.c:3640
+#: fileio.c:3652
 msgid "E214: Can't find temp file for writing"
 msgstr "E214: Âðåìåííûé ôàéë äëÿ çàïèñè íå íàéäåí"
 
-#: fileio.c:3658
+#: fileio.c:3670
 msgid "E213: Cannot convert (add ! to write without conversion)"
 msgstr "E213: Ïåðåêîäèðîâêà íåâîçìîæíà (! äëÿ çàïèñè áåç ïåðåêîäèðîâêè)"
 
-#: fileio.c:3693
+#: fileio.c:3705
 msgid "E166: Can't open linked file for writing"
 msgstr "E166: Íåâîçìîæíî îòêðûòü ñâÿçàííûé ôàéë äëÿ çàïèñè"
 
-#: fileio.c:3697
+#: fileio.c:3709
 msgid "E212: Can't open file for writing"
 msgstr "E212: Íåâîçìîæíî îòêðûòü ôàéë äëÿ çàïèñè"
 
-#: fileio.c:3959
+#: fileio.c:3971
 msgid "E667: Fsync failed"
 msgstr "E667: Íå óäàëîñü âûïîëíèòü ôóíêöèþ fsync()"
 
-#: fileio.c:3966
+#: fileio.c:3978
 msgid "E512: Close failed"
 msgstr "E512: Îïåðàöèÿ çàêðûòèÿ íå óäàëàñü"
 
-#: fileio.c:4037
+#: fileio.c:4049
 msgid "E513: write error, conversion failed"
 msgstr "E513: Îøèáêà çàïèñè, ïðåîáðàçîâàíèå íå óäàëîñü"
 
-#: fileio.c:4043
+#: fileio.c:4055
 msgid "E514: write error (file system full?)"
 msgstr "E514: îøèáêà çàïèñè (íåò ñâîáîäíîãî ìåñòà?)"
 
-#: fileio.c:4110
+#: fileio.c:4122
 msgid " CONVERSION ERROR"
 msgstr " ÎØÈÁÊÀ ÏÐÅÎÁÐÀÇÎÂÀÍÈß"
 
-#: fileio.c:4126
+#: fileio.c:4138
 msgid "[Device]"
 msgstr "[Óñòðîéñòâî]"
 
-#: fileio.c:4131
+#: fileio.c:4143
 msgid "[New]"
 msgstr "[Íîâûé]"
 
-#: fileio.c:4153
+#: fileio.c:4165
 msgid " [a]"
 msgstr " [a]"
 
-#: fileio.c:4153
+#: fileio.c:4165
 msgid " appended"
 msgstr " äîáàâëåíî"
 
-#: fileio.c:4155
+#: fileio.c:4167
 msgid " [w]"
 msgstr " [w]"
 
-#: fileio.c:4155
+#: fileio.c:4167
 msgid " written"
 msgstr " çàïèñàíî"
 
-#: fileio.c:4205
+#: fileio.c:4217
 msgid "E205: Patchmode: can't save original file"
 msgstr "E205: Ðåæèì çàïëàòêè: íåâîçìîæíî ñîõðàíåíèå èñõîäíîãî ôàéëà"
 
-#: fileio.c:4227
+#: fileio.c:4239
 msgid "E206: patchmode: can't touch empty original file"
 msgstr ""
 "E206: Ðåæèì çàïëàòêè: íåâîçìîæíî ñìåíèòü ïàðàìåòðû ïóñòîãî èñõîäíîãî ôàéëà"
 
-#: fileio.c:4242
+#: fileio.c:4254
 msgid "E207: Can't delete backup file"
 msgstr "E207: Íåâîçìîæíî óäàëèòü ðåçåðâíûé ôàéë"
 
-#: fileio.c:4306
+#: fileio.c:4318
 msgid ""
 "\n"
 "WARNING: Original file may be lost or damaged\n"
@@ -1839,96 +1839,96 @@ msgstr ""
 "\n"
 "ÏÐÅÄÓÏÐÅÆÄÅÍÈÅ: Èñõîäíûé ôàéë ìîæåò áûòü óòðà÷åí èëè ïîâðåæä¸í\n"
 
-#: fileio.c:4308
+#: fileio.c:4320
 msgid "don't quit the editor until the file is successfully written!"
 msgstr "íå âûõîäèòå èç ðåäàêòîðà, ïîêà ôàéë íå áóäåò óñïåøíî çàïèñàí!"
 
-#: fileio.c:4397
+#: fileio.c:4409
 msgid "[dos]"
 msgstr "[dos]"
 
-#: fileio.c:4397
+#: fileio.c:4409
 msgid "[dos format]"
 msgstr "[ôîðìàò dos]"
 
-#: fileio.c:4404
+#: fileio.c:4416
 msgid "[mac]"
 msgstr "[mac]"
 
-#: fileio.c:4404
+#: fileio.c:4416
 msgid "[mac format]"
 msgstr "[ôîðìàò mac]"
 
-#: fileio.c:4411
+#: fileio.c:4423
 msgid "[unix]"
 msgstr "[unix]"
 
-#: fileio.c:4411
+#: fileio.c:4423
 msgid "[unix format]"
 msgstr "[ôîðìàò unix]"
 
-#: fileio.c:4438
+#: fileio.c:4450
 msgid "1 line, "
 msgstr "1 ñòðîêà, "
 
-#: fileio.c:4440
+#: fileio.c:4452
 #, c-format
 msgid "%ld lines, "
 msgstr "ñòðîê: %ld, "
 
-#: fileio.c:4443
+#: fileio.c:4455
 msgid "1 character"
 msgstr "1 ñèìâîë"
 
-#: fileio.c:4445
+#: fileio.c:4457
 #, c-format
 msgid "%ld characters"
 msgstr "ñèìâîëîâ: %ld"
 
-#: fileio.c:4455
+#: fileio.c:4467
 msgid "[noeol]"
 msgstr "[noeol]"
 
-#: fileio.c:4455
+#: fileio.c:4467
 msgid "[Incomplete last line]"
 msgstr "[Íåçàâåðø¸ííàÿ ïîñëåäíÿÿ ñòðîêà]"
 
 #. don't overwrite messages here
 #. must give this prompt
 #. don't use emsg() here, don't want to flush the buffers
-#: fileio.c:4474
+#: fileio.c:4486
 msgid "WARNING: The file has been changed since reading it!!!"
 msgstr "ÏÐÅÄÓÏÐÅÆÄÅÍÈÅ: Ôàéë èçìåí¸í ñ ìîìåíòà ÷òåíèÿ!!!"
 
-#: fileio.c:4476
+#: fileio.c:4488
 msgid "Do you really want to write to it"
 msgstr "Ñåðü¸çíî õîòèòå çàïèñàòü â ýòîò ôàéë"
 
-#: fileio.c:5726
+#: fileio.c:5738
 #, c-format
 msgid "E208: Error writing to \"%s\""
 msgstr "E208: Îøèáêà çàïèñè â \"%s\""
 
-#: fileio.c:5733
+#: fileio.c:5745
 #, c-format
 msgid "E209: Error closing \"%s\""
 msgstr "E209: Îøèáêà çàêðûòèÿ \"%s\""
 
-#: fileio.c:5736
+#: fileio.c:5748
 #, c-format
 msgid "E210: Error reading \"%s\""
 msgstr "E210: Îøèáêà ÷òåíèÿ \"%s\""
 
-#: fileio.c:5970
+#: fileio.c:5982
 msgid "E246: FileChangedShell autocommand deleted buffer"
 msgstr "E246: Áóôåð óäàë¸í ïðè âûïîëíåíèè àâòîêîìàíäû FileChangedShell"
 
-#: fileio.c:5977
+#: fileio.c:5989
 #, c-format
 msgid "E211: Warning: File \"%s\" no longer available"
 msgstr "E211: Ïðåäóïðåæäåíèå: ôàéë \"%s\" áîëüøå íå äîñòóïåí"
 
-#: fileio.c:5991
+#: fileio.c:6003
 #, c-format
 msgid ""
 "W12: Warning: File \"%s\" has changed and the buffer was changed in Vim as "
@@ -1937,34 +1937,34 @@ msgstr ""
 "W12: Ïðåäóïðåæäåíèå: ôàéë \"%s\" è áóôåð Vim áûëè èçìåíåíû íåçàâèñèìî äðóã "
 "îò äðóãà"
 
-#: fileio.c:5994
+#: fileio.c:6006
 #, c-format
 msgid "W11: Warning: File \"%s\" has changed since editing started"
 msgstr ""
 "W11: Ïðåäóïðåæäåíèå: ôàéë \"%s\" áûë èçìåí¸í ïîñëå íà÷àëà ðåäàêòèðîâàíèÿ"
 
-#: fileio.c:5996
+#: fileio.c:6008
 #, c-format
 msgid "W16: Warning: Mode of file \"%s\" has changed since editing started"
 msgstr ""
 "W16: Ïðåäóïðåæäåíèå: ðåæèì äîñòóïà ê ôàéëó \"%s\" áûë èçìåí¸í ïîñëå íà÷àëà "
 "ðåäàêòèðîâàíèÿ"
 
-#: fileio.c:6006
+#: fileio.c:6018
 #, c-format
 msgid "W13: Warning: File \"%s\" has been created after editing started"
 msgstr ""
 "W13: Ïðåäóïðåæäåíèå: ôàéë \"%s\" áûë ñîçäàí ïîñëå íà÷àëà ðåäàêòèðîâàíèÿ"
 
-#: fileio.c:6019
+#: fileio.c:6031
 msgid "See \":help W11\" for more info."
 msgstr "Ñì. äîïîëíèòåëüíóþ èíôîðìàöèþ â \":help W11\"."
 
-#: fileio.c:6033
+#: fileio.c:6045
 msgid "Warning"
 msgstr "Ïðåäóïðåæäåíèå"
 
-#: fileio.c:6034
+#: fileio.c:6046
 msgid ""
 "&OK\n"
 "&Load File"
@@ -1972,43 +1972,43 @@ msgstr ""
 "&OK\n"
 "&Çàãðóçèòü ôàéë"
 
-#: fileio.c:6140
+#: fileio.c:6152
 #, c-format
 msgid "E462: Could not prepare for reloading \"%s\""
 msgstr "E462: Íåâîçìîæíî ïîäãîòîâèòüñÿ ê ïåðåçàãðóçêå \"%s\""
 
-#: fileio.c:6159
+#: fileio.c:6171
 #, c-format
 msgid "E321: Could not reload \"%s\""
 msgstr "E321: Íåâîçìîæíî âûïîëíèòü ïåðåçàãðóçêó \"%s\""
 
-#: fileio.c:6740
+#: fileio.c:6752
 msgid "--Deleted--"
 msgstr "--Óäàëåíî--"
 
 #. the group doesn't exist
-#: fileio.c:6900
+#: fileio.c:6912
 #, c-format
 msgid "E367: No such group: \"%s\""
 msgstr "E367: Ãðóïïà \"%s\" íå ñóùåñòâóåò"
 
-#: fileio.c:7026
+#: fileio.c:7038
 #, c-format
 msgid "E215: Illegal character after *: %s"
 msgstr "E215: Íåäîïóñòèìûå ñèìâîëû ïîñëå *: %s"
 
-#: fileio.c:7038
+#: fileio.c:7050
 #, c-format
 msgid "E216: No such event: %s"
 msgstr "E216: Íåñóùåñòâóþùåå ñîáûòèå: %s"
 
-#: fileio.c:7040
+#: fileio.c:7052
 #, c-format
 msgid "E216: No such group or event: %s"
 msgstr "E216: Íåñóùåñòâóþùàÿ ãðóïïà èëè ñîáûòèå: %s"
 
 #. Highlight title
-#: fileio.c:7198
+#: fileio.c:7210
 msgid ""
 "\n"
 "--- Auto-Commands ---"
@@ -2016,39 +2016,39 @@ msgstr ""
 "\n"
 "--- Àâòîêîìàíäû ---"
 
-#: fileio.c:7469
+#: fileio.c:7481
 msgid "E217: Can't execute autocommands for ALL events"
 msgstr "E217: Íåâîçìîæíî âûïîëíèòü àâòîêîìàíäû äëÿ ÂÑÅÕ ñîáûòèé"
 
-#: fileio.c:7492
+#: fileio.c:7504
 msgid "No matching autocommands"
 msgstr "Íåò ïîäõîäÿùèõ àâòîêîìàíä"
 
-#: fileio.c:7813
+#: fileio.c:7825
 msgid "E218: autocommand nesting too deep"
 msgstr "E218: ñëèøêîì ãëóáîêî âëîæåííûå àâòîêîìàíäû"
 
-#: fileio.c:8088
+#: fileio.c:8100
 #, c-format
 msgid "%s Auto commands for \"%s\""
 msgstr "%s Àâòîêîìàíäû äëÿ \"%s\""
 
-#: fileio.c:8096
+#: fileio.c:8108
 #, c-format
 msgid "Executing %s"
 msgstr "Âûïîëíåíèå %s"
 
 #. always scroll up, don't overwrite
-#: fileio.c:8164
+#: fileio.c:8176
 #, c-format
 msgid "autocommand %s"
 msgstr "àâòîêîìàíäà %s"
 
-#: fileio.c:8731
+#: fileio.c:8743
 msgid "E219: Missing {."
 msgstr "E219: Ïðîïóùåíà {."
 
-#: fileio.c:8733
+#: fileio.c:8745
 msgid "E220: Missing }."
 msgstr "E220: Ïðîïóùåíà }."
 
@@ -2070,39 +2070,39 @@ msgstr ""
 msgid "E222: Add to read buffer"
 msgstr "E222: Äîáàâëåíèå â áóôåð ÷òåíèÿ"
 
-#: getchar.c:2198
+#: getchar.c:2208
 msgid "E223: recursive mapping"
 msgstr "E223: ðåêóðñèâíàÿ ïðèâÿçêà"
 
-#: getchar.c:3077
+#: getchar.c:3087
 #, c-format
 msgid "E224: global abbreviation already exists for %s"
 msgstr "E224: óæå åñòü ãëîáàëüíîå ñîêðàùåíèå äëÿ %s"
 
-#: getchar.c:3080
+#: getchar.c:3090
 #, c-format
 msgid "E225: global mapping already exists for %s"
 msgstr "E225: óæå åñòü ãëîáàëüíàÿ ïðèâÿçêà äëÿ %s"
 
-#: getchar.c:3212
+#: getchar.c:3222
 #, c-format
 msgid "E226: abbreviation already exists for %s"
 msgstr "E226: óæå åñòü ñîêðàùåíèå äëÿ %s"
 
-#: getchar.c:3215
+#: getchar.c:3225
 #, c-format
 msgid "E227: mapping already exists for %s"
 msgstr "E227: óæå åñòü ïðèâÿçêà äëÿ %s"
 
-#: getchar.c:3279
+#: getchar.c:3289
 msgid "No abbreviation found"
 msgstr "Ñîêðàùåíèÿ íå íàéäåíû"
 
-#: getchar.c:3281
+#: getchar.c:3291
 msgid "No mapping found"
 msgstr "Ïðèâÿçêè íå íàéäåíû"
 
-#: getchar.c:4173
+#: getchar.c:4183
 msgid "E228: makemap: Illegal mode"
 msgstr "E228: makemap: íåäîïóñòèìûé ðåæèì"
 
@@ -2128,7 +2128,7 @@ msgstr "E231: 
 msgid "E599: Value of 'imactivatekey' is invalid"
 msgstr "E599: íåïðàâèëüíîå çíà÷åíèå îïöèè 'imactivatekey'"
 
-#: gui.c:4061
+#: gui.c:4064
 #, c-format
 msgid "E254: Cannot allocate color %s"
 msgstr "E254: Íåâîçìîæíî íàçíà÷èòü öâåò %s"
@@ -2170,7 +2170,7 @@ msgstr "
 msgid "Vim dialog"
 msgstr "Äèàëîãîâîå îêíî Vim"
 
-#: gui_beval.c:101 gui_w32.c:3829
+#: gui_beval.c:101 gui_w32.c:3978
 msgid "E232: Cannot create BalloonEval with both message and callback"
 msgstr ""
 "E232: \"Ïóçûðü\" äëÿ âû÷èñëåíèé, âêëþ÷àþùèé è ñîîáùåíèå, è îáðàòíûé âûçîâ, "
@@ -2180,7 +2180,7 @@ msgstr ""
 msgid "Vim dialog..."
 msgstr "Äèàëîãîâîå îêíî Vim..."
 
-#: gui_gtk.c:2060 message.c:2993
+#: gui_gtk.c:2060 message.c:2999
 msgid ""
 "&Yes\n"
 "&No\n"
@@ -2303,16 +2303,24 @@ msgstr ""
 "\n"
 "Îòïðàâêà ñîîáùåíèÿ äëÿ óíè÷òîæåíèÿ ïðîöåññà-ïîòîìêà.\n"
 
-#: gui_w32.c:829
+#: gui_w32.c:839
+msgid "E671: Cannot find window title \"%s\""
+msgstr "E671: Îêíî ñ çàãîëîâêîì \"%s\" íå îáíàðóæåíî"
+
+#: gui_w32.c:847
 #, c-format
 msgid "E243: Argument not supported: \"-%s\"; Use the OLE version."
 msgstr "E243: Ïàðàìåòð íå ïîääåðæèâàåòñÿ: \"-%s\"; èñïîëüçóéòå âåðñèþ OLE."
 
-#: gui_w48.c:2090
+#: gui_w32.c:1100
+msgid "E672: Unable to open window inside MDI application"
+msgstr "E672: Íåâîçìîæíî îòêðûòü îêíî âíóòðè ïðèëîæåíèÿ MDI"
+
+#: gui_w48.c:2163
 msgid "Find string (use '\\\\' to find  a '\\')"
 msgstr "Ïîèñê ñòðîêè (èñïîëüçóéòå '\\\\' äëÿ ïîèñêà '\\')"
 
-#: gui_w48.c:2115
+#: gui_w48.c:2188
 msgid "Find & Replace (use '\\\\' to find  a '\\')"
 msgstr "Ïîèñê è çàìåíà (èñïîëüçóéòå '\\\\' äëÿ ïîèñêà '\\')"
 
@@ -2353,6 +2361,7 @@ msgid "Font1: %s\n"
 msgstr "Font1: %s\n"
 
 #: gui_x11.c:2184
+#, c-format
 msgid "Font%ld width is not twice that of font0\n"
 msgstr "Øèðèíà øðèôòà font%ld äîëæíà áûòü âäâîå áîëüøå øèðèíû øðèôòà font0\n"
 
@@ -2933,47 +2942,47 @@ msgstr ""
 msgid "Invalid argument for"
 msgstr "Íåäîïóñòèìûå àðãóìåíòû äëÿ"
 
-#: main.c:466
+#: main.c:469
 msgid "This Vim was not compiled with the diff feature."
 msgstr ""
 "Äàííûé Vim áûë ñêîìïèëèðîâàí ñ âûêëþ÷åííîé îñîáåííîñòüþ ïðîñìîòðà îòëè÷èé"
 
-#: main.c:932
+#: main.c:935
 msgid "Attempt to open script file again: \""
 msgstr "Ïîïûòêà ïîâòîðíîãî îòêðûòèÿ ôàéëà ñöåíàðèÿ: \""
 
-#: main.c:941
+#: main.c:944
 msgid "Cannot open for reading: \""
 msgstr "Íåâîçìîæíî îòêðûòü äëÿ ÷òåíèÿ: \""
 
-#: main.c:985
+#: main.c:988
 msgid "Cannot open for script output: \""
 msgstr "Íåâîçìîæíî îòêðûòü äëÿ âûâîäà ñöåíàðèÿ: \""
 
-#: main.c:1132
+#: main.c:1135
 #, c-format
 msgid "%d files to edit\n"
 msgstr "Ôàéëîâ äëÿ ðåäàêòèðîâàíèÿ: %d\n"
 
-#: main.c:1233
+#: main.c:1236
 msgid "Vim: Warning: Output is not to a terminal\n"
 msgstr "Vim: Ïðåäóïðåæäåíèå: Âûâîä îñóùåñòâëÿåòñÿ íå íà òåðìèíàë\n"
 
-#: main.c:1235
+#: main.c:1238
 msgid "Vim: Warning: Input is not from a terminal\n"
 msgstr "Vim: Ïðåäóïðåæäåíèå: Ââîä ïðîèñõîäèò íå ñ òåðìèíàëà\n"
 
 #. just in case..
-#: main.c:1297
+#: main.c:1306
 msgid "pre-vimrc command line"
 msgstr "êîìàíäíàÿ ñòðîêà ïåðåä âûïîëíåíèåì vimrc"
 
-#: main.c:1338
+#: main.c:1347
 #, c-format
 msgid "E282: Cannot read from \"%s\""
 msgstr "E282: Íåâîçìîæíî âûïîëíèòü ÷òåíèå èç \"%s\""
 
-#: main.c:2411
+#: main.c:2420
 msgid ""
 "\n"
 "More info with: \"vim -h\"\n"
@@ -2981,23 +2990,23 @@ msgstr ""
 "\n"
 "Äîïîëíèòåëüíàÿ èíôîðìàöèÿ: \"vim -h\"\n"
 
-#: main.c:2444
+#: main.c:2453
 msgid "[file ..]       edit specified file(s)"
 msgstr "[ôàéë ..] ðåäàêòèðîâàíèå óêàçàííûõ ôàéëîâ"
 
-#: main.c:2445
+#: main.c:2454
 msgid "-               read text from stdin"
 msgstr "-                ÷òåíèå òåêñòà èç ïîòîêà ââîäà stdin"
 
-#: main.c:2446
+#: main.c:2455
 msgid "-t tag          edit file where tag is defined"
 msgstr "-t ìåòêà         ðåäàêòèðîâàíèå ôàéëà ñ óêàçàííîé ìåòêîé"
 
-#: main.c:2448
+#: main.c:2457
 msgid "-q [errorfile]  edit file with first error"
 msgstr "-q [ôàéë îøèáîê] ðåäàêòèðîâàíèå ôàéëà ñ ïåðâîé îøèáêîé"
 
-#: main.c:2457
+#: main.c:2466
 msgid ""
 "\n"
 "\n"
@@ -3007,11 +3016,11 @@ msgstr ""
 "\n"
 "Èñïîëüçîâàíèå:"
 
-#: main.c:2460
+#: main.c:2469
 msgid " vim [arguments] "
 msgstr " vim [àðãóìåíòû] "
 
-#: main.c:2464
+#: main.c:2473
 msgid ""
 "\n"
 "   or:"
@@ -3019,7 +3028,7 @@ msgstr ""
 "\n"
 "   èëè:"
 
-#: main.c:2467
+#: main.c:2476
 msgid ""
 "\n"
 "\n"
@@ -3029,244 +3038,244 @@ msgstr ""
 "\n"
 "Àðãóìåíòû:\n"
 
-#: main.c:2468
+#: main.c:2477
 msgid "--\t\t\tOnly file names after this"
 msgstr "--\t\t\tÄàëåå óêàçûâàþòñÿ òîëüêî èìåíà ôàéëîâ"
 
-#: main.c:2470
+#: main.c:2479
 msgid "--literal\t\tDon't expand wildcards"
 msgstr "--literal\t\tÍå âûïîëíÿòü ïîäñòàíîâêó ïî ìàñêå"
 
-#: main.c:2473
+#: main.c:2482
 msgid "-register\t\tRegister this gvim for OLE"
 msgstr "-register\t\tÇàðåãèñòðèðîâàòü ýòîò gvim äëÿ OLE"
 
-#: main.c:2474
+#: main.c:2483
 msgid "-unregister\t\tUnregister gvim for OLE"
 msgstr "-unregister\t\tÎòêëþ÷èòü ðåãèñòðàöèþ äàííîãî gvim äëÿ OLE"
 
-#: main.c:2477
+#: main.c:2486
 msgid "-g\t\t\tRun using GUI (like \"gvim\")"
 msgstr "-g\t\t\tÇàïóñòèòü ñ ãðàôè÷åñêèì èíòåðôåéñîì (êàê \"gvim\")"
 
-#: main.c:2478
+#: main.c:2487
 msgid "-f  or  --nofork\tForeground: Don't fork when starting GUI"
 msgstr "-f  èëè --nofork\t àêòèâíîé çàäà÷å: Íå âûïîëíÿòü fork ïðè çàïóñêå GUI"
 
-#: main.c:2480
+#: main.c:2489
 msgid "-v\t\t\tVi mode (like \"vi\")"
 msgstr "-v\t\t\tÐåæèì Vi (êàê \"vi\")"
 
-#: main.c:2481
+#: main.c:2490
 msgid "-e\t\t\tEx mode (like \"ex\")"
 msgstr "-e\t\t\tÐåæèì Ex (êàê \"ex\")"
 
-#: main.c:2482
+#: main.c:2491
 msgid "-s\t\t\tSilent (batch) mode (only for \"ex\")"
 msgstr "-s\t\t\tÒèõèé (ïàêåòíûé) ðåæèì (òîëüêî äëÿ \"ex\")"
 
-#: main.c:2484
+#: main.c:2493
 msgid "-d\t\t\tDiff mode (like \"vimdiff\")"
 msgstr "-d\t\t\tÐåæèì îòëè÷èé (êàê \"vimdiff\")"
 
-#: main.c:2486
+#: main.c:2495
 msgid "-y\t\t\tEasy mode (like \"evim\", modeless)"
 msgstr "-y\t\t\tÏðîñòîé ðåæèì (êàê \"evim\", áåçðåæèìíûé)"
 
-#: main.c:2487
+#: main.c:2496
 msgid "-R\t\t\tReadonly mode (like \"view\")"
 msgstr "-R\t\t\tÒîëüêî äëÿ ÷òåíèÿ (êàê \"view\")"
 
-#: main.c:2488
+#: main.c:2497
 msgid "-Z\t\t\tRestricted mode (like \"rvim\")"
 msgstr "-Z\t\t\tÎãðàíè÷åííûé ðåæèì (êàê \"rvim\")"
 
-#: main.c:2489
+#: main.c:2498
 msgid "-m\t\t\tModifications (writing files) not allowed"
 msgstr "-m\t\t\tÁåç âîçìîæíîñòè ñîõðàíåíèÿ èçìåíåíèé (çàïèñè ôàéëîâ)"
 
-#: main.c:2490
+#: main.c:2499
 msgid "-M\t\t\tModifications in text not allowed"
 msgstr "-M\t\t\tÁåç âîçìîæíîñòè âíåñåíèÿ èçìåíåíèé â òåêñò"
 
-#: main.c:2491
+#: main.c:2500
 msgid "-b\t\t\tBinary mode"
 msgstr "-b\t\t\tÁèíàðíûé ðåæèì"
 
-#: main.c:2493
+#: main.c:2502
 msgid "-l\t\t\tLisp mode"
 msgstr "-l\t\t\tÐåæèì Lisp"
 
-#: main.c:2495
+#: main.c:2504
 msgid "-C\t\t\tCompatible with Vi: 'compatible'"
 msgstr "-C\t\t\tÐåæèì ñîâìåñòèìîñòè ñ Vi: 'compatible'"
 
-#: main.c:2496
+#: main.c:2505
 msgid "-N\t\t\tNot fully Vi compatible: 'nocompatible'"
 msgstr "-N\t\t\tÐåæèì íåïîëíîé ñîâìåñòèìîñòè ñ Vi: 'nocompatible'"
 
-#: main.c:2497
+#: main.c:2506
 msgid "-V[N]\t\tVerbose level"
 msgstr "-V[N]\t\tÓðîâåíü ïîäðîáíîñòè ñîîáùåíèé"
 
-#: main.c:2498
+#: main.c:2507
 msgid "-D\t\t\tDebugging mode"
 msgstr "-D\t\t\tÐåæèì îòëàäêè"
 
-#: main.c:2499
+#: main.c:2508
 msgid "-n\t\t\tNo swap file, use memory only"
 msgstr "-n\t\t\tÁåç ñâîï-ôàéëà, èñïîëüçóåòñÿ òîëüêî ïàìÿòü"
 
-#: main.c:2500
+#: main.c:2509
 msgid "-r\t\t\tList swap files and exit"
 msgstr "-r\t\t\tÂûâåñòè ñïèñîê ñâîï-ôàéëîâ è çàâåðøèòü ðàáîòó"
 
-#: main.c:2501
+#: main.c:2510
 msgid "-r (with file name)\tRecover crashed session"
 msgstr "-r (ñ èìåíåì ôàéëà)\tÂîññòàíîâèòü àâàðèéíî çàâåðø¸ííûé ñåàíñ"
 
-#: main.c:2502
+#: main.c:2511
 msgid "-L\t\t\tSame as -r"
 msgstr "-L\t\t\tÒî æå, ÷òî è -r"
 
-#: main.c:2504
+#: main.c:2513
 msgid "-f\t\t\tDon't use newcli to open window"
 msgstr "-f\t\t\tÍå èñïîëüçîâàòü newcli äëÿ îòêðûòèÿ îêíà"
 
-#: main.c:2505
+#: main.c:2514
 msgid "-dev <device>\t\tUse <device> for I/O"
 msgstr "-dev <óñòðîéñòâî>\t\tÈñïîëüçîâàòü äëÿ I/O óêàçàííîå <óñòðîéñòâî>"
 
-#: main.c:2508
+#: main.c:2517
 msgid "-A\t\t\tstart in Arabic mode"
 msgstr "-A\t\t\tÇàïóñê â Àðàáñêîì ðåæèìå"
 
-#: main.c:2511
+#: main.c:2520
 msgid "-H\t\t\tStart in Hebrew mode"
 msgstr "-H\t\t\tÇàïóñê â ðåæèìå \"Èâðèò\""
 
-#: main.c:2514
+#: main.c:2523
 msgid "-F\t\t\tStart in Farsi mode"
 msgstr "-F\t\t\tÇàïóñê â ðåæèìå \"Ôàðñè\""
 
-#: main.c:2516
+#: main.c:2525
 msgid "-T <terminal>\tSet terminal type to <terminal>"
 msgstr "-T <òåðìèíàë>\tÍàçíà÷èòü óêàçàííûé òèï <òåðìèíàëà>"
 
-#: main.c:2517
+#: main.c:2526
 msgid "-u <vimrc>\t\tUse <vimrc> instead of any .vimrc"
 msgstr "-u <vimrc>\t\tÈñïîëüçîâàòü <vimrc> âìåñòî ëþáûõ ôàéëîâ .vimrc"
 
-#: main.c:2519
+#: main.c:2528
 msgid "-U <gvimrc>\t\tUse <gvimrc> instead of any .gvimrc"
 msgstr "-U <gvimrc>\t\tÈñïîëüçîâàòü <gvimrc> âìåñòî ëþáûõ ôàéëîâ .gvimrc"
 
-#: main.c:2521
+#: main.c:2530
 msgid "--noplugin\t\tDon't load plugin scripts"
 msgstr "--noplugin\t\tÍå çàãðóæàòü ñöåíàðèè ìîäóëåé"
 
-#: main.c:2522
+#: main.c:2531
 msgid "-o[N]\t\tOpen N windows (default: one for each file)"
 msgstr "-o[N]\t\tÎòêðûòü N îêîí (ïî óìîë÷àíèþ: ïî îäíîìó íà êàæäûé ôàéë)"
 
-#: main.c:2523
+#: main.c:2532
 msgid "-O[N]\t\tLike -o but split vertically"
 msgstr "-O[N]\t\tÒî æå, ÷òî è -o, íî ñ âåðòèêàëüíûì ðàçäåëåíèåì îêîí"
 
-#: main.c:2524
+#: main.c:2533
 msgid "+\t\t\tStart at end of file"
 msgstr "+\t\t\tÍà÷àòü ðåäàêòèðîâàíèå â êîíöå ôàéëà"
 
-#: main.c:2525
+#: main.c:2534
 msgid "+<lnum>\t\tStart at line <lnum>"
 msgstr "+<lnum>\t\tÍà÷àòü ðåäàêòèðîâàíèå â ñòðîêå ñ íîìåðîì <lnum>"
 
-#: main.c:2527
+#: main.c:2536
 msgid "--cmd <command>\tExecute <command> before loading any vimrc file"
 msgstr "--cmd <êîìàíäà>\tÂûïîëíèòü <êîìàíäó> ïåðåä çàãðóçêîé ôàéëà vimrc"
 
-#: main.c:2529
+#: main.c:2538
 msgid "-c <command>\t\tExecute <command> after loading the first file"
 msgstr "-c <êîìàíäà>\t\tÂûïîëíèòü <êîìàíäó> ïîñëå çàãðóçêè ïåðâîãî ôàéëà"
 
-#: main.c:2530
+#: main.c:2539
 msgid "-S <session>\t\tSource file <session> after loading the first file"
 msgstr "-S <ñåàíñ>\t\tÏðî÷èòàòü ñöåíàðèé <ñåàíñà> ïîñëå çàãðóçêè ïåðâîãî ôàéëà"
 
-#: main.c:2531
+#: main.c:2540
 msgid "-s <scriptin>\tRead Normal mode commands from file <scriptin>"
 msgstr "-s <ñöåíàðèé>\tÏðî÷èòàòü êîìàíäû Îáû÷íîãî ðåæèìà èç ôàéëà <ñöåíàðèÿ>"
 
-#: main.c:2532
+#: main.c:2541
 msgid "-w <scriptout>\tAppend all typed commands to file <scriptout>"
 msgstr "-w <ñöåíàðèé>\tÄîáàâëÿòü âñå ââåä¸ííûå êîìàíäû â ôàéë <ñöåíàðèÿ>"
 
-#: main.c:2533
+#: main.c:2542
 msgid "-W <scriptout>\tWrite all typed commands to file <scriptout>"
 msgstr "-W <ñöåíàðèé>\tÇàïèñàòü âñå ââåä¸ííûå êîìàíäû â ôàéë <ñöåíàðèÿ>"
 
-#: main.c:2535
+#: main.c:2544
 msgid "-x\t\t\tEdit encrypted files"
 msgstr "-x\t\t\tÐåäàêòèðîâàíèå çàøèôðîâàííûõ ôàéëîâ"
 
-#: main.c:2539
+#: main.c:2548
 msgid "-display <display>\tConnect vim to this particular X-server"
 msgstr "-display <ýêðàí>\tÏîäñîåäèíèòü vim ê óêàçàííîìó ñåðâåðó X"
 
-#: main.c:2541
+#: main.c:2550
 msgid "-X\t\t\tDo not connect to X server"
 msgstr "-X\t\t\tÍå âûïîëíÿòü ñîåäèíåíèå ñ ñåðâåðîì X"
 
-#: main.c:2544
+#: main.c:2553
 msgid "--remote <files>\tEdit <files> in a Vim server if possible"
 msgstr "--remote <ôàéëû>\tÏî âîçìîæíîñòè ðåäàêòèðîâàòü <ôàéëû> íà ñåðâåðå Vim"
 
-#: main.c:2545
+#: main.c:2554
 msgid "--remote-silent <files>  Same, don't complain if there is no server"
 msgstr "--remote-silent <ôàéëû>  Òî æå, íî áåç æàëîá íà îòñóòñòâèå ñåðâåðà"
 
-#: main.c:2546
+#: main.c:2555
 msgid ""
 "--remote-wait <files>  As --remote but wait for files to have been edited"
 msgstr ""
 "--remote-wait <ôàéëû>  Òî æå, ÷òî è --remote, íî ñ îæèäàíèåì çàâåðøåíèÿ"
 
-#: main.c:2547
+#: main.c:2556
 msgid ""
 "--remote-wait-silent <files>  Same, don't complain if there is no server"
 msgstr ""
 "--remote-wait-silent <ôàéëû>  Òî æå, íî áåç æàëîá íà îòñóòñòâèå ñåðâåðà"
 
-#: main.c:2548
+#: main.c:2557
 msgid "--remote-send <keys>\tSend <keys> to a Vim server and exit"
 msgstr "--remote-send <êíîïêè>\tÎòïðàâèòü <êíîïêè> íà ñåðâåð Vim è âûéòè"
 
-#: main.c:2549
+#: main.c:2558
 msgid "--remote-expr <expr>\tEvaluate <expr> in a Vim server and print result"
 msgstr "--remote-expr <âûðàæ>\tÂû÷èñëèòü <âûðàæ> íà ñåðâåðå Vim è íàïå÷àòàòü"
 
-#: main.c:2550
+#: main.c:2559
 msgid "--serverlist\t\tList available Vim server names and exit"
 msgstr "--serverlist\t\tÏîêàçàòü ñïèñîê èì¸í ñåðâåðîâ Vim è çàâåðøèòü ðàáîòó"
 
-#: main.c:2551
+#: main.c:2560
 msgid "--servername <name>\tSend to/become the Vim server <name>"
 msgstr ""
 "--servername <èìÿ>\tÎòïðàâèòü íà/ñòàòü ñåðâåðîì Vim ñ óêàçàííûì <èìåíåì>"
 
-#: main.c:2554
+#: main.c:2563
 msgid "-i <viminfo>\t\tUse <viminfo> instead of .viminfo"
 msgstr "-i <viminfo>\t\tÈñïîëüçîâàòü âìåñòî .viminfo ôàéë <viminfo>"
 
-#: main.c:2556
+#: main.c:2565
 msgid "-h  or  --help\tPrint Help (this message) and exit"
 msgstr "-h èëè --help\tÂûâåñòè ñïðàâêó (ýòî ñîîáùåíèå) è çàâåðøèòü ðàáîòó"
 
-#: main.c:2557
+#: main.c:2566
 msgid "--version\t\tPrint version information and exit"
 msgstr "--version\t\tÂûâåñòè èíôîðìàöèþ î âåðñèè Vim è çàâåðøèòü ðàáîòó"
 
-#: main.c:2561
+#: main.c:2570
 msgid ""
 "\n"
 "Arguments recognised by gvim (Motif version):\n"
@@ -3274,7 +3283,7 @@ msgstr ""
 "\n"
 "Àðãóìåíòû äëÿ gvim (âåðñèÿ Motif):\n"
 
-#: main.c:2565
+#: main.c:2574
 msgid ""
 "\n"
 "Arguments recognised by gvim (neXtaw version):\n"
@@ -3282,7 +3291,7 @@ msgstr ""
 "\n"
 "Àðãóìåíòû äëÿ gvim (âåðñèÿ neXtaw):\n"
 
-#: main.c:2567
+#: main.c:2576
 msgid ""
 "\n"
 "Arguments recognised by gvim (Athena version):\n"
@@ -3290,75 +3299,75 @@ msgstr ""
 "\n"
 "Àðãóìåíòû äëÿ gvim (âåðñèÿ Athena):\n"
 
-#: main.c:2571
+#: main.c:2580
 msgid "-display <display>\tRun vim on <display>"
 msgstr "-display <äèñïëåé>\tÇàïóñòèòü vim íà óêàçàííîì <äèñïëåå>"
 
-#: main.c:2572
+#: main.c:2581
 msgid "-iconic\t\tStart vim iconified"
 msgstr "-iconic\t\tÇàïóñòèòü vim â ñâ¸ðíóòîì âèäå"
 
-#: main.c:2574
+#: main.c:2583
 msgid "-name <name>\t\tUse resource as if vim was <name>"
 msgstr "-name <èìÿ>\t\tÈñïîëüçîâàòü ðåñóðñ, êàê åñëè áû vim áûë <èìåíåì>"
 
-#: main.c:2575
+#: main.c:2584
 msgid "\t\t\t  (Unimplemented)\n"
 msgstr "\t\t\t  (Íå ðåàëèçîâàíî)\n"
 
-#: main.c:2577
+#: main.c:2586
 msgid "-background <color>\tUse <color> for the background (also: -bg)"
 msgstr ""
 "-background <öâåò>\tÈñïîëüçîâàòü óêàçàííûé <öâåò> äëÿ ôîíà (òàêæå: -bg)"
 
-#: main.c:2578
+#: main.c:2587
 msgid "-foreground <color>\tUse <color> for normal text (also: -fg)"
 msgstr ""
 "-foreground <öâåò>\tÈñïîëüçîâàòü <öâåò> äëÿ îáû÷íîãî òåêñòà (òàêæå: -fg)"
 
-#: main.c:2579 main.c:2599
+#: main.c:2588 main.c:2608
 msgid "-font <font>\t\tUse <font> for normal text (also: -fn)"
 msgstr "-font <øðèôò>\t\tÈñïîëüçîâàòü <øðèôò> äëÿ îáû÷íîãî òåêñòà (òàêæå: -fn)"
 
-#: main.c:2580
+#: main.c:2589
 msgid "-boldfont <font>\tUse <font> for bold text"
 msgstr "-boldfont <øðèôò>\tÈñïîëüçîâàòü <øðèôò> äëÿ æèðíîãî òåêñòà"
 
-#: main.c:2581
+#: main.c:2590
 msgid "-italicfont <font>\tUse <font> for italic text"
 msgstr "-italicfont <øðèôò>\tÈñïîëüçîâàòü <øðèôò> äëÿ íàêëîííîãî òåêñòà"
 
-#: main.c:2582 main.c:2600
+#: main.c:2591 main.c:2609
 msgid "-geometry <geom>\tUse <geom> for initial geometry (also: -geom)"
 msgstr ""
 "-geometry <ãåîìåòðèÿ>\tÈñïîëüçîâàòü íà÷àëüíóþ <ãåîìåòðèþ> (òàêæå: -geom)"
 
-#: main.c:2583
+#: main.c:2592
 msgid "-borderwidth <width>\tUse a border width of <width> (also: -bw)"
 msgstr "-borderwidth <øèðèíà>\tÈñïîëüçîâàòü <øèðèíó> áîðäþðà (òàêæå: -bw)"
 
-#: main.c:2584
+#: main.c:2593
 msgid "-scrollbarwidth <width>  Use a scrollbar width of <width> (also: -sw)"
 msgstr ""
 "-scrollbarwidth <øèðèíà> Èñïîëüçîâàòü øèðèíó ïîëîñû ïðîêðóòêè (òàêæå: -sw)"
 
-#: main.c:2586
+#: main.c:2595
 msgid "-menuheight <height>\tUse a menu bar height of <height> (also: -mh)"
 msgstr "-menuheight <âûñîòà>\tÈñïîëüçîâàòü <âûñîòó> ìåíþ (òàêæå: -mh)"
 
-#: main.c:2588 main.c:2601
+#: main.c:2597 main.c:2610
 msgid "-reverse\t\tUse reverse video (also: -rv)"
 msgstr "-reverse\t\tÈñïîëüçîâàòü èíâåðñíûé âèäåîðåæèì (òàêæå: -rv)"
 
-#: main.c:2589
+#: main.c:2598
 msgid "+reverse\t\tDon't use reverse video (also: +rv)"
 msgstr "+reverse\t\tÍå èñïîëüçîâàòü èíâåðñíûé âèäåîðåæèì (òàêæå: +rv)"
 
-#: main.c:2590
+#: main.c:2599
 msgid "-xrm <resource>\tSet the specified resource"
 msgstr "-xrm <ðåñóðñ>\tÓñòàíîâèòü óêàçàííûé <ðåñóðñ>"
 
-#: main.c:2593
+#: main.c:2602
 msgid ""
 "\n"
 "Arguments recognised by gvim (RISC OS version):\n"
@@ -3366,15 +3375,15 @@ msgstr ""
 "\n"
 "Àðãóìåíòû äëÿ gvim (âåðñèÿ RISC OS):\n"
 
-#: main.c:2594
+#: main.c:2603
 msgid "--columns <number>\tInitial width of window in columns"
 msgstr "--columns <÷èñëî>\tÏåðâîíà÷àëüíàÿ øèðèíà îêíà â êîëîíêàõ"
 
-#: main.c:2595
+#: main.c:2604
 msgid "--rows <number>\tInitial height of window in rows"
 msgstr "--rows <÷èñëî>\tÏåðâîíà÷àëüíàÿ âûñîòà îêíà â ñòðîêàõ"
 
-#: main.c:2598
+#: main.c:2607
 msgid ""
 "\n"
 "Arguments recognised by gvim (GTK+ version):\n"
@@ -3382,48 +3391,48 @@ msgstr ""
 "\n"
 "Àðãóìåíòû äëÿ gvim (âåðñèÿ GTK+):\n"
 
-#: main.c:2602
+#: main.c:2611
 msgid "-display <display>\tRun vim on <display> (also: --display)"
 msgstr ""
 "-display <äèñïëåé>\tÇàïóñòèòü vim íà óêàçàííîì <äèñïëåå> (òàêæå: --display)"
 
-#: main.c:2604
+#: main.c:2613
 msgid "--role <role>\tSet a unique role to identify the main window"
 msgstr ""
 "--role <ðîëü>\tÓñòàíîâèòü óíèêàëüíóþ <ðîëü> äëÿ èäåíòèôèêàöèè ãëàâíîãî îêíà"
 
-#: main.c:2606
+#: main.c:2615
 msgid "--socketid <xid>\tOpen Vim inside another GTK widget"
 msgstr "--socketid <xid>\tÎòêðûòü Vim âíóòðè äðóãîãî êîìïîíåíòà GTK"
 
-#: main.c:2609
+#: main.c:2618
 msgid "-P <parent title>\tOpen Vim inside parent application"
 msgstr "-P <çàãîëîâîê ðîäèòåëÿ>\tÎòêðûòü Vim â ðîäèòåëüñêîì ïðèëîæåíèè"
 
-#: main.c:2847
+#: main.c:2856
 msgid "No display"
 msgstr "Íåò äèñïëåÿ"
 
 #. Failed to send, abort.
-#: main.c:2862
+#: main.c:2871
 msgid ": Send failed.\n"
 msgstr ": Îòïðàâêà íå óäàëàñü.\n"
 
 #. Let vim start normally.
-#: main.c:2868
+#: main.c:2877
 msgid ": Send failed. Trying to execute locally\n"
 msgstr ": Îòïðàâêà íå óäàëàñü. Ïîïûòêà ìåñòíîãî âûïîëíåíèÿ\n"
 
-#: main.c:2906 main.c:2927
+#: main.c:2915 main.c:2936
 #, c-format
 msgid "%d of %d edited"
 msgstr "îòðåäàêòèðîâàíî %d èç %d"
 
-#: main.c:2949
+#: main.c:2958
 msgid "No display: Send expression failed.\n"
 msgstr "Íåò äèñïëåÿ: îòïðàâêà âûðàæåíèÿ íå óäàëàñü.\n"
 
-#: main.c:2961
+#: main.c:2970
 msgid ": Send expression failed.\n"
 msgstr ": Îòïðàâêà âûðàæåíèÿ íå óäàëàñü.\n"
 
@@ -3543,23 +3552,23 @@ msgstr "E292: 
 msgid "E293: block was not locked"
 msgstr "E293: áëîê íå çàáëîêèðîâàí"
 
-#: memfile.c:1005
+#: memfile.c:1010
 msgid "E294: Seek error in swap file read"
 msgstr "E294: Îøèáêà ïîèñêà ïðè ÷òåíèè ñâîï-ôàéëà"
 
-#: memfile.c:1010
+#: memfile.c:1015
 msgid "E295: Read error in swap file"
 msgstr "E295: Îøèáêà ÷òåíèÿ ñâîï-ôàéëà"
 
-#: memfile.c:1062
+#: memfile.c:1067
 msgid "E296: Seek error in swap file write"
 msgstr "E296: Îøèáêà ïîèñêà ïðè çàïèñè ñâîï-ôàéëà"
 
-#: memfile.c:1080
+#: memfile.c:1085
 msgid "E297: Write error in swap file"
 msgstr "E297: Îøèáêà ïðè çàïèñè ñâîï-ôàéëà"
 
-#: memfile.c:1277
+#: memfile.c:1282
 msgid "E300: Swap file already exists (symlink attack?)"
 msgstr ""
 "E300: Ñâîï-ôàéë óæå ñóùåñòâóåò (àòàêà ñ èñïîëüçîâàíèåì ñèìâîëüíîé ññûëêè?)"
@@ -3577,44 +3586,44 @@ msgid "E298: Didn't get block nr 2?"
 msgstr "E298: Íå ïîëó÷åí áëîê íîìåð 2?"
 
 #. could not (re)open the swap file, what can we do????
-#: memline.c:443
+#: memline.c:444
 msgid "E301: Oops, lost the swap file!!!"
 msgstr "E301: Îé, ïîòåðÿëñÿ ñâîï-ôàéë!!!"
 
-#: memline.c:448
+#: memline.c:449
 msgid "E302: Could not rename swap file"
 msgstr "E302: Íåâîçìîæíî ïåðåèìåíîâàòü ñâîï-ôàéë"
 
-#: memline.c:518
+#: memline.c:519
 #, c-format
 msgid "E303: Unable to open swap file for \"%s\", recovery impossible"
 msgstr ""
 "E303: Íå óäàëîñü îòêðûòü ñâîï-ôàéë äëÿ \"%s\", âîññòàíîâëåíèå íåâîçìîæíî"
 
-#: memline.c:617
+#: memline.c:618
 msgid "E304: ml_timestamp: Didn't get block 0??"
 msgstr "E304: ml_timestamp: Íå ïîëó÷åí áëîê 0??"
 
-#: memline.c:757
+#: memline.c:758
 #, c-format
 msgid "E305: No swap file found for %s"
 msgstr "E305: Ñâîï-ôàéë äëÿ %s íå íàéäåí"
 
-#: memline.c:767
+#: memline.c:768
 msgid "Enter number of swap file to use (0 to quit): "
 msgstr ""
 "Ââåäèòå íîìåð ñâîï-ôàéëà, êîòîðûé ñëåäóåò èñïîëüçîâàòü (0 äëÿ âûõîäà): "
 
-#: memline.c:812
+#: memline.c:813
 #, c-format
 msgid "E306: Cannot open %s"
 msgstr "E306: Íå ìîãó îòêðûòü %s"
 
-#: memline.c:834
+#: memline.c:835
 msgid "Unable to read block 0 from "
 msgstr "Íåâîçìîæíî ïðî÷èòàòü áëîê 0 èç "
 
-#: memline.c:837
+#: memline.c:838
 msgid ""
 "\n"
 "Maybe no changes were made or Vim did not update the swap file."
@@ -3622,28 +3631,28 @@ msgstr ""
 "\n"
 "Íåò èçìåíåíèé, èëè Vim íå ñìîã îáíîâèòü ñâîï-ôàéë"
 
-#: memline.c:847 memline.c:864
+#: memline.c:848 memline.c:865
 msgid " cannot be used with this version of Vim.\n"
 msgstr " íåëüçÿ èñïîëüçîâàòü â äàííîé âåðñèè Vim.\n"
 
-#: memline.c:849
+#: memline.c:850
 msgid "Use Vim version 3.0.\n"
 msgstr "Èñïîëüçóéòå Vim âåðñèè 3.0.\n"
 
-#: memline.c:855
+#: memline.c:856
 #, c-format
 msgid "E307: %s does not look like a Vim swap file"
 msgstr "E307: %s íå ÿâëÿåòñÿ ñâîï-ôàéëîì Vim"
 
-#: memline.c:868
+#: memline.c:869
 msgid " cannot be used on this computer.\n"
 msgstr " íåëüçÿ èñïîëüçîâàòü íà ýòîì êîìïüþòåðå.\n"
 
-#: memline.c:870
+#: memline.c:871
 msgid "The file was created on "
 msgstr "Ôàéë áûë ñîçäàí "
 
-#: memline.c:874
+#: memline.c:875
 msgid ""
 ",\n"
 "or the file has been damaged."
@@ -3651,82 +3660,82 @@ msgstr ""
 ",\n"
 "ëèáî ôàéë áûë ïîâðåæä¸í."
 
-#: memline.c:903
+#: memline.c:904
 #, c-format
 msgid "Using swap file \"%s\""
 msgstr "Èñïîëüçóåòñÿ ñâîï-ôàéë \"%s\""
 
-#: memline.c:909
+#: memline.c:910
 #, c-format
 msgid "Original file \"%s\""
 msgstr "Èñõîäíûé ôàéë \"%s\""
 
-#: memline.c:922
+#: memline.c:923
 msgid "E308: Warning: Original file may have been changed"
 msgstr "E308: Ïðåäóïðåæäåíèå: èñõîäíûé ôàéë ìîã áûòü èçìåí¸í"
 
-#: memline.c:975
+#: memline.c:976
 #, c-format
 msgid "E309: Unable to read block 1 from %s"
 msgstr "E309: Íåâîçìîæíî ïðî÷èòàòü áëîê 1 èç %s"
 
-#: memline.c:979
+#: memline.c:980
 msgid "???MANY LINES MISSING"
 msgstr "???ÎÒÑÓÒÑÒÂÓÅÒ ÌÍÎÃÎ ÑÒÐÎÊ"
 
-#: memline.c:995
+#: memline.c:996
 msgid "???LINE COUNT WRONG"
 msgstr "???ÍÅÏÐÀÂÈËÜÍÎÅ ÇÍÀ×ÅÍÈÅ Ñ×ÅÒ×ÈÊÀ ÑÒÐÎÊ"
 
-#: memline.c:1002
+#: memline.c:1003
 msgid "???EMPTY BLOCK"
 msgstr "???ÏÓÑÒÎÉ ÁËÎÊ"
 
-#: memline.c:1028
+#: memline.c:1029
 msgid "???LINES MISSING"
 msgstr "???ÎÒÑÓÒÑÒÂÓÞÒ ÑÒÐÎÊÈ"
 
-#: memline.c:1060
+#: memline.c:1061
 #, c-format
 msgid "E310: Block 1 ID wrong (%s not a .swp file?)"
 msgstr "E310: íåïðàâèëüíûé áëîê 1 ID (%s íå ÿâëÿåòñÿ ôàéëîì .swp?)"
 
-#: memline.c:1065
+#: memline.c:1066
 msgid "???BLOCK MISSING"
 msgstr "???ÏÐÎÏÓÙÅÍ ÁËÎÊ"
 
-#: memline.c:1081
+#: memline.c:1082
 msgid "??? from here until ???END lines may be messed up"
 msgstr "???ñòðîêè ìîãóò áûòü èñïîð÷åíû îòñþäà äî ???ÊÎÍÖÀ"
 
-#: memline.c:1097
+#: memline.c:1098
 msgid "??? from here until ???END lines may have been inserted/deleted"
 msgstr "???ñòðîêè ìîãëè áûòü âñòàâëåíû èëè óäàëåíû îòñþäà äî ???ÊÎÍÖÀ"
 
-#: memline.c:1117
+#: memline.c:1118
 msgid "???END"
 msgstr "???ÊÎÍÅÖ"
 
-#: memline.c:1143
+#: memline.c:1144
 msgid "E311: Recovery Interrupted"
 msgstr "E311: Âîññòàíîâëåíèå ïðåðâàíî"
 
-#: memline.c:1148
+#: memline.c:1149
 msgid ""
 "E312: Errors detected while recovering; look for lines starting with ???"
 msgstr ""
 "E312: Âî âðåìÿ âîññòàíîâëåíèÿ îáíàðóæåíû îøèáêè; ñì. ñòðîêè, íà÷èíàþùèåñÿ "
 "ñ ???"
 
-#: memline.c:1150
+#: memline.c:1151
 msgid "See \":help E312\" for more information."
 msgstr "Ñì. äîïîëíèòåëüíóþ èíôîðìàöèþ â ñïðàâî÷íèêå (\":help E312\")"
 
-#: memline.c:1155
+#: memline.c:1156
 msgid "Recovery completed. You should check if everything is OK."
 msgstr "Âîññòàíîâëåíèå çàâåðøåíî. Ïðîâåðüòå, âñ¸ ëè â ïîðÿäêå."
 
-#: memline.c:1156
+#: memline.c:1157
 msgid ""
 "\n"
 "(You might want to write out this file under another name\n"
@@ -3734,11 +3743,11 @@ msgstr ""
 "\n"
 "(Ìîæåòå çàïèñàòü ôàéë ïîä äðóãèì èìåíåì è ñðàâíèòü åãî ñ èñõîäíûì\n"
 
-#: memline.c:1157
+#: memline.c:1158
 msgid "and run diff with the original file to check for changes)\n"
 msgstr "ôàéëîì ïðè ïîìîùè ïðîãðàììû diff).\n"
 
-#: memline.c:1158
+#: memline.c:1159
 msgid ""
 "Delete the .swp file afterwards.\n"
 "\n"
@@ -3747,51 +3756,51 @@ msgstr ""
 "\n"
 
 #. use msg() to start the scrolling properly
-#: memline.c:1214
+#: memline.c:1215
 msgid "Swap files found:"
 msgstr "Îáíàðóæåíû ñâîï-ôàéëû:"
 
-#: memline.c:1392
+#: memline.c:1393
 msgid "   In current directory:\n"
 msgstr "   Â òåêóùåì êàòàëîãå:\n"
 
-#: memline.c:1394
+#: memline.c:1395
 msgid "   Using specified name:\n"
 msgstr "   Ñ óêàçàííûì èìåíåì:\n"
 
-#: memline.c:1398
+#: memline.c:1399
 msgid "   In directory "
 msgstr "   Â êàòàëîãå   "
 
-#: memline.c:1416
+#: memline.c:1417
 msgid "      -- none --\n"
 msgstr "      -- íåò --\n"
 
-#: memline.c:1488
+#: memline.c:1489
 msgid "          owned by: "
 msgstr "          âëàäåëåö: "
 
-#: memline.c:1490
+#: memline.c:1491
 msgid "   dated: "
 msgstr "    äàòà: "
 
-#: memline.c:1494 memline.c:3684
+#: memline.c:1495 memline.c:3685
 msgid "             dated: "
 msgstr "              äàòà: "
 
-#: memline.c:1510
+#: memline.c:1511
 msgid "         [from Vim version 3.0]"
 msgstr "         [îò Vim âåðñèè 3.0]"
 
-#: memline.c:1514
+#: memline.c:1515
 msgid "         [does not look like a Vim swap file]"
 msgstr "         [íå ÿâëÿåòñÿ ñâîï-ôàéëîì Vim]"
 
-#: memline.c:1518
+#: memline.c:1519
 msgid "         file name: "
 msgstr "         èìÿ ôàéëà: "
 
-#: memline.c:1524
+#: memline.c:1525
 msgid ""
 "\n"
 "          modified: "
@@ -3799,15 +3808,15 @@ msgstr ""
 "\n"
 "           èçìåí¸í: "
 
-#: memline.c:1525
+#: memline.c:1526
 msgid "YES"
 msgstr "ÄÀ"
 
-#: memline.c:1525
+#: memline.c:1526
 msgid "no"
 msgstr "íåò"
 
-#: memline.c:1529
+#: memline.c:1530
 msgid ""
 "\n"
 "         user name: "
@@ -3815,11 +3824,11 @@ msgstr ""
 "\n"
 "      ïîëüçîâàòåëü: "
 
-#: memline.c:1536
+#: memline.c:1537
 msgid "   host name: "
 msgstr "  êîìïüþòåð: "
 
-#: memline.c:1538
+#: memline.c:1539
 msgid ""
 "\n"
 "         host name: "
@@ -3827,7 +3836,7 @@ msgstr ""
 "\n"
 "         êîìïüþòåð: "
 
-#: memline.c:1544
+#: memline.c:1545
 msgid ""
 "\n"
 "        process ID: "
@@ -3835,11 +3844,11 @@ msgstr ""
 "\n"
 "           ïðîöåññ: "
 
-#: memline.c:1550
+#: memline.c:1551
 msgid " (still running)"
 msgstr " (åù¸ âûïîëíÿåòñÿ)"
 
-#: memline.c:1562
+#: memline.c:1563
 msgid ""
 "\n"
 "         [not usable with this version of Vim]"
@@ -3847,7 +3856,7 @@ msgstr ""
 "\n"
 "         [íå ïðèãîäåí äëÿ èñïîëüçîâàíèÿ ñ äàííîé âåðñèåé Vim]"
 
-#: memline.c:1565
+#: memline.c:1566
 msgid ""
 "\n"
 "         [not usable on this computer]"
@@ -3855,92 +3864,92 @@ msgstr ""
 "\n"
 "         [íå ïðèãîäåí äëÿ èñïîëüçîâàíèÿ íà ýòîì êîìïüþòåðå]"
 
-#: memline.c:1570
+#: memline.c:1571
 msgid "         [cannot be read]"
 msgstr "         [íå ÷èòàåòñÿ]"
 
-#: memline.c:1574
+#: memline.c:1575
 msgid "         [cannot be opened]"
 msgstr "         [íå îòêðûâàåòñÿ]"
 
-#: memline.c:1764
+#: memline.c:1765
 msgid "E313: Cannot preserve, there is no swap file"
 msgstr "E313: Íåâîçìîæíî îáíîâèòü ñâîï-ôàéë, ïîñêîëüêó îí íå îáíàðóæåí"
 
-#: memline.c:1817
+#: memline.c:1818
 msgid "File preserved"
 msgstr "Ñâîï-ôàéë îáíîâë¸í"
 
-#: memline.c:1819
+#: memline.c:1820
 msgid "E314: Preserve failed"
 msgstr "E314: Íåóäà÷íàÿ ïîïûòêà îáíîâëåíèÿ ñâîï-ôàéëà"
 
-#: memline.c:1890
+#: memline.c:1891
 #, c-format
 msgid "E315: ml_get: invalid lnum: %ld"
 msgstr "E315: ml_get: íåïðàâèëüíîå çíà÷åíèå lnum: %ld"
 
-#: memline.c:1916
+#: memline.c:1917
 #, c-format
 msgid "E316: ml_get: cannot find line %ld"
 msgstr "E316: ml_get: íåâîçìîæíî íàéòè ñòðîêó %ld"
 
-#: memline.c:2306
+#: memline.c:2307
 msgid "E317: pointer block id wrong 3"
 msgstr "íåïðàâèëüíîå çíà÷åíèå óêàçàòåëÿ áëîêà 3"
 
-#: memline.c:2386
+#: memline.c:2387
 msgid "stack_idx should be 0"
 msgstr "çíà÷åíèå stack_idx äîëæíî áûòü ðàâíî 0"
 
-#: memline.c:2448
+#: memline.c:2449
 msgid "E318: Updated too many blocks?"
 msgstr "E318: Îáíîâëåíî ñëèøêîì ìíîãî áëîêîâ?"
 
-#: memline.c:2630
+#: memline.c:2631
 msgid "E317: pointer block id wrong 4"
 msgstr "E317: íåïðàâèëüíîå çíà÷åíèå óêàçàòåëÿ áëîêà 4"
 
-#: memline.c:2657
+#: memline.c:2658
 msgid "deleted block 1?"
 msgstr "óäàë¸í áëîê 1?"
 
-#: memline.c:2857
+#: memline.c:2858
 #, c-format
 msgid "E320: Cannot find line %ld"
 msgstr "E320: Ñòðîêà %ld íå îáíàðóæåíà"
 
-#: memline.c:3100
+#: memline.c:3101
 msgid "E317: pointer block id wrong"
 msgstr "E317: íåïðàâèëüíîå çíà÷åíèå óêàçàòåëÿ áëîêà"
 
-#: memline.c:3116
+#: memline.c:3117
 msgid "pe_line_count is zero"
 msgstr "çíà÷åíèå pe_line_count ðàâíî íóëþ"
 
-#: memline.c:3145
+#: memline.c:3146
 #, c-format
 msgid "E322: line number out of range: %ld past the end"
 msgstr "E322: íîìåð ñòðîêè çà ïðåäåëàìè äèàïàçîíà: %ld"
 
-#: memline.c:3149
+#: memline.c:3150
 #, c-format
 msgid "E323: line count wrong in block %ld"
 msgstr "E323: íåïðàâèëüíîå çíà÷åíèå ñ÷¸ò÷èêà ñòðîê â áëîêå %ld"
 
-#: memline.c:3198
+#: memline.c:3199
 msgid "Stack size increases"
 msgstr "Ðàçìåð ñòåêà óâåëè÷åí"
 
-#: memline.c:3244
+#: memline.c:3245
 msgid "E317: pointer block id wrong 2"
 msgstr "E317: íåïðàâèëüíîå çíà÷åíèå óêàçàòåëÿ áëîêà 2"
 
-#: memline.c:3674
+#: memline.c:3675
 msgid "E325: ATTENTION"
 msgstr "E325: ÂÍÈÌÀÍÈÅ"
 
-#: memline.c:3675
+#: memline.c:3676
 msgid ""
 "\n"
 "Found a swap file by the name \""
@@ -3948,17 +3957,17 @@ msgstr ""
 "\n"
 "Îáíàðóæåí ñâîï-ôàéë ñ èìåíåì \""
 
-#: memline.c:3679
+#: memline.c:3680
 msgid "While opening file \""
 msgstr "Ïðè îòêðûòèè ôàéëà: \""
 
-#: memline.c:3688
+#: memline.c:3689
 msgid "      NEWER than swap file!\n"
 msgstr "                    Áîëåå ÑÂÅÆÈÉ, ÷åì ñâîï-ôàéë!\n"
 
 #. Some of these messages are long to allow translation to
 #. * other languages.
-#: memline.c:3692
+#: memline.c:3693
 msgid ""
 "\n"
 "(1) Another program may be editing the same file.\n"
@@ -3970,11 +3979,11 @@ msgstr ""
 "    Åñëè ýòî òàê, òî áóäüòå âíèìàòåëüíû ïðè âíåñåíèè èçìåíåíèé,\n"
 "    ÷òîáû ó âàñ íå ïîÿâèëîñü äâà ðàçíûõ âàðèàíòà îäíîãî è òîãî æå ôàéëà.\n"
 
-#: memline.c:3693
+#: memline.c:3694
 msgid "    Quit, or continue with caution.\n"
 msgstr "    Çàâåðøèòå ðàáîòó èëè ïðîäîëæàéòå ñ îñòîðîæíîñòüþ.\n"
 
-#: memline.c:3694
+#: memline.c:3695
 msgid ""
 "\n"
 "(2) An edit session for this file crashed.\n"
@@ -3982,11 +3991,11 @@ msgstr ""
 "\n"
 "(2) Ïðåäûäóùèé ñåàíñ ðåäàêòèðîâàíèÿ ýòîãî ôàéëà çàâåðø¸í àâàðèéíî.\n"
 
-#: memline.c:3695
+#: memline.c:3696
 msgid "    If this is the case, use \":recover\" or \"vim -r "
 msgstr "     ýòîì ñëó÷àå, èñïîëüçóéòå êîìàíäó \":recover\" èëè \"vim -r "
 
-#: memline.c:3697
+#: memline.c:3698
 msgid ""
 "\"\n"
 "    to recover the changes (see \":help recovery\").\n"
@@ -3994,11 +4003,11 @@ msgstr ""
 "\"\n"
 "    äëÿ âîññòàíîâëåíèÿ èçìåíåíèé (ñì. \":help âîññòàíîâëåíèå\").\n"
 
-#: memline.c:3698
+#: memline.c:3699
 msgid "    If you did this already, delete the swap file \""
 msgstr "    Åñëè âû óæå âûïîëíÿëè ýòó îïåðàöèþ, óäàëèòå ñâîï-ôàéë \""
 
-#: memline.c:3700
+#: memline.c:3701
 msgid ""
 "\"\n"
 "    to avoid this message.\n"
@@ -4006,23 +4015,23 @@ msgstr ""
 "\"\n"
 "    ÷òîáû èçáåæàòü ïîÿâëåíèÿ ýòîãî ñîîáùåíèÿ â áóäóùåì.\n"
 
-#: memline.c:3714 memline.c:3718
+#: memline.c:3715 memline.c:3719
 msgid "Swap file \""
 msgstr "Ñâîï-ôàéë \""
 
-#: memline.c:3715 memline.c:3721
+#: memline.c:3716 memline.c:3722
 msgid "\" already exists!"
 msgstr "\" óæå ñóùåñòâóåò!"
 
-#: memline.c:3724
+#: memline.c:3725
 msgid "VIM - ATTENTION"
 msgstr "VIM - ÂÍÈÌÀÍÈÅ"
 
-#: memline.c:3726
+#: memline.c:3727
 msgid "Swap file already exists!"
 msgstr "Ñâîï-ôàéë óæå ñóùåñòâóåò!"
 
-#: memline.c:3730
+#: memline.c:3731
 msgid ""
 "&Open Read-Only\n"
 "&Edit anyway\n"
@@ -4036,7 +4045,7 @@ msgstr ""
 "&Q Âûõîä\n"
 "&A Ïðåðâàòü"
 
-#: memline.c:3732
+#: memline.c:3733
 msgid ""
 "&Open Read-Only\n"
 "&Edit anyway\n"
@@ -4052,7 +4061,7 @@ msgstr ""
 "&A Ïðåðâàòü\n"
 "&D Óäàëèòü"
 
-#: memline.c:3789
+#: memline.c:3790
 msgid "E326: Too many swap files found"
 msgstr "E326: Îáíàðóæåíî ñëèøêîì ìíîãî ñâîï-ôàéëîâ"
 
@@ -4160,11 +4169,11 @@ msgstr " (RET/BS: 
 msgid " (RET: line, SPACE: page, d: half page, q: quit)"
 msgstr " (RET: ñòðîêà, SPACE: ñòðàíèöà, d: ïîëñòðàíèöû, q: âûõîä)"
 
-#: message.c:2976 message.c:2991
+#: message.c:2982 message.c:2997
 msgid "Question"
 msgstr "Âîïðîñ"
 
-#: message.c:2978
+#: message.c:2984
 msgid ""
 "&Yes\n"
 "&No"
@@ -4172,7 +4181,7 @@ msgstr ""
 "&Äà\n"
 "&Íåò"
 
-#: message.c:3011
+#: message.c:3017
 msgid ""
 "&Yes\n"
 "&No\n"
@@ -4186,16 +4195,16 @@ msgstr ""
 "&Ïîòåðÿòü âñå\n"
 "Î&òìåíà"
 
-#: message.c:3052
+#: message.c:3058
 msgid "Save File dialog"
 msgstr "Ñîõðàíåíèå ôàéëà"
 
-#: message.c:3054
+#: message.c:3060
 msgid "Open File dialog"
 msgstr "Îòêðûòèå ôàéëà"
 
 #. TODO: non-GUI file selector here
-#: message.c:3125
+#: message.c:3131
 msgid "E338: Sorry, no file browser in console mode"
 msgstr ""
 "E338: Èçâèíèòå, íî â êîíñîëüíîì ðåæèìå íåò ïðîâîäíèêà ïî ôàéëîâîé ñèñòåìå"
@@ -4374,36 +4383,36 @@ msgstr "
 msgid "E658: NetBeans connection lost for buffer %ld"
 msgstr "E658: Ïîòåðÿíî ñîåäèíåíèå ñ NetBeans äëÿ áóôåðà %ld"
 
-#: normal.c:2980
+#: normal.c:2983
 msgid "Warning: terminal cannot highlight"
 msgstr "Ïðåäóïðåæäåíèå: òåðìèíàë íå ìîæåò âûïîëíÿòü ïîäñâåòêó"
 
-#: normal.c:3276
+#: normal.c:3279
 msgid "E348: No string under cursor"
 msgstr "E348: Íåò ñòðîêè â ïîçèöèè êóðñîðà"
 
-#: normal.c:3278
+#: normal.c:3281
 msgid "E349: No identifier under cursor"
 msgstr "E349: Íåò èìåíè â ïîçèöèè êóðñîðà"
 
-#: normal.c:4519
+#: normal.c:4522
 msgid "E352: Cannot erase folds with current 'foldmethod'"
 msgstr ""
 "E352: Íåâîçìîæíî ñòåðåòü ñêëàäêè ñ òåêóùèì çíà÷åíèåì îïöèè 'foldmethod'"
 
-#: normal.c:6740
+#: normal.c:6743
 msgid "E664: changelist is empty"
 msgstr "E664: ñïèñîê èçìåíåíèé ïóñòîé"
 
-#: normal.c:6742
+#: normal.c:6745
 msgid "E662: At start of changelist"
 msgstr "E662:  íà÷àëå ñïèñêà èçìåíåíèé"
 
-#: normal.c:6744
+#: normal.c:6747
 msgid "E663: At end of changelist"
 msgstr "E662: Â êîíöå ñïèñêà èçìåíåíèé"
 
-#: normal.c:8005
+#: normal.c:8009
 msgid "Type  :quit<Enter>  to exit Vim"
 msgstr "Ââåäèòå :quit<Enter>  äëÿ âûõîäà èç Vim"
 
@@ -4442,40 +4451,40 @@ msgid "%ld lines indented "
 msgstr "Èçìåíåíû îòñòóïû â ñòðîêàõ (%ld) "
 
 #. must display the prompt
-#: ops.c:1675
+#: ops.c:1688
 msgid "cannot yank; delete anyway"
 msgstr "ñêîïèðîâàòü íå óäàëîñü, óäàëåíèå âûïîëíåíî"
 
-#: ops.c:2261
+#: ops.c:2274
 msgid "1 line changed"
 msgstr "èçìåíåíà 1 ñòðîêà"
 
-#: ops.c:2263
+#: ops.c:2276
 #, c-format
 msgid "%ld lines changed"
 msgstr "èçìåíåíî ñòðîê: %ld"
 
-#: ops.c:2647
+#: ops.c:2660
 #, c-format
 msgid "freeing %ld lines"
 msgstr "î÷èùåíî ñòðîê: %ld"
 
-#: ops.c:2928
+#: ops.c:2941
 msgid "1 line yanked"
 msgstr "ñêîïèðîâàíà îäíà ñòðîêà"
 
-#: ops.c:2930
+#: ops.c:2943
 #, c-format
 msgid "%ld lines yanked"
 msgstr "ñêîïèðîâàíî ñòðîê: %ld"
 
-#: ops.c:3215
+#: ops.c:3228
 #, c-format
 msgid "E353: Nothing in register %s"
 msgstr "E353:  ðåãèñòðå %s íè÷åãî íåò"
 
 #. Highlight title
-#: ops.c:3766
+#: ops.c:3779
 msgid ""
 "\n"
 "--- Registers ---"
@@ -4483,11 +4492,11 @@ msgstr ""
 "\n"
 "--- Ðåãèñòðû ---"
 
-#: ops.c:5075
+#: ops.c:5088
 msgid "Illegal register name"
 msgstr "Íåäîïóñòèìîå èìÿ ðåãèñòðà"
 
-#: ops.c:5163
+#: ops.c:5176
 #, c-format
 msgid ""
 "\n"
@@ -4496,32 +4505,32 @@ msgstr ""
 "\n"
 "# Ðåãèñòðû:\n"
 
-#: ops.c:5213
+#: ops.c:5226
 #, c-format
 msgid "E574: Unknown register type %d"
 msgstr "E574: Íåèçâåñòíûé òèï ðåãèñòðà %d"
 
-#: ops.c:5698
+#: ops.c:5711
 #, c-format
 msgid "E354: Invalid register name: '%s'"
 msgstr "E354: Íåäîïóñòèìîå èìÿ ðåãèñòðà: '%s'"
 
-#: ops.c:6058
+#: ops.c:6071
 #, c-format
 msgid "%ld Cols; "
 msgstr "Êîëîíîê: %ld; "
 
-#: ops.c:6065
+#: ops.c:6078
 #, c-format
 msgid "Selected %s%ld of %ld Lines; %ld of %ld Words; %ld of %ld Bytes"
 msgstr "Âûäåëåíî %s%ld èç %ld ñòðîê; %ld èç %ld ñëîâ; %ld èç %ld áàéò"
 
-#: ops.c:6081
+#: ops.c:6094
 #, c-format
 msgid "Col %s of %s; Line %ld of %ld; Word %ld of %ld; Byte %ld of %ld"
 msgstr "Êîë. %s èç %s;  ñòð. %ld èç %ld; ñëîâî %ld èç %ld; áàéò %ld èç %ld"
 
-#: ops.c:6092
+#: ops.c:6105
 #, c-format
 msgid "(+%ld for BOM)"
 msgstr "(+%ld ñ ó÷¸òîì BOM)"
@@ -4648,47 +4657,47 @@ msgstr ""
 "E537: Çíà÷åíèå îïöèÿ 'commentstring' äîëæíî áûòü ïóñòîé ñòðîêîé èëè "
 "ñîäåðæàòü %s"
 
-#: option.c:5679
+#: option.c:5682
 msgid "E538: No mouse support"
 msgstr "E538: Ìûøü íå ïîääåðæèâàåòñÿ"
 
-#: option.c:5947
+#: option.c:5950
 msgid "E540: Unclosed expression sequence"
 msgstr "E540: Íåçàêðûòàÿ ïîñëåäîâàòåëüíîñòü âûðàæåíèÿ"
 
-#: option.c:5951
+#: option.c:5954
 msgid "E541: too many items"
 msgstr "E541: ñëèøêîì ìíîãî ýëåìåíòîâ"
 
-#: option.c:5953
+#: option.c:5956
 msgid "E542: unbalanced groups"
 msgstr "E542: íåñáàëàíñèðîâàííûå ãðóïïû"
 
-#: option.c:6193
+#: option.c:6196
 msgid "E590: A preview window already exists"
 msgstr "E590: Îêíî ïðåäïðîñìîòðà óæå åñòü"
 
-#: option.c:6450
+#: option.c:6453
 msgid "W17: Arabic requires UTF-8, do ':set encoding=utf-8'"
 msgstr ""
 "W17: Àðàáñêèé òðåáóåò èñïîëüçîâàíèÿ UTF-8, ââåäèòå ':set encoding=utf-8'"
 
-#: option.c:6783
+#: option.c:6786
 #, c-format
 msgid "E593: Need at least %d lines"
 msgstr "E593: Íóæíî õîòÿ áû %d ñòðîê"
 
-#: option.c:6793
+#: option.c:6796
 #, c-format
 msgid "E594: Need at least %d columns"
 msgstr "E594: Íóæíî õîòÿ áû %d êîëîíîê"
 
-#: option.c:7100
+#: option.c:7103
 #, c-format
 msgid "E355: Unknown option: %s"
 msgstr "E355: Íåèçâåñòíàÿ îïöèÿ: %s"
 
-#: option.c:7220
+#: option.c:7223
 msgid ""
 "\n"
 "--- Terminal codes ---"
@@ -4696,7 +4705,7 @@ msgstr ""
 "\n"
 "--- Òåðìèíàëüíûå êîäû ---"
 
-#: option.c:7222
+#: option.c:7225
 msgid ""
 "\n"
 "--- Global option values ---"
@@ -4704,7 +4713,7 @@ msgstr ""
 "\n"
 "--- Ãëîáàëüíûå çíà÷åíèÿ îïöèé ---"
 
-#: option.c:7224
+#: option.c:7227
 msgid ""
 "\n"
 "--- Local option values ---"
@@ -4712,7 +4721,7 @@ msgstr ""
 "\n"
 "--- Ìåñòíûå çíà÷åíèÿ îïöèé ---"
 
-#: option.c:7226
+#: option.c:7229
 msgid ""
 "\n"
 "--- Options ---"
@@ -4720,16 +4729,16 @@ msgstr ""
 "\n"
 "--- Îïöèè ---"
 
-#: option.c:7932
+#: option.c:7935
 msgid "E356: get_varp ERROR"
 msgstr "E356: ÎØÈÁÊÀ get_varp"
 
-#: option.c:8903
+#: option.c:8906
 #, c-format
 msgid "E357: 'langmap': Matching character missing for %s"
 msgstr "E357: 'langmap': Íåò ñîîòâåòñòâóþùåãî ñèìâîëà äëÿ %s"
 
-#: option.c:8937
+#: option.c:8940
 #, c-format
 msgid "E358: 'langmap': Extra characters after semicolon: %s"
 msgstr "E358: 'langmap': Ëèøíèå ñèìâîëû ïîñëå òî÷êè ñ çàïÿòîé: %s"
@@ -4764,81 +4773,81 @@ msgstr "
 msgid "Vim exiting with %d\n"
 msgstr "Ïðåêðàùåíèå ðàáîòû Vim ñ êîäîì %d\n"
 
-#: os_amiga.c:937
+#: os_amiga.c:941
 msgid "cannot change console mode ?!\n"
 msgstr "íåâîçìîæíî ñìåíèòü ðåæèì êîíñîëè?!\n"
 
-#: os_amiga.c:1003
+#: os_amiga.c:1012
 msgid "mch_get_shellsize: not a console??\n"
 msgstr "mch_get_shellsize: íå â êîíñîëè??\n"
 
 #. if Vim opened a window: Executing a shell may cause crashes
-#: os_amiga.c:1152
+#: os_amiga.c:1161
 msgid "E360: Cannot execute shell with -f option"
 msgstr "E360: Íåâîçìîæíî âûïîëíèòü îáîëî÷êó ñ àðãóìåíòîì -f"
 
-#: os_amiga.c:1193 os_amiga.c:1283
+#: os_amiga.c:1202 os_amiga.c:1292
 msgid "Cannot execute "
 msgstr "Íåâîçìîæíî âûïîëíèòü "
 
-#: os_amiga.c:1196 os_amiga.c:1293
+#: os_amiga.c:1205 os_amiga.c:1302
 msgid "shell "
 msgstr "îáîëî÷êà "
 
-#: os_amiga.c:1216 os_amiga.c:1318
+#: os_amiga.c:1225 os_amiga.c:1327
 msgid " returned\n"
 msgstr " çàâåðøèëà ðàáîòó\n"
 
-#: os_amiga.c:1459
+#: os_amiga.c:1468
 msgid "ANCHOR_BUF_SIZE too small."
 msgstr "ñëèøêîì ìàëàÿ âåëè÷èíà ANCHOR_BUF_SIZE."
 
-#: os_amiga.c:1463
+#: os_amiga.c:1472
 msgid "I/O ERROR"
 msgstr "ÎØÈÁÊÀ ÂÂÎÄÀ/ÂÛÂÎÄÀ"
 
-#: os_mswin.c:539
+#: os_mswin.c:548
 msgid "...(truncated)"
 msgstr "...(îáðåçàíî)"
 
-#: os_mswin.c:641
+#: os_mswin.c:650
 msgid "'columns' is not 80, cannot execute external commands"
 msgstr "Çíà÷åíèå îïöèè 'columns' íå ðàâíî 80, âíåøíèå ïðîãðàììû íå âûïîëíÿþòñÿ"
 
-#: os_mswin.c:1973
+#: os_mswin.c:1982
 msgid "E237: Printer selection failed"
 msgstr "E327: Íåóäà÷íîå çàâåðøåíèå âûáîðà ïðèíòåðà"
 
-#: os_mswin.c:2013
+#: os_mswin.c:2022
 #, c-format
 msgid "to %s on %s"
 msgstr "â %s íà %s"
 
-#: os_mswin.c:2028
+#: os_mswin.c:2037
 #, c-format
 msgid "E613: Unknown printer font: %s"
 msgstr "E613: Íåèçâåñòíûé øðèôò ïðèíòåðà: %s"
 
-#: os_mswin.c:2077 os_mswin.c:2087
+#: os_mswin.c:2086 os_mswin.c:2096
 #, c-format
 msgid "E238: Print error: %s"
 msgstr "E238: Îøèáêà ïå÷àòè: %s"
 
-#: os_mswin.c:2088
+#: os_mswin.c:2097
 msgid "Unknown"
 msgstr "Íåèçâåñòíî"
 
-#: os_mswin.c:2115
+#: os_mswin.c:2124
 #, c-format
 msgid "Printing '%s'"
 msgstr "Ïå÷àòü '%s'"
 
-#: os_mswin.c:3204
+#: os_mswin.c:3213
 #, c-format
 msgid "E244: Illegal charset name \"%s\" in font name \"%s\""
 msgstr "E244: Íåäîïóñòèìîå èìÿ êîäèðîâêè \"%s\" â èìåíè øðèôòà \"%s\""
 
-#: os_mswin.c:3212
+#: os_mswin.c:3221
 #, c-format
 msgid "E245: Illegal char '%c' in font name \"%s\""
 msgstr "E245: Íåäîïóñòèìûé ñèìâîë '%c' â èìåíè øðèôòà \"%s\""
@@ -4874,15 +4883,15 @@ msgstr ""
 "\n"
 "Vim: Îøèáêà X\n"
 
-#: os_unix.c:1334
+#: os_unix.c:1338
 msgid "Testing the X display failed"
 msgstr "Ïðîâåðêà äèñïëåÿ X çàâåðøåíà íåóäà÷íî"
 
-#: os_unix.c:1473
+#: os_unix.c:1477
 msgid "Opening the X display timed out"
 msgstr "Îòêðûòèå äèñïëåÿ X íå âûïîëíåíî â îòâåä¸ííîå âðåìÿ"
 
-#: os_unix.c:3227 os_unix.c:3907
+#: os_unix.c:3234 os_unix.c:3914
 msgid ""
 "\n"
 "Cannot execute shell "
@@ -4890,7 +4899,7 @@ msgstr ""
 "\n"
 "Íåâîçìîæíî çàïóñòèòü îáîëî÷êó "
 
-#: os_unix.c:3275
+#: os_unix.c:3282
 msgid ""
 "\n"
 "Cannot execute shell sh\n"
@@ -4898,7 +4907,7 @@ msgstr ""
 "\n"
 "Íåâîçìîæíî çàïóñòèòü îáîëî÷êó sh\n"
 
-#: os_unix.c:3279 os_unix.c:3913
+#: os_unix.c:3286 os_unix.c:3920
 msgid ""
 "\n"
 "shell returned "
@@ -4906,7 +4915,7 @@ msgstr ""
 "\n"
 "Îáîëî÷êà çàâåðøèëà ðàáîòó "
 
-#: os_unix.c:3414
+#: os_unix.c:3421
 msgid ""
 "\n"
 "Cannot create pipes\n"
@@ -4914,7 +4923,7 @@ msgstr ""
 "\n"
 "Íåâîçìîæíî ñîçäàòü òðóáû\n"
 
-#: os_unix.c:3429
+#: os_unix.c:3436
 msgid ""
 "\n"
 "Cannot fork\n"
@@ -4922,7 +4931,7 @@ msgstr ""
 "\n"
 "Íåâîçìîæíî âûïîëíèòü fork()\n"
 
-#: os_unix.c:3920
+#: os_unix.c:3927
 msgid ""
 "\n"
 "Command terminated\n"
@@ -4930,27 +4939,27 @@ msgstr ""
 "\n"
 "Âûïîëíåíèå êîìàíäû ïðåðâàíî\n"
 
-#: os_unix.c:4184 os_unix.c:4309 os_unix.c:5975
+#: os_unix.c:4191 os_unix.c:4316 os_unix.c:5982
 msgid "XSMP lost ICE connection"
 msgstr "XSMP óòåðÿíî ñîåäèíåíèå ICE"
 
-#: os_unix.c:5558
+#: os_unix.c:5565
 msgid "Opening the X display failed"
 msgstr "Íåóäà÷íîå îòêðûòèå äèñïëåÿ X"
 
-#: os_unix.c:5880
+#: os_unix.c:5887
 msgid "XSMP handling save-yourself request"
 msgstr "XSMP îáðàáàòûâàåò çàïðîñ ñàìîñîõðàíåíèÿ"
 
-#: os_unix.c:5999
+#: os_unix.c:6006
 msgid "XSMP opening connection"
 msgstr "XSMP îòêðûâàåò ñîåäèíåíèå"
 
-#: os_unix.c:6018
+#: os_unix.c:6025
 msgid "XSMP ICE connection watch failed"
 msgstr "XSMP ïîòåðÿíî ñëåæåíèå çà ñîåäèíåíèåì ICE"
 
-#: os_unix.c:6038
+#: os_unix.c:6045
 #, c-format
 msgid "XSMP SmcOpenConnection failed: %s"
 msgstr "XSMP íåóäà÷íî âûïîëíåíî SmcOpenConnection: %s"
@@ -4975,33 +4984,33 @@ msgstr "
 msgid "Could not fix up function pointers to the DLL!"
 msgstr "Íåâîçìîæíî èñïðàâèòü óêàçàòåëè ôóíêöèé äëÿ DLL!"
 
-#: os_win16.c:342 os_win32.c:3216
+#: os_win16.c:342 os_win32.c:3248
 #, c-format
 msgid "shell returned %d"
 msgstr "çàâåðøåíèå ðàáîòû îáîëî÷êè ñ êîäîì %d"
 
-#: os_win32.c:2674
+#: os_win32.c:2706
 #, c-format
 msgid "Vim: Caught %s event\n"
 msgstr "Vim: Ïåðåõâà÷åíî ñîáûòèå %s\n"
 
-#: os_win32.c:2676
+#: os_win32.c:2708
 msgid "close"
 msgstr "çàêðûòèå"
 
-#: os_win32.c:2678
+#: os_win32.c:2710
 msgid "logoff"
 msgstr "îòêëþ÷åíèå"
 
-#: os_win32.c:2679
+#: os_win32.c:2711
 msgid "shutdown"
 msgstr "çàâåðøåíèå"
 
-#: os_win32.c:3169
+#: os_win32.c:3201
 msgid "E371: Command not found"
 msgstr "E371: Êîìàíäà íå íàéäåíà"
 
-#: os_win32.c:3182
+#: os_win32.c:3214
 msgid ""
 "VIMRUN.EXE not found in your $PATH.\n"
 "External commands will not pause after completion.\n"
@@ -5011,7 +5020,7 @@ msgstr ""
 "Âíåøíèå êîìàíäû íå áóäóò îñòàíàâëèâàòüñÿ ïîñëå âûïîëíåíèÿ.\n"
 "Äîïîëíèòåëüíàÿ èíôîðìàöèÿ â :help win32-vimrun"
 
-#: os_win32.c:3185
+#: os_win32.c:3217
 msgid "Vim Warning"
 msgstr "Ïðåäóïðåæäåíèå Vim"
 
@@ -5219,75 +5228,75 @@ msgstr "
 msgid "+--%3ld lines folded "
 msgstr "+--%3ld ñòðîê â ñêëàäêå"
 
-#: screen.c:7996
+#: screen.c:8000
 msgid " VREPLACE"
 msgstr " ÂÈÐÒÓÀËÜÍÀß ÇÀÌÅÍÀ"
 
-#: screen.c:8000
+#: screen.c:8004
 msgid " REPLACE"
 msgstr " ÇÀÌÅÍÀ"
 
-#: screen.c:8005
+#: screen.c:8009
 msgid " REVERSE"
 msgstr " ÎÁÐÀÒÍÀß"
 
-#: screen.c:8007
+#: screen.c:8011
 msgid " INSERT"
 msgstr " ÂÑÒÀÂÊÀ"
 
-#: screen.c:8010
+#: screen.c:8014
 msgid " (insert)"
 msgstr " (âñòàâêà)"
 
-#: screen.c:8012
+#: screen.c:8016
 msgid " (replace)"
 msgstr " (çàìåíà)"
 
-#: screen.c:8014
+#: screen.c:8018
 msgid " (vreplace)"
 msgstr " (âèðòóàëüíàÿ çàìåíà)"
 
-#: screen.c:8017
+#: screen.c:8021
 msgid " Hebrew"
 msgstr " Èâðèò"
 
-#: screen.c:8028
+#: screen.c:8032
 msgid " Arabic"
 msgstr " Àðàáñêèé"
 
-#: screen.c:8031
+#: screen.c:8035
 msgid " (lang)"
 msgstr " (ÿçûê)"
 
-#: screen.c:8035
+#: screen.c:8039
 msgid " (paste)"
 msgstr " (âêëåéêà)"
 
-#: screen.c:8048
+#: screen.c:8052
 msgid " VISUAL"
 msgstr " ÂÈÇÓÀËÜÍÛÉ ÐÅÆÈÌ"
 
-#: screen.c:8049
+#: screen.c:8053
 msgid " VISUAL LINE"
 msgstr " ÂÈÇÓÀËÜÍÀß ÑÒÐÎÊÀ"
 
-#: screen.c:8050
+#: screen.c:8054
 msgid " VISUAL BLOCK"
 msgstr " ÂÈÇÓÀËÜÍÛÉ ÁËÎÊ"
 
-#: screen.c:8051
+#: screen.c:8055
 msgid " SELECT"
 msgstr " ÂÛÄÅËÅÍÈÅ"
 
-#: screen.c:8052
+#: screen.c:8056
 msgid " SELECT LINE"
 msgstr " ÂÛÄÅËÅÍÈÅ ÑÒÐÎÊÈ"
 
-#: screen.c:8053
+#: screen.c:8057
 msgid " SELECT BLOCK"
 msgstr " ÂÛÄÅËÅÍÈÅ ÁËÎÊÀ"
 
-#: screen.c:8068 screen.c:8131
+#: screen.c:8072 screen.c:8135
 msgid "recording"
 msgstr "çàïèñü"
 
@@ -5318,53 +5327,53 @@ msgstr "E385: 
 msgid "E386: Expected '?' or '/'  after ';'"
 msgstr "E386: Ïîñëå ';' îæèäàåòñÿ ââîä '?' èëè '/'"
 
-#: search.c:3759
+#: search.c:3768
 msgid " (includes previously listed match)"
 msgstr " (âêëþ÷àåò ðàííåå ïîêàçàííûå ñîîòâåòñòâèÿ)"
 
 #. cursor at status line
-#: search.c:3779
+#: search.c:3788
 msgid "--- Included files "
 msgstr "--- Âêëþ÷¸ííûå ôàéëû "
 
-#: search.c:3781
+#: search.c:3790
 msgid "not found "
 msgstr "íå íàéäåíî "
 
-#: search.c:3782
+#: search.c:3791
 msgid "in path ---\n"
 msgstr "ïî ïóòè ---\n"
 
-#: search.c:3839
+#: search.c:3848
 msgid "  (Already listed)"
 msgstr " (Óæå ïîêàçàíî)"
 
-#: search.c:3841
+#: search.c:3850
 msgid "  NOT FOUND"
 msgstr " ÍÅ ÍÀÉÄÅÍÎ"
 
-#: search.c:3893
+#: search.c:3902
 #, c-format
 msgid "Scanning included file: %s"
 msgstr "Ïðîñìîòð âêëþ÷¸ííûõ ôàéëîâ: %s"
 
-#: search.c:4111
+#: search.c:4120
 msgid "E387: Match is on current line"
 msgstr "E387: Ñîîòâåòñòâèå â òåêóùåé ñòðîêå"
 
-#: search.c:4254
+#: search.c:4263
 msgid "All included files were found"
 msgstr "Íàéäåíû âñå âêëþ÷¸ííûå ôàéëû"
 
-#: search.c:4256
+#: search.c:4265
 msgid "No included files"
 msgstr "Âêëþ÷¸ííûõ ôàéëîâ íåò"
 
-#: search.c:4272
+#: search.c:4281
 msgid "E388: Couldn't find definition"
 msgstr "E388: Îïðåäåëåíèå íå íàéäåíî"
 
-#: search.c:4274
+#: search.c:4283
 msgid "E389: Couldn't find pattern"
 msgstr "E389: Øàáëîí íå íàéäåí"
 
@@ -5789,7 +5798,7 @@ msgid "E440: undo line missing"
 msgstr "E440: ïîòåðÿíà ñòðîêà îòìåíû"
 
 #. Only MS VC 4.1 and earlier can do Win32s
-#: version.c:721
+#: version.c:707
 msgid ""
 "\n"
 "MS-Windows 16/32 bit GUI version"
@@ -5797,7 +5806,7 @@ msgstr ""
 "\n"
 "Âåðñèÿ ñ ãðàôè÷åñêèì èíòåðôåéñîì äëÿ MS-Windows 16/32 áèò"
 
-#: version.c:723
+#: version.c:709
 msgid ""
 "\n"
 "MS-Windows 32 bit GUI version"
@@ -5805,15 +5814,15 @@ msgstr ""
 "\n"
 "Âåðñèÿ ñ ãðàôè÷åñêèì èíòåðôåéñîì äëÿ MS-Windows 32 áèò"
 
-#: version.c:726
+#: version.c:712
 msgid " in Win32s mode"
 msgstr " â ðåæèìå Win32s"
 
-#: version.c:728
+#: version.c:714
 msgid " with OLE support"
 msgstr " ñ ïîääåðæêîé OLE"
 
-#: version.c:731
+#: version.c:717
 msgid ""
 "\n"
 "MS-Windows 32 bit console version"
@@ -5821,7 +5830,7 @@ msgstr ""
 "\n"
 "Êîíñîëüíàÿ âåðñèÿ äëÿ MS-Windows 32 áèò"
 
-#: version.c:735
+#: version.c:721
 msgid ""
 "\n"
 "MS-Windows 16 bit version"
@@ -5829,7 +5838,7 @@ msgstr ""
 "\n"
 "Âåðñèÿ äëÿ MS-Windows 16 áèò"
 
-#: version.c:739
+#: version.c:725
 msgid ""
 "\n"
 "32 bit MS-DOS version"
@@ -5837,7 +5846,7 @@ msgstr ""
 "\n"
 "Âåðñèÿ äëÿ MS-DOS 32 áèò"
 
-#: version.c:741
+#: version.c:727
 msgid ""
 "\n"
 "16 bit MS-DOS version"
@@ -5845,7 +5854,7 @@ msgstr ""
 "\n"
 "Âåðñèÿ äëÿ MS-DOS 16 áèò"
 
-#: version.c:747
+#: version.c:733
 msgid ""
 "\n"
 "MacOS X (unix) version"
@@ -5853,7 +5862,7 @@ msgstr ""
 "\n"
 "Âåðñèÿ äëÿ MacOS X (unix)"
 
-#: version.c:749
+#: version.c:735
 msgid ""
 "\n"
 "MacOS X version"
@@ -5861,7 +5870,7 @@ msgstr ""
 "\n"
 "Âåðñèÿ äëÿ MacOS X"
 
-#: version.c:752
+#: version.c:738
 msgid ""
 "\n"
 "MacOS version"
@@ -5869,7 +5878,7 @@ msgstr ""
 "\n"
 "Âåðñèÿ äëÿ MacOS"
 
-#: version.c:757
+#: version.c:743
 msgid ""
 "\n"
 "RISC OS version"
@@ -5877,7 +5886,7 @@ msgstr ""
 "\n"
 "Âåðñèÿ äëÿ RISC OS"
 
-#: version.c:767
+#: version.c:753
 msgid ""
 "\n"
 "Included patches: "
@@ -5885,11 +5894,11 @@ msgstr ""
 "\n"
 "Çàïëàòêè: "
 
-#: version.c:793 version.c:1161
+#: version.c:779 version.c:1147
 msgid "Modified by "
 msgstr "Ñ èçìåíåíèÿìè, âíåñ¸ííûìè "
 
-#: version.c:800
+#: version.c:786
 msgid ""
 "\n"
 "Compiled "
@@ -5897,11 +5906,11 @@ msgstr ""
 "\n"
 "Ñêîìïèëèðîâàí "
 
-#: version.c:803
+#: version.c:789
 msgid "by "
 msgstr " "
 
-#: version.c:815
+#: version.c:801
 msgid ""
 "\n"
 "Huge version "
@@ -5909,7 +5918,7 @@ msgstr ""
 "\n"
 "Îãðîìíàÿ âåðñèÿ "
 
-#: version.c:818
+#: version.c:804
 msgid ""
 "\n"
 "Big version "
@@ -5917,7 +5926,7 @@ msgstr ""
 "\n"
 "Áîëüøàÿ âåðñèÿ "
 
-#: version.c:821
+#: version.c:807
 msgid ""
 "\n"
 "Normal version "
@@ -5925,7 +5934,7 @@ msgstr ""
 "\n"
 "Îáû÷íàÿ âåðñèÿ "
 
-#: version.c:824
+#: version.c:810
 msgid ""
 "\n"
 "Small version "
@@ -5933,7 +5942,7 @@ msgstr ""
 "\n"
 "Ìàëàÿ âåðñèÿ "
 
-#: version.c:826
+#: version.c:812
 msgid ""
 "\n"
 "Tiny version "
@@ -5941,231 +5950,231 @@ msgstr ""
 "\n"
 "Âåðñèÿ \"Êðîõà\" "
 
-#: version.c:832
+#: version.c:818
 msgid "without GUI."
 msgstr "áåç ãðàôè÷åñêîãî èíòåðôåéñà."
 
-#: version.c:837
+#: version.c:823
 msgid "with GTK2-GNOME GUI."
 msgstr "ñ ãðàôè÷åñêèì èíòåðôåéñîì GTK2-GNOME."
 
-#: version.c:839
+#: version.c:825
 msgid "with GTK-GNOME GUI."
 msgstr "ñ ãðàôè÷åñêèì èíòåðôåéñîì GTK-GNOME."
 
-#: version.c:843
+#: version.c:829
 msgid "with GTK2 GUI."
 msgstr "ñ ãðàôè÷åñêèì èíòåðôåéñîì GTK2."
 
-#: version.c:845
+#: version.c:831
 msgid "with GTK GUI."
 msgstr "ñ ãðàôè÷åñêèì èíòåðôåéñîì GTK."
 
-#: version.c:850
+#: version.c:836
 msgid "with X11-Motif GUI."
 msgstr "ñ ãðàôè÷åñêèì èíòåðôåéñîì X11-Motif."
 
-#: version.c:854
+#: version.c:840
 msgid "with X11-neXtaw GUI."
 msgstr "ñ ãðàôè÷åñêèì èíòåðôåéñîì X11-neXtaw."
 
-#: version.c:856
+#: version.c:842
 msgid "with X11-Athena GUI."
 msgstr "ñ ãðàôè÷åñêèì èíòåðôåéñîì X11-Athena."
 
-#: version.c:860
+#: version.c:846
 msgid "with BeOS GUI."
 msgstr "ñ ãðàôè÷åñêèì èíòåðôåéñîì BeOS."
 
-#: version.c:863
+#: version.c:849
 msgid "with Photon GUI."
 msgstr "ñ ãðàôè÷åñêèì èíòåðôåéñîì Photon."
 
-#: version.c:866
+#: version.c:852
 msgid "with GUI."
 msgstr "ñ ãðàôè÷åñêèì èíòåðôåéñîì."
 
-#: version.c:869
+#: version.c:855
 msgid "with Carbon GUI."
 msgstr "ñ ãðàôè÷åñêèì èíòåðôåéñîì Carbon."
 
-#: version.c:872
+#: version.c:858
 msgid "with Cocoa GUI."
 msgstr "ñ ãðàôè÷åñêèì èíòåðôåéñîì Cocoa."
 
-#: version.c:875
+#: version.c:861
 msgid "with (classic) GUI."
 msgstr "ñ êëàññè÷åñêèì ãðàôè÷åñêèì èíòåðôåéñîì."
 
-#: version.c:886
+#: version.c:872
 msgid "  Features included (+) or not (-):\n"
 msgstr "  Âêëþ÷¸ííûå (+) è îòêëþ÷¸ííûå (-) îñîáåííîñòè:\n"
 
-#: version.c:898
+#: version.c:884
 msgid "   system vimrc file: \""
 msgstr "            îáùåñèñòåìíûé ôàéë vimrc: \""
 
-#: version.c:903
+#: version.c:889
 msgid "     user vimrc file: \""
 msgstr "         ïîëüçîâàòåëüñêèé ôàéë vimrc: \""
 
-#: version.c:908
+#: version.c:894
 msgid " 2nd user vimrc file: \""
 msgstr "  âòîðîé ïîëüçîâàòåëüñêèé ôàéë vimrc: \""
 
-#: version.c:913
+#: version.c:899
 msgid " 3rd user vimrc file: \""
 msgstr "  òðåòèé ïîëüçîâàòåëüñêèé ôàéë vimrc: \""
 
-#: version.c:918
+#: version.c:904
 msgid "      user exrc file: \""
 msgstr "          ïîëüçîâàòåëüñêèé ôàéë exrc: \""
 
-#: version.c:923
+#: version.c:909
 msgid "  2nd user exrc file: \""
 msgstr "   âòîðîé ïîëüçîâàòåëüñêèé ôàéë exrc: \""
 
-#: version.c:929
+#: version.c:915
 msgid "  system gvimrc file: \""
 msgstr "           îáùåñèñòåìíûé ôàéë gvimrc: \""
 
-#: version.c:933
+#: version.c:919
 msgid "    user gvimrc file: \""
 msgstr "        ïîëüçîâàòåëüñêèé ôàéë gvimrc: \""
 
-#: version.c:937
+#: version.c:923
 msgid "2nd user gvimrc file: \""
 msgstr " âòîðîé ïîëüçîâàòåëüñêèé ôàéë gvimrc: \""
 
-#: version.c:942
+#: version.c:928
 msgid "3rd user gvimrc file: \""
 msgstr " òðåòèé ïîëüçîâàòåëüñêèé ôàéë gvimrc: \""
 
-#: version.c:949
+#: version.c:935
 msgid "    system menu file: \""
 msgstr "             îáùåñèñòåìíûé ôàéë ìåíþ: \""
 
-#: version.c:957
+#: version.c:943
 msgid "  fall-back for $VIM: \""
 msgstr "          çíà÷åíèå $VIM ïî óìîë÷àíèþ: \""
 
-#: version.c:963
+#: version.c:949
 msgid " f-b for $VIMRUNTIME: \""
 msgstr "   çíà÷åíèå $VIMRUNTIME ïî óìîë÷àíèþ: \""
 
-#: version.c:967
+#: version.c:953
 msgid "Compilation: "
 msgstr "Ïàðàìåòðû êîìïèëÿöèè: "
 
-#: version.c:973
+#: version.c:959
 msgid "Compiler: "
 msgstr "Êîìïèëÿòîð: "
 
-#: version.c:978
+#: version.c:964
 msgid "Linking: "
 msgstr "Ñáîðêà: "
 
-#: version.c:983
+#: version.c:969
 msgid "  DEBUG BUILD"
 msgstr "  ÎÒËÀÄÎ×ÍÀß ÑÁÎÐÊÀ"
 
-#: version.c:1022
+#: version.c:1008
 msgid "VIM - Vi IMproved"
 msgstr "VIM ::: Vi IMproved (Óëó÷øåííûé Vi) ::: Ðóññêàÿ âåðñèÿ"
 
-#: version.c:1024
+#: version.c:1010
 msgid "version "
 msgstr "âåðñèÿ "
 
-#: version.c:1025
+#: version.c:1011
 msgid "by Bram Moolenaar et al."
 msgstr "Áðàì Ìîîëåíààð è äðóãèå"
 
-#: version.c:1029
+#: version.c:1015
 msgid "Vim is open source and freely distributable"
 msgstr "Vim ýòî ñâîáîäíî ðàñïðîñòðàíÿåìàÿ ïðîãðàììà ñ îòêðûòûì êîäîì"
 
-#: version.c:1031
+#: version.c:1017
 msgid "Help poor children in Uganda!"
 msgstr "Áåäíûì äåòÿì â Óãàíäå íóæíà âàøà ïîìîùü!"
 
-#: version.c:1032
+#: version.c:1018
 msgid "type  :help iccf<Enter>       for information "
 msgstr "íàáåðèòå :help iccf<Enter>       äëÿ äîïîëíèòåëüíîé èíôîðìàöèè"
 
-#: version.c:1034
+#: version.c:1020
 msgid "type  :q<Enter>               to exit         "
 msgstr "íàáåðèòå :q<Enter>               ÷òîáû âûéòè èç ïðîãðàììû     "
 
-#: version.c:1035
+#: version.c:1021
 msgid "type  :help<Enter>  or  <F1>  for on-line help"
 msgstr "íàáåðèòå :help<Enter> èëè <F1>   äëÿ ïîëó÷åíèÿ ñïðàâêè        "
 
-#: version.c:1036
+#: version.c:1022
 msgid "type  :help version6<Enter>   for version info"
 msgstr "íàáåðèòå :help version6<Enter>   ÷òîáû óçíàòü îá ýòîé âåðñèè  "
 
-#: version.c:1039
+#: version.c:1025
 msgid "Running in Vi compatible mode"
 msgstr "Ðàáîòà â Vi-ñîâìåñòèìîì ðåæèìå"
 
-#: version.c:1040
+#: version.c:1026
 msgid "type  :set nocp<Enter>        for Vim defaults"
 msgstr "íàáåðèòå :set nocp<Enter>        äëÿ ïåðåõîäà â ðåæèì Vim     "
 
-#: version.c:1041
+#: version.c:1027
 msgid "type  :help cp-default<Enter> for info on this"
 msgstr "íàáåðèòå :help cp-default<Enter> äëÿ äîïîëíèòåëüíîé èíôîðìàöèè"
 
-#: version.c:1056
+#: version.c:1042
 msgid "menu  Help->Orphans           for information    "
 msgstr "ìåíþ Ñïðàâêà->Ñèðîòû             äëÿ ïîëó÷åíèÿ èíôîðìàöèè     "
 
-#: version.c:1058
+#: version.c:1044
 msgid "Running modeless, typed text is inserted"
 msgstr "Áåçðåæèìíàÿ ðàáîòû, âñòàâêà ââåä¸ííîãî òåêñòà"
 
-#: version.c:1059
+#: version.c:1045
 msgid "menu  Edit->Global Settings->Toggle Insert Mode  "
 msgstr "ìåíþ Ïðàâêà->Îáùèå Íàñòðîéêè->Ðåæèì Âñòàâêè                     "
 
-#: version.c:1060
+#: version.c:1046
 msgid "                              for two modes      "
 msgstr "                                 äëÿ äâóõ ðåæèìîâ               "
 
-#: version.c:1064
+#: version.c:1050
 msgid "menu  Edit->Global Settings->Toggle Vi Compatible"
 msgstr "ìåíþ Ïðàâêà->Îáùèå Íàñòðîéêè->Ñîâìåñòèìîñòü ñ Vi                "
 
-#: version.c:1065
+#: version.c:1051
 msgid "                              for Vim defaults   "
 msgstr "                                 äëÿ ïåðåõîäà â ðåæèì Vim       "
 
-#: version.c:1112
+#: version.c:1098
 msgid "Sponsor Vim development!"
 msgstr "Ïîìîãèòå â ðàçðàáîòêå Vim!"
 
-#: version.c:1113
+#: version.c:1099
 msgid "Become a registered Vim user!"
 msgstr "Ñòàíüòå çàðåãèñòðèðîâàííûì ïîëüçîâàòåëåì Vim!"
 
-#: version.c:1116
+#: version.c:1102
 msgid "type  :help sponsor<Enter>    for information "
 msgstr "íàáåðèòå :help sponsor<Enter>    äëÿ ïîëó÷åíèÿ èíôîðìàöèè     "
 
-#: version.c:1117
+#: version.c:1103
 msgid "type  :help register<Enter>   for information "
 msgstr "íàáåðèòå :help register<Enter>   äëÿ ïîëó÷åíèÿ èíôîðìàöèè     "
 
-#: version.c:1119
+#: version.c:1105
 msgid "menu  Help->Sponsor/Register  for information    "
 msgstr "ìåíþ Ñïðàâêà->Ïîìîùü/Ðåãèñòðàöèÿ äëÿ ïîëó÷åíèÿ èíôîðìàöèè       "
 
-#: version.c:1129
+#: version.c:1115
 msgid "WARNING: Windows 95/98/ME detected"
 msgstr "ÏÐÅÄÓÏÐÅÆÄÅÍÈÅ: îáíàðóæåíà Windows 95/98/ME"
 
-#: version.c:1132
+#: version.c:1118
 msgid "type  :help windows95<Enter>  for info on this"
 msgstr "íàáåðèòå :help windows95<Enter>  äëÿ ïîëó÷åíèÿ èíôîðìàöèè     "
 
@@ -6202,7 +6211,7 @@ msgstr "E446: 
 msgid "E447: Can't find file \"%s\" in path"
 msgstr "E447: Ôàéë \"%s\" íå íàéäåí ïî èçâåñòíûì ïóòÿì"
 
-#: if_perl.xs:326 globals.h:1232
+#: if_perl.xs:326 globals.h:1241
 #, c-format
 msgid "E370: Could not load library %s"
 msgstr "E370: Íåâîçìîæíî çàãðóçèòü áèáëèîòåêó %s"
@@ -6254,7 +6263,7 @@ msgstr "
 msgid "Path length too long!"
 msgstr "Ñëèøêîì äëèííûé ïóòü!"
 
-#: globals.h:1022
+#: globals.h:1031
 msgid "--No lines in buffer--"
 msgstr "-- Íåò ñòðîê â áóôåðå --"
 
@@ -6262,397 +6271,395 @@ msgstr "-- 
 #. * The error messages that can be shared are included here.
 #. * Excluded are errors that are only used once and debugging messages.
 #.
-#: globals.h:1185
+#: globals.h:1194
 msgid "E470: Command aborted"
 msgstr "E470: Âûïîëíåíèå êîìàíäû ïðåðâàíî"
 
-#: globals.h:1186
+#: globals.h:1195
 msgid "E471: Argument required"
 msgstr "E471: Òðåáóåòñÿ óêàçàòü ïàðàìåòð"
 
-#: globals.h:1187
+#: globals.h:1196
 msgid "E10: \\ should be followed by /, ? or &"
 msgstr "E10: Ïîñëå \\ äîëæåí èäòè ñèìâîë /, ? èëè &"
 
-#: globals.h:1189
+#: globals.h:1198
 msgid "E11: Invalid in command-line window; <CR> executes, CTRL-C quits"
 msgstr ""
 "E11: Íåäîïóñòèìî â îêíå êîìàíäíîé ñòðîêè; <CR> âûïîëíåíèå, CTRL-C âûõîä"
 
-#: globals.h:1191
+#: globals.h:1200
 msgid "E12: Command not allowed from exrc/vimrc in current dir or tag search"
 msgstr ""
 "E12: Êîìàíäà íå äîïóñêàåòñÿ â exrc/vimrc â òåêóùåì êàòàëîãå èëè ïîèñêå ìåòîê"
 
-#: globals.h:1193
+#: globals.h:1202
 msgid "E171: Missing :endif"
 msgstr "E171: Îòñóòñòâóåò êîìàíäà :endif"
 
-#: globals.h:1194
+#: globals.h:1203
 msgid "E600: Missing :endtry"
 msgstr "E600: Îòñóòñòâóåò êîìàíäà :endtry"
 
-#: globals.h:1195
+#: globals.h:1204
 msgid "E170: Missing :endwhile"
 msgstr "E170: Îòñóòñòâóåò êîìàíäà :endwhile"
 
-#: globals.h:1196
+#: globals.h:1205
 msgid "E588: :endwhile without :while"
 msgstr "E588: Êîìàíäà :endwhile áåç ïàðíîé êîìàíäû :while"
 
-#: globals.h:1198
+#: globals.h:1207
 msgid "E13: File exists (add ! to override)"
 msgstr "E13: Ôàéë ñóùåñòâóåò (äëÿ ïåðåçàïèñè äîáàâüòå !)"
 
-#: globals.h:1199
+#: globals.h:1208
 msgid "E472: Command failed"
 msgstr "E472: Íå óäàëîñü âûïîëíèòü êîìàíäó"
 
-#: globals.h:1201
+#: globals.h:1210
 #, c-format
 msgid "E234: Unknown fontset: %s"
 msgstr "E234: Íåèçâåñòíûé øðèôòîâîé íàáîð: %s"
 
-#: globals.h:1205
+#: globals.h:1214
 #, c-format
 msgid "E235: Unknown font: %s"
 msgstr "E235: Íåèçâåñòíûé øðèôò: %s"
 
-#: globals.h:1208
+#: globals.h:1217
 #, c-format
 msgid "E236: Font \"%s\" is not fixed-width"
 msgstr "E236: Øðèôò \"%s\" íå ÿâëÿåòñÿ ìîíîøèðèííûì øðèôòîì"
 
-#: globals.h:1210
+#: globals.h:1219
 msgid "E473: Internal error"
 msgstr "E473: Âíóòðåííÿÿ îøèáêà"
 
-#: globals.h:1211
+#: globals.h:1220
 msgid "Interrupted"
 msgstr "Ïðåðâàíî"
 
-#: globals.h:1212
+#: globals.h:1221
 msgid "E14: Invalid address"
 msgstr "E14: Íåäîïóñòèìûé àäðåñ"
 
-#: globals.h:1213
+#: globals.h:1222
 msgid "E474: Invalid argument"
 msgstr "E474: Íåäîïóñòèìûé àðãóìåíò"
 
-#: globals.h:1214
+#: globals.h:1223
 #, c-format
 msgid "E475: Invalid argument: %s"
 msgstr "E475: Íåäîïóñòèìûé àðãóìåíò: %s"
 
-#: globals.h:1216
+#: globals.h:1225
 #, c-format
 msgid "E15: Invalid expression: %s"
 msgstr "E15: Íåäîïóñòèìîå âûðàæåíèå: %s"
 
-#: globals.h:1218
+#: globals.h:1227
 msgid "E16: Invalid range"
 msgstr "E16: Íåäîïóñòèìûé äèàïàçîí"
 
-#: globals.h:1219
+#: globals.h:1228
 msgid "E476: Invalid command"
 msgstr "E476: Íåäîïóñòèìàÿ êîìàíäà"
 
-#: globals.h:1221
+#: globals.h:1230
 #, c-format
 msgid "E17: \"%s\" is a directory"
 msgstr "E17: \"%s\" ÿâëÿåòñÿ êàòàëîãîì"
 
-#: globals.h:1224
+#: globals.h:1233
 msgid "E18: Unexpected characters before '='"
 msgstr "E18: Ïåðåä '=' îáíàðóæåíû íåîæèäàííûå ñèìâîëû"
 
-#: globals.h:1227
+#: globals.h:1236
 #, c-format
 msgid "E364: Library call failed for \"%s()\""
 msgstr "E364: Íåóäà÷íûé âûçîâ ôóíêöèè \"%s()\" èç áèáëèîòåêè"
 
-#: globals.h:1233
+#: globals.h:1242
 #, c-format
 msgid "E448: Could not load library function %s"
 msgstr "E448: Íå óäàëîñü çàãðóçèòü ôóíêöèþ %s èç áèáëèîòåêè"
 
-#: globals.h:1235
+#: globals.h:1244
 msgid "E19: Mark has invalid line number"
 msgstr "E19: Îòìåòêà óêàçûâàåò íà íåïðàâèëüíûé íîìåð ñòðîêè"
 
-#: globals.h:1236
+#: globals.h:1245
 msgid "E20: Mark not set"
 msgstr "Îòìåòêà íå îïðåäåëåíà"
 
-#: globals.h:1237
+#: globals.h:1246
 msgid "E21: Cannot make changes, 'modifiable' is off"
 msgstr "E21: Èçìåíåíèÿ íåâîçìîæíû, òàê êàê îòêëþ÷åíà îïöèÿ 'modifiable'"
 
-#: globals.h:1238
+#: globals.h:1247
 msgid "E22: Scripts nested too deep"
 msgstr "E22: Ñëèøêîì ãëóáîêî âëîæåííûå ñöåíàðèè"
 
-#: globals.h:1239
+#: globals.h:1248
 msgid "E23: No alternate file"
 msgstr "E23: Ñîñåäíèé ôàéë íå ñóùåñòâóåò"
 
-#: globals.h:1240
+#: globals.h:1249
 msgid "E24: No such abbreviation"
 msgstr "E24: Íåò òàêîãî ñîêðàùåíèÿ"
 
-#: globals.h:1241
+#: globals.h:1250
 msgid "E477: No ! allowed"
 msgstr "E477: ! íå äîïóñêàåòñÿ"
 
-#: globals.h:1243
+#: globals.h:1252
 msgid "E25: GUI cannot be used: Not enabled at compile time"
 msgstr ""
 "E25: Âîçìîæíîñòü èñïîëüçîâàíèÿ ãðàôè÷åñêîãî èíòåðôåéñà âûêëþ÷åíà ïðè "
 "êîìïèëÿöèè"
 
-#: globals.h:1246
+#: globals.h:1255
 msgid "E26: Hebrew cannot be used: Not enabled at compile time\n"
 msgstr "E26: Èâðèò âûêëþ÷åí ïðè êîìïèëÿöèè\n"
 
-#: globals.h:1249
+#: globals.h:1258
 msgid "E27: Farsi cannot be used: Not enabled at compile time\n"
 msgstr "E27: Ôàðñè âûêëþ÷åíî ïðè êîìïèëÿöèè\n"
 
-#: globals.h:1252
+#: globals.h:1261
 msgid "E800: Arabic cannot be used: Not enabled at compile time\n"
 msgstr "E800: Àðàáñêèé âûêëþ÷åí ïðè êîìïèëÿöèè\n"
 
-#: globals.h:1255
+#: globals.h:1264
 #, c-format
 msgid "E28: No such highlight group name: %s"
 msgstr "E28: Ãðóïïà ïîäñâåòêè ñèíòàêñèñà %s íå ñóùåñòâóåò"
 
-#: globals.h:1257
+#: globals.h:1266
 msgid "E29: No inserted text yet"
 msgstr "E29: Ïîêà íåò âñòàâëåííîãî òåêñòà"
 
-#: globals.h:1258
+#: globals.h:1267
 msgid "E30: No previous command line"
 msgstr "E30: Ïðåäûäóùåé êîìàíäíîé ñòðîêè íåò"
 
-#: globals.h:1259
+#: globals.h:1268
 msgid "E31: No such mapping"
 msgstr "E31: Òàêîé ïðèâÿçêè íå ñóùåñòâóåò"
 
-#: globals.h:1260
+#: globals.h:1269
 msgid "E479: No match"
 msgstr "E479: Íåò ñîîòâåòñòâèÿ"
 
-#: globals.h:1261
+#: globals.h:1270
 #, c-format
 msgid "E480: No match: %s"
 msgstr "E480: Íåò ñîîòâåòñòâèÿ: %s"
 
-#: globals.h:1262
+#: globals.h:1271
 msgid "E32: No file name"
 msgstr "E32: Íåò èìåíè ôàéëà"
 
-#: globals.h:1263
+#: globals.h:1272
 msgid "E33: No previous substitute regular expression"
 msgstr "E33: Íåò ïðåäûäóùåãî ðåãóëÿðíîãî âûðàæåíèÿ äëÿ çàìåíû"
 
-#: globals.h:1264
+#: globals.h:1273
 msgid "E34: No previous command"
 msgstr "E34: Íåò ïðåäûäóùåé êîìàíäû"
 
-#: globals.h:1265
+#: globals.h:1274
 msgid "E35: No previous regular expression"
 msgstr "E35: Íåò ïðåäûäóùåãî ðåãóëÿðíîãî âûðàæåíèÿ"
 
-#: globals.h:1266
+#: globals.h:1275
 msgid "E481: No range allowed"
 msgstr "E481: Èñïîëüçîâàíèå äèàïàçîíà íå äîïóñêàåòñÿ"
 
-#: globals.h:1268
+#: globals.h:1277
 msgid "E36: Not enough room"
 msgstr "E36: Íåäîñòàòî÷íî ìåñòà"
 
-#: globals.h:1271
+#: globals.h:1280
 #, c-format
 msgid "E247: no registered server named \"%s\""
 msgstr "E247: ñåðâåð \"%s\" íå çàðåãèñòðèðîâàí"
 
-#: globals.h:1273
+#: globals.h:1282
 #, c-format
 msgid "E482: Can't create file %s"
 msgstr "E482: Íåâîçìîæíî ñîçäàòü ôàéë %s"
 
-#: globals.h:1274
+#: globals.h:1283
 msgid "E483: Can't get temp file name"
 msgstr "E483: Íåâîçìîæíî ïîëó÷èòü èìÿ âðåìåííîãî ôàéëà"
 
-#: globals.h:1275
+#: globals.h:1284
 #, c-format
 msgid "E484: Can't open file %s"
 msgstr "E484: Íåâîçìîæíî îòêðûòü ôàéë %s"
 
-#: globals.h:1276
+#: globals.h:1285
 #, c-format
 msgid "E485: Can't read file %s"
 msgstr "E485: Íåâîçìîæíî ïðî÷èòàòü ôàéë %s"
 
-#: globals.h:1277
+#: globals.h:1286
 msgid "E37: No write since last change (add ! to override)"
 msgstr "E37: Èçìåíåíèÿ íå ñîõðàíåíû (äîáàâüòå !, ÷òîáû îáîéòè ïðîâåðêó)"
 
-#: globals.h:1278
+#: globals.h:1287
 msgid "E38: Null argument"
 msgstr "E38: Íóëåâîé àðãóìåíò"
 
-#: globals.h:1280
+#: globals.h:1289
 msgid "E39: Number expected"
 msgstr "E39: Òðåáóåòñÿ ÷èñëî"
 
-#: globals.h:1283
+#: globals.h:1292
 #, c-format
 msgid "E40: Can't open errorfile %s"
 msgstr "E40: Íå óäàëîñü îòêðûòü ôàéë îøèáîê %s"
 
-#: globals.h:1286
+#: globals.h:1295
 msgid "E233: cannot open display"
 msgstr "E233: íåâîçìîæíî îòêðûòü äèñïëåé"
 
-#: globals.h:1288
+#: globals.h:1297
 msgid "E41: Out of memory!"
 msgstr "E41: Íå õâàòàåò ïàìÿòè!"
 
-#: globals.h:1290
+#: globals.h:1299
 msgid "Pattern not found"
 msgstr "Øàáëîí íå íàéäåí"
 
-#: globals.h:1292
+#: globals.h:1301
 #, c-format
 msgid "E486: Pattern not found: %s"
 msgstr "E486: Øàáëîí íå íàéäåí: %s"
 
-#: globals.h:1293
+#: globals.h:1302
 msgid "E487: Argument must be positive"
 msgstr "E487: Ïàðàìåòð äîëæåí áûòü ïîëîæèòåëüíûì ÷èñëîì"
 
-#: globals.h:1295
+#: globals.h:1304
 msgid "E459: Cannot go back to previous directory"
 msgstr "E459: Âîçâðàò â ïðåäûäóùèé êàòàëîã íåâîçìîæåí"
 
-#: globals.h:1299
+#: globals.h:1308
 msgid "E42: No Errors"
 msgstr "E42: Îøèáîê íåò"
 
-#: globals.h:1301
+#: globals.h:1310
 msgid "E43: Damaged match string"
 msgstr "E43: Ïîâðåæäåíà ñòðîêà ñîîòâåòñòâèÿ"
 
-#: globals.h:1302
+#: globals.h:1311
 msgid "E44: Corrupted regexp program"
 msgstr "E44: Ïðîãðàììà îáðàáîòêè ðåãóëÿðíûõ âûðàæåíèé ïîâðåæäåíà"
 
-#: globals.h:1303
+#: globals.h:1312
 msgid "E45: 'readonly' option is set (add ! to override)"
 msgstr ""
 "E45: Âêëþ÷åíà îïöèÿ 'readonly' (äîáàâüòå !, ÷òîáû íå îáðàùàòü âíèìàíèÿ)"
 
-#: globals.h:1305
+#: globals.h:1314
 #, c-format
 msgid "E46: Cannot set read-only variable \"%s\""
 msgstr "E46: Íåâîçìîæíî èçìåíèòü äîñòóïíóþ òîëüêî äëÿ ÷òåíèÿ ïåðåìåííóþ \"%s\""
 
-#: globals.h:1308
+#: globals.h:1317
 msgid "E47: Error while reading errorfile"
 msgstr "E47: Îøèáêà ïðè ÷òåíèè ôàéëà îøèáîê"
 
-#: globals.h:1311
+#: globals.h:1320
 msgid "E48: Not allowed in sandbox"
 msgstr "E48: Íå äîïóñêàåòñÿ â ïåñî÷íèöå"
 
-#: globals.h:1313
+#: globals.h:1322
 msgid "E523: Not allowed here"
 msgstr "E523: Çäåñü íå ðàçðåøåíî"
 
-#: globals.h:1316
+#: globals.h:1325
 msgid "E359: Screen mode setting not supported"
 msgstr "E359: Äàííûé ðåæèì ýêðàíà íå ïîääåðæèâàåòñÿ"
 
-#: globals.h:1318
+#: globals.h:1327
 msgid "E49: Invalid scroll size"
 msgstr "E49: Íåäîïóñòèìûé ðàçìåð ïðîêðóòêè"
 
-#: globals.h:1319
+#: globals.h:1328
 msgid "E91: 'shell' option is empty"
 msgstr "E91: Çíà÷åíèåì îïöèè 'shell' ÿâëÿåòñÿ ïóñòàÿ ñòðîêà"
 
-#: globals.h:1321
+#: globals.h:1330
 msgid "E255: Couldn't read in sign data!"
 msgstr "E255: Íåâîçìîæíî ïðî÷èòàòü äàííûå î çíà÷êàõ!"
 
-#: globals.h:1323
+#: globals.h:1332
 msgid "E72: Close error on swap file"
 msgstr "E72: Îøèáêà çàêðûòèÿ ñâîï-ôàéëà"
 
-#: globals.h:1324
+#: globals.h:1333
 msgid "E73: tag stack empty"
 msgstr "E73: Ñòåê ìåòîê ïóñòîé"
 
-#: globals.h:1325
+#: globals.h:1334
 msgid "E74: Command too complex"
 msgstr "E74: Ñëèøêîì ñëîæíàÿ êîìàíäà"
 
-#: globals.h:1326
+#: globals.h:1335
 msgid "E75: Name too long"
 msgstr "E75: Ñëèøêîì äëèííîå èìÿ"
 
-#: globals.h:1327
+#: globals.h:1336
 msgid "E76: Too many ["
 msgstr "E76: Ñëèøêîì ìíîãî ñèìâîëîâ ["
 
-#: globals.h:1328
+#: globals.h:1337
 msgid "E77: Too many file names"
 msgstr "E77: Ñëèøêîì ìíîãî èì¸í ôàéëîâ"
 
-#: globals.h:1329
+#: globals.h:1338
 msgid "E488: Trailing characters"
 msgstr "E488: Ëèøíèå ñèìâîëû íà õâîñòå"
 
-#: globals.h:1330
+#: globals.h:1339
 msgid "E78: Unknown mark"
 msgstr "E78: Íåèçâåñòíàÿ îòìåòêà"
 
-#: globals.h:1331
+#: globals.h:1340
 msgid "E79: Cannot expand wildcards"
 msgstr "E79: Íåâîçìîæíî âûïîëíèòü ïîäñòàíîâêó ïî ìàñêå"
 
-#: globals.h:1333
+#: globals.h:1342
 msgid "E591: 'winheight' cannot be smaller than 'winminheight'"
 msgstr ""
 "E591: Çíà÷åíèå îïöèè 'winheight' íå ìîæåò áûòü ìåíüøå çíà÷åíèÿ 'winminheight'"
 
-#: globals.h:1335
+#: globals.h:1344
 msgid "E592: 'winwidth' cannot be smaller than 'winminwidth'"
 msgstr ""
 "E592: Çíà÷åíèå îïöèè 'winwidth' íå ìîæåò áûòü ìåíüøå çíà÷åíèÿ 'winminwidth'"
 
-#: globals.h:1338
+#: globals.h:1347
 msgid "E80: Error while writing"
 msgstr "E80: Îøèáêà ïðè çàïèñè"
 
-#: globals.h:1339
+#: globals.h:1348
 msgid "Zero count"
 msgstr "Íóëåâîå çíà÷åíèå ñ÷¸ò÷èêà"
 
-#: globals.h:1341
+#: globals.h:1350
 msgid "E81: Using <SID> not in a script context"
 msgstr "E81: Èñïîëüçîâàíèå <SID> âíå êîíòåêñòà ñöåíàðèÿ"
 
-#: globals.h:1344
+#: globals.h:1353
 msgid "E449: Invalid expression received"
 msgstr "E449: Ïîëó÷åíî íåäîïóñòèìîå âûðàæåíèå"
 
-#: globals.h:1347
+#: globals.h:1356
 msgid "E463: Region is guarded, cannot modify"
 msgstr "E463: Íåâîçìîæíî èçìåíèòü îõðàíÿåìóþ îáëàñòü"
 
-#~ msgid "\"\n"
-#~ msgstr "\"\n"
diff --git a/src/proto/eval.pro b/src/proto/eval.pro
index c1dfbb8e91..83e10abfc7 100644
--- a/src/proto/eval.pro
+++ b/src/proto/eval.pro
@@ -11,6 +11,7 @@ void eval_diff __ARGS((char_u *origfile, char_u *newfile, char_u *outfile));
 void eval_patch __ARGS((char_u *origfile, char_u *difffile, char_u *outfile));
 int eval_to_bool __ARGS((char_u *arg, int *error, char_u **nextcmd, int skip));
 char_u *eval_to_string_skip __ARGS((char_u *arg, char_u **nextcmd, int skip));
+int skip_expr __ARGS((char_u **pp));
 char_u *eval_to_string __ARGS((char_u *arg, char_u **nextcmd));
 char_u *eval_to_string_safe __ARGS((char_u *arg, char_u **nextcmd));
 int eval_to_number __ARGS((char_u *expr));
diff --git a/src/proto/ex_cmds.pro b/src/proto/ex_cmds.pro
index 33f105a092..f63fcda81e 100644
--- a/src/proto/ex_cmds.pro
+++ b/src/proto/ex_cmds.pro
@@ -38,6 +38,7 @@ int read_viminfo_sub_string __ARGS((vir_T *virp, int force));
 void write_viminfo_sub_string __ARGS((FILE *fp));
 void prepare_tagpreview __ARGS((void));
 void ex_help __ARGS((exarg_T *eap));
+char_u *check_help_lang __ARGS((char_u *arg));
 int help_heuristic __ARGS((char_u *matched_string, int offset, int wrong_case));
 int find_help_tags __ARGS((char_u *arg, int *num_matches, char_u ***matches, int keep_lang));
 void fix_help_buffer __ARGS((void));
diff --git a/src/quickfix.c b/src/quickfix.c
index 5dbbc1b531..c25a0be3f3 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -1006,6 +1006,7 @@ qf_jump(dir, errornr, forceit)
 #ifdef FEAT_FOLDING
     int			old_KeyTyped = KeyTyped; /* getting file may reset it */
 #endif
+    int			ok = OK;
 
     if (qf_curlist >= qf_listcount || qf_lists[qf_curlist].qf_count == 0)
     {
@@ -1096,6 +1097,42 @@ qf_jump(dir, errornr, forceit)
 	 * window */
 	print_message = FALSE;
 
+    /*
+     * For ":helpgrep" find a help window or open one.
+     */
+    if (qf_ptr->qf_type == 1 && !curwin->w_buffer->b_help)
+    {
+	win_T	*wp;
+	int	n;
+
+	for (wp = firstwin; wp != NULL; wp = wp->w_next)
+	    if (wp->w_buffer != NULL && wp->w_buffer->b_help)
+		break;
+	if (wp != NULL && wp->w_buffer->b_nwindows > 0)
+	    win_enter(wp, TRUE);
+	else
+	{
+	    /*
+	     * Split off help window; put it at far top if no position
+	     * specified, the current window is vertically split and narrow.
+	     */
+	    n = WSP_HELP;
+# ifdef FEAT_VERTSPLIT
+	    if (cmdmod.split == 0 && curwin->w_width != Columns
+						      && curwin->w_width < 80)
+		n |= WSP_TOP;
+# endif
+	    if (win_split(0, n) == FAIL)
+		goto theend;
+
+	    if (curwin->w_height < p_hh)
+		win_setheight((int)p_hh);
+	}
+
+	if (!p_im)
+	    restart_edit = 0;	    /* don't want insert mode in help file */
+    }
+
     /*
      * If currently in the quickfix window, find another window to show the
      * file in.
@@ -1170,8 +1207,28 @@ qf_jump(dir, errornr, forceit)
      */
     old_curbuf = curbuf;
     old_lnum = curwin->w_cursor.lnum;
-    if (qf_ptr->qf_fnum == 0 || buflist_getfile(qf_ptr->qf_fnum,
-		    (linenr_T)1, GETF_SETMARK | GETF_SWITCH, forceit) == OK)
+
+    if (qf_ptr->qf_fnum != 0)
+    {
+	if (qf_ptr->qf_type == 1)
+	{
+	    /* Open help file (do_ecmd() will set b_help flag, readfile() will
+	     * set b_p_ro flag). */
+	    if (!can_abandon(curbuf, forceit))
+	    {
+		EMSG(_(e_nowrtmsg));
+		ok = FALSE;
+	    }
+	    else
+		ok = do_ecmd(qf_ptr->qf_fnum, NULL, NULL, NULL, (linenr_T)1,
+						   ECMD_HIDE + ECMD_SET_HELP);
+	}
+	else
+	    ok = buflist_getfile(qf_ptr->qf_fnum,
+			    (linenr_T)1, GETF_SETMARK | GETF_SWITCH, forceit);
+    }
+
+    if (ok == OK)
     {
 	/* When not switched to another buffer, still need to set pc mark */
 	if (curbuf == old_curbuf)
@@ -2145,11 +2202,19 @@ ex_helpgrep(eap)
     int		fi;
     struct qf_line *prevp = NULL;
     long	lnum;
+#ifdef FEAT_MULTI_LANG
+    char_u	*lang;
+#endif
 
     /* Make 'cpoptions' empty, the 'l' flag should not be used here. */
     save_cpo = p_cpo;
     p_cpo = (char_u *)"";
 
+#ifdef FEAT_MULTI_LANG
+    /* Check for a specified language */
+    lang = check_help_lang(eap->arg);
+#endif
+
     regmatch.regprog = vim_regcomp(eap->arg, RE_MAGIC + RE_STRING);
     regmatch.rm_ic = FALSE;
     if (regmatch.regprog != NULL)
@@ -2172,6 +2237,16 @@ ex_helpgrep(eap)
 	    {
 		for (fi = 0; fi < fcount && !got_int; ++fi)
 		{
+#ifdef FEAT_MULTI_LANG
+		    /* Skip files for a different language. */
+		    if (lang != NULL
+			    && STRNICMP(lang, fnames[fi]
+					    + STRLEN(fnames[fi]) - 3, 2) != 0
+			    && !(STRNICMP(lang, "en", 2) == 0
+				&& STRNICMP("txt", fnames[fi]
+					   + STRLEN(fnames[fi]) - 3, 3) == 0))
+			    continue;
+#endif
 		    fd = fopen((char *)fnames[fi], "r");
 		    if (fd != NULL)
 		    {
@@ -2227,6 +2302,8 @@ ex_helpgrep(eap)
     /* Jump to first match. */
     if (qf_lists[qf_curlist].qf_count > 0)
 	qf_jump(0, 0, FALSE);
+    else
+	EMSG2(_(e_nomatch2), eap->arg);
 }
 
 #endif /* FEAT_QUICKFIX */
diff --git a/src/search.c b/src/search.c
index 9c6cc6dc1f..ace8fa83c1 100644
--- a/src/search.c
+++ b/src/search.c
@@ -3052,13 +3052,16 @@ current_word(oap, count, include, bigword)
 	--count;
     }
 
-    if (include_white && cls() != 0)
+    if (include_white && (cls() != 0
+		 || (curwin->w_cursor.col == 0 && !inclusive)))
     {
 	/*
 	 * If we don't include white space at the end, move the start
 	 * to include some white space there. This makes "daw" work
 	 * better on the last word in a sentence (and "2daw" on last-but-one
-	 * word).  But don't delete white space at start of line (indent).
+	 * word).  Also when "2daw" deletes "word." at the end of the line
+	 * (cursor is at start of next line).
+	 * But don't delete white space at start of line (indent).
 	 */
 	pos = curwin->w_cursor;	/* save cursor position */
 	curwin->w_cursor = start_pos;
-- 
GitLab