*version6.txt*  For Vim version 6.2.  Last change: 2003 Jun 01


		  VIM REFERENCE MANUAL    by Bram Moolenaar


Welcome to Vim Version 6.0!  A large number of features has been added.  This
file mentions all the new items that have been added, changes to existing
features and bug fixes compared to Vim 5.x.

See |vi_diff.txt| for an overview of differences between Vi and Vim 6.0.
See |version4.txt| for differences between Vim 3.0 and Vim 4.0.
See |version5.txt| for differences between Vim 4.0 and Vim 5.0.

INCOMPATIBLE CHANGES			|incompatible-6|

Cursor position in Visual mode		|curpos-visual|
substitute command Vi compatible	|substitute-CR|
global option values introduced		|new-global-values|
'fileencoding' changed			|fileencoding-changed|
Digraphs changed			|digraphs-changed|
Filetype detection changed		|filetypedetect-changed|
Unlisted buffers introduced		|new-unlisted-buffers|
CTRL-U in Command-line mode changed	|CTRL-U-changed|
Ctags gone				|ctags-gone|
Documentation reorganized		|documentation-6|
Modeless selection and clipboard	|modeless-and-clipboard|
Small incompatibilities			|incomp-small-6|

NEW FEATURES

Folding					|new-folding|
Vertically split windows		|new-vertsplit|
Diff mode				|new-diff-mode|
Easy Vim: click-and-type		|new-evim|
User manual				|new-user-manual|
Flexible indenting			|new-indent-flex|
Extended search patterns		|new-searchpat|
UTF-8 support				|new-utf-8|
Multi-language support			|new-multi-lang|
Plugin support				|new-plugins|
Filetype plugins			|new-filetype-plugins|
File browser				|new-file-browser|
Editing files over a network		|new-network-files|
Window for command-line editing		|new-cmdwin|
Debugging mode				|new-debug-mode|
Cursor in virtual position		|new-virtedit|
Debugger interface			|new-debug-itf|
Communication between Vims		|new-vim-server|
Buffer type options			|new-buftype|
Printing				|new-printing|
Ports					|ports-6|
Quickfix extended			|quickfix-6|
Operator modifiers			|new-operator-mod|
Search Path				|new-search-path|
Writing files improved			|new-file-writing|
Argument list				|new-argument-list|
Restore a View				|new-View|
Color schemes				|new-color-schemes|
Various new items			|new-items-6|

IMPROVEMENTS				|improvements-6|

COMPILE TIME CHANGES			|compile-changes-6|

BUG FIXES				|bug-fixes-6|

VERSION 6.1			|version-6.1|
Changed					|changed-6.1|
Added					|added-6.1|
Fixed					|fixed-6.1|

VERSION 6.2			|version-6.2|
Changed					|changed-6.2|
Added					|added-6.2|
Fixed					|fixed-6.2|

==============================================================================
INCOMPATIBLE CHANGES				*incompatible-6*

These changes are incompatible with previous releases.  Check this list if you
run into a problem when upgrading from Vim 5.x to 6.0


Cursor position in Visual mode			*curpos-visual*
------------------------------

When going from one window to another window on the same buffer while in
Visual mode, the cursor position of the other window is adjusted to keep the
same Visual area.  This can be used to set the start of the Visual area in one
window and the end in another.  In vim 5.x the cursor position of the other
window would be used, which could be anywhere and was not very useful.


Substitute command Vi compatible		*substitute-CR*
--------------------------------

The substitute string (the "to" part of the substitute command) has been made
Vi compatible.  Previously a CTRL-V had a special meaning and could be used to
prevent a <CR> to insert a line break.  This made it impossible to insert a
CTRL-V before a line break.  Now a backslash is used to prevent a <CR> to
cause a line break.  Since the number of backslashes is halved, it is still
possible to insert a line break at the end of the line.  This now works just
like Vi, but it's not compatible with Vim versions before 6.0.

When a ":s" command doesn't make any substitutions, it no longer sets the '[
and '] marks.  This is not related to Vi, since it doesn't have these marks.


Global option values introduced			*new-global-values*
-------------------------------

There are now global values for options which are local to a buffer or window.
Previously the local options were copied from one buffer to another.  When
editing another file this could cause option values from a modeline to be used
for the wrong file.  Now the global values are used when entering a buffer
that has not been used before.  Also, when editing another buffer in a window,
the local window options are reset to their global values.  The ":set" command
sets both the local and global values, this is still compatible.  But a
modeline only sets the local value, this is not backwards compatible.

":let &opt = val" now sets the local and global values, like ":set".  New
commands have been added to set the global or local value:
	:let &opt = val		like ":set"
	:let &g:opt = val	like ":setglobal"
	:let &l:opt = val	like ":setlocal"


'fileencoding' changed				*fileencoding-changed*
----------------------

'fileencoding' was used in Vim 5.x to set the encoding used inside all of Vim.
This was a bit strange, because it was local to a buffer and worked for all
buffers.  It could never be different between buffers, because it changed the
way text in all buffers was interpreted.
It is now used for the encoding of the file related to the buffer.  If you
still set 'fileencoding' it is likely to be overwritten by the detected
encoding from 'fileencodings', thus it is "mostly harmless".
The old FileEncoding autocommand now does the same as the new EncodingChanged
event.


Digraphs changed				*digraphs-changed*
----------------

The default digraphs now correspond to RFC1345.  This is very different from
what was used in Vim 5.x. |digraphs|


Filetype detection changed			*filetypedetect-changed*
--------------------------

The filetype detection previously was using the "filetype" autocommand group.
This caused confusion with the FileType event name (case is ignored).  The
group is now called "filetypedetect".  It still works, but if the "filetype"
group is used the autocommands will not be removed by ":filetype off".
   The support for 'runtimepath' has made the "myfiletypefile" and
"mysyntaxfile" mechanism obsolete.  They are still used for backwards
compatibility.

The connection between the FileType event and setting the 'syntax' option was
previously in the "syntax" autocommand group.  That caused confusion with the
Syntax event name.  The group is now called "syntaxset".

The distributed syntax files no longer contain "syntax clear".  That makes it
possible to include one in the other without tricks.  The syntax is now
cleared when the 'syntax' option is set (by an autocommand added from
synload.vim).  This makes the syntax cleared when the value of 'syntax' does
not correspond to a syntax file.  Previously the existing highlighting was
kept.


Unlisted buffers introduced			*new-unlisted-buffers*
---------------------------

There is now a difference between buffers which don't appear in the buffer
list and buffers which are really not in the buffer list.  Commands like
":ls", ":bnext", ":blast" and the Buffers menu will skip buffers not in the
buffer list. |unlisted-buffer|
The 'buflisted' option can be used to make a buffer appear in the buffer list
or not.

Several commands that previously added a buffer to the buffer list now create
an unlisted buffer.  This means that a ":bnext" and ":ball" will not find these
files until they have actually been edited.  For example, buffers used for the
alternative file by ":write file" and ":read file".
   Other commands previously completely deleted a buffer and now only remove
the buffer from the buffer list.  Commands relying on a buffer not to be
present might fail.  For example A ":bdelete" command in an autocommand that
relied on something following to fail (was used in the automatic tests).
|:bwipeout| can be used for the old meaning of ":bdelete".

The BufDelete autocommand event is now triggered when a buffer is removed from
the buffer list.  The BufCreate event is only triggered when a buffer is
created that is added to the buffer list, or when an existing buffer is added
to the buffer list.  BufAdd is a new name for BufCreate.
The new BufNew event is for creating any buffer and BufWipeout for really
deleting a buffer.

When doing Insert mode completion, only buffers in the buffer list are
scanned.  Added the 'U' flag to 'complete' to do completion from unlisted
buffers.

Unlisted buffers are not stored in a viminfo file.


CTRL-U in Command-line mode changed		*CTRL-U-changed*
-----------------------------------

Using CTRL-U when editing the command line cleared the whole line.  Most
shells only delete the characters before the cursor.  Made it work like that.
(Steve Wall)

You can get the old behavior with CTRL-E CTRL-U: >
	:cnoremap <C-U> <C-E><C-U>


Ctags gone					*ctags-gone*
----------

Ctags is no longer part of the Vim distribution.  It's now a grown-up program
by itself, it deserves to be distributed separately.
Ctags can be found here: http://ctags.sf.net/.


Documentation reorganized			*documentation-6*
-------------------------

The documentation has been reorganized, an item may not be where you found it
in Vim 5.x.
- The user manual was added, some items have been moved to it from the
  reference manual.
- The quick reference is now in a separate file (so that it can be printed).

The examples in the documentation were previously marked with a ">" in the
first column.  This made it difficult to copy/paste them.  There is now a
single ">" before the example and it ends at a "<" or a non-blank in the first
column.  This also looks better without highlighting.

'helpfile' is no longer used to find the help tags file.  This allows a user
to add its own help files (e.g., for plugins).


Modeless selection and clipboard		*modeless-and-clipboard*
--------------------------------

The modeless selection is used to select text when Visual mode can't be used,
for example when editing the command line or at the more prompt.
In Vim 5.x the modeless selection was always used.  On MS-Windows this caused
the clipboard to be overwritten, with no way to avoid that.  The modeless
selection now obeys the 'a' and 'A' flags in 'guioptions' and "autoselect" and
"autoselectml" in 'clipboard'.  By default there is no automatic copy on
MS-Windows.  Use the |c_CTRL-Y| command to manually copy the selection.

To get the old behavior back, do this: >

	:set clipboard^=autoselectml guioptions+=A


Small incompatibilities				*incomp-small-6*
-----------------------

'backupdir', 'cdpath', 'directory', 'equalprg', 'errorfile', 'formatprg',
'grepprg', 'helpfile', 'makeef', 'makeprg', 'keywordprg', 'cscopeprg',
'viminfo' and 'runtimepath' can no longer be set from a modeline, for better
security.

Removed '_' from the 'breakat' default: It's commonly used in keywords.

The default for 'mousehide' is on, because this works well for most people.

The Amiga binary is now always compiled with "big" features.  The "big" binary
archive no longer exists.

The items "[RO]", "[+]", "[help]", "[Preview]" and "[filetype]" in
'statusline' no longer have a leading space.

Non-Unix systems: When expanding wildcards for the Vim arguments, don't use
'suffixes'.  It now works as if the shell had expanded the arguments.

The 'lisp', 'smartindent' and 'cindent' options are not switched off when
'paste' is set.  The auto-indenting is disabled when 'paste' is set, but
manual indenting with "=" still works.

When formatting with "=" uses 'cindent' or 'indentexpr' indenting, and there
is no change in indent, this is not counted as a change ('modified' isn't set
and there is nothing to undo).

Report 'modified' as changed when 'fileencoding' or 'fileformat' was set.
Thus it reflects the possibility to abandon the buffer without losing changes.

The "Save As" menu entry now edits the saved file.  Most people expect it to
work like this.

A buffer for a directory is no longer added to the Buffers menu.

Renamed <Return> to <Enter>, since that's what it's called on most keyboards.
Thus it's now the hit-enter prompt instead of the hit-return prompt.
Can map <Enter> just like <CR> or <Return>.

The default for the 'viminfo' option is now '50,"50,h when 'compatible' isn't
set.  Most people will want to use it, including beginners, but it required
setting the option, which isn't that easy.

After using ":colder" the newer error lists are overwritten.  This makes it
possible to use ":grep" to browse in a tree-like way.  Must use ":cnewer 99"
to get the old behavior.

The patterns in 'errorformat' would sometimes ignore case (MS-Windows) and
sometimes not (Unix).  Now case is always ignored.  Add "\C" to the pattern to
match case.

The 16 bit MS-DOS version is now compiled without the +listcmds feature
(buffer list manipulation commands).  They are not often needed and this
executable needs to be smaller.

'sessionoptions' now includes "curdir" by default.  This means that restoring
a session will result in the current directory being restored, instead of
going to the directory where the session file is located.

A session deleted all buffers, deleting all marks.  Now keep the buffer list,
it shouldn't hurt for some existing buffers to remain present.
When the argument list is empty ":argdel *" caused an error message.

No longer put the search pattern from a tag jump in the history.

Use "SpecialKey" highlighting for unprintable characters instead of "NonText".
The idea is that unprintable text or any text that's displayed differently
from the characters in the file is using "SpecialKey", and "NonText" is used
for text that doesn't really exist in the file.

Motif now uses the system default colors for the menu and scrollbar.  Used to
be grey.  It's still possible to set the colors with ":highlight" commands and
resources.

Formatting text with "gq" breaks a paragraph at a non-empty blank line.
Previously the line would be removed, which wasn't very useful.

":normal" does no longer hang when the argument ends in half a command.
Previously Vim would wait for more characters to be typed, without updating
the screen.  Now it pretends an <Esc> was typed.

Bitmaps for the toolbar are no longer searched for in "$VIM/bitmaps" but in
the "bitmaps" directories in 'runtimepath'.

Now use the Cmdline-mode menus for the hit-enter prompt instead of the Normal
mode menus.  This generally works better and allows using the "Copy" menu to
produce CTRL-Y to copy the modeless selection.

Moved the font selection from the Windows to the Edit menu, together with the
other settings.

The default values for 'isfname' include more characters to make "gf" work
better.

Changed the license for the documentation to the Open Publication License.
This seemed fair, considering the inclusion of parts of the Vim book, which is
also published under the OPL.  The downside is that we can't force someone who
would sell copies of the manual to contribute to Uganda.

After  "ayy  don't let  ""yy  or  :let @" = val  overwrite the "a register.
Use the unnamed register instead.

MSDOS: A pattern "*.*" previously also matched a file name without a dot.
This was inconsistent with other versions.

In Insert mode, CTRL-O CTRL-\ CTRL-N {cmd} remains in Normal mode.  Previously
it would go back to Insert mode, thus confusing the meaning of CTRL-\ CTRL-N,
which is supposed to take us to Normal mode (especially in ":amenu").

Allow using ":" commands after an operator.  Could be used to implement a new
movement command.  Thus it no longer aborts a pending operator.

For the Amiga the "-d {device}" argument was possible.  When compiled with the
diff feature, this no longer works.  Use "-dev {device}" instead. |-dev|

Made the default mappings for <S-Insert> in Insert mode insert the text
literally, avoids that special characters like BS cause side effects.

Using ":confirm" applied to the rest of the line.  Now it applies only to the
command right after it.  Thus ":confirm if x | edit | endif" no longer works,
use "if x | confirm edit | endif".  This was the original intention, that it
worked differently was a bug.

==============================================================================
NEW FEATURES

Folding							*new-folding*
-------

Vim can now display a buffer with text folded.  This allows overviewing the
structure of a file quickly.  It is also possible to yank, delete and put
folded text, for example to move a function to another position.

There is a whole bunch of new commands and options related to folding.
See |folding|.


Vertically split windows				*new-vertsplit*
------------------------

Windows can also be split vertically.  This makes it possible to have windows
side by side.  One nice use for this is to compare two similar files (see
|new-diff-mode|).  The 'scrollbind' option can be used to synchronize
scrolling.

A vertical split can be created with the commands:
	:vsplit	  or  CTRL-W v  or CTRL-W CTRL-V	|:vsplit|
	:vnew						|:vnew|
	:vertical {cmd}					|:vertical|
The last one is a modifier, which has a meaning for any command that splits a
window.  For example: >
	:vertical stag main
Will vertically split the window and jump to the tag "main" in the new window.

Moving from window to window horizontally can be done with the |CTRL-W_h| and
|CTRL-W_l| commands.  The |CTRL-W_k| and |CTRL-W_j| commands have been changed
to jump to the window above or below the cursor position.

The vertical and horizontal splits can be mixed as you like.  Resizing windows
is easy when using the mouse, just position the pointer on a status line or
vertical separator and drag it.  In the GUI a special mouse pointer shape
indicates where you can drag a status or separator line.

To resize vertically split windows use the |CTRL-W_<| and |CTRL-W_>| commands.
To make a window the maximum width use the CTRL-W | command |CTRL-W_bar|.

To force a new window to use the full width or height of the Vim window,
these two modifiers are available:
	:topleft {cmd}		New window appears at the top with full
				width or at the left with full height.
	:botright {cmd}		New window appears at the bottom with full
				width or at the right with full height.
This can be combined with ":vertical" to force a vertical split: >
	:vert bot dsplit DEBUG
This will open a window at the far right, occupying the full height of the Vim
window, with the cursor on the first definition of "DEBUG".
The help window is opened at the top, like ":topleft" was used, if the current
window is fewer than 80 characters wide.

A few options can be used to set the preferences for vertically split windows.
They work similar to their existing horizontal equivalents:
	horizontal	vertical ~
	'splitbelow'	'splitright'
	'winheight'	'winwidth'
	'winminheight'	'winminwidth'
It's possible to set 'winminwidth' to zero, so that temporarily unused windows
hardly take up space without closing them.

The new 'eadirection' option tells where 'equalalways' applies:
	:set eadirection=both		both directions
	:set eadirection=ver		equalize window heights
	:set eadirection=hor		equalize windows widths
This can be used to avoid changing window sizes when you want to keep them.

Since windows can become quite narrow with vertical splits, text lines will
often not fit.  The 'sidescrolloff' has been added to keep some context left
and right of the cursor.  The 'listchars' option has been extended with the
"precedes" item, to show a "<" for example, when there is text left off the
screen. (Utz-Uwe Haus)

"-O" command line argument: Like "-o" but split windows vertically. (Scott
Urban)

Added commands to move the current window to the very top (CTRL-W K), bottom
(CTRL-W J), left (CTRL-W H) and right (CTRL-W L).  In the new position the
window uses the full width/height of the screen.

When there is not enough room in the status line for both the file name and
the ruler, use up to half the width for the ruler.  Useful for narrow windows.


Diff mode						*new-diff-mode*
---------

In diff mode Vim shows the differences between two, three or four files.
Folding is used to hide the parts of the file that are equal.
Highlighting is used to show deleted and changed lines.
See |diff-mode|.

An easy way to start in diff mode is to start Vim as "vimdiff file1 file2".
Added the vimdiff manpage.

In a running Vim the |:diffsplit| command starts diff mode for the current
file and another file.  The |:diffpatch| command starts diff mode using the
current file and a patch file.  The |:diffthis| command starts diff mode for
the current window.

Differences can be removed with the |:diffget| and |:diffput| commands.

- The 'diff' option switches diff mode on in a window.
- The |:diffupdate| command refreshes the diffs.
- The 'diffopt' option changes how diffs are displayed.
- The 'diffexpr' option can be set how a diff is to be created.
- The 'patchexpr' option can be set how patch is applied to a file.
- Added the "diff" folding method.  When opening a window for diff-mode, set
  'foldlevel' to zero and 'foldenable' on, to close the folds.
- Added the DiffAdd, DiffChange, DiffDelete and DiffText highlight groups to
  specify the highlighting for differences.  The defaults are ugly...
- Unix: make a vimdiff symbolic link for "make install".
- Removed the now obsolete "vimdiff.vim" script from the distribution.
- Added the "[c" and "]c" commands to move to the next/previous change in diff
  mode.


Easy Vim: click-and-type				*new-evim*
------------------------

eVim stands for "Easy Vim".  This is a separate program, but can also be
started as "vim -y".

This starts Vim with 'insertmode' set to allow click-and-type editing.  The
$VIMRUNTIME/evim.vim script is used to add mappings and set options to be able
to do most things like Notepad.  This is only for people who can't stand two
modes.

eView does the same but in readonly mode.

In the GUI a CTRL-C now only interrupts when busy with something, not when
waiting for a character.  Allows using CTRL-C to copy text to the clipboard.


User manual						*new-user-manual*
-----------

The user manual has been added.  It is organised around editing tasks.  It
reads like a book, from start to end.  It should allow beginners to start
learning Vim.  It helps everybody to learn using the most useful Vim features.
It is much easier to read than the reference manual, but omits details.  See
|user-manual|.

The user manual includes parts of the Vim book by Steve Oualline |frombook|.
It is published under the OPL |manual-copyright|.

When syntax highlighting is not enabled, the characters in the help file which
mark examples ('>' and '<') and header lines ('~') are replaced with a space.

When closing the help window, the window layout is restored from before
opening it, if the window layout didn't change since then.
When opening the help window, put it at the top of the Vim window if the
current window is fewer than 80 characters and not full width.


Flexible indenting					*new-indent-flex*
------------------

Automatic indenting is now possible for any language.  It works with a Vim
script, which makes it very flexible to compute the indent.

The ":filetype indent on" command enables using the provided indent scripts.
This is explained in the user manual:|30.3|.

The 'indentexpr' option is evaluated to get the indent for a line.  The
'indentkeys' option tells when to trigger re-indenting.  Normally these
options are set from an indent script.  Like Syntax files, indent scripts will
be created and maintained by many people.


Extended search patterns				*new-searchpat*
------------------------

Added the possibility to match more than one line with a pattern. (partly by
Loic Grenie)
New items in a search pattern for multi-line matches:
\n		match end-of-line, also in []
\_[]		match characters in range and end-of-line
\_x		match character class and end-of-line
\_.		match any character or end-of-line
\_^		match start-of-line, can be used anywhere in the regexp
\_$		match end-of-line, can be used anywhere in the regexp

Various other new items in search patterns:
\c		ignore case for the whole pattern
\C		match case for the whole pattern
\m		magic on for the following
\M		magic off for the following
\v		make following characters "very magic"
\V		make following characters "very nomagic"

\@!		don't match atom before this.
		Example: "foo\(bar\)\@!" matches "foo " but not "foobar".
\@=		match atom, resulting in  zero-width match
		Example: "foo\(bar\)\@=" matches "foo" in "foobar".
\@<!		don't match preceding atom before the current position
\@<=		match preceding atom before the current position
\@>		match preceding atom as a subexpression

\&		match only when branch before and after it match

\%[]		optionally match a list of atoms; "end\%[if]" matches "end",
		"endi" and "endif"
\%(\)		like \(\), but without creating a back-reference; there can be
		any number of these, overcomes the limit of nine \( \) pairs
\%^		match start-of-file (Chase Tingley)
\%$		match end-of-file (Chase Tingley)
\%#		Match with the cursor position. (Chase Tingley)
\?		Just like "\=" but can't be used in a "?" command.

\%23l		match in line 23
\%<23l		match before line 23
\%>23l		match after line 23
\%23c, \%<23c, \%>23c   match in/before/after column 23
\%23v, \%<23v, \%>23v	match in/before/after virtual column 23


For syntax items:
\z(...\)	external reference match set (in region start pattern)
\z1 - \z9	external reference match use (in region skip or end pattern)
	(Scott Bigham)

\zs		use position as start of match
\ze		use position as end of match

Removed limit of matching only up to 32767 times with *, \+, etc.

Added support to match multi-byte characters. (partly by Muraoka Taro)
Made "\<" and "\>" work for UTF-8. (Muraoka Taro)


UTF-8 support						*new-utf-8*
-------------

Vim can now edit files in UTF-8 encoding.  Up to 31 bit characters can be
used, but only 16 bit characters are displayed.  Up to two combining
characters are supported, they overprint the preceding character.
Double-wide characters are also supported.  See |UTF-8|.

UCS-2, UCS-4 and UTF-16 encodings are supported too, they are converted to
UTF-8 internally.  There is also support for editing Unicode files in a Latin1
environment.  Other encodings are converted with iconv() or an external
converter specified with 'charconvert'.

Many new items for Multi-byte support:
- Added 'encoding' option: specifies character encoding used inside Vim.  It
  can be any 8-bit encoding, some double-byte encodings or Unicode.
  It is initialized from the environment when a supported value is found.
- Added 'fileencoding' and 'fileencodings': specify character coding in a
  file, similar to 'fileformat' and 'fileformats'.
  When 'encoding' is "utf-8" and 'fileencodings' is "utf-8,latin1" this will
  automatically switch to latin1 if a file does not contain valid UTF-8.
- Added 'bomb' option and detection of a BOM at the start of a file.  Can be
  used with "ucs-bom" in 'fileencodings' to automatically detect a Unicode
  file if it starts with a BOM.  Especially useful on MS-Windows (NT and
  2000), which uses ucs-2le files with a BOM (e.g., when exporting the
  registry).
- Added the 'termencoding' option: Specifies the encoding used for the
  terminal.  Useful to put Vim in utf-8 mode while in a non-Unicode locale: >
    :let &termencoding = &encoding
    :set encoding=utf-8
- When 'viminfo' contains the 'c' flag, the viminfo file is converted from the
  'encoding' it was written with to the current 'encoding'.
- Added ":scriptencoding" command: convert lines in a sourced script to
  'encoding'.  Useful for menu files.
- Added 'guifontwide' to specify a font for double-wide characters.
- Added Korean support for character class detection.  Also fix cls() in
  search.c. (Chong-Dae Park)
- Win32: Typing multi-byte characters without IME. (Alexander Smishlajev)
- Win32 with Mingw: compile with iconv library. (Ron Aaron)
- Win32 with MSVC: dynamically load iconv.dll library. (Muraoka Taro)
- Make it possible to build a version with multi-byte and iconv support with
  Borland 5.5.  (Yasuhiro Matsumoto)
- Added 'delcombine' option: Delete combining character separately. (Ron
  Aaron)
- The "xfontset" feature isn't required for "xim".  These are now two
  independent features.
- XIM: enable XIM when typing a language character (Insert mode, Search
  pattern, "f" or "r" command).  Disable XIM when typing a Normal mode
  command.
- When the XIM is active, show "XIM" in the 'showmode' message. (Nam SungHyun)
- Support "CursorIM" for XIM.  (Nam SungHyun)
- Added 'm' flag to 'formatoptions': When wrapping words, allow splitting at
  each multibyte character, not only at a space.
- Made ":syntax keyword" work with multi-byte characters.
- Added support for Unicode upper/lowercase flipping and comparing. (based on
  patch by Raphael Finkel)
  Let "~" on multi-byte characters that have a third case ("title case")
  switch between the three cases. (Raphael Finkel)

Allow defining digraphs for multi-byte characters.
Added RFC1345 digraphs for Unicode.
Most Normal mode commands that accept a character argument, like "r", "t" and
"f" now accept a digraph.  The 'D' flag in 'cpoptions' disables this to remain
Vi compatible.

Added Language mapping and 'keymap' to be able to type multi-byte characters:
- Added the ":lmap" command and friends: Define mappings that are used when
  typing characters in the language of the text.  Also for "r", "t", etc.  In
  Insert and Command-line mode CTRL-^ switches the use of the mappings on/off.
  CTRL-^ also toggles the use of an input method when no language mappings are
  present.  Allows switching the IM back on halfway typing.
- "<char-123>" argument to ":map", allows to specify the decimal, octal or
  hexadecimal value of a character.
- Implemented the 'keymap' option: Load a keymap file.  Uses ":lnoremap" to
  define mappings for the keymap.  The new ":loadkeymap" command is used in
  the keymap file.
- Added 'k' flag in 'statusline': Value of "b:keymap_name" or 'keymap' when
  it's being used.  Uses "<lang>" when no keymap is loaded and ":lmap"s are
  active.  Show this text in the default statusline too.
- Added the 'iminsert' and 'imsearch' options: Specify use of langmap mappings
  and Input Method with an option. (Muraoka Taro)
  Added 'imcmdline' option: When set the input method is always enabled when
  starting to edit a command line.  Useful for a XIM that uses dead keys to
  type accented characters.
  Added 'imactivatekey' option to better control XIM.  (Muraoka Taro)
- When typing a mapping that's not finished yet, display the last character
  under the cursor in Insert mode and Command-line mode.  Looks good for dead
  characters.
- Made the 'langmap' option recognize multi-byte characters.  But mapping only
  works for 8-bit characters.  Helps when using UTF-8.
- Use a different cursor for when ":lmap" mappings are active.  Can specify
  two highlight groups for an item in 'guicursor'.  By default "lCursor" and
  "Cursor" are equal, the user must set a color he likes.
  Use the cursor color for hangul input as well. (Sung-Hyun Nam)
- Show "(lang)" for 'showmode' when language mapping is enabled.
- UTF-8: Made "r" work with a ":lmap" that includes a composing character.
  Also works for "f", which now works to find a character that includes a
  composing character.

Other multi-byte character additions:
- Support double-byte single-width characters for euc-jp: Characters starting
  with 0x8E.  Added ScreenLines2[] to store the second byte.


Multi-language support					*new-multi-lang*
----------------------

The messages used in Vim can be translated.  Several translations are
available.  This uses the gettext mechanism.  It allows adding a translation
without recompiling Vim.  |multi-lang| (partly by Marcin Dalecki)

The translation files are in the src/po directory.  The src/po/README.txt file
explains a few things about doing a translation.

Menu translations are available as well.  This uses the new |:menutranslate|
command.  The translations are found in the runtime directory "lang".  This
allows a user to add a translation.

Added |:language| command to set the language (locale) for messages, time and
character type.  This allows switching languages in Vim without changing the
locale outside of Vim.

Made it possible to have vimtutor use different languages.  (Eduardo Fernandez)
Spanish (Eduardo Fernandez), Italian (Antonio Colombo), Japanese (Yasuhiro
Matsumoto) and French (Adrien Beau) translations are included.
Added "vimtutor.bat": script to start Vim on a copy of the tutor file for
MS-Windows. (Dan Sharp)

- Added v:lang variable to be able to get current language setting.
  (Marcin Dalecki)  Also v:lc_time and v:ctype
- Make it possible to translate the dialogs used by the menus.  Uses global
  "menutrans_" variables.  ":menutrans clear" deletes them.
- removed "broken locale" (Marcin Dalecki).
- Don't use color names in icons, use RGB values.  The names could be
  translated.
- Win32: Added global IME support (Muraoka)
- Win32: Added dynamic loading of IME support.
- ":messages" prints a message about who maintains the messages or the
  translations.  Useful to find out where to make a remark about a wrong
  translation.
- --disable-nls argument for configure: Disable use of gettext(). (Sung-Hyun
  Nam)
- Added NLS support for Win32 with the MingW compiler. (Eduardo Fernandez)
- When available, call bind_textdomain_codeset() to have gettext() translate
  messages to 'encoding'.  This requires GNU gettext 0.10.36 or later.
- Added gettext support for Win32.  This means messages will be translated
  when the locale is set and libintl.dll can be found.  (Muraoka Taro)
  Also made it work with MingW compiler.  (Eduardo Fernandez)
  Detect the language and set $LANG to get the appropriate translated messages
  (if supported).  Also use $LANG to select a language, v:lang is a very
  different kind of name.
- Made gvimext.dll use translated messages, if possible. (Yasuhiro Matsumoto)


Plugin support					*new-plugins*
--------------

To make it really easy to load a Vim script when starting Vim, the "plugin"
runtime directory can be used.  All "*.vim" files in it will be automatically
loaded.  For Unix, the directory "~/.vim/plugin" is used by default.  The
'runtimepath' option can be set to look in other directories for plugins.
|load-plugins| |add-plugin|

The |:runtime| command has been added to load one or more files in
'runtimepath'.

Standard plugins:
netrw.vim - Edit files over a network |new-network-files|
gzip.vim - Edit compressed files
explorer.vim - Browse directories |new-file-browser|

Added support for local help files. |add-local-help|.
When searching for help tags, all "doc/tags" files in 'runtimepath' are used.
Added the ":helptags" command: Generate a tags file for a help directory.
The first line of each help file is automagically added to the "LOCAL
ADDITIONS" section in doc/help.txt.

Added the <unique> argument to ":map": only add a mapping when it wasn't
defined before.

When displaying an option value with 'verbose' set will give a message about
where the option was last set.  Very useful to find out which script did set
the value.

The new |:scriptnames| command displays a list of all scripts that have been
sourced.

GUI: For Athena, Motif and GTK look for a toolbar bitmap in the "bitmaps"
directories in 'runtimepath'.  Allows adding your own bitmaps.


Filetype plugins				*new-filetype-plugins*
-----------------

A new group of files has been added to do settings for specific file types.
These can be options and mappings which are specifically used for one value of
'filetype'.

The files are located in "$VIMRUNTIME/ftplugin".  The 'runtimepath' option
makes it possible to use several sets of plugins: Your own, system-wide,
included in the Vim distribution, etc.

To be able to make this work, several features were added:
- Added the "s:" variables, local to a script.  Avoids name conflicts with
  global variables.  They can be used in the script and in functions,
  autocommands and user commands defined in the script.  They are kept between
  invocations of the same script.  |s:var|
- Added the global value for local options.  This value is used when opening
  a new buffer or editing another file.  The option value specified in a
  modeline or filetype setting is not carried over to another buffer.
  ":set" sets both the local and the global value.
  ":setlocal" sets the local option value only.
  ":setglobal" sets or displays the global value for a local option.
  ":setlocal name<" sets a local option to its global value.
- Added the buffer-local value for some global options: 'equalprg', 'makeprg',
  'errorformat', 'grepprg', 'path', 'dictionary', 'thesaurus', 'tags',
  'include' and 'define'.  This allows setting a local value for these global
  options, without making it incompatible.
- Added mappings and abbreviations local to a buffer: ":map <buffer>".
- In a mapping "<Leader>" can be used to get the value of the "mapleader"
  variable.  This simplifies mappings that use "mapleader".  "<Leader>"
  defaults to "\".  "<LocalLeader>" does the same with "maplocalleader".  This
  is to be used for mappings local to a buffer.
- Added <SID> Script ID to define functions and mappings local to a script.
- Added <script> argument to ":noremap" and ":noremenu": Only remap
  script-local mappings.  Avoids that mappings from other scripts get in the
  way, but does allow using mappings defined in the script.
- User commands can be local to a buffer: ":command -buffer".

The new ":setfiletype" command is used in the filetype detection autocommands,
to avoid that 'filetype' is set twice.


File browser						*new-file-browser*
------------

When editing a directory, the explorer plugin will list the files in the
directory.  Pressing <Enter> on a file name edits that file.  Pressing <Enter>
on a directory moves the browser to that directory.

There are several other possibilities, such as opening a file in the preview
window, renaming files and deleting files.

See |file-explorer|.


Editing files over a network				*new-network-files*
----------------------------

Files starting with scp://, rcp://, ftp:// and http:// are recognized as
remote files.  An attempt is made to access these files with the indicated
method.  For http:// only reading is possible, for the others writing is also
supported.  Uses the netrw.vim script as a standard "plugin". |netrw|

Made "gf" work on a URL.  It no longer assumes the file is local on the
computer (mostly didn't work anyway, because the full path was required).
Adjusted test2 for this.

Allow using a URL in 'path'.  Makes ":find index.html" work.

GTK: Allow dropping a http:// and ftp:// URL on Vim.  The netrw plugin takes
care of downloading the file. (MiKael Berthe)


Window for command-line editing				*new-cmdwin*
-------------------------------

The Command-line window can be used to edit a command-line with Normal and
Insert mode commands.  When it is opened it contains the history.  This allows
copying parts of previous command lines. |cmdwin|

The command-line window can be opened from the command-line with the key
specified by the 'cedit' option (like Nvi).  It can also be opened directly
from Normal mode with "q:", "q/" and "q?".

The 'cmdwinheight' is used to specify the initial height of the window.

In Insert mode CTRL-X CTRL-V can be used to complete an Ex command line, like
it's done on the command-line.  This is also useful for writing Vim scripts!

Additionally, there is "improved Ex mode".  Entered when Vim is started as
"exim" or "vim -E", and with the "gQ" command.  Works like repeated use of
":", with full command-line editing and completion. (Ulf Carlsson)


Debugging mode						*new-debug-mode*
--------------

In debugging mode sourced scripts and user functions can be executed line by
line.  There are commands to step over a command or step into it. |debug-mode|

Breakpoints can be set to run until a certain line in a script or user
function is executed. |:breakadd|

Debugging can be started with ":debug {cmd}" to debug what happens when a
command executes.  The |-D| argument can be used to debug while starting up.


Cursor in virtual position				*new-virtedit*
--------------------------

Added the 'virtualedit' option: Allow positioning the cursor where there is no
actual character in Insert mode, Visual mode or allways. (Matthias Kramm)
This is especially useful in Visual-block mode.  It allows positioning a
corner of the area where there is no text character.  (Many improvements by
Chase Tingley)


Debugger interface					*new-debug-itf*
------------------

This was originally made to work with Sun Visual Workshop. (Gordon Prieur)
See |debugger.txt|, |sign.txt| and |workshop.txt|.

Added the ":sign" command to define and place signs.  They can be displayed
with two ASCII characters or an icon.  The line after it can be highlighted.
Useful to display breakpoints and the current PC position.

Added the |:wsverb| command to execute debugger commands.

Added balloon stuff: 'balloondelay' and 'ballooneval' options.

Added "icon=" argument for ":menu".  Allows defining a specific icon for a
ToolBar item.


Communication between Vims				*new-vim-server*
--------------------------

Added communication between two Vims.  Makes it possible to send commands from
one Vim to another.  Works for X-Windows and MS-Windows |clientserver|.

Use "--remote" to have files be edited in an already running Vim.
Use "--remote-wait" to do the same and wait for the editing to finish.
Use "--remote-send" to send commands from one Vim to another.
Use "--remote-expr" to have an expression evaluated in another Vim.
Use "--serverlist" to list the currently available Vim servers. (X only)
There are also functions to communicate between the server and the client.
|remote_send()| |remote_expr()|

(X-windows version implemented by Flemming Madsen, MS-Windows version by Paul
Moore)

Added the command server name to the window title, so you can see which server
name belongs to which Vim.

Removed the OleVim directory and SendToVim.exe and EditWithVim.exe from the
distribution.  Can now use "gvim --remote" and "gvim --remote-send", which is
portable.

GTK: Support running Vim inside another window.  Uses the --socketid argument
(Neil Bird)


Buffer type options					*new-buftype*
-------------------

The 'buftype' and 'bufhidden' options have been added.  They can be set to
have different kinds of buffers.  For example:
- 'buftype' = "quickfix": buffer with error list
- 'buftype' = "nofile" and 'bufhidden' = "delete": scratch buffer that will be
  deleted as soon as there is no window displaying it.

'bufhidden' can be used to overrule the 'hidden' option for one buffer.

In combination with 'buflisted' and 'swapfile' this offers the possibility to
use various kinds of special buffers.  See |special-buffers|.


Printing						*new-printing*
--------

Included first implementation of the ":hardcopy" command for printing
to paper.  For MS-Windows any installed printer can be used.  For other
systems a PostScript file is generated, which can be printed with the
'printexpr' option.
(MS-Windows part by Vince Negri, Vipin Aravind, PostScript by Vince Negri and
Mike Williams)

Made ":hardcopy" work with multi-byte characters. (Muraoka Taro, Yasuhiro
Matsumoto)

Added options to tune the way printing works: (Vince Negri)
- 'printoptions' defines various things.
- 'printheader' specifies the header format.  Added "N" field to 'statusline'
  for the page number.
- 'printfont' specifies the font name and attributes.
- 'printdevice' defines the default printer for ":hardcopy!".


Ports							*ports-6*
-----

Port to OS/390 Unix (Ralf Schandl)
- A lot of changes to handle EBCDIC encoding.
- Changed Ctrl('x') to Ctrl_x define.

Included jsbmouse support. (Darren Garth)
Support for dec mouse in Unix. (Steve Wall)

Port to 16-bit MS Windows (Windows 3.1x) (Vince Negri)

Port to QNX.  Supports the Photon GUI, mouse, etc. (Julian Kinraid)

Allow cross-compiling the Win32 version with Make_ming.mak. (Ron Aaron)
Added Python support for compiling with Mingw. (Ron Aaron)

Dos 32 bit: Added support the Windows clipboard. (David Kotchan)

Win32: Dynamically load Perl and Python.  Allows compiling Vim with these
interfaces and will try to find the DLLs at runtime. (Muraoka Taro)

Compiling the Win32 GUI with Cygwin.  Also compile vimrun, dosinst and
uninstall.  (Gerfried)

Mac: Make Vim compile with the free MPW compiler supplied by Apple.  And
updates for CodeWarrior. (Axel Kielhorn)

Added typecasts and ifdefs as a start to make Vim work on Win64 (George
Reilly)


Quickfix extended					*quickfix-6*
-----------------

Added the "error window".  It contains all the errors of the current error
list.  Pressing <Enter> in a line makes Vim jump to that line (in another
window).  This makes it easy to navigate through the error list.
|quickfix-window|.

- |:copen| opens the quickfix window.
- |:cclose| closes the quickfix window.
- |:cwindow| takes care that there is a quickfix window only when there are
  recognized errors. (Dan Sharp)

- Quickfix also knows "info", next to "warning" and "error" types. "%I" can be
  used for the start of a multi-line informational message. (Tony Leneis)
- The "%p" argument can be used in 'errorformat' to get the column number from
  a line where "^" points to the column. (Stefan Roemer)
- When using "%f" in 'errorformat' on a DOS/Windows system, also include "c:"
  in the filename, even when using "%f:".


Operator modifiers					*new-operator-mod*
------------------

Insert "v", "V" or CTRL-V between an operator and a motion command to force
the operator to work characterwise, linewise or blockwise. |o_v|


Search Path						*new-search-path*
-----------

Vim can search in a directory tree not only in downwards but also upwards.
Works for the 'path', 'cdpath' and 'tags' options. (Ralf Schandl)

Also use "**" for 'tags' option. (Ralf Schandl)

Added 'includeexpr', can be used to modify file name found by 'include'
option.
Also use 'includeexpr' for "gf" and "<cfile>" when the file can't be found
without modification.  Useful for doing "gf" on the name after an include or
import statement.

Added the 'cdpath' option: Locations to find a ":cd" argument. (Raf)

Added the 'suffixesadd' option: Suffixes to be added to a file name when
searching for a file for the "gf", "[I", etc. commands.


Writing files improved					*new-file-writing*
----------------------

Added the 'backupcopy' option: Select whether a file is to be copied or
renamed to make a backup file.  Useful on Unix to speed up writing an ordinary
file.  Useful on other systems to preserve file attributes and when editing a
file on a Unix filesystem.

Added the 'autowriteall' option.  Works like 'autowrite' but for more
commands.

Added the 'backupskip' option: A list of file patterns to skip making a backup
file when it matches.  The default for Unix includes "/tmp/*", this makes
"crontab -e" work.

Added support for Access Control Lists (ACL) for FreeBSD and Win32.  The ACL
is copied from the original file to the new file (or the backup if it's
copied).
ACL is also supported for AIX, Solaris and generic POSIX. (Tomas Ogren)
And on SGI.


Argument list						*new-argument-list*
-------------

The support for the argument list has been extended.  It can now be
manipulated to contain the files you want it to contain.

The argument list can now be local to a window.  It is created with the
|:arglocal| command.  The |:argglobal| command can be used to go back to the
global argument list.

The |:argdo| command executes a command on all files in the argument list.

File names can be added to the argument list with |:argadd|.  File names can
be removed with |:argdelete|.

"##" can be used like "#", it is replaced by all the names in the argument
list concatenated.  Useful for ":grep foo ##".

The |:argedit| adds a file to the argument list and edits it.  Like ":argadd"
and then ":edit".


Restore a View						*new-View*
--------------

The ":mkview" command writes a Vim script with the settings and mappings for
one window.  When the created file is sourced, the view of the window is
restored.  It's like ":mksession" for one window.
The View also contains the local argument list and manually created, opened
and closed folds.

Added the ":loadview" command and the 'viewdir' option: Allows for saving and
restoring views of a file with simple commands. ":mkview 1" saves view 1 for
the current file, ":loadview 1" loads it again.  Also allows quickly switching
between two views on one file.  And saving and restoring manual folds and the
folding state.

Added 'viewoptions' to specify how ":mkview" works.

":mksession" now also works fine with vertical splits.  It has been further
improved and restores the view of each window.  It also works properly with
preview and quickfix windows.

'sessionoptions' is used for ":mkview" as well.
Added "curdir" and "sesdir" to 'sessionoptions'.  Allows selection of what
the current directory will be restored to.

The session file now also contains the argument list(s).


Color schemes						*new-color-schemes*
-------------

Support for loading a color scheme.  Added the ":colorscheme" command.
Automatically add menu entries for available schemes.
Should now properly reset the colors when 'background' or 't_Co' is changed.
":highlight clear" sets the default colors again.
":syntax reset" sets the syntax highlight colors back to the defaults.
For ":set bg&" guess the value.  This allows a color scheme to switch back to
the default colors.
When syntax highlighting is switched on and a color scheme was defined, reload
the color scheme to define the colors.


Various new items					*new-items-6*
-----------------

Normal mode commands: ~

"gi"		Jump to the ^ mark and start Insert mode.  Also works when the
		mark is just after the line. |gi|

"g'm" and "g`m"
		Jump to a mark without changing the jumplist.  Now you can use
		g`" to jump to the last known position in a file without side
		effects.  Also useful in mappings.

[', [`, ]' and ]`
		move the cursor to the next/previous lowercase mark.

g_		Go to last non-blank in line. (Steve Wall)


Options: ~

'autoread'	When detected that a file changed outside of Vim,
		automatically read a buffer again when it's not changed.
		It has a global and a local value.  Use ":setlocal autoread<"
		to go back to using the global value for 'autoread'.

'debug'		When set to "msg" it will print error messages that would
		otherwise be omitted.  Useful for debugging 'indentexpr' and
		'foldexpr'.

'lispwords'	List of words used for lisp indenting.  It was previously hard
		coded.  Added a number of Lisp names to the default.

'fold...'	Many new options for folding.

'modifiable'	When off, it is impossible to make changes to a buffer.
		The %m and %M items in 'statusline' show a '-'.

'previewwindow' Set in the preview window.  Used in a session file to mark a
		window as the preview window.

'printfont'
'printexpr'
'printheader'
'printdevice'
'printoptions'	for ":hardcopy".

'buflisted'	Makes a buffer appear in the buffer list or not.

Use "vim{version}:" for modelines, only to be executed when the version is
>= {version}.  Also "vim>{version}", "vim<{version}" and "vim={version}".


Ex commands: ~

:sav[eas][!] {file}
		Works like ":w file" and ":e #", but without loading the file
		again and avoiding other side effects. |:saveas|

:silent[!] {cmd}
		Execute a command silently.  Also don't use a delay that would
		come after the message.  And don't do 'showmatch'.
		RISCOS: Removed that "!~cmd" didn't output anything, and
		didn't wait for <Enter> afterwards.  Can use ":silent !cmd"
		now.
:menu <silent>  Add a menu that won't echo Ex commands.
:map <silent>   Add a mapping that won't echo Ex commands.

:checktime	Check for changed buffers.

:verbose {cmd}  Set 'verbose' for one command.

:echomsg {expr}
:echoerr {expr} Like ":echo" but store the message in the history. (Mark
		Waggoner)

:grepadd	Works just like ":grep" but adds to the current error list
		instead of defining a new list. |:grepadd|

:finish		Finish sourcing a file.  Can be used to skip the rest of a Vim
		script. |:finish|

:leftabove
:aboveleft	Split left/above current window.

:rightbelow
:belowright	Split right/below current window.

:first, :bfirst, :ptfirst, etc.
		Alias for ":rewind".  It's more logical compared to ":last".

:enew		Edit a new, unnamed buffer.  This is needed, because ":edit"
		re-edits the same file. (Wall)

:quitall	Same as ":qall".

:match		Define match highlighting local to a window.  Allows
		highlighting an item in the current window without interfering
		with syntax highlighting.

:menu enable
:menu disable	Commands to enable/disable menu entries without removing them.
		(Monish Shah)

:windo		Execute a command in all windows.
:bufdo		Execute a command in all buffers.

:wincmd		Window (CTRL-W) command.  Useful when a Normal mode command
		can't be used (e.g., for a CursorHold autocommand).  See
		|CursorHold-example| for a nice application with it.

:lcd and :lchdir
		Set local directory for a window. (Benjie Chen)

:hide {command}
		Execute {command} with 'hidden' set.

:emenu		in Visual mode to execute a ":vmenu" entry.

:popup		Pop up a popup menu.

:redraw		Redraw the screen even when busy with a script or function.

:hardcopy	Print to paper.

:compiler	Load a Vim script to do settings for a specific compiler.

:z#		List numbered lines. (Bohdan Vlasyuk)


New marks: ~

'( and ')	Begin or end of current sentence.  Useful in Ex commands.
'{ and '}	Begin or end of current paragraph.  Useful in Ex commands.
'.		Position of the last change in the current buffer.
'^		Position where Insert mode was stopped.

Store the ^ and . marks in the viminfo file.  Makes it possible to jump to the
last insert position or changed text.


New functions: ~
argidx()	Current index in argument list.
buflisted()	Checks if the buffer exists and has 'buflisted' set.
cindent()	Get indent according to 'cindent'.
eventhandler()	Returns 1 when inside an event handler and interactive
		commands can't be used.
executable()	Checks if a program or batch script can be executed.
filewritable()	Checks if a file can be written. (Ron Aaron)
foldclosed()	Find out if there is a closed fold. (Johannes Zellner).
foldcloseend()	Find the end of a closed fold.
foldlevel()	Find out the foldlevel. (Johannes Zellner)
foreground()	Move the GUI window to the foreground.
getchar()	Get one character from the user.  Can be used to define a
		mapping that takes an argument.
getcharmod()	Get last used key modifier.
getbufvar()	gets the value of an option or local variable in a buffer (Ron
		Aaron)
getfsize()	Return the size of a file.
getwinvar()	gets the value of an option or local variable in a window (Ron
		Aaron)
globpath()	Find matching files in a list of directories.
hasmapto()	Detect if a mapping to a string is already present.
iconv()		Convert a string from one encoding to another.
indent()	gets the indent of a line (Ron Aaron)
inputdialog()	Like input() but use a GUI dialog when possible.  Currently
		only works for Win32, Motif, Athena and GTK.
		Use inputdialog() for the Edit/Settings/Text Width menu.  Also
		for the Help/Find.. and Toolbar FindHelp items.
		(Win32 support by Thore B. Karlsen)
		(Win16 support by Vince Negri)
inputsecret()	Ask the user to type a string without showing the typed keys.
		(Charles Campbell)
libcall()	for Unix (Neil Bird, Johannes Zellner, Stephen Wall)
libcallnr()	for Win32 and Unix
lispindent()	Get indent according to 'lisp'.
mode()		Return a string that indicates the current mode.
nextnonblank()	Skip blank lines forwards.
prevnonblank()	Skip blank lines backwards.  Useful to for indent scripts.
resolve()	MS-Windows: resolve a shortcut to the file it points to.
		Unix: resolve a symbolic link.
search()	Search for a pattern.
searchpair()	Search for matching pair.  Can be used in indent files to find
		the "if" matching an endif.
setbufvar()	sets an option or variable local to a buffer (Ron Aaron)
setwinvar()	sets an option or variable local to a window (Ron Aaron)
stridx()	Search for first occurrence of one string in another.
strridx()	Search for last occurrence of one string in another.
tolower()	Convert string to all-lowercase.
toupper()	Convert string to all-uppercase.
type()		Check the type of an expression.
wincol()	window column of the cursor
winwidth()	Width of a window. (Johannes Zellner)
winline()	window line of the cursor


Added expansion of curly braces in variable and function names.  This can be
used for variable names that include the value of an option.  Or a primitive
form of arrays. (Vince Negri)


New autocommand events: ~
BufWinEnter	Triggered when a buffer is displayed in a window, after using
		the modelines.  Can be used to load a view.
BufWinLeave	Triggered when a buffer is no longer in a window.  Also
		triggered when exiting Vim.  Can be used to save views.
FileChangedRO	Triggered before making the first change to a read-only file.
		Can be used to check-out the file. (Scott Graham)
TermResponse	Triggered when the terminal replies to the version-request.
		The v:termresponse internal variable holds the result.  Can be
		used to react to the version of the terminal.  (Ronald Schild)
FileReadCmd	Triggered before reading a file.
BufReadCmd	Triggered before reading a file into a buffer.
FileWriteCmd	Triggered before writing a file.
BufWriteCmd	Triggered before writing a buffer into a file.
FileAppendCmd	Triggered before appending to a file.
FuncUndefined	Triggered when a user function is not defined. (Ron Aaron)

The autocommands for the *Cmd events read or write the file instead of normal
file read/write.  Use this in netrw.vim to be able to edit files on a remote
system. (Charles Campbell)


New Syntax files: ~

bdf		BDF font definition (Nikolai Weibull)
catalog		SGML catalog (Johannes Zellner)
debchangelog	Debian Changelog (Wichert Akkerman)
debcontrol	Debian Control (Wichert Akkerman)
dot		dot (Markus Mottl)
dsl		DSSSL syntax (Johannes Zellner)
eterm		Eterm configuration (Nikolai Weibull)
indent		Indent profile (Nikolai Weibull)
lftp		LFTP (Nikolai Weibull)
lynx		Lynx config (Doug Kearns)
mush		mush sourcecode (Bek Oberin)
natural		Natural (Marko Leipert)
pilrc		Pal resource compiler (Brian Schau)
plm		PL/M (Philippe Coulonges)
povini		Povray configuration (David Necas)
ratpoison	Ratpoison config/command (Doug Kearns)
readline	readline config (Nikolai Weibull)
screen		Screen RC (Nikolai Weibull)
specman		Specman (Or Freund)
sqlforms	SQL*Forms (Austin Ziegler)
terminfo	terminfo (Nikolai Weibull)
tidy		Tidy configuration (Doug Kearns)
wget		Wget configuration (Doug Kearns)


Updated many syntax files to work both with Vim 5.7 and 6.0.

Interface to Ruby. (Shugo Maeda)
Support dynamic loading of the Ruby interface on MS-Windows. (Muraoka Taro)
Support this for Mingw too. (Benoit Cerrina)

Win32: Added possibility to load TCL dynamically. (Muraoka Taro)
Also for Borland 5.5. (Dan Sharp)

Win32: When editing a file that is a shortcut (*.lnk file), edit the file it
links to.  Unless 'binary' is set, then edit the shortcut file itself.
(Yasuhiro Matsumoto)

The ":command" command now accepts a "-bar" argument.  This allows the user
command to be followed by "| command".

The preview window is now also used by these commands:
- |:pedit| edits the specified file in the preview window
- |:psearch| searches for a word in included files, like |:ijump|, and
  displays the found text in the preview window.
Added the CTRL-W P command: go to preview window.

MS-DOS and MS-Windows also read the system-wide vimrc file $VIM/vimrc.  Mostly
for NT systems with multiple users.

A double-click of the mouse on a character that has a "%" match selects from
that character to the match.  Similar to "v%".

"-S session.vim" argument: Source a script file when starting up.  Convenient
way to start Vim with a session file.

Added "--cmd {command}" Vim argument to execute a command before a vimrc file
is loaded. (Vince Negri)

Added the "-M" Vim argument: reset 'modifiable' and 'write', thus disallow
making changes and writing files.

Added runtime/delmenu.vim.  Source this to remove all menus and prepare for
loading new menus.  Useful when changing 'langmenu'.

Perl script to filter Perl error messages to quickfix usable format. (Joerg
Ziefle)

Added runtime/macros/less.vim: Vim script to simulate less, but with syntax
highlighting.

MS-Windows install program: (Jon Merz)
- The Win32 program can now create shortcuts on the desktop and install Vim in
  the Start menu.
- Possibly remove old "Edit with Vim" entries.
- The Vim executable is never moved or $PATH changed.  A small batch file is
  created in a directory in $PATH.  Fewer choices to be made.
- Detect already installed Vim versions and offer to uninstall them first.

Improved the MS-Windows uninstal program.  It now also deletes the entries in
the Start menu, icons from the desktop and the created batch files. (Jon Merz)
Also made it possible to delete only some of these.  Also unregister gvim for
OLE.

Generate a self-installing Vim package for MS-Windows.  This uses NSIS. (Jon
Merz et al.)

Added ":filetype detect".  Try detecting the filetype again.  Helps when
writing a new shell script, after adding "#!/bin/csh".

Added ":augroup! name" to delete an autocommand group.  Needed for the
client-server "--remote-wait".

Add the Vim version number to the viminfo file, useful for debugging.

==============================================================================
IMPROVEMENTS						*improvements-6*

Added the 'n' flag in 'cpoptions': When omitted text of wrapped lines is not
put between line numbers from 'number' option.  Makes it a lot easier to read
wrapped lines.

When there is a format error in a tags file, the byte position is reported so
that the error can be located.

"gf" works in Visual mode: Use the selected text as the file name. (Chase
Tingley)

Allow ambiguous mappings.  Thus "aa" and "aaa" can both be mapped, the longest
matching one is used.  Especially useful for ":lmap" and 'keymap'.

Encryption: Ask the key to be typed twice when crypting the first time.
Otherwise a typo might cause the text to be lost forever. (Chase Tingley)

The window title now has "VIM" on the end.  The file name comes first, useful
in the taskbar.  A "+" is added when the file is modified.  "=" is added for
a read-only file.  "-" is added for a file with 'modifiable' off.

In Visual mode, mention the size of the selected area in the 'showcmd'
position.

Added the "b:changedtick" variable.  Incremented at each change, also for
undo.  Can be used to take action only if the buffer has been changed.

In the replacement string of a ":s" command "\=" can be used to replace with
the result of an expression.  From this expression the submatch() function can
be used to access submatches.

When doing ":qall" and there is a change in a buffer that is being edited in
another window, jump to that window, instead of editing that buffer in the
current window.

Added the "++enc=" and "++ff=" arguments to file read/write commands to force
using the given 'encoding' or 'fileformat'.  And added the "v:cmdarg"
variable, to be used for FileReadCmd autocommands that read/write the file
themselves.

When reading stdin, first read the text in binary mode and then re-read it
with automatic selection of 'fileformat' and 'fileencoding'.  This avoids
problems with not being able to rewind the file (e.g., when a line near the
end of the file ends in LF instead of CR-LF).
When reading text from stdin and the buffer is empty, don't mark it changed.
Allows exiting without trouble.

Added an ID to many error messages.  This will make it easier to find help for
a message.

Insert mode:
- "CTRL-G j" and "CTRL-G k" can be used to insert in another line in the same
  column.  Useful for editing a table.
- Added Thesaurus completion with CTRL-X CTRL-T. (Vince Negri)
- Added the 'thesaurus' option, to use instead of 'dictionary' for thesaurus
  completion.  Added the 's' flag in 'complete'.
- Made CTRL-X CTRL-L in Insert mode use the 'complete' option.  It now also
  scans other loaded buffers for matching lines.
- CTRL-R now also works in Insert mode while doing completion with CTRL-X or
  CTRL-N. (Neil Bird)
- When doing Insert mode completion, when completion is finished check for a
  match with words from 'cinkeys' or 'indentkeys'.

Performance:
- Made display updating more efficient.  Insert/delete lines may be used for
  all changes, also for undo/redo.
- The display is not redrawn when there is typeahead in Insert mode.  Speeds
  up CTRL-R a lot.
- Improved speed of screen output for 32 bit DOS version. (Vince Negri)
- When dragging with the mouse, there is a lookahead to skip mouse codes when
  there is another one next.  Makes dragging with the mouse a lot faster.
- Also a memory usage improvement: When calling u_save with a single line,
  don't save it if the line was recently saved for the same undo already.
- When using a script that appends one character at a time, the amount of
  allocated memory was growing steadily.  Also when 'undolevels' is -1.
  Caused by the line saved for "U" never to be freed.  Now free an undo block
  when it becomes empty.
- GUI and Dos32: Use a vertical scroll region, to make scrolling in a
  vertically split window faster.  No need to redraw the whole window.
- When scrolling isn't possible with terminal codes (e.g., for a vertically
  split window) redraw from ScreenLines[].  That should be faster than going
  through the lines with win_line(), especially when using syntax
  highlighting.
- The Syntax menu is now pre-generated by a separate script.  Makes loading
  the menu 70% faster.  This can halve the startup time of gvim.
- When doing ":help tag", don't open help.txt first, jump directly to the help
  tag.  It's faster and avoids an extra message.
- Win32: When a file name doesn't end in ".lnk" don't try resolving a
  shortcut, it takes quite a bit of time.
- Don't update the mouse pointer shape while there are typeahead characters.
- Change META[] from a string into an array, avoids using strchr() on it.
- Don't clear the command line when adding characters, avoids that screen_fill
  is called but doesn't do anything.

Robustness:
- Unix: Check for running out of stack space when executing a regexp.  Avoids
  a nasty crash.  Only works when the system supports running the signal
  function on another stack.
- Disallow ":source <dirname>".  On unix it's possible to read a directory,
  does not make sense to use it as Vim commands.

Security:
- When reading from or writing to a temporary file, check that it isn't a
  symbolic link.  Gives some protection against symlink attacks.
- When creating a backup file copy or a swap file, check for it already
  existing to avoid a symlink attack. (Colin Phipps)
- Evaluating options which are an expression is done in a |sandbox|.  If the
  option was set by a modeline, it cannot cause damage.
- Use a secure way to generate temp file names: Create a private directory for
  temp files.  Used for Unix, MS-DOS and OS/2.
- 'makeef' can be empty, which means that an internally generated file name is
  used.  The old default was "/tmp/file", which is a security risk.
  Writing 'makeef' in the current directory fails in a read-only directory and
  causes trouble when using ":grep" on all files.  Made the default empty for
  all systems, so that a temp file is used.
- The command from a tags file is executed in the sandbox for better security.
- The Ruby, Tcl and Python interfaces cannot be used from the sandbox.  They
  might do dangerous things.  Perl is still possible, but limited to the Safe
  environment. (Donnie Smith)

Syntax highlighting:
- Optimized the speed by caching the state stack all over the file, not just
  the part being displayed.  Required for folding.
- Added ":syntax sync fromstart": Always parse from the start of the file.
- Added the "display" argument for syntax items: use the item only when
  displaying the result.  Can make parsing faster for text that isn't going to
  be displayed.
- When using CTRL-L, the cached states are deleted, to force parsing the text
  again.
- Use elfhash algorithm for table of keywords.  This should give a better
  distribution and speedup keyword lookup. (Campbell)
- Also allow the "lc" leading context for skip and end patterns. (Scott
  Bigham)
- Syntax items can have the "extend" argument to undo the effect of a
  "keepend" argument of an item it is contained in.  Makes it possible to have
  some contained items extend a region while others don't.
- ":syntax clear" now deletes the b:current_syntax variable.  That's logical,
  since no syntax is defined after this command.
- Added ":syntax enable": switch on syntax highlighting without changing the
  colors.  This allows specifying the colors in the .vimrc file without the
  need for a mysyntaxfile.
- Added ":syntax reset": reset the colors to their defaults.
- Added the "contains=TOP" and "contains=CONTAINED" arguments.  Makes it
  possible to define a transparent item that doesn't contain itself.
- Added a "containedin" argument to syntax items.  Allows adding a contained
  item to an existing item (e.g., to highlight a name in a comment).

Modeless selection:
- When in the command-line window, use modeless selection in the other
  windows.  Makes it possible to copy visible text to the command-line window.
- Support modeless selection on the cmdline in a terminal.  Previously it was
  only possible for the GUI.
- Make double-right-click in modeless selection select a whole word.  Single
  right click doesn't use the word selection started by a double-left-click.
  Makes it work like in Visual mode.
- The modeless selection no longer has an implied automatic copy to the
  clipboard.  It now obeys the 'a' and 'A' flags in 'guioptions' or
  "autoselect" and "autoselectml" in 'clipboard'.
- Added the CTRL-Y command in Cmdline-mode to copy the modeless selection to
  the clipboard.  Also works at the hit-enter prompt and the more prompt.
  Removed the mappings in runtime/mswin.vim for CTRL-Y and CTRL-Z in
  cmdline-mode to be able to use CTRL-Y in the new way.

Reduced the amount of stack space used by regmatch() to allow it to handle
complicated patterns on a longer text.

'isfname' now includes '%' and '#'.  Makes "vim dir\#file" work for MS-DOS.

Added keypad special keys <kEnter>, <k0> - <k9>.  When not mapped they behave
like the ASCII equivalent. (Ivan Wellesz and Vince Negri)
Recognize a few more xterm keys: <C-Right>, <C-Left>, <C-End>, <C-Home>

Also trigger the BufUnload event when Vim is going to exit.  Perhaps a script
needs to do some cleaning up.

Expand expression in backticks: `={expr}`.  Can be used where backtick
expansion is done. (Vince Negri)

GUI:
- Added 'L' and 'R' flags in 'guioptions': Add a left or right scrollbar only
  when there is a vertically split window.
- X11: When a color can't be allocated, use the nearest match from the
  colormap.  This avoids that black is used for many things. (Monish Shah)
  Also do this for the menu and scrollbar, to avoid that they become black.
- Win32 and X11: Added 'mouseshape' option: Adjust the mouse pointer shape to
  the current mode. (Vince Negri)
- Added the 'linespace' option: Insert a pixel line between lines. (Nam)
- Allow modeless selection (without moving the cursor) by keeping CTRL and
  SHIFT pressed. (Ivan Wellesz)
- Motif: added toolbar. (Gordon Prieur)  Also added tooltips.
- Athena: added toolbar and tooltips. (David Harrison -- based on Gordon
  Prieur's work)
- Made the 'toolbar' option work for Athena and Motif.  Can now switch between
  text and icons on the fly.  (David Harrison)
- Support menu separator lines for Athena.  (David Harrison)
- Athena: Adjust the arrow pixmap used in a pullright menu to the size of the
  font. (David Harrison)
- Win32: Added "c" flag to 'guifont' to be able to specify the charset. (Artem
  Khodush)
- When no --enable-xim argument is given, automatically enable it when a X GUI
  is used.  Required for dead key support (and multi-byte input).
- After a file selection dialog, check that the edited files were not changed
  or deleted.  The Win32 dialog allows deleting and renaming files.
- Motif and Athena: Added support for "editres". (Martin Dalecki)
- Motif and Athena: Added "menuFont" to be able to specify a font or fontset
  for the menus.  Can also be set with the "Menu" highlight group.  Useful
  when the locale is different from 'encoding'. (David Harrison)
  When FONTSET_ALWAYS is defined, always use a fontset for the menus.  Should
  avoid trouble with changing from a font to a fontset.  (David Harrison)
- Highlighting and font for the tooltips can be specified with the "Tooltip"
  highlight group. (David Harrison)
- The Cmdline-mode menus can be used at the more-prompt.  This mostly works
  fine, because they start with a CTRL-C.  The "Copy" menu works to copy the
  modeless selection.  Allows copying the output of ":set all" or ":intro"
  without auto-selection.
- When starting the GUI when there is no terminal connected to stdout and
  stderr, display error messages in a dialog.  Previously they wouldn't be
  displayed at all.
- Allow setting 'browsedir' to the name of a directory, to be used for the
  file dialog. (Dan Sharp)
- b:browsefilter and g:browsefilter can be set to the filters used for the
  file dialog.  Supported for Win32 and Motif GUI. (Dan Sharp)

X11:
- Support for the clipboard selection as register "+.  When exiting or
  suspending copy the selection to cut buffer 0.  Should allow copy/paste with
  more applications in a X11-standard way.  (Neil Bird)
- Use the X clipboard in any terminal, not just in an xterm.
  Added "exclude:" in 'clipboard': Specify a pattern to match against terminal
  names for which no connection should be made to the X server.  The default
  currently work for FreeBSD and Linux consoles.
- Added a few messages for when 'verbose' is non-zero to show what happens
  when trying to connect to the X server.  Should help when trying to find out
  why startup is slow.

GTK GUI: (partly by Marcin Dalecki)
- With some fonts the characters can be taller than ascent + descent.  E.g.,
  "-misc-fixed-*-*-*-*-18-*-*-*-*-*-iso10646-1".  Add one to the character
  cell height.
- Implement "no" value for 'winaltkeys': don't use Alt-Key as a menu shortcut,
  when 'wak' changed after creating the menus.
- Setting 'wak' after the GUI started works.
- recycle text GC's to reduce communication.
- Adjust icon size to window manager.
- Cleanup in font handling.
- Replace XQueryColor with GDK calls.
- Gnome support.  Detects Gnome in configure and uses different widgets.
  Otherwise it's much like GTK. (Andy Kahn)
  It is disabled by default, because it causes a few problems.
- Removed the special code to fork first and then start the GUI.  Now use
  _exit() instead of exit(), this works fine without special tricks.
- Dialogs sometimes appeared a bit far away.  Position the dialogs inside
  the gvim window. (Brent Verner)
- When dropping a file on Vim, remove extra slashes from the start of the
  path.  Also shorten the file name if possible.

Motif: (Martin Dalecki)
- Made the dialog layout better.
- Added find and find/replace dialogs.
- For the menus, change "iso-8859" to "iso_8859", Linux appears to need this.
- Added icon to dialogs, like for GTK.
- 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.
- Use gadgets instead of windows for some items for speed.

Command line completion:
- Complete environment variable names. (Mike Steed)
- For ":command", added a few completion methods: "mapping", "function",
  "expression" and "environment".
- When a function doesn't take arguments, let completion add () instead of (.

For MS-DOS, MS-Windows and OS/2: Expand %VAR% environment variables like $VAR.
(Walter Briscoe)

Redirect messages to the clipboard ":redir @*" and to the unnamed register
":redir @"". (Wall)

":let @/ = ''" clears the search pattern, instead of setting it to an empty
string.

Expression evaluation:
- "? :" can be used like in C.
- col("$") returns the length of the cursor line plus one. (Stephen P. Wall)
- Optional extra argument for match(), matchend() and matchstr(): Offset to
  start looking for a match.
- Made third argument to strpart() optional.  (Paul Moore, Zdenek Sekera)
- exists() can also be used to check for Ex commands and defined autocommands.
- Added extra argument to input(): Default text.
- Also set "v:errmsg" when using ":silent! cmd".
- Added the v:prevcount variable: v:count for the previous command.
- Added "v:progname", name with which Vim was started. (Vince Negri)
- In the verbose message about returning from a function, also show the return
  value.

Cscope:
- Added the cscope_connection() function. (Andy Kahn)
- ":cscope kill -1" kills all cscope connections. (Andy Kahn)
- Added the 'cscopepathcomp' option. (Scott Hauck)
- Added ":scscope" command, split window and execute Cscope command. (Jason
  Duell)

VMS:
- Command line arguments are always uppercase.  Interpret a "-X" argument as
  "-x" and "-/X" as "-X".
- Set 'makeprg' and 'grepprg' to meaningful defaults. (Zoltan Arpadffy)
- Use the X-clipboard feature and the X command server. (Zoltan Arpadffy)

Macintosh: (Dany St-Amant)
- Allow a tags file to have CR, CR-LF or LF line separator.
- Carbonized (while keeping non Carbon code)
  (Some work "stolen" from Ammon Skidmore)
- Improved the menu item index handling (should be faster)
- Runtime commands now handle / in file name (MacOS 9 version)
- Added ":winpos" support.
- Also accept tags files in DOS format. (Axel Kielhorn)
- Support using "~" in file names for home directory.

Options:
- When using set += or ^= , check for items used twice.  Duplicates are
  removed.  (Vince Negri)
- When setting an option that is a list of flags, remove duplicate flags.
- If possible, use getrlimit() to set 'maxmemtot' and 'maxmem'. (Pina)
- Added "alpha" to 'nrformats': increment or decrement an alphabetic character
  with CTRL-A and CTRL-X.
- ":set opt&vi" sets an option to its Vi default, ":set opt&vim" to its Vim
  default.  Useful to set 'cpo' to its Vim default without knowing what flags
  that includes.
- 'scrolloff' now also applies to a long, wrapped line that doesn't fit in the
  window.
- Added more option settings to the default menus.
- Updated the option window with new options.  Made it a bit easier to read.

Internal changes:
- Split line pointers in text part and attributes part.  Allows for future
  change to make attribute more than one byte.
- Provide a qsort() function for systems that don't have it.
- Changed the big switch for Normal mode commands into a table.  This cleans
  up the code considerably and avoids trouble for some optimizing compilers.
- Assigned a negative value to special keys, to avoid them being mixed up with
  Unicode characters.
- Global variables expand_context and expand_pattern were not supposed to be
  global.  Pass them to ExpandOne() and all functions called by it.
- No longer use the global reg_ic flag.  It caused trouble and in a few places
  it was not set.
- Removed the use of the stuff buffer for "*", "K", CTRL-], etc.  Avoids
  problem with autocommands.
- Moved some code from ex_docmd.c to ex_cmds2.c.  The file was getting too
  big.  Also moved some code from screen.c to move.c.
- Don't include the CRC table for encryption, generate it.  Saves quite a bit
  of space in the source code. (Matthias Kramm)
- Renamed multibyte.c to mbyte.c to avoid a problem with 8.3 filesystems.
- Removed the GTK implementation of ":findhelp", it now uses the
  ToolBar.FindHelp  menu entry.
- Renamed mch_windexit() to mch_exit(), mch_init() to mch_early_init() and
  mch_shellinit() to mch_init().

Highlighting:
- In a ":highlight" listing, show "xxx" with the highlight color.
- Added support for xterm with 88 or 256 colors.  The right color numbers will
  be used for the name used in a ":highlight" command. (Steve Wall)
- Added "default" argument for ":highlight".  When included, the command is
  ignored if highlighting for the group was already defined.
  All syntax files now use ":hi default ..." to allow the user to specify
  colors in his vimrc file.  Also, the "if did_xxx_syntax_inits" is not needed
  anymore.  This greatly simplifies using non-default colors for a specific
  language.
- Adjusted colortest.vim: Included colors on normal background and reduced the
  size by using a while loop. (Rafael Garcia-Suarez)
- Added the "DarkYellow" color name.  Just to make the list of standard colors
  consistent, it's not really a nice color to use.

When an xterm is in 8-bit mode this is detected by the code returned for
|t_RV|.  All key codes are automatically converted to their 8-bit versions.

The OPT_TCAP_QUERY in xterm patch level 141 and later is used to obtain the
actual key codes used and the number of colors for t_Co.  Only when |t_RV| is
also used.

":browse set" now also works in the console mode.  ":browse edit" will give an
error message.

":bdelete" and ":bunload" only report the number of deleted/unloaded buffers
when more than 'report'.  The message was annoying when deleting a buffer in a
script.

Jump list:
- The number of marks kept in the jumplist has been increased from 50 to 100.
- The jumplist is now stored in the viminfo file.  CTRL-O can be used to jump
  to positions from a previous edit session.
- When doing ":split" copy the jumplist to the new window.

Also set the '[ and '] marks for the "~" and "r" commands.  These marks are
now always set when making a change with a Normal mode command.

Python interface: Allow setting the width of a vertically split window. (John
Cook)

Added "=word" and "=~word" to 'cinkeys' (also used in 'indentkeys').

Added "j1" argument in 'cinoptions': indent {} inside () for Java. (Johannes
Zellner)
Added the "l" flag in 'cinoptions'. (Anduin Withers)
Added 'C', 'U', 'w' and 'm' flags to 'cinoptions'. (Servatius Brandt)

When doing ":wall" or ":wqall" and a modified buffer doesn't have a name,
mention its buffer number in the error message.

":function Name" lists the function with line numbers.  Makes it easier to
find out where an error happened.

In non-blockwise Visual mode, "r" replaces all selected characters with the
typed one, like in blockwise Visual mode.

When editing the last file in the argument list in any way, allow exiting.
Previously this was only possible when getting to that file with ":next" or
":last".

Added the '1' flag to 'formatoptions'. (Vit Stradal)
Added 'n' flag in 'formatoptions': format a numbered list.

Swap file:
- When a swap file already exists, and the user selects "Delete" at the
  ATTENTION prompt, use the same ".swp" swapfile, to avoid creating a ".swo"
  file which won't always be found.
- When giving the ATTENTION message and the date of the file is newer than the
  date of swap file, give a warning about this.
- Made the info for an existing swap file a bit shorter, so that it still fits
  on a 24 line screen.
- It was possible to make a symlink with the name of a swap file, linking to a
  file that doesn't exist.  Vim would then silently use another file (if open
  with O_EXCL refuses a symlink).  Now check for a symlink to exist.  Also do
  another check for an existing swap file just before creating it to catch a
  symlink attack.

The g CTRL-G command also works in Visual mode and counts the number of words.
(Chase Tingley)

Give an error message when using 'shell' and it's empty.

Added the possibility to include "%s" in 'shellpipe'.

Added "uhex" value for 'display': show non-printable characters as <xx>.
Show unprintable characters with NonText highlighting, also in the command
line.

When asked to display the value of a hidden option, tell it's not supported.

Win32:
- When dropping a shortcut on gvim (.lnk file) edit the target, not the
  shortcut itself.  (Yasuhiro Matsumoto)
- Added C versions of the OpenWithVim and SendToVim programs. (Walter Briscoe)
- When 'shell' is "cmd" or "cmd.exe", set 'shellredir' to redirect stderr too.
  Also check for the Unix shell names.
- When $HOMEDRIVE and $HOMEPATH are defined, use them to define $HOME.  (Craig
  Barkhouse)

Win32 console version:
- Includes the user and system name in the ":version" message, when available.
  It generates a pathdef.c file for this.  (Jon Miner)
- Set the window icon to Vim's icon (only for Windows 2000).  While executing
  a shell command, modify the window title to show this.  When exiting,
  restore the cursor position too.  (Craig Barkhouse)
- The Win32 console version can be compiled with OLE support.  It can only
  function as a client, not as an OLE server.

Errorformat:
- Let "%p" in 'errorformat' (column of error indicated by a row of characters)
  also accept a line of dots.
- Added "%v" item in 'errorformat': Virtual column number. (Dan Sharp)
- Added a default 'errorformat' value for VMS. (Jim Bush)

The "p" command can now be used in Visual mode.  It overwrites the selected
text with the contents of a register.

Highlight the <> items in the intro message to make clear they are special.

When using the "c" flag for ":substitute", allow typing "l" for replacing this
item and then stop: "last".

When printing a verbose message about sourcing another file, print the line
number.

When resizing the Vim window, don't use 'equalalways'.  Avoids that making the
Vim window smaller makes split windows bigger.  And it's what the docs say.

When typing CTRL-D in Insert mode, just after an autoindent, then hitting CR
kept the remaining white space.  Now made it work like BS: delete the
autoindent to avoid a blank non-empty line results.

Added a GetHwnd() call to the OLE interface.  (Vince Negri)

Made ":normal" work in an event handler.  Useful when dropping a file on Vim
and for CursorHold autocommands.

For the MS-Windows version, don't change to the directory of the file when a
slash is used instead of a backslash.  Explorer should always use a backslash,
the user can use a slash when typing the command.

Timestamps:
- When a buffer was changed outside of Vim and regaining focus, give a dialog
  to allow the user to reload the file.  Now also for other GUIs than
  MS-Windows.  And also used in the console, when compiled with dialog
  support.
- Inspect the file contents to find out if it really changed, ignore
  situations where only the time stamp changed (e.g., checking the file out
  from CVS).
- When checking the timestamp, first check if the file size changed, to avoid
  a file compare then.  Makes it quicker for large (log) files that are
  appended to.
- Don't give a warning for a changed or deleted file when 'buftype' is set.
- No longer warn for a changed directory.  This avoids that the file explorer
  produces warnings.
- Checking timestamps is only done for buffers that are not hidden.  These
  will be checked when they become unhidden.
- When checking for a file being changed outside of Vim, also check if the
  file permissions changed.  When the file contents didn't change but the
  permissions did, give a warning.
- Avoid checking too often, otherwise the dialog keeps popping up for a log
  file that steadily grows.

Mapping <M-A> when 'encoding' is "latin1" and then setting 'encoding' to
"utf-8" causes the first byte of a multi-byte to be mapped.  Can cause very
hard to find problems.  Disallow mapping part of a multi-byte character.

For ":python" and ":tcl" accept an in-line script. (Johannes Zellner)
Also for ":ruby" and ":perl". (Benoit Cerrina)

Made ":syn include" use 'runtimepath' when the file name is not a full path.

When 'switchbuf' contains "split" and the current window is empty, don't split
the window.

Unix: Catch SIGPWR to preserve files when the power is about to go down.

Sniff interface: (Anton Leherbauer)
- fixed windows code, esp. the event handling stuff
- adaptations for sniff 4.x ($SNIFF_DIR4)
- support for adding sniff requests at runtime

Support the notation <A-x> as an alias for <M-x>.  This logical, since the Alt
key is used.

":find" accepts a count, which means that the count'th match in 'path' is
used.

":ls" and ":buffers" output shows modified/readonly/modifiable flag.  When a
buffer is active show "a" instead of nothing.  When a buffer isn't loaded
show nothing instead of "-".

Unix install:
- When installing the tools, set absolute paths in tools scripts efm_perl.pl
  and mve.awk.  Avoids that the user has to edit these files.
- Install Icons for KDE when the directories exist and the icons do not exist
  yet.

Added has("win95"), to be able to distinguish between MS-Windows 95/98/ME and
NT/2000/XP in a Vim script.

When a ":cd" command was typed, echo the new current directory. (Dan Sharp)

When using ":winpos" before the GUI window has been opened, remember the
values until it is opened.

In the ":version" output, add "/dyn" for features that are dynamically loaded.
This indicates the feature may not always work.

On Windows NT it is possible that a directory is read-only, but a file can be
deleted.  When making a backup by renaming the file and 'backupdir' doesn't
use the current directory, this causes the original file to be deleted,
without the possibility to create a new file.  Give an extra error message
then to warn to user about this.

Made CTRL-R CTRL-O at the command line work like CTRL-R CTRL-R, so that it's
consistent with Insert mode.

==============================================================================
COMPILE TIME CHANGES					*compile-changes-6*

All generated files have been moved out of the "src" directory.  This makes it
easy to see which files are not edited by hand.  The files generated by
configure are now in the "src/auto" directory.  For Unix, compiled object
files go in the objects directory.

The source archive was over the 1.4M floppy limit.  The archives are now split
up into two runtime and two source archives.  Also provide a bzip2 compressed
archive that contains all the sources and runtime files.

Added "reconfig" as a target for make.  Useful when changing some of the
arguments that require flushing the cache, such as switching from GTK to
Motif.  Adjusted the meaning of GUI_INC_LOC and GUI_LIB_LOC to be consistent
over different GUIs.

Added src/README.txt to give an overview of the main parts of the source code.

The Unix Makefile now fully supports using $(DESTDIR) to install to a specific
location.  Replaces the manual setting of *ENDLOC variables.

Added the possibility for a maintainer of a binary version to include his
e-mail address with the --with-compiledby configure argument.

Included features are now grouped in "tiny", "small", "normal", "big" and
"huge".  This replaces "min-features" and "max-features".  Using "tiny"
disables multiple windows for a really small Vim.

For the tiny version or when FEAT_WINDOWS is not defined: Firstwin and lastwin
are equal to curwin and don't use w_next and w_prev.

Added the +listcmds feature.  Can be used to compile without the Vim commands
that manipulate the buffer list and argument list (the buffer list itself is
still there, can't do without it).

Added the +vreplace feature.  It is disabled in the "small" version to avoid
that the 16 bit DOS version runs out of memory.

Removed GTK+ support for versions older than 1.1.16.

The configure checks for using PTYs have been improved.  Code taken from a
recent version of screen.

Added configure options to install Vim, Ex and View under another name (e.g.,
vim6, ex6 and view6).

Added "--with-global-runtime" configure argument.  Allows specifying the
global directory used in the 'runtimepath' default.

Made enabling the SNiFF+ interface possible with a configure argument.

Configure now always checks /usr/local/lib for libraries and
/usr/local/include for include files.  Helps finding the stuff for iconv() and
gettext().

Moved the command line history stuff into the +cmdline_hist feature, to
exclude the command line history from the tiny version.

MS-Windows: Moved common functions from Win16 and Win32 to os_mswin.c.  Avoids
having to change two files for one problem.  (Vince Negri)

Moved common code from gui_w16.c and gui_w32.c to gui_w48.c (Vince Negri)

The jumplist is now a separate feature.  It is disabled for the "small"
version (16 bit MS-DOS).

Renamed all types ending in _t to end in _T.  Avoids potential problems with
system types.

Added a configure check for X11 header files that implicitly define the return
type to int. (Steve Wall)

"make doslang" in the top directory makes an archive with the menu and .mo
files for Windows.  This uses the files generated on Unix, these should work
on MS-Windows as well.

Merged a large part of os_vms.c with os_unix.c.  The code was duplicated in
the past which made maintenance more work.  (Zoltan Arpadffy)

Updated the Borland C version 5 Makefile: (Dan Sharp)
- Fixed the Perl build
- Added python and tcl builds
- Added dynamic perl and dynamic python builds
- Added uninstal.exe build
- Use "yes" and "no" for the options, like in Make_mvc.mak.

Win32: Merged Make_gvc.mak and Make_ovc.mak into one file: Make_ivc.mak.  It's
much smaller, many unnecessary text has been removed. (Walter Briscoe)
Added Make_dvc.mak to be able to debug exe generated with Make_mvc.mak in
MS-Devstudio. (Walter Briscoe)

MS-Windows: The big gvim.exe, which includes OLE, now also includes
dynamically loaded Tcl, Perl and Python.  This uses ActivePerl 5.6.1,
ActivePython 2.1.1 and ActiveTCL 8.3.3

Added AC_EXEEXT to configure.in, to check if the executable needs ".exe" for
Cygwin or MingW.  Renamed SUFFIX to EXEEXT in Makefile.

Win32: Load comdlg32.dll delayed for faster startup.  Only when using VC 6.
(Vipin Aravind)

Win32: When compiling with Borland, allow using IME. (Yasuhiro Matsumoto)

Win32: Added Makefile for Borland 5 to compile gvimext.dll. (Yasuhiro
Matsumoto)

==============================================================================
BUG FIXES						*bug-fixes-6*

When checking the command name for "gvim", "ex", etc. ignore case.  Required
for systems where case is ignored in command names.

Search pattern "[a-c-e]" also matched a 'd' and didn't match a '-'.

When double-clicking in another window, wasn't recognized as double click,
because topline is different.  Added set_mouse_topline().

The BROKEN_LOCALE check was broken.  (Marcin Dalecki)

When "t_Co" is set, the default colors remain the same, thus wrong.  Reset the
colors after changing "t_Co". (Steve Wall)

When exiting with ":wqall" the messages about writing files could overwrite
each other and be lost forever.

When starting Vim with an extremely long file name (around 1024 characters) it
would crash.  Added a few checks to avoid buffer overflows.

CTRL-E could get stuck in a file with very long lines.

":au syntax<Tab>" expanded event names while it should expand groups starting
with "syntax".

When expanding a file name caused an error (e.g., for <amatch>) it was
produced even when inside an "if 0".

'cindent' formatted C comments differently from what the 'comments' option
specified. (Steve Wall)

Default for 'grepprg' didn't include the file name when only grepping in one
file.  Now /dev/null has been added for Unix.

Opening the option window twice caused trouble.  Now the cursor goes to the
existing option window.

":sview" and ":view" didn't set 'readonly' for an existing buffer.  Now do set
'readonly', unless the buffer is also edited in another window.

GTK GUI: When 'guioptions' excluded 'g', the more prompt caused the toolbar
and menubar to disappear and resize the window (which clears the text).
Now always grey-out the toplevel menus to avoid that the menubar changes size
or disappears.

When re-using the current buffer for a new buffer, buffer-local variables were
not deleted.

GUI: when 'scrolloff' is 0 dragging the mouse above the window didn't cause a
down scroll.  Now pass on a mouse event with mouse_row set to -1.

Win32: Console version didn't work on telnet, because of switching between two
console screens.  Now use one console screen and save/restore the contents
when needed.  (Craig Barkhouse)

When reading a file the magic number for encryption was included in the file
length. (Antonio Colombo)

The quickfix window contained leading whitespace and NULs for multi-line
messages. (David Harrison)

When using cscope, redundant tags were removed.  This caused a numbering
problem, because they were all listed.  Don't remove redundant cscope tags.
(David Bustos).

Cscope: Test for which matches are in the current buffer sometimes failed,
causing a jump to another match than selected. (David Bustos)

Win32: Buffer overflow when adding a charset name in a font.

'titlestring' and 'iconstring' were evaluating an expression in the current
context, which could be a user function, which is a problem for local
variables vs global variables.

Win32 GUI: Mapping <M-F> didn't work.  Now handle SHIFT and CTRL in
_OnSysChar().

Win32 GUI: (on no file), :vs<CR>:q<CR> left a trail of pixels down the middle.
Could also happen for the ruler.  screen_puts() didn't clear the right char in
ScreenLines[] for the bold trick.

Win32: ":%!sort|uniq" didn't work, because the input file name touches the
"|".  Insert a space before the "|".

OS/2: Expanding wildcards included non-existing files.  Caused ":runtime" to
fail, which caused syntax highlighting to fail.

Pasting a register containing CTRL-R on the command line could cause an
endless loop that can't be interrupted.  Now it can be stopped with CTRL-C.

When 'verbose' is set, a message for file read/write could overwrite the
previous message.
When 'verbose' is set, the header from ":select" was put after the last
message.  Now start a new line.

The hit-enter prompt reacted to the response of the t_RV string, causing
messages at startup to disappear.

When t_Co was set to 1, colors were still used.  Now only use color when t_Co
> 1.

Listing functions with ":function" didn't quit when 'q' or ':' was typed at
the more prompt.

Use mkstemp() instead of mktemp() when it's available, avoids a warning for
linking on FreeBSD.

When doing Insert mode completion it's possible that b_sfname is NULL.  Don't
give it to printf() for the "Scanning" message.

":set runtimepath-=$VIMRUNTIME" didn't work, because expansion of wildcards
was done after trying to remove the string.  Now for ":set opt+=val" and ":set
opt-=val" the expansion of wildcards is done before adding or removing "val".

Using CTRL-V with the "r" command with a blockwise Visual selection inserted a
CTRL-V instead of getting a special character.

Unix: Changed the order of libraries: Put -lXdmcp after -lX11 and -lSM -lICE
after -lXdmcp.  Should fix link problem on HP-UX 10.20.

Don't remove the last "-lm" from the link line.  Vim may link but fail later
when the GUI starts.

When the shell returns with an error when trying to expand wildcards, do
include the pattern when the "EW_NOTFOUND" flag was set.
When expanding wildcards with the shell fails, give a clear error message
instead of just "1 returned".

Selecting a Visual block, with the start partly on a Tab, deleting it leaves
the cursor too far to the left.  Causes "s" to work in the wrong position.

Pound sign in normal.c caused trouble on some compilers.  Use 0xA3 instead.

Warning for changing a read-only file wasn't given when 'insertmode' was set.

Win32: When 'shellxquote' is set to a double quote (e.g., using csh), ":!start
notepad file" doesn't work.  Remove the double quotes added by 'shellxquote'
when using ":!start". (Pavol Juhas)

The "<f-args>" argument of ":command" didn't accept Tabs for white space.
Also, don't add an empty argument when there are trailing blanks.

":e test\\je" edited "test\je", but ":next test\\je" edited "testje".
Backslashes were removed one time too many for ":next".

VMS: "gf" didn't work properly.  Use vms_fixfilename() to translate the file
name. (Zoltan Arpadffy)

After ":hi Normal ctermbg=black ctermfg=white" and suspending Vim not all
characters are redrawn with the right background.

When doing "make test" without +eval or +windows feature, many tests failed.
Now have test1 generate a script to copy the correct output, so that a test
that doesn't work is skipped.

On FreeBSD the Perl interface added "-lc" to the link command and Python added
"-pthread".  These two don't work together, because the libc_r library should
be used.  Removed "-lc" from Perl, it should not be needed.
Also: Add "-pthread" to $LIBS, so that the checks for functions is done with
libc_r.  Sigaltstack() appears to be missing from libc_r.

The Syntax sub-menus were getting too long, reorganized them and added another
level for some languages.

Visual block "r"eplace didn't work well when a Tab is partly included.
(Matthias Kramm)

When yanking a Visual block, where some lines end halfway the block, putting
the text somewhere else doesn't insert a block.  Padd with spaces for missing
characters.  Added "y_width" to struct yankreg. (Matthias Kramm)

If a substitute string has a multibyte character after a backslash only the
first byte of it was skipped. (Muraoka Taro)

Win32: Numeric keypad keys were missing from the builtin termcap entry.

When a file was read-only ":wa!" didn't force it to be written. (Vince Negri)

Amiga: A file name starting with a colon was considered absolute but it isn't.
Amiga: ":pwd" added a slash when in the root of a drive.

Don't let 'ttymouse' default to "dec" when compiled with dec mouse support.
It breaks the gpm mouse (Linux console).

The prototypes for the Perl interface didn't work for threaded Perl.  Added a
sed command to remove the prototypes from proto/if_perl.pro and added them
manually to if_perl.xs.

When ":w!" resets the 'readonly' option the title and status lines were not
updated.

":args" showed the current file when the argument list was empty.  Made this
work like Vi: display nothing.

"99:<C-U>echo v:count" echoed "99" in Normal mode, but 0 in Visual mode.
Don't set v:count when executing a stuffed command.

Amiga: Got a requester for "home:" because it's in the default runtime path.
Don't bring up a requester when searching for a file in 'path', sourcing the
.vimrc file or using ":runtime".

Win16 and Win32: Considered a file "\path\file" absolute.  Can cause the same
file to appear as two different buffers.

Win32: Renaming a file to an empty string crashed Vim.  Happened when using
explorer.vim and hitting ESC at the rename prompt.

Win32: strftime() crashed when called with a "-1" value for the time.

Win32 with Borland compiler: mch_FullName() didn't work, caused tag file not
to be found.

Cscope sometimes jumped to the wrong tag. (David Bustos)

OS/2: Could not find the tags file.  mch_expand_wildcards() added another
slash to a directory name.

When using ">>" the `] mark was not in the last column.

When Vim was compiled without menu support, filetype.vim was still trying to
source the menu.vim script. (Rafael Garcia-Suarez)

":ptag" added an item to the tag stack.

Win32 IME: "gr" didn't use IME mode.

In the "vim --help" message the term "options" was used for arguments.  That's
confusing, call them "arguments".

When there are two windows, and a BufUnload autocommand for closing window #1
closed window #2, Vim would crash.

When there is a preview window and only one other window, ":q" wouldn't exit.

In Insert mode, when cancelling a digraph with ESC, the '?' wasn't removed.

On Unix glob(".*") returned "." and "..", on Windows it didn't.  On Windows
glob("*") also returned files starting with a dot.  Made this work like Unix
on all systems.

Win32: Removed old code to open a console.  Vimrun is now used and works fine.

Compute the room needed by the intro message accurately, so that it also fits
on a 25 line console. (Craig Barkhouse)

":ptnext" was broken.  Now remember the last tag used in the preview window
separately from the tagstack.

Didn't check for "-display" being the last argument. (Wichert Akkerman)

GTK GUI: When starting "gvim" under some conditions there would be an X error.
Don't replace the error handler when creating the xterm clipboard. (Wichert
Akkerman)

Adding a space after a help tag caused the tag not to be found.  E.g., ":he
autoindent ".

Was trying to expand a URL into a full path name.  On Windows this resulted in
the current directory to be prepended to the URL.  Added vim_isAbsName() and
vim_FullName() to avoid that various machine specific functions do it
differently.

":n *.c" ":cd .." ":n" didn't use the original directory of the file.  Vi only
does it for the current file (looks like a bug).  Now remember the buffer used
for the entry in the argument list and use it's name (adjusted when doing
":cd"), unless it's deleted.

When inserting a special key as its name ("<F8>" as four characters) after
moving around in Insert mode, undo didn't work properly.

Motif GUI: When using the right mouse button, for some people gvim freezed for
a couple of seconds (Motif 1.2?).  This doesn't happen when there is no Popup
menu.  Solved by only creating a popup menu when 'mousemodel' is "popup" or
"popup_setpos". (David Harrison)

Motif: When adding many menu items, the "Help" menu disappeared but the
menubar didn't wrap.  Now manually set the menubar height.

When using <BS> in Insert mode to remove a line break, or using "J" to join
lines, the cursor could end up halfway a multi-byte character. (Muraoka Taro)

Removed defining SVR4 in configure.  It causes problems for some X header
files and doesn't appear to be used anywhere.

When 'wildignore' is used, 'ignorecase' for a tag match was not working.

When 'wildignore' contains "*~" it was impossible to edit a file ending in a
"~".  Now don't recognize a file ending in "~" as containing wildcards.

Disabled the mouse code for OS/2.  It was not really used.

":mksession" always used the full path name for a buffer, also when the short
name could be used.
":mkvimrc" and ":mksession" didn't save 'wildchar' and 'pastetoggle' in such a
way that they would be restored.  Now use the key name if possible, this is
portable.

After recovering a file and abandoning it, an ":edit" command didn't give the
ATTENTION prompt again.  Would be useful to be able to delete the file in an
easy way.  Reset the BF_RECOVERED flag when unloading the buffer.

histdel() could match or ignore case, depending on what happened before it.
Now always match case.

When a window size was specified when splitting a window, it would still get
the size from 'winheight' or 'winwidth' if it's larger.

When using "append" or "insert" inside a function definition, a line starting
with "function" or "endfunction" caused confusion.  Now recognize the commands
and skip lines until a ".".

At the end of any function or sourced file need_wait_return could be reset,
causing messages to disappear when redrawing.

When in a while loop the line number for error messages stayed fixed.  Now the
line number is remembered in the while loop.

"cd c:/" didn't work on MS-DOS.  mch_isdir() removed a trailing slash.

MS-Windows: getftime() didn't work when a directory had a trailing slash or
backslash.  Didn't show the time in the explorer because of this.

When doing wildcard completion, a directory "a/" sorted after "a-b".  Now
recognize path separators when sorting files.

Non-Unix systems: When editing "c:/dir/../file" and "c:/file" they were
created as different buffers, although it's the same file.  Expand to a full
file name also when an absolute name contains "..".

"g&" didn't repeat the last substitute properly.

When 'clipboard' was set to "unnamed", a "Y" command would not write to "0.
Now make a copy of register 0 to the clipboard register.

When the search pattern matches in many ways, it could not always be
interrupted with a CTRL-C.  And CTRL-C would have to be hit once for every
line when 'hlsearch' is on.
When 'incsearch' is on and interrupting the search for a match, don't abandon
the command line.

When turning a directory name into a full path, e.g., with fnamemodify(),
sometimes a slash was added.  Make this consistent: Don't add a slash.

When a file name contains a "!", using it in a shell command will cause
trouble: ":!cat %".  Escape the "!" to avoid that.  Escape it another time
when 'shell' contains "sh".

Completing a file name that has a tail that starts with a "~" didn't work:
":e view/~<Tab>".

Using a ":command" argument that contains < and > but not for a special
argument was not skipped properly.

The DOS install program: On Win2000 the check for a vim.exe or gvim.exe in
$PATH didn't work, it always found it in the current directory.
Rename the vim.exe in the current dir to avoid this. (Walter Briscoe)

In the MS-DOS/Windows install program, use %VIM% instead of an absolute path,
so that moving Vim requires only one change in the batch file.

Mac: mch_FullName() changed the "fname" argument and didn't always initialize
the buffer.

MS-DOS: mch_FullName() didn't fix forward/backward slashes in an absolute file
name.

"echo expand("%:p:h")" with an empty file name removed one directory name on
MS-DOS.  For Unix, when the file name is a directory, the directory name was
removed.  Now make it consistent: "%:p" adds a path separator for all systems,
but no path separator is added in other situations.

Unix: When checking for a CTRL-C (could happen any time) and there is an X
event (e.g., clipboard updated) and there is typeahead, Vim would hang until a
character was typed.

MS-DOS, MS-Windows and Amiga: expanding "$ENV/foo" when $ENV ends in a colon,
had the slash removed.

":he \^=" gave an error for using \_.  ":he ^=" didn't find tag :set^=.  Even
"he :set^=" didn't find it.

A tags file name "D:/tags" was used as file "tags" in "D:".  That doesn't work
when the current path for D: isn't the root of the drive.

Removed calls to XtInitializeWidgetClass(), they shouldn't be necessary.

When using a dtterm or various other color terminals, and the Normal group has
been set to use a different background color, the background wouldn't always
be displayed with that color.  Added check for "ut" termcap entry: If it's
missing, clearing the screen won't give us the current background color.  Need
to draw each character instead.  Vim now also works when the "cl" (clear
screen) termcap entry is missing.

When repeating a "/" search command with a line offset, the "n" did use the
offset but didn't make the motion linewise.  Made "d/pat/+2" and "dn" do the
same.

Win32: Trying to use ":tearoff" for a menu that doesn't exist caused a crash.

OpenPTY() didn't work on Sequent.  Add a configure check for getpseudotty().

C-indenting: Indented a line starting with ")" with the matching "(", but not
a line starting with "x)" looks strange.  Also compute the indent for aligning
with items inside the () and use the lowest indent.

MS-DOS and Windows: ":n *.vim" also matched files ending in "~".
Moved mch_expandpath() from os_win16.c and os_msdos.c to misc1.c, they are
equal.

Macintosh: (Dany St-Amant)
- In Vi-compatible mode didn't read files with CR line separators.
- Fixed a bug in the handling of Activate/Deactivate Event
- Fixed a bug in gui_mch_dialog (using wrong pointer)

Multibyte GDK XIM: While composing a multibyte-word, if user presses a
mouse button, then the word is removed.  It should remain and composing end.
(Sung-Hyun Nam)

MS-DOS, MS-Windows and OS/2: When reading from stdin, automatic CR-LF
conversion by the C library got in the way of detecting a "dos" 'fileformat'.

When 'smartcase' is set, patterns with "\S" would also make 'ignorecase'
reset.

When clicking the mouse in a column larger than 222, it moved to the first
column.  Can't encode a larger number in a character.  Now limit the number to
222, don't jump back to the first column.

GUI: In some versions CSI would cause trouble, either when typed directly or
when part of a multi-byte sequence.

When using multibyte characters in a ":normal" command, a trailing byte that
is CSI or K_SPECIAL caused problems.

Wildmenu didn't handle multi-byte characters.

":sleep 10" could not be interrupted on Windows, while "gs" could.  Made them
both work the same.

Unix: When waiting for a character is interrupted by an X-windows event (e.g.,
to obtain the contents of the selection), the wait time would not be honored.
A message could be overwritten quickly.  Now compute the remaining waiting
time.

Windows: Completing "\\share\c$\S" inserted a backslash before the $ and then
the name is invalid.  Don't insert the backslash.

When doing an auto-write before ":make", IObuff was overwritten and the wrong
text displayed later.

On the Mac the directories "c:/tmp" and "c:/temp" were used in the defaults
for 'backupdir' and 'directory, they don't exist.

The check for a new file not to be on an MS-DOS filesystem created the file
temporarily, which can be slow.  Don't do this if there is another check for
the swap file being on an MS-DOS filesystem.

Don't give the "Changing a readonly file" warning when reading from stdin.

When using the "Save As" menu entry and not entering a file name, would get an
error message for the trailing ":edit #".  Now only do that when the
alternate file name was changed.

When Vim owns the X11 selection and is being suspended, an application that
tries to use the selection hangs.  When Vim continues it could no longer
obtain the selection.  Now give up the selection when suspending.

option.h and globals.h were included in some files, while they were already
included in vim.h.  Moved the definition of EXTERN to vim.h to avoid doing it
twice.

When repeating an operator that used a search pattern and the search pattern
contained characters that have a special meaning on the cmdline (e.g., CTRL-U)
it didn't work.

Fixed various problems with using K_SPECIAL (0x80) and CSI (0x9b) as a byte in
a (multibyte) character.  For example, the "r" command could not be repeated.

The DOS/Windows install program didn't always work from a directory with a
long filename, because $VIM and the executable name would not have the same
path.

Multi-byte:
- Using an any-but character range [^x] in a regexp didn't work for UTF-8.
  (Muraoka Taro)
- When backspacing over inserted characters in Replace mode multi-byte
  characters were not handled correctly. (Muraoka Taro)
- Search commands "#" and "*" didn't work with multibyte characters. (Muraoka
  Taro)
- Word completion in Insert mode didn't work with multibyte characters.
  (Muraoka Taro)
- Athena/Motif GUI: when 'linespace' is non-zero the cursor would be drawn too
  wide (number of bytes instead of cell width).
- When changing 'encoding' to "euc-jp" and inserting a character Vim would
  crash.
- For euc-jp characters positioning the cursor would sometimes be wrong.
  Also, with two characters with 0x8e leading byte only the first one would be
  displayed.
- When using DYNAMIC_ICONV on Win32 conversion might fail because of using the
  wrong error number. (Muraoka Taro)
- Using Alt-x in the GUI while 'encoding' was set to "utf-8" didn't produce
  the right character.
- When using Visual block selection and only the left halve of a double-wide
  character is selected, the highlighting continued to the end of the line.
- Visual-block delete didn't work properly when deleting the right halve of a
  double-wide character.
- Overstrike mode for the cmdline replaced only the first byte of a multibyte
  character.
- The cursor in Replace mode (also in the cmdline) was to small on a
  double-wide character.
- When a multibyte character contained a 0x80 byte, it didn't work (was using
  a CSI byte instead). (Muraoka Taro)
- Wordwise selection with the mouse didn't work.
- Yanking a modeless selection of multi-byte characters didn't work.
- When 'selection' is "exclusive", selecting a word that ends in a multi-byte
  character used wrong highlighting for the following character.

Win32 with Make_mvc.mak: Didn't compile for debugging. (Craig Barkhouse)

Win32 GUI: When "vimrun.exe" is used to execute an external command, don't
give a message box with the return value, it was already printed by vimrun.
Also avoid printing the return value of the shell when ":silent!" is used.

Win32: selecting a lot of text and using the "find/replace" dialog caused a
crash.

X11 GUI: When typing a character with the 8th bit set and the Meta/Alt
modifier, the modifier was removed without changing the character.

Truncating a message to make it fit on the command line, using "..." for the
middle, didn't always compute the space correctly.

Could not imap <C-@>.  Now it works like <Nul>.

VMS:
- Fixed a few things for VAXC.  os_vms_fix.com had some strange CTRL-M
  characters. (Zoltan Arpadffy and John W. Hamill)
- Added VMS-specific defaults for the 'isfname' and 'isprint' options.
  (Zoltan Arpadffy)
- Removed os_vms_osdef.h, it's no longer used.

The gzip plugin used a ":normal" command, this doesn't work when dropping a
compressed file on Vim.

In very rare situations a binary search for a tag would fail, because an
uninitialized value happens to be half the size of the tag file. (Narendran)

When using BufEnter and BufLeave autocommands to enable/disable a menu, it
wasn't updated right away.

When doing a replace with the "c"onfirm flag, the cursor was positioned after
the ruler, instead of after the question.  With a long replacement string the
screen could scroll up and cause a "more" prompt.  Now the message is
truncated to make it fit.

Motif: The autoconf check for the Xp library didn't work.

When 'verbose' is set to list lines of a sourced file, defining a function
would reset the counter used for the "more" prompt.

In the Win32 find/replace dialog, a '/' character caused problems.  Escape it
with a backslash.

Starting a shell with ":sh" was different from starting a shell for CTRL-Z
when suspending doesn't work.  They now work the same way.

Jumping to a file mark while in a changed buffer gave a "mark not set" error.

":execute histget("cmd")" causes an endless loop and crashed Vim.  Now catch
all commands that cause too much recursiveness.

Removed "Failed to open input method" error message, too many people got this
when they didn't want to use a XIM.

GUI: When compiled without the +windows feature, the scrollbar would start
below line one.

Removed the trick with redefining character class functions from regexp.c.

Win32 GUI: Find dialog gives focus back to main window, when typing a
character mouse pointer is blanked, it didn't reappear when moving it in the
dialog window. (Vince Negri)

When recording and typing a CTRL-C, no character was recorded.  When in Insert
mode or cancelling half a command, playing back the recorded sequence wouldn't
work.  Now record the CTRL-C.

When the GUI was started, mouse codes for DEC and netterm were still checked
for.

GUI: When scrolling and 'writedelay' is non-zero, the character under the
cursor was displayed in the wrong position (one line above/below with
CTRL-E/CTRL-Y).

A ":normal" command would reset the 'scrollbind' info.  Causes problems when
using a ":normal" command in an autocommand for opening a file.

Windows GUI: a point size with a dot, like "7.5", wasn't recognized. (Muraoka
Taro)

When 'scrollbind' wasn't set would still remember the current position,
wasting time.

GTK: Crash when 'shell' doesn't exist and doing":!ls".  Use _exit() instead of
exit() when the child couldn't execute the shell.

Multi-byte:
- GUI with double-byte encoding: a mouse click in left halve of double-wide
  character put the cursor in previous char.
- Using double-byte encoding and 'selection' is "exclusive": "vey" and "^Vey"
  included the character after the word.
- When using a double-byte encoding and there is a lead byte at the end of the
  line, the preceding line would be displayed.  "ga" also showed wrong info.
- "gf" didn't include multi-byte characters before the cursor properly.
  (Muraoka Taro)

GUI: The cursor was sometimes not removed when scrolling.  Changed the policy
from redrawing the cursor after each call to gui_write() to only update it at
the end of update_screen() or when setting the cursor position.  Also only
update the scrollbars at the end of update_screen(), that's the only place
where the window text may have been scrolled.

Formatting "/*<Tab>long text", produced "* <Tab>" in the next line.  Now
remove the space before the Tab.
Formatting "/*<Tab>  long text", produced "* <Tab> long text" in the next
line.  Now keep the space after the Tab.

In some places non-ASCII alphabetical characters were accepted, which could
cause problems.  For example, ":X" (X being such a character).

When a pattern matches the end of the line, the last character in the line was
highlighted for 'hlsearch'.  That looks wrong for "/\%3c".  Now highlight the
character just after the line.

Motif: If a dialog was closed by clicking on the "X" of the window frame Vim
would no longer respond.

When using CTRL-X or CTRL-A on a number with many leading zeros, Vim would
crash. (Matsumoto)

When 'insertmode' is set, the mapping in mswin.vim for CTRL-V didn't work in
Select mode.  Insert mode wasn't restarted after overwriting the text.
Now allow nesting Insert mode with insert and change commands.  CTRL-O
cwfoo<Esc> now also works.

Clicking with the right mouse button in another window started Visual mode,
but used the start position of the current window.  Caused ml_get errors when
the line number was invalid.  Now stay in the same window.

When 'selection' is "exclusive", "gv" sometimes selected one character fewer.

When 'comments' contains more than one start/middle/end triplet, the optional
flags could be mixed up.  Also didn't align the end with the middle part.

Double-right-click in Visual mode didn't update the shown mode.

When the Normal group has a font name, it was never used when starting up.
Now use it when 'guifont' and 'guifontset' are empty.
Setting a font name to a highlight group before the GUI was started didn't
work.

"make test" didn't use the name of the generated Vim executable.

'cindent' problems:
- Aligned with an "else" inside a do-while loop for a line below that loop.
  (Meikel Brandmeyer)
- A line before a function would be indented even when terminated with a
  semicolon. (Meikel Brandmeyer)
- 'cindent' gave too much indent to a line after a "};" that ends an array
  init.
- Support declaration lines ending in "," and "\".  (Meikel Brandmeyer)
- A case statement inside a do-while loop was used for indenting a line after
  the do-while loop. (Meikel Brandmeyer)
- When skipping a string in a line with one double quote it could continue in
  the previous line. (Meikel Brandmeyer)

When 'list' is set, 'hlsearch' didn't highlight a match at the end of the
line.  Now highlight the '$'.

The Paste menu item in the menu bar, the popup menu and the toolbar were all
different.  Now made them all equal to how it was done in mswin.vim.

st_dev can be smaller than "unsigned".  The compiler may give an overflow
warning.  Added a configure check for dev_t.

Athena: closing a confirm() dialog killed Vim.

Various typos in the documentation. (Matt Dunford)

Python interface: The definition of _DEBUG could cause trouble, undefine it.
The error message for not being able to load the shared library wasn't
translated.  (Muraoka Taro)

Mac: (Dany St-Amant and Axel Kielhorn)
- Several fixes.
- Vim was eating 80% of the CPU time.
- The project os_mac.pbxproj didn't work,  Moved it to a subdirectory.
- Made the menu priority work for the menubar.
- Fixed a problem with dragging the scrollbar.
- Cleaned up the various #ifdefs.

Unix: When catching a deadly signal and we keep getting one use _exit() to
exit in a quick and dirty way.

Athena menu ordering didn't work correctly. (David Harrison)

A ":make" or ":grep" command with a long argument could cause a crash.

Doing ":new file" and using "Quit" for the ATTENTION dialog still opened a new
window.

GTK: When starting the GUI and there is an error in the .vimrc file, don't
present the wait-return prompt, since the message was given in the terminal.

When there was an error in a .vimrc file the terminal where gvim was started
could be cleared.  Set msg_row in main.c before writing any messages.

GTK and X11 GUI: When trying to read characters from the user (e.g. with
input()) before the Vim window was opened caused Vim to hang when it was
started from the desktop.

OS/390 uses 31 bit pointers.  That broke some computations with MAX_COL.
Reduce MAX_COL by one bit for OS/390. (Ralf Schandl)

When defining a function and it already exists, Vim didn't say it existed
until after typing it.  Now do this right away when typing it.

The message remembered for displaying later (keep_msg) was sometimes pointing
into a generic buffer, which might be changed by the time the message is
displayed.  Now make a copy of the message.

When using multi-byte characters in a menu and a trailing byte is a backslash,
the menu would not be created correctly.  (Muraoka Taro)
Using a multibyte character in the substitute string where a trail byte is a
backslash didn't work.  (Muraoka Taro)

When setting "t_Co" in a vimrc file, then setting it automatically from an
xterm termresponse and then setting it again manually caused a crash.

When getting the value of a string option that is not supported, the number
zero was returned.  This breaks a check like "&enc == "asdf".  Now an empty
string is returned for string options.

Crashed when starting the GTK GUI while using 'notitle' in the vimrc, setting
'title' in the gvimrc and starting the GUI with ":gui".  Closed the connection
to the X server accidentally.

Had to hit return after selecting an entry for ":ts".

The message from ":cn" message was sometimes cleared.  Now display it after
redrawing if it doesn't cause a scroll (truncated when necessary).

hangulin.c didn't compile when the GUI was disabled.  Disable it when it won't
work.

When setting a termcap option like "t_CO", the value could be displayed as
being for a normal key with a modifier, like "<M-=>".

When expanding the argument list, entries which are a directory name did not
get included.  This stopped "vim c:/" from opening the file explorer.

":syn match sd "^" nextgroup=asdf" skipped the first column and matched the
nextgroup in the second column.

GUI: When 'lazyredraw' is set, 'showmatch' didn't work.  Required flushing
the output.

Don't define the <NetMouse> termcode in an xterm, reduces the problem when
someone types <Esc> } in Insert mode.

Made slash_adjust() work correctly for multi-byte characters. (Yasuhiro
Matsumoto)
Using a filename in Big5 encoding for autocommands didn't work (backslash in
trailbyte).  (Yasuhiro Matsumoto)

DOS and Windows: Expanding *.vim also matched file.vimfoo.  Expand path like
Unix to avoid problems with Windows dir functions.  Merged the DOS and Win32
functions.

Win32: Gvimext could not edit more than a few files at once, the length of the
argument was fixed.

"ls -1 * | xargs vim" worked, but the input was in cooked mode.  Now switch to
raw mode when needed.  Use dup() to copy the stderr file descriptor to stdin
to make shell commands work.  No longer requires an external program to do
this.

When using ":filetype off", ftplugin and indent usage would be switched off at
the same time.  Don't do this, setting 'filetype' manually can still use them.

GUI: When writing a double-byte character, it could be split up in two calls
to gui_write(), which doesn't work.  Now flush before the output buffer
becomes full.

When 'laststatus' is set and 'cmdheight' is two or bigger, the intro message
would be written over the status line.
The ":intro" command didn't work when there wasn't enough room.

Configuring for Ruby failed with a recent version of Ruby. (Akinori Musha)

Athena: When deleting the directory in which Vim was started, using the file
browser made Vim exit.  Removed the use of XtAppError().

When using autoconf 2.50, UNIX was not defined.  Moved the comment for "#undef
UNIX" to a separate line.

Win32: Disabled _OnWindowPosChanging() to make maximize work better.

Win32: Compiling with VC 4.0 didn't work. (Walter Briscoe)

Athena:
- Finally fixed the problems with deleting a menu. (David Harrison)
- Athena: When closing the confirm() dialog, worked like OK was pressed,
  instead of Cancel.

The file explorer didn't work in compatible mode, because of line
continuation.

Didn't give an error message for ":digraph a".

When using Ex mode in the GUI and typing a special key, <BS> didn't delete it
correctly.  Now display '?' for a special key.

When an operator is pending, clicking in another window made it apply to that
window, even though the line numbers could be beyond the end of the buffer.

When a function call doesn't have a terminating ")" Vim could crash.

Perl interface: could crash on exit with perl 5.6.1. (Anduin Withers)

Using %P in 'errorformat' wasn't handled correctly. (Tomas Zellerin)

Using a syntax cluster that includes itself made Vim crash.

GUI: With 'ls' set to 2, dragging the status line all the way up, then making
the Vim window smaller: Could not the drag status line anymore.

"vim -c startinsert! file" placed cursor on last char of a line, instead of
after it.  A ":set" command in the buffer menu set w_set_curswant.  Now don't
do this when w_curswant is MAXCOL.

Win32: When the gvim window was maximized and selecting another font, the
window would no longer fill the screen.

The line with 'pastetoggle' in ":options" didn't show the right value when it
is a special key.  Hitting <CR> didn't work either.

Formatting text, resulting in a % landing in the first line, repeated the % in
the following lines, like it's the start of a comment.

GTK: When adding a toolbar item while gvim is already running, it wasn't
possible to use the tooltip.  Now it works by adding the tooltip first.

The output of "g CTRL-G" mentioned "Char" but it's actually bytes.

Searching for the end of a oneline region didn't work correctly when there is
an offset for the highlighting.

Syntax highlighting: When synchronizing on C-comments, //*/ was seen as the
start of a comment.

Win32: Without scrollbars present, the MS mouse scroll wheel didn't work.
Also handle the scrollbars when they are not visible.

Motif: When there is no right scrollbar, the bottom scrollbar would still
leave room for it.  (Martin Dalecki)

When changing 'guicursor' and the value is invalid, some of the effects would
still take place.  Now first check for errors and only make the new value
effective when it's OK.

Using "A" In Visual block mode, appending to lines that don't extend into the
block, padding was wrong.

When pasting a block of text, a character that occupies more than one screen
column could be deleted and spaces inserted instead.  Now only do that with a
tab.

Fixed conversion of documentation to HTML using Perl. (Dan Sharp)

Give an error message when a menu name starts with a dot.

Avoid a hang when executing a shell from the GUI on HP-UX by pushing "ptem"
even when sys/ptem.h isn't present.

When creating the temp directory, make sure umask is 077, otherwise the
directory is not accessible when it was set to 0177.

Unix: When resizing the window and a redraw is a bit slow, could get a window
resize event while redrawing, resulting in a messed up window.  Any input
(e.g., a mouse click) would redraw.

The "%B" item in the status line became zero in Insert mode (that's normal)
for another than the current window.

The menu entries to convert to xxd and back didn't work in Insert mode.

When ":vglobal" didn't find a line where the pattern doesn't match, the error
message would be the wrong way around.

When ignoring a multi-line error message with "%-A", the continuation lines
would be used anyway. (Servatius Brandt)

"grx" on a double-wide character inserted "x", instead of replacing the
character with "x ".  "gR" on <xx> ('display' set the "uhex") didn't replace
at all.  When doing "gRxx" on a control character the first "x" would be
inserted, breaking the alignment.

Added "0)" to 'cinkeys', so that when typing a ) it is put in the same place
as where "==" would put it.

Win32: When maximized, adding/removing toolbar didn't resize the text area.

When using <C-RightMouse> a count was discarded.

When typing CTRL-V and <RightMouse> in the command line, would insert
<LeftMouse>.

Using "vis" or "vas" when 'selection' is exclusive didn't include the last
character.

When adding to an option like 'grepprg', leading space would be lost.  Don't
expand environment variables when there is no comma separating the items.

GUI: When using a bold-italic font, would still use the bold trick and
underlining.

Motif: The default button didn't work in dialogs, the first one was always
used.  Had to give input focus to the default button.

When using CTRL-T to jump within the same file, the '' mark wasn't set.

Undo wasn't Vi compatible when using the 'c' flag for ":s".  Now it undoes the
whole ":s" command instead of each confirmed replacement.

The Buffers menu, when torn-off, disappeared when being refreshed.  Add a
dummy item to avoid this.

Removed calling msg_start() in main(), it should not be needed.

vim_strpbrk() did not support multibyte characters. (Muraoka Taro)

The Amiga version didn't compile, the code was too big for relative jumps.
Moved a few files from ex_docmd.c to ex_cmds2.c

When evaluating the "= register resulted in the "= register being changed, Vim
would crash.

When doing ":view file" and it fails, the current buffer was made read-only.

Motif: For some people the separators in the toolbar disappeared when resizing
the Vim window. (Martin Dalecki)

Win32 GUI: when setting 'lines' to a huge number, would not compute the
available space correctly.  Was counting the menu height twice.

Conversion of the docs to HTML didn't handle the line with the +quickfix tag
correctly. (Antonio Colombo)

Win32: fname_case() didn't handle multi-byte characters correctly. (Yasuhiro
Matsumoto)

The Cygwin version had trouble with fchdir().  Don't use that function for
Cygwin.

The generic check in scripts.vim for "conf" syntax was done before some checks
in filetype.vim, resulting in "conf" syntax too often.

Dos32: Typing lagged behind.  Would wait for one biostick when checking if a
character is available.

GTK: When setting 'columns' while starting up "gvim", would set the width of
the terminal it was started in.

When using ESC in Insert mode, an autoindent that wraps to the next line
caused the cursor to move to the end of the line temporarily.  When the
character before the cursor was a double-wide multi-byte character the cursor
would be on the right halve, which causes problems with some terminals.

Didn't handle multi-byte characters correctly when expanding a file name.
(Yasuhiro Matsumoto)

Win32 GUI: Errors generated before the GUI is decided to start were not
reported.

globpath() didn't reserve enough room for concatenated results. (Anduin
Withers)

When expanding an option that is very long already, don't do the expansion, it
would be truncated to MAXPATHL. (Anduin Withers)

When 'selection' is "exclusive", using "Fx" in Visual mode only moved until
just after the character.

When using IME on the console to enter a file name, the screen may scroll up.
Redraw the screen then. (Yasuhiro Matsumoto)

Motif: In the find/replace dialog the "Replace" button didn't work first time,
second time it replaced all matches.  Removed the use of ":s///c".
GTK: Similar problems with the find/replace dialog, moved the code to a common
function.

X11: Use shared GC's for text. (Martin Dalecki)

"]i" found the match under the cursor, instead of the first one below it.
Same for "]I", "] CTRL-I", "]d", "]D" and "] CTRL-D".

Win16: When maximized and the font is changed, don't change the window size.
(Vince Negri)

When 'lbr' is set, deleting a block of text could leave the cursor in the
wrong position.

Win32: When opening a file with the "Edit with Vim" popup menu entry,
wildcards would cause trouble.  Added the "--literal" argument to avoid
expanding file names.

When using "gv", it didn't restore that "$" was used in Visual block mode.

Win32 GUI: While waiting for a shell command to finish, the window wasn't
redrawn at all. (Yasuhiro Matsumoto)

Syntax highlighting: A match that continues on a next line because of a
contained region didn't end when that region ended.

The ":s" command didn't allow flags like 'e' and 'i' right after it.

When using ":s" to split a line, marks were moved to the next line.  Vi keeps
them in the first line.

When using ":n" ":rew", the previous context mark was at the top of the file,
while Vi puts it in the same place as the cursor.  Made it Vi compatible.

Fixed Vi incompatibility: Text was not put in register 1 when using "c" and
"d" with a motion character, when deleting within one line with one of the
commands: % ( ) `<character> / ? N n { }

Win32 GUI: The tooltip for tear-off items remained when the tear-off item was
no longer selected.

GUI: When typing ":" at the more prompt, would return to Normal mode and not
redraw the screen.

When starting Vim with an argument "-c g/at/p" the printed lines would
overwrite each other.

BeOS: Didn't compile.  Configure didn't add the os_beos files, the QNX check
removed them.  Various changes to os_beos.cc. (Joshua Haberman)
Removed the check for the hardware platform, the BeBox has not been produced
for a long time now.

Win32 GUI: don't use a message box when the shell returns an error code,
display the message in the Vim window.

Make_mvc.mak always included "/debug" for linking.  "GUI=no" argument didn't
work.  Use "DEBUG=yes" instead of "DEBUG=1" to make it consistent. (Dan Sharp)

When a line in the tags file ended in ;" (no TAB following) the command would
not be recognized as a search command.

X11: The inputMethod resource never worked.  Don't use the "none" input method
for SGI, it apparently makes the first character in Input method dropped.

Fixed incorrect tests in os_mac.h. (Axel Kielhorn)

Win32 console: When the console where Vim runs in is closed, Vim could hang in
trying to restore the window icon. (Yasuhiro Matsumoto)

When using ":3call func()" or ":3,3call func() the line number was ignored.

When 'showbreak' and 'linebreak' were both set, Visual highlighting sometimes
continued until the end of the line.

GTK GUI: Tearoff items were added even when 'guioptions' didn't contain 't'
when starting up.

MS-Windows: When the current directory includes a "~", searching files with
"gf" or ":find" didn't work.  A "$" in the directory had the same problem.
Added mch_has_exp_wildcard() functions.

When reducing the Vim window height while starting up, would get an
out-of-memory error message.

When editing a very long search pattern, 'incsearch' caused the redraw of the
command line to fail.

Motif GUI: On some systems the "Help" menu would not be on the far right, as
it should be.  On some other systems (esp. IRIX) the command line would not
completely show.  Solution is to only resize the menubar for Lesstif.

Using "%" in a line that contains "\\" twice didn't take care of the quotes
properly.  Now make a difference between \" and \\".

For non-Unix systems a dummy file is created when finding a swap name to
detect a 8.3 filesystem.  When there is an existing swap file, would get a
warning for the file being created outside of Vim.  Also, when closing the Vim
window the file would remain.

Motif: The menu height was always computed, using a "-menuheight" argument
was setting the room for the command line.  Now make clear the argument is not
supported.

For some (EBCDIC) systems, POUND was equal to '#'.  Added an #if for that to
avoid a duplicate case in a switch.

The GUI may have problems when forking.  Always call _exit() instead of exit()
in the parent, the child will call exit().

Win32 GUI: Accented characters were often wrong in dialogs and tearoff menus.
Now use CP_ACP instead of CP_OEMCP. (Vince Negri)

When displaying text with syntax highlighting causes an error (e.g., running
out of stack) the syntax highlighting is disabled to avoid further messages.

When a command in a .vimrc or .gvimrc causes an ATTENTION prompt, and Vim was
started from the desktop (no place to display messages) it would hang.  Now
open the GUI window early to be able to display the messages and pop up the
dialog.

"r<CR>" on a multi-byte character deleted only the first byte of the
character. "3r<CR>" deleted three bytes instead of three characters.

When interrupting reading a file, Vi considers the buffer modified.  Added the
'i' flag in 'cpoptions' flag for this (we don't want it modified to be able to
do ":q").

When using an item in 'guicursor' that starts with a colon, Vim would get
stuck or crash.

When putting a file mark in a help file and later jumping back to it, the
options would not be set.  Extended the modeline in all help files to make
this work better.

When a modeline contained "::" the local option values would be printed.  Now
ignore it.

Some help files did not use a 8.3 names, which causes problems when using
MS-DOS unzip.  Renamed "multibyte.txt" to "mbyte.txt", "rightleft.txt" to
"rileft.txt", "tagsearch.txt" to "tagsrch.txt", "os_riscos.txt" to
"os_risc.txt".

When Visual mode is blockwise, using "iw" or "aw" made it characterwise.  That
doesn't seem right, only do this when in linewise mode.  But then do it
always, not only when start and end of Visual mode are equal.

When using "viw" on a single-letter word and 'selection' is exclusive, would
not include the word.

When formatting text from Insert mode, using CTRL-O, could mess up undo
information.

While writing a file (also for the backup file) there was no check for an
interrupt (hitting CTRL-C).  Vim could hang when writing a large file over a
slow network, and moving the mouse didn't make it appear (when 'mousehide' is
set) and the screen wasn't updated in the GUI.  Also allow interrupting when
syncing the swap file, it can take a long time.

When using ":mksession" while there is help window, it would later be restored
to the right file but not marked as a help buffer.  ":help" would then open
another window.  Now use the value "help" for 'buftype' to mark a help buffer.

The session file contained absolute path names in option values, that doesn't
work when the home directory depends on the situation.  Replace the home
directory with ~/ when possible.

When using 'showbreak' a TAB just after the shown break would not be counted
correctly, the cursor would be positioned wrong.

With 'showbreak' set to "--->" or "------->" and 'sts' set to 4, inserting
tabs did not work right.  Could cause a crash.  Backspacing was also wrong,
could get stuck at a line break.

Win32: crashed when tearing off a menu with over 300 items.

GUI: A menu or toolbar item would appear when only a tooltip was defined for
it.

When 'scrolloff' is non-zero and "$" is in 'cpoptions', using "s" while the
last line of the file is the first line on screen, the text wasn't displayed.

When running "autoconf", delete the configure cache to force starting cleanly
when configure is run again.

When changing the Normal colors for cterm, the value of 'background' was
changed even when the GUI was used.

The warning for a missing vimrun.exe was always given on startup, but some
people just editing a file don't need to be bothered by it.  Only show it when
vimrun would be used.

When using "%" in a multibyte text it could get confused by trailbytes that
match. (Muraoka Taro)

Termcap entry for RiscOS was wrong, using 7 and 8 in octal codes.

Athena: The title of a dialog window and the file selector window were not
set. (David Harrison)

The "htmlLink" highlight group specified colors, which gives problems when
using a color scheme.  Added the "Underlined" highlight group for this.

After using ":insert" or ":change" the '[ mark would be one line too low.

When looking for the file name after a match with 'include' one character was
skipped.  Same for 'define'.

Win32 and DJGPP: When editing a file with a short name in a directory, and
editing the same file but using the long name, would end up with two buffers
on the same file.

"gf" on a filename that starts with "../" only worked when the file being
edited is in the current directory.  An include file search didn't work
properly for files starting with "../" or ".".  Now search both relative to
the file and to the current directory.

When 'printheader', 'titlestring', 'iconstring', 'rulerformat' or 'statusline'
contained "%{" but no following "}" memory was corrupted and a crash could
happen.

":0append" and then inserting two lines did not redraw the blank lines that
were scrolled back down.

When using insert mode completion in a narrow window, the message caused a
scroll up.  Now shorten the message if it doesn't fit and avoid writing the
ruler over the message.

XIM still didn't work correctly on some systems, especially SGI/IRIX.  Added
the 'imdisable' option, which is set by default for that system.

Patch 6.0aw.008
Problem:    When the first character of a file name is over 127, the Buffers
	    menu entry would get a negative priority and cause problems.
Solution:   Reduce the multiplier for the first character when computing
	    the hash value for a Buffers menu entry.
Files:	    runtime/menu.vim

Patch 6.0aw.010
Problem:    Win32: ":browse edit dir/dir" didn't work. (Vikas)
Solution:   Change slashes to backslashes in the directory passed to the file
	    browser.
Files:	    src/gui_w48.c

Athena file browser: On some systems wcstombs() can't be used to get the
length of a multi-byte string.  Use the maximum length then. (Yasuhiro
Matsumoto)

Patch 6.0ax.001
Problem:    When 'patchmode' is set, appending to a file gives an empty
	    original file. (Ed Ralston)
Solution:   Also make a backup copy when appending and 'patchmode' is set.
Files:	    src/fileio.c

Patch 6.0ax.002
Problem:    When 'patchmode' is set, appending to a compressed file gives an
	    uncompressed original file. (Ed Ralston)
Solution:   Create the original file before decompressing.
Files:	    runtime/plugin/gzip.vim

Patch 6.0ax.005
Problem:    Athena file selector keeps the title of the first invocation.
Solution:   Set the title each time the file selector is opened. (David
	    Harrison)
Files:	    src/gui_at_fs.c

Patch 6.0ax.007
Problem:    When using GPM (mouse driver in a Linux console) a double click is
	    interpreted as a scroll wheel click.
Solution:   Check if GPM is being used when deciding if a mouse event is for
	    the scroll wheel.
Files:	    src/term.c

Patch 6.0ax.010
Problem:    The Edit.Save menu and the Save toolbar button didn't work when
	    the buffer has no file name.
Solution:   Use a file browser to ask for a file name.  Also fix the toolbar
	    Find item in Visual mode.
Files:	    runtime/menu.vim

Patch 6.0ax.012
Problem:    When 'cpoptions' contains "$", breaking a line for 'textwidth'
	    doesn't redraw properly. (Stefan Schulze)
Solution:   Remove the dollar before breaking the line.
Files:	    src/edit.c

Patch 6.0ax.014
Problem:    Win32: On Windows 98 ":make -f file" doesn't work when 'shell' is
	    "command.com" and 'makeprg' is "nmake".  The environment isn't
	    passed on to "nmake".
Solution:   Also use vimrun.exe when redirecting the output of a command.
Files:	    src/os_win32.c

Patch 6.0ax.016
Problem:    The version number was reported wrong in the intro screen.
Solution:   Check for a version number with two additional letters.
Files:	    src/version.c

Patch 6.0ax.019
Problem:    When scrolling a window with folds upwards, switching to another
	    vertically split window and back may not update the scrollbar.
Solution:   Limit w_botline to the number of lines in the buffer plus one.
Files:	    src/move.c


==============================================================================
VERSION 6.1						*version-6.1*

This section is about improvements made between version 6.0 and 6.1.

This is a bug-fix release, there are not really any new features.


Changed							*changed-6.1*
-------

'iminsert' and 'imsearch' are no longer set as a side effect of defining a
language-mapping using ":lmap".


Added							*added-6.1*
-----

Syntax files:
ampl		AMPL (David Krief)
ant		Ant (Johannes Zellner)
baan		Baan (Her van de Vliert)
cs		C# (Johannes Zellner)
lifelines	Lifelines (Patrick Texier)
lscript		LotusScript (Taryn East)
moo		MOO (Timo Frenay)
nsis		NSIS (Alex Jakushev)
ppd		Postscript Printer Description (Bjoern Jacke)
rpl		RPL/2 (Joel Bertrand)
scilab		Scilab (Benoit Hamelin)
splint		Splint (Ralf Wildenhues)
sqlj		SQLJ (Andreas Fischbach)
wvdial		WvDial (Prahlad Vaidyanathan)
xf86conf	XFree86 config (Nikolai Weibull)
xmodmap		Xmodmap (Nikolai Weibull)
xslt		Xslt (Johannes Zellner)
monk		Monk (Mike Litherland)
xsd		Xsd (Johannes Zellner)
cdl		CDL (Raul Segura Acevedo)
sendpr		Send-pr (Hendrik Scholz)

Added indent file for Scheme. (Dorai Sitaram)
Added indent file for Prolog. (Kontra Gergely)
Added indent file for Povray (David Necas)
Added indent file for IDL (Aleksandar Jelenak)
Added C# indent and ftplugin scripts.

Added Ukrainian menu translations. (Bohdan Vlasyuk)
Added ASCII version of the Czech menus. (Jiri Brezina)

Added Simplified Chinese translation of the tutor. (Mendel L Chan)

Added Russian keymap for yawerty keyboard.

Added an explanation of using the vimrc file in the tutor.
Changed tutor.vim to get the right encoding for the Taiwainese tutor.

Added Russian tutor. (Andrey Kiselev)
Added Polish tutor. (Mikolaj Machowski)

Added darkblue color scheme. (Bohdan Vlasyuk)

When packing the dos language archive automatically generate the .mo files
that are required.

Improved NSIS script to support NSIS 180.  Added icons for the
enabled/disabled status. (Mirek Pruchnik)

cp1250 version of the Slovak message translations.

Compiler plugins for IRIX compilers. (David Harrison)


Fixed							*fixed-6.1*
-----

The license text was updated to make the meaning clearer and make it
compatible with the GNU GPL.  Otherwise distributors have a problem when
linking Vim with a GPL'ed library.

When installing the "less.sh" script it was not made executable. (Chuck Berg)

Win32: The "9" key on the numpad wasn't working. (Julian Kinraid)

The NSIS install script didn't work with NSIS 1.80 or later.  Also add
Vim-specific icons. (Pruchnik)

The script for conversion to HTML contained an "if" in the wrong place.
(Michael Geddes)

Allow using ":ascii" in the sandbox, it's harmless.

Removed creat() from osdef2.h.in, it wasn't used and may cause a problem when
it's redefined to creat64().

The text files in the VisVim directory were in "dos" format.  This caused
problems when applying a patch.  Now keep them in "unix" format and convert
them to "dos" format only for the PC archives.

Add ruby files to the dos source archive, they can be used by Make_mvc.mak.
(Mirek Pruchnik)

"cp -f" doesn't work on all systems.  Change "cp -f" in the Makefile to "rm
-f" and "cp".

Didn't compile on a Compaq Tandem Himalaya OSS. (Michael A. Benzinger)

The GTK file selection dialog didn't include the "Create Dir", "Delete File"
and "Rename File" buttons.

When doing ":browse source" the dialog has the title "Run Macro".  Better
would be "Source Vim script". (Yegappan Lakshmanan)

Win32: Don't use the printer font as default for the font dialog.

"make doslang" didn't work when configure didn't run (yet).  Set $MAKEMO to
"yes". (Mirek Pruchnik)

The ToolBar TagJump item used "g]", which prompts for a selection even when
there is only one matching tag.  Use "g<C-]>" instead.

The ming makefile for message translations didn't have the right list of
files.

The MS-Windows 3.1 version complains about LIBINTL.DLL not found.  Compile
this version without message translations.

The Borland 5 makefile contained a check for Ruby which is no longer needed.
The URLs for the TCL library was outdated. (Dan Sharp)

The eviso.ps file was missing from the DOS runtime archive, it's needed for
printing PostScript in the 32bit DOS version.

In menu files ":scriptencoding" was used in a wrong way after patch 6.1a.032
Now use ":scriptencoding" in the file where the translations are given.  Do
the same for all menus in latin1 encoding.

Included a lot of fixes for the Macintosh, mostly to make it work with Carbon.
(Dany StAmant, Axel Kielhorn, Benji Fisher)

Improved the vimtutor shell script to use $TMPDIR when it exists, and delete
the copied file when exiting in an abnormal way. (Max Ischenko)

When "iconv.dll" can't be found, try using "libiconv.dll".

When encryption is used, filtering with a shell command wasn't possible.

DJGPP: ":cd c:" always failed, can't get permissions for "c:".
Win32: ":cd c:/" failed if the previous current directory on c: had become
invalid.

DJGPP: Shift-Del and Del both produce \316\123.  Default mapping for Del is
wrong.  Disabled it.

Dependencies on header files in MingW makefile was wrong.

Win32: Don't use ACL stuff for MSVC 4.2, it's not supported. (Walter Briscoe)

Win32 with Borland: bcc.cfg was caching the value for $(BOR), but providing a
different argument to make didn't regenerate it.

Win32 with MSVC: Make_ivc.mak generates a new if_ole.h in a different
directory, the if_ole.h in the src directory may be used instead.  Delete the
distributed file.

When a window is vertically split and then ":ball" is used, the window layout
is messed up, can cause a crash. (Muraoka Taro)

When 'insertmode' is set, using File/New menu and then double clicking, "i" is
soon inserted. (Merlin Hansen)

When Select mode is active and using the Buffers menu to switch to another
buffer, an old selection comes back.  Reset VIsual_reselect for a ":buffer"
command.

When Select mode is active and 'insertmode' is set, using the Buffers menu to
switch to another buffer, did not return to Insert mode.  Make sure
"restart_edit" is set.

When double clicking on the first character of a word while 'selection' is
"exclusive" didn't select that word.


Patch 6.0.001
Problem:    Loading the sh.vim syntax file causes error messages . (Corinna
	    Vinschen)
Solution:   Add an "if". (Charles Campbell)
Files:	    runtime/syntax/sh.vim

Patch 6.0.002
Problem:    Using a '@' item in 'viminfo' doesn't work. (Marko Leipert)
Solution:   Add '@' to the list of accepted items.
Files:	    src/option.c

Patch 6.0.003
Problem:    The configure check for ACLs on AIX doesn't work.
Solution:   Fix the test program so that it compiles. (Tomas Ogren)
Files:	    src/configure.in, src/auto/configure

Patch 6.0.004
Problem:    The find/replace dialog doesn't reuse a previous argument
	    properly.
Solution:   After removing a "\V" terminate the string. (Zwane Mwaikambo)
Files:	    src/gui.c

Patch 6.0.005
Problem:    In Insert mode, "CTRL-O :ls" has a delay before redrawing.
Solution:   Don't delay just after wait_return() was called.  Added the
	    did_wait_return flag.
Files:	    src/globals.h, src/messsage.c, src/normal.c, src/screen.c

Patch 6.0.006
Problem:    With a vertical split, 'number' set and 'scrolloff' non-zero,
	    making the window width very small causes a crash. (Niklas
	    Lindstrom)
Solution:   Check for a zero width.
Files:	    src/move.c

Patch 6.0.007
Problem:    When setting 'filetype' while there is no FileType autocommand, a
	    following ":setfiletype" would set 'filetype' again. (Kobus
	    Retief)
Solution:   Set did_filetype always when 'filetype' has been set.
Files:	    src/option.c

Patch 6.0.008
Problem:    'imdisable' is missing from the options window. (Michael Naumann)
Solution:   Add an entry for it.
Files:	    runtime/optwin.vim

Patch 6.0.009
Problem:    Nextstep doesn't have S_ISBLK. (John Beppu)
Solution:   Define S_ISBLK using S_IFBLK.
Files:	    src/os_unix.h

Patch 6.0.010
Problem:    Using "gf" on a file name starting with "./" or "../" in a buffer
	    without a name causes a crash. (Roy Lewis)
Solution:   Check for a NULL file name.
Files:	    src/misc2.c

Patch 6.0.011
Problem:    Python: After replacing or deleting lines get an ml_get error.
	    (Leo Lipelis)
Solution:   Adjust the cursor position for deleted or added lines.
Files:	    src/if_python.c

Patch 6.0.012
Problem:    Polish translations contain printf format errors, this can result
	    in a crash when using one of them.
Solution:   Fix for translated messages. (Michal Politowski)
Files:	    src/po/pl.po

Patch 6.0.013
Problem:    Using ":silent! cmd" still gives some error messages, like for an
	    invalid range. (Salman Halim)
Solution:   Reset emsg_silent after calling emsg() in do_one_cmd().
Files:	    src/ex_docmd.c

Patch 6.0.014
Problem:    When 'modifiable' is off and 'virtualedit' is "all", "rx" on a TAB
	    still changes the buffer. (Muraoka Taro)
Solution:   Check if saving the line for undo fails.
Files:	    src/normal.c

Patch 6.0.015
Problem:    When 'cpoptions' includes "S" and "filetype plugin on" has been
	    used, can get an error for deleting the b:did_ftplugin variable.
	    (Ralph Henderson)
Solution:   Only delete the variable when it exists.
Files:	    runtime/ftplugin.vim

Patch 6.0.016
Problem:    bufnr(), bufname() and bufwinnr() don't find unlisted buffers when
	    the argument is a string. (Hari Krishna Dara)
	    Also for setbufvar() and getbufvar().
Solution:   Also find unlisted buffers.
Files:	    src/eval.c

Patch 6.0.017
Problem:    When 'ttybuiltin' is set and a builtin termcap entry defines t_Co
	    and the external one doesn't, it gets reset to empty. (David
	    Harrison)
Solution:   Only set t_Co when it wasn't set yet.
Files:	    src/term.c

Patch 6.0.018
Problem:    Initializing 'encoding' may cause a crash when setlocale() is not
	    used. (Dany St-Amant)
Solution:   Check for a NULL pointer.
Files:	    src/mbyte.c

Patch 6.0.019
Problem:    Converting a string with multi-byte characters to a printable
	    string, e.g., with strtrans(), may cause a crash. (Tomas Zellerin)
Solution:   Correctly compute the length of the result in transstr().
Files:	    src/charset.c

Patch 6.0.020
Problem:    When obtaining the value of a global variable internally, could
	    get the function-local value instead.  Applies to using <Leader>
	    and <LocalLeader> and resetting highlighting in a function.
Solution:   Prepend "g:" to the variable name. (Aric Blumer)
Files:	    src/syntax.c, src/term.c

Patch 6.0.021
Problem:    The 'cscopepathcomp' option didn't work.
Solution:   Change USE_CSCOPE to FEAT_CSCOPE. (Mark Feng)
Files:	    src/option.c

Patch 6.0.022
Problem:    When using the 'langmap' option, the second character of a command
	    starting with "g" isn't adjusted.
Solution:   Apply 'langmap' to the second character. (Alex Kapranoff)
Files:	    src/normal.c

Patch 6.0.023
Problem:    Loading the lhaskell syntax doesn't work. (Thore B. Karlsen)
Solution:   Use ":runtime" instead of "source" to load haskell.vim.
Files:	    runtime/syntax/lhaskell.vim

Patch 6.0.024
Problem:    Using "CTRL-V u 9900" in Insert mode may cause a crash. (Noah
	    Levitt)
Solution:   Don't insert a NUL byte in the text, use a newline.
Files:	    src/misc1.c

Patch 6.0.025
Problem:    The pattern "\vx(.|$)" doesn't match "x" at the end of a line.
	    (Preben Peppe Guldberg)
Solution:   Always see a "$" as end-of-line after "\v".  Do the same for "^".
Files:	    src/regexp.c

Patch 6.0.026
Problem:    GTK: When using arrow keys to navigate through the menus, the
	    separators are selected.
Solution:   Set the separators "insensitive". (Pavel Kankovsky)
Files:	    src/gui_gtk.c, src/gui_gtk_x11.c

Patch 6.0.027
Problem:    VMS: Printing doesn't work, the file is deleted too quickly.
	    No longer need the VMS specific printing menu.
	    gethostname() is not available with VAXC.
	    The makefile was lacking selection of the tiny-huge feature set.
Solution:   Adjust the 'printexpr' option default. Fix the other problems and
	    update the documentation.  (Zoltan Arpadffy)
Files:	    runtime/doc/os_vms.txt, runtime/menu.vim, src/INSTALLvms.txt,
	    src/Make_vms.mms, src/option.c, src/os_unix.c, src/os_vms_conf.h

Patch 6.0.028
Problem:    Can't compile without +virtualedit and with +visualextra. (Geza
	    Lakner)
Solution:   Add an #ifdef for +virtualedit.
Files:	    src/ops.c

Patch 6.0.029
Problem:    When making a change in line 1, then in line 2 and then deleting
	    line 1, undo info could be wrong. Only when the changes are undone
	    at once. (Gerhard Hochholzer)
Solution:   When not saving a line for undo because it was already done
	    before, remember for which entry the last line must be computed.
	    Added ue_getbot_entry pointer for this.  When the number of lines
	    changes, adjust the position of newer undo entries.
Files:	    src/structs.h, src/undo.c

Patch 6.0.030
Problem:    Using ":source! file" doesn't work inside a loop or after
	    ":argdo". (Pavol Juhas)
Solution:   Execute the commands in the file right away, do not let the main
	    loop do it.
Files:	    src/ex_cmds2.c, src/ex_docmd.c, src/getchar.c, src/globals.h,
	    src/proto/ex_docmd.pro, src/proto/getchar.pro

Patch 6.0.031
Problem:    Nextstep doesn't have setenv() or putenv().  (John Beppu)
Solution:   Move putenv() from pty.c to misc2.c
Files:	    src/misc2.c, src/pty.c

Patch 6.0.032
Problem:    When changing a setting that affects all folds, they are not
	    displayed immediately.
Solution:   Set the redraw flag in foldUpdateAll().
Files:	    src/fold.c

Patch 6.0.033
Problem:    Using 'wildmenu' on MS-Windows, file names that include a space
	    are only displayed starting with that space. (Xie Yuheng)
Solution:   Don't recognize a backslash before a space as a path separator.
Files:	    src/screen.c

Patch 6.0.034
Problem:    Calling searchpair() with three arguments could result in a crash
	    or strange error message. (Kalle Bjorklid)
Solution:   Don't use the fifth argument when there is no fourth argument.
Files:	    src/eval.c

Patch 6.0.035
Problem:    The menu item Edit/Global_Settings/Toggle_Toolbar doesn't work
	    when 'ignorecase' is set. (Allen Castaban)
Solution:   Always match case when checking if a flag is already present in
	    'guioptions'.
Files:	    runtime/menu.vim

Patch 6.0.036
Problem:    OS/2, MS-DOS and MS-Windows: Using a path that starts with a
	    slash in 'tags' doesn't work as expected. (Mathias Koehrer
Solution:   Only use the drive, not the whole path to the current directory.
	    Also make it work for "c:dir/file".
Files:	    src/misc2.c

Patch 6.0.037
Problem:    When the user has set "did_install_syntax_menu" to avoid the
	    default Syntax menu it still appears. (Virgilio)
Solution:   Don't add the three default items when "did_install_syntax_menu"
	    is set.
Files:	    runtime/menu.vim

Patch 6.0.038
Problem:    When 'selection' is "exclusive", deleting a block of text at the
	    end of a line can leave the cursor beyond the end of the line.
Solution:   Correct the cursor position.
Files:	    src/ops.c

Patch 6.0.039
Problem:    "gP" leaves the cursor in the wrong position when 'virtualedit' is
	    used.  Using "c" in blockwise Visual mode leaves the cursor in a
	    strange position.
Solution:   For "gP" reset the "coladd" field for the '] mark.  For "c" leave
	    the cursor on the last inserted character.
Files:	    src/ops.c

Patch 6.0.040
Problem:    When 'fileencoding' is invalid and writing fails because of
	    this, the original file is gone. (Eric Carlier)
Solution:   Restore the original file from the backup.
Files:	    src/fileio.c

Patch 6.0.041
Problem:    Using ":language messages en" when LC_MESSAGES is undefined
	    results in setting LC_CTYPE. (Eric Carlier)
Solution:   Set $LC_MESSAGES instead.
Files:	    src/ex_cmds2.c

Patch 6.0.042
Problem:    ":mksession" can't handle file names with a space.
Solution:   Escape special characters in file names with a backslash.
Files:	    src/ex_docmd.c

Patch 6.0.043
Problem:    Patch 6.0.041 was wrong.
Solution:   Use mch_getenv() instead of vim_getenv().
Files:	    src/ex_cmds2.c

Patch 6.0.044
Problem:    Using a "containedin" list for a syntax item doesn't work for an
	    item that doesn't have a "contains" argument.  Also, "containedin"
	    doesn't ignore a transparent item. (Timo Frenay)
Solution:   When there is a "containedin" argument somewhere, always check for
	    contained items.  Don't check for the transparent item but the
	    item it's contained in.
Files:	    src/structs.h, src/syntax.c

Patch 6.0.045
Problem:    After creating a fold with a Visual selection, another window
	    with the same buffer still has inverted text. (Sami Salonen)
Solution:   Redraw the inverted text.
Files:	    src/normal.c

Patch 6.0.046
Problem:    When getrlimit() returns an 8 byte number the check for running
	    out of stack may fail. (Anthony Meijer)
Solution:   Skip the stack check if the limit doesn't fit in a long.
Files:	    src/auto/configure, src/config.h.in, src/configure.in,
	    src/os_unix.c

Patch 6.0.047
Problem:    Using a regexp with "\(\)" inside a "\%[]" item causes a crash.
	    (Samuel Lacas)
Solution:   Don't allow nested atoms inside "\%[]".
Files:	    src/regexp.c

Patch 6.0.048
Problem:    Win32: In the console the mouse doesn't always work correctly.
	    Sometimes after getting focus a mouse movement is interpreted like
	    a button click.
Solution:   Use a different function to obtain the number of mouse buttons.
	    Avoid recognizing a button press from undefined bits. (Vince Negri)
Files:	    src/os_win32.c

Patch 6.0.049
Problem:    When using evim the intro screen is misleading. (Adrian Nagle)
Solution:   Mention whether 'insertmode' is set and the menus to be used.
Files:	    runtime/menu.vim, src/version.c

Patch 6.0.050
Problem:    UTF-8: "viw" doesn't include non-ASCII characters before the
	    cursor. (Bertilo Wennergren)
Solution:   Use dec_cursor() instead of decrementing the column number.
Files:	    src/search.c

Patch 6.0.051
Problem:    UTF-8: Using CTRL-R on the command line doesn't insert composing
	    characters. (Ron Aaron)
Solution:   Also include the composing characters and fix redrawing them.
Files:	    src/ex_getln.c, src/ops.c

Patch 6.0.052
Problem:    The check for rlim_t in patch 6.0.046 does not work on some
	    systems. (Zdenek Sekera)
Solution:   Also look in sys/resource.h for rlim_t.
Files:	    src/auto/configure, src/configure.in

Patch 6.0.053 (extra)
Problem:    Various problems with QNX.
Solution:   Minor fix for configure.  Switch on terminal clipboard support in
	    main.c.  Fix "pterm" mouse support.  os_qnx.c didn't build without
	    photon. (Julian Kinraid)
Files:	    src/auto/configure, src/configure.in, src/gui_photon.c,
	    src/main.c, src/misc2.c, src/option.h, src/os_qnx.c, src/os_qnx.h,
	    src/syntax.c

Patch 6.0.054
Problem:    When using mswin.vim, CTRL-V pastes a block of text like it is
	    normal text.  Using CTRL-V in blockwise Visual mode leaves "x"
	    characters behind.
Solution:   Make CTRL-V work as it should.  Do the same for the Paste menu
	    entries.
Files:	    runtime/menu.vim, runtime/mswin.vim

Patch 6.0.055
Problem:    GTK: The selection isn't copied the first time.
Solution:   Own the selection at the right moment.
Files:	    src/gui_gtk_x11.c

Patch 6.0.056
Problem:    Using "CTRL-O cw" in Insert mode results in a nested Insert mode.
	    <Esc> doesn't leave Insert mode then.
Solution:   Only use nested Insert mode when 'insertmode' is set or when a
	    mapping is used.
Files:	    src/normal.c

Patch 6.0.057
Problem:    Using ":wincmd g}" in a function doesn't work.  (Gary Holloway)
Solution:   Execute the command directly, instead of putting it in the
	    typeahead buffer.
Files:	    src/normal.c, src/proto/normal.pro, src/window.c

Patch 6.0.058
Problem:    When a Cursorhold autocommand moved the cursor, the ruler wasn't
	    updated. (Bohdan Vlasyuk)
Solution:   Update the ruler after executing the autocommands.
Files:	    src/gui.c

Patch 6.0.059
Problem:    Highlighting for 'hlsearch' isn't visible in lines that are
	    highlighted for diff highlighting.  (Gary Holloway)
Solution:   Let 'hlsearch' highlighting overrule diff highlighting.
Files:	    src/screen.c

Patch 6.0.060
Problem:    Motif: When the tooltip is to be popped up, Vim crashes.
	    (Gary Holloway)
Solution:   Check for a NULL return value from gui_motif_fontset2fontlist().
Files:	    src/gui_beval.c

Patch 6.0.061
Problem:    The toolbar buttons to load and save a session do not correctly
	    use v:this_session.
Solution:   Check for v:this_session to be empty instead of existing.
Files:	    runtime/menu.vim

Patch 6.0.062
Problem:    Crash when 'verbose' is > 3 and using ":shell". (Yegappan
	    Lakshmanan)
Solution:   Avoid giving a NULL pointer to printf().  Also output a newline
	    and switch the cursor on.
Files:	    src/misc2.c

Patch 6.0.063
Problem:    When 'cpoptions' includes "$", using "cw" to type a ')' on top of
	    the "$" doesn't update syntax highlighting after it.
Solution:   Stop displaying the "$" when typing a ')' in its position.
Files:	    src/search.c

Patch 6.0.064 (extra)
Problem:    The NSIS install script doesn't work with newer versions of NSIS.
	    The diff feature doesn't work when there isn't a good diff.exe on
	    the system.
Solution:   Replace the GetParentDir instruction by a user function.
	    Fix a few cosmetic problems.  Use defined constants for the
	    version number, so that it's defined in one place only.
	    Only accept the install directory when it ends in "vim".
	    (Eduardo Fernandez)
	    Add a diff.exe and use it from the default _vimrc.
Files:	    nsis/gvim.nsi, nsis/README.txt, src/dosinst.c

Patch 6.0.065
Problem:    When using ":normal" in 'indentexpr' it may use redo characters
	    before its argument.  (Neil Bird)
Solution:   Save and restore the stuff buffer in ex_normal().
Files:	    src/ex_docmd.c, src/getchar.c, src/globals.h, src/structs.h

Patch 6.0.066
Problem:    Sometimes undo for one command is split into two undo actions.
	    (Halim Salman)
Solution:   Don't set the undo-synced flag when reusing a line that was
	    already saved for undo.
Files:	    src/undo.c

Patch 6.0.067
Problem:    if_xcmdsrv.c doesn't compile on systems where fd_set isn't defined
	    in the usual header file (e.g., AIX). (Mark Waggoner)
Solution:   Include sys/select.h in if_xcmdsrv.c for systems that have it.
Files:	    src/if_xcmdsrv.c

Patch 6.0.068
Problem:    When formatting a Visually selected area with "gq" and the number
	    of lines increases the last line may not be redrawn correctly.
	    (Yegappan Lakshmanan)
Solution:   Correct the area to be redrawn for inserted/deleted lines.
Files:	    src/ops.c

Patch 6.0.069
Problem:    Using "K" on a word that includes a "!" causes a "No previous
	    command" error, because the "!" is expanded. (Craig Jeffries)
Solution:   Put a backslash before the "!".
Files:	    src/normal.c

Patch 6.0.070
Problem:    Win32: The error message for a failed dynamic linking of a Perl,
	    Ruby, Tcl and Python library is unclear about what went wrong.
Solution:   Give the name of the library or function that could not be loaded.
	    Also for the iconv and gettext libraries when 'verbose' is set.
Files:	    src/eval.c, src/if_perl.xs, src/if_python.c, src/if_ruby.c,
	    src/if_tcl.c, src/mbyte.c, src/os_win32.c, src/proto/if_perl.pro,
	    src/proto/if_python.pro, src/proto/if_ruby.pro,
	    src/proto/if_tcl.pro, src/proto/mbyte.pro

Patch 6.0.071
Problem:    The "iris-ansi" builtin termcap isn't very good.
Solution:   Fix the wrong entries. (David Harrison)
Files:	    src/term.c

Patch 6.0.072
Problem:    When 'lazyredraw' is set, a mapping that stops Visual mode, moves
	    the cursor and starts Visual mode again causes a redraw problem.
	    (Brian Silverman)
Solution:   Redraw both the old and the new Visual area when necessary.
Files:	    src/normal.c, src/screen.c

Patch 6.0.073 (extra)
Problem:    DJGPP: When using CTRL-Z to start a shell, the prompt is halfway
	    the text. (Volker Kiefel)
Solution:   Position the system cursor before starting the shell.
Files:	    src/os_msdos.c

Patch 6.0.074
Problem:    When using "&" in a substitute string a multi-byte character with
	    a trailbyte 0x5c is not handled correctly.
Solution:   Recognize multi-byte characters inside the "&" part. (Muraoka Taro)
Files:	    src/regexp.c

Patch 6.0.075
Problem:    When closing a horizontally split window while 'eadirection' is
	    "hor" another horizontally split window is still resized. (Aron
	    Griffis)
Solution:   Only resize windows in the same top frame as the window that is
	    split or closed.
Files:	    src/main.c, src/proto/window.pro, src/window.c

Patch 6.0.076
Problem:    Warning for wrong pointer type when compiling.
Solution:   Use char instead of char_u pointer.
Files:	    src/version.c

Patch 6.0.077
Problem:    Patch 6.0.075 was incomplete.
Solution:   Fix another call to win_equal().
Files:	    src/option.c

Patch 6.0.078
Problem:    Using "daw" at the end of a line on a single-character word didn't
	    include the white space before it.  At the end of the file it
	    didn't work at all.  (Gavin Sinclair)
Solution:   Include the white space before the word.
Files:	    src/search.c

Patch 6.0.079
Problem:    When "W" is in 'cpoptions' and 'backupcopy' is "no" or "auto", can
	    still overwrite a read-only file, because it's renamed. (Gary
	    Holloway)
Solution:   Add a check for a read-only file before renaming the file to
	    become the backup.
Files:	    src/fileio.c

Patch 6.0.080
Problem:    When using a session file that has the same file in two windows,
	    the fileinfo() call in do_ecmd() causes a scroll and a hit-enter
	    prompt. (Robert Webb)
Solution:   Don't scroll this message when 'shortmess' contains 'O'.
Files:	    src/ex_cmds.c

Patch 6.0.081
Problem:    After using ":saveas" the new buffer name is added to the Buffers
	    menu with a wrong number. (Chauk-Mean Proum)
Solution:   Trigger BufFilePre and BufFilePost events for the renamed buffer
	    and BufAdd for the old name (which is with a new buffer).
Files:	    src/ex_cmds.c

Patch 6.0.082
Problem:    When swapping screens in an xterm and there is an (error) message
	    from the vimrc script, the shell prompt is after the message.
Solution:   Output a newline when there was output on the alternate screen.
	    Also when starting the GUI.
Files:	    src/main.c

Patch 6.0.083
Problem:    GTK: When compiled without menu support the buttons in a dialog
	    don't have any text. (Erik Edelmann)
Solution:   Add the text also when GTK_USE_ACCEL isn't defined.  And define
	    GTK_USE_ACCEL also when not using menus.
Files:	    src/gui_gtk.c

Patch 6.0.084
Problem:    UTF-8: a "r" command with an argument that is a keymap for a
	    character with a composing character can't be repeated with ".".
	    (Raphael Finkel)
Solution:   Add the composing characters to the redo buffer.
Files:	    src/normal.c

Patch 6.0.085
Problem:    When 'mousefocus' is set, using "s" to go to Insert mode and then
	    moving the mouse pointer to another window stops Insert mode,
	    while this doesn't happen with "a" or "i". (Robert Webb)
Solution:   Reset finish_op before calling edit().
Files:	    src/normal.c

Patch 6.0.086
Problem:    When using "gu" the message says "~ed".
Solution:   Make the message say "changed".
Files:	    src/ops.c

Patch 6.0.087 (lang)
Problem:    Message translations are incorrect, which may cause a crash.
	    (Peter Figura)
	    The Turkish translations needed more work and the maintainer
	    didn't have time.
Solution:   Fix order of printf arguments.  Remove %2$d constructs.
	    Add "-v" to msgfmt to get a warning for wrong translations.
	    Don't install the Turkish translations for now.
	    Update a few more translations.
Files:	    src/po/Makefile, src/po/af.po, src/po/cs.po, src/po/cs.cp1250.po,
	    src/po/de.po, src/po/es.po, src/po/fr.po, src/po/it.po,
	    src/po/ja.po, src/po/ja.sjis.po, src/po/ko.po, src/po/pl.po,
	    src/po/sk.po, src/po/uk.po, src/po/zh_CN.UTF-8.po,
	    src/po/zh_CN.cp936.po, src/po/zh_CN.po, src/po/zh_TW.po

Patch 6.0.088
Problem:    "." doesn't work after using "rx" in Visual mode.  (Charles
	    Campbell)
Solution:   Also store the replacement character in the redo buffer.
Files:	    src/normal.c

Patch 6.0.089
Problem:    In a C file, using "==" to align a line starting with "*  " after
	    a line with "* -" indents one space too few.  (Piet Delport)
Solution:   Align with the previous line if the comment-start-string matches
	    there.
Files:	    src/misc1.c

Patch 6.0.090
Problem:    When a wrapping line does not fit in a window and 'scrolloff' is
	    bigger than half the window height, moving the cursor left or
	    right causes the screen to flash badly. (Lubomir Host)
Solution:   When there is not enough room to show 'scrolloff' screen lines and
	    near the end of the line, show the end of the line.
Files:	    src/move.c

Patch 6.0.091
Problem:    Using CTRL-O in Insert mode, while 'virtualedit' is "all" and the
	    cursor is after the end-of-line, moves the cursor left. (Yegappan
	    Lakshmanan)
Solution:   Keep the cursor in the same position.
Files:	    src/edit.c

Patch 6.0.092
Problem:    The explorer plugin doesn't ignore case of 'suffixes' on
	    MS-Windows. (Mike Williams)
Solution:   Match or ignore case as appropriate for the OS.
Files:	    runtime/plugin/explorer.vim

Patch 6.0.093
Problem:    When the Tcl library couldn't be loaded dynamically, get an error
	    message when closing a buffer or window. (Muraoka Taro)
Solution:   Only free structures if already using the Tcl interpreter.
Files:	    src/if_tcl.c

Patch 6.0.094
Problem:    Athena: When clicking in the horizontal scrollbar Vim crashes.
	    (Paul Ackersviller)
Solution:   Use the thumb size instead of the window pointer of the scrollbar
	    (which is NULL). (David Harrison)
	    Also avoid that scolling goes the wrong way in a narrow window.
Files:	    src/gui_athena.c

Patch 6.0.095
Problem:    Perl: Deleting lines may leave the cursor beyond the end of the
	    file.
Solution:   Check the cursor position after deleting a line. (Serguei)
Files:	    src/if_perl.xs

Patch 6.0.096
Problem:    When ":saveas fname" fails because the file already exists, the
	    file name is changed anyway and a following ":w" will overwrite
	    the file. (Eric Carlier)
Solution:   Don't change the file name if the file already exists.
Files:	    src/ex_cmds.c

Patch 6.0.097
Problem:    Re-indenting in Insert mode with CTRL-F may cause a crash with a
	    multi-byte encoding.
Solution:   Avoid using a character before the start of a line. (Sergey
	    Vlasov)
Files:	    src/edit.c

Patch 6.0.098
Problem:    GTK: When using Gnome the "Search" and "Search and Replace" dialog
	    boxes are not translated.
Solution:   Define ENABLE_NLS before including gnome.h. (Eduardo Fernandez)
Files:	    src/gui_gtk.c, src/gui_gtk_x11.c

Patch 6.0.099
Problem:    Cygwin: When running Vi compatible MS-DOS line endings cause
	    trouble.
Solution:   Make the default for 'fileformats' "unix,dos" in Vi compatible
	    mode.  (Michael Schaap)
Files:	    src/option.h

Patch 6.0.100
Problem:    ":badd +0 test%file" causes a crash.
Solution:   Take into account that the "+0" is NUL terminated when allocating
	    room for replacing the "%".
Files:	    src/ex_docmd.c

Patch 6.0.101
Problem:    ":mksession" doesn't restore editing a file that has a '#' or '%'
	    in its name.  (Wolfgang Blankenburg)
Solution:   Put a backslash before the '#' and '%'.
Files:	    src/ex_docmd.c

Patch 6.0.102
Problem:    When changing folds the cursor may appear halfway a closed fold.
	    (Nam SungHyun)
Solution:   Set w_cline_folded correctly. (Yasuhiro Matsumoto)
Files:	    src/move.c

Patch 6.0.103
Problem:    When using 'scrollbind' a large value of 'scrolloff' will make the
	    scroll binding stop near the end of the file. (Coen Engelbarts)
Solution:   Don't use 'scrolloff' when limiting the topline for scroll
	    binding. (Dany StAmant)
Files:	    src/normal.c

Patch 6.0.104
Problem:    Multi-byte: When '$' is in 'cpoptions', typing a double-wide
	    character that overwrites the left halve of an old double-wide
	    character causes a redraw problem and the cursor stops blinking.
Solution:   Clear the right half of the old character. (Yasuhiro Matsumoto)
Files:	    src/edit.c, src/screen.c

Patch 6.0.105
Problem:    Multi-byte: In a window of one column wide, with syntax
	    highlighting enabled a crash might happen.
Solution:   Skip getting the syntax attribute when the character doesn't fit
	    anyway.  (Yasuhiro Matsumoto)
Files:	    src/screen.c

Patch 6.0.106 (extra)
Problem:    Win32: When the printer font is wrong, there is no error message.
Solution:   Give an appropriate error message. (Yasuhiro Matsumoto)
Files:	    src/os_mswin.c

Patch 6.0.107 (extra)
Problem:    VisVim: When editing another file, a modified file may be written
	    unexpectedly and without warning.
Solution:   Split the window if a file was modified.
Files:	    VisVim/Commands.cpp

Patch 6.0.108
Problem:    When using folding could try displaying line zero, resulting in an
	    error for a NULL pointer.
Solution:   Stop decrementing w_topline when the first line of a window is in
	    a closed fold.
Files:	    src/window.c

Patch 6.0.109
Problem:    XIM: When the input method is enabled, repeating an insertion with
	    "." disables it. (Marcel Svitalsky)
Solution:   Don't store the input method status when a command comes from the
	    stuff buffer.
Files:	    src/ui.c

Patch 6.0.110
Problem:    Using undo after executing "OxjAxkdd" from a register in
	    an empty buffer gives an error message.  (Gerhard Hochholzer)
Solution:   Don't adjust the bottom line number of an undo block when it's
	    zero.  Add a test for this problem.
Files:	    src/undo.c, src/testdir/test20.in, src/testdir/test20.ok

Patch 6.0.111
Problem:    The virtcol() function doesn't take care of 'virtualedit'.
Solution:   Add the column offset when needed. (Yegappan Lakshmanan)
Files:	    src/eval.c

Patch 6.0.112
Problem:    The explorer plugin doesn't sort directories with a space or
	    special character after a directory with a shorter name.
Solution:   Ignore the trailing slash when comparing directory names.  (Mike
	    Williams)
Files:	    runtime/plugin/explorer.vim

Patch 6.0.113
Problem:    ":edit ~/fname" doesn't work if $HOME includes a space.  Also,
	    expanding wildcards with the shell may fail. (John Daniel)
Solution:   Escape spaces with a backslash when needed.
Files:	    src/ex_docmd.c, src/misc1.c, src/proto/misc1.pro, src/os_unix.c

Patch 6.0.114
Problem:    Using ":p" with fnamemodify() didn't expand "~/" or "~user/" to a
	    full path.  For Win32 the current directory was prepended.
	    (Michael Geddes)
Solution:   Expand the home directory.
Files:	    src/eval.c

Patch 6.0.115 (extra)
Problem:    Win32: When using a dialog with a textfield it cannot scroll the
	    text.
Solution:   Add ES_AUTOHSCROLL to the textfield style. (Pedro Gomes)
Files:	    src/gui_w32.c

Patch 6.0.116 (extra)
Problem:    MS-Windows NT/2000/XP: filewritable() doesn't work correctly for
	    filesystems that use ACLs.
Solution:   Use ACL functions to check if a file is writable. (Mike Williams)
Files:	    src/eval.c, src/macros.h, src/os_win32.c, src/proto/os_win32.pro

Patch 6.0.117 (extra)
Problem:    Win32: when disabling the menu, "set lines=999" doesn't use all
	    the available screen space.
Solution:   Don't subtract the fixed caption height but the real menu height
	    from the available screen space.  Also: Avoid recursion in
	    gui_mswin_get_menu_height().
Files:	    src/gui_w32.c, src/gui_w48.c

Patch 6.0.118
Problem:    When $TMPDIR is a relative path, the temp directory is missing a
	    trailing slash and isn't deleted when Vim exits. (Peter Holm)
Solution:   Add the slash after expanding the directory to an absolute path.
Files:	    src/fileio.c

Patch 6.0.119 (depends on patch 6.0.116)
Problem:    VMS: filewritable() doesn't work properly.
Solution:   Use the same method as for Unix. (Zoltan Arpadffy)
Files:	    src/eval.c

Patch 6.0.120
Problem:    The conversion to html isn't compatible with XHTML.
Solution:   Quote the values. (Jess Thrysoee)
Files:	    runtime/syntax/2html.vim

Patch 6.0.121 (extra) (depends on patch 6.0.116)
Problem:    Win32: After patch 6.0.116 Vim doesn't compile with mingw32.
Solution:   Add an #ifdef HAVE_ACL.
Files:	    src/os_win32.c

Patch 6.0.122 (extra)
Problem:    Win16: Same resize problems as patch 6.0.117 fixed for Win32.  And
	    dialog textfield problem from patch 6.0.115.
Solution:   Set old_menu_height only when used.  Add ES_AUTOHSCROLL flag.
	    (Vince Negri)
Files:	    src/gui_w16.c

Patch 6.0.123 (depends on patch 6.0.119)
Problem:    Win16: Compilation problems.
Solution:   Move "&&" to other lines. (Vince Negri)
Files:	    src/eval.c

Patch 6.0.124
Problem:    When using a ":substitute" command that starts with "\="
	    (evaluated as an expression), "~" was still replaced with the
	    previous substitute string.
Solution:   Skip the replacement when the substitute string starts with "\=".
	    Also adjust the documentation about doubling backslashes.
Files:	    src/ex_cmds.c, runtime/doc/change.txt

Patch 6.0.125 (extra)
Problem:    Win32: When using the multi_byte_ime feature pressing the shift
	    key would be handled as if a character was entered, thus mappings
	    with a shifted key didn't work. (Charles Campbell)
Solution:   Ignore pressing the shift, control and alt keys.
Files:	    src/os_win32.c

Patch 6.0.126
Problem:    The python library was always statically linked.
Solution:   Link the python library dynamically. (Matthias Klose)
Files:	    src/auto/configure, src/configure.in

Patch 6.0.127
Problem:    When using a terminal that swaps screens and the Normal background
	    color has a different background, using an external command may
	    cause the color of the wrong screen to be changed. (Mark Waggoner)
Solution:   Don't call screen_stop_highlight() in stoptermcap().
Files:	    src/term.c

Patch 6.0.128
Problem:    When moving a vertically split window to the far left or right,
	    the scrollbars are not adjusted. (Scott E Lee)  When 'mousefocus'
	    is set the mouse pointer wasn't adjusted.
Solution:   Adjust the scrollbars and the mouse pointer.
Files:	    src/window.c

Patch 6.0.129
Problem:    When using a very long file name, ":ls" (repeated a few times)
	    causes a crash.  Test with "vim `perl -e 'print "A"x1000'`".
	    (Tejeda)
Solution:   Terminate a string before getting its length in buflist_list().
Files:	    src/buffer.c

Patch 6.0.130
Problem:    When using ":cprev" while the error window is open, and the new
	    line at the top wraps, the window isn't correctly drawn.
	    (Yegappan Lakshmanan)
Solution:   When redrawing the topline don't scroll twice.
Files:	    src/screen.c

Patch 6.0.131
Problem:    When using bufname() and there are two matches for listed buffers
	    and one match for an unlisted buffer, the unlisted buffer is used.
	    (Aric Blumer)
Solution:   When there is a match with a listed buffer, don't check for
	    unlisted buffers.
Files:	    src/buffer.c

Patch 6.0.132
Problem:    When setting 'iminsert' in the vimrc and using an xterm with two
	    screens the ruler is drawn in the wrong screen. (Igor Goldenberg)
Solution:   Only draw the ruler when using the right screen.
Files:	    src/option.c

Patch 6.0.133
Problem:    When opening another buffer while 'keymap' is set and 'iminsert'
	    is zero, 'iminsert' is set to one unexpectedly. (Igor Goldenberg)
Solution:   Don't set 'iminsert' as a side effect of defining a ":lmap"
	    mapping.  Only do that when 'keymap' is set.
Files:	    src/getchar.c, src/option.c

Patch 6.0.134
Problem:    When completing ":set tags=" a path with an embedded space causes
	    the completion to stop. (Sektor van Skijlen)
Solution:   Escape spaces with backslashes, like for ":set path=".  Also take
	    backslashes into account when searching for the start of the path
	    to complete (e.g., for 'backupdir' and 'cscopeprg').
Files:	    src/ex_docmd.c, src/ex_getln.c, src/option.c, src/structs.h

Patch 6.0.135
Problem:    Menus that are not supposed to do anything used "<Nul>", which
	    still produced an error beep.
	    When CTRL-O is mapped for Insert mode, ":amenu" commands didn't
	    work in Insert mode.
	    Menu language falls back to English when $LANG ends in "@euro".
Solution:   Use "<Nop>" for a menu item that doesn't do anything, just like
	    mappings.
	    Use ":anoremenu" instead of ":amenu".
	    Ignore "@euro" in the locale name.
Files:	    runtime/makemenu.vim, runtime/menu.vim, src/menu.c

Patch 6.0.136
Problem:    When completing in Insert mode, a mapping could be unexpectedly
	    applied.
Solution:   Don't use mappings when checking for a typed character.
Files:	    src/edit.c

Patch 6.0.137
Problem:    GUI: When using the find or find/replace dialog from Insert mode,
	    the input mode is stopped.
Solution:   Don't use the input method status when the main window doesn't
	    have focus.
Files:	    src/ui.c

Patch 6.0.138
Problem:    GUI: When using the find or find/replace dialog from Insert mode,
	    the text is inserted when CTRL-O is mapped. (Andre Pang)
	    When opening the dialog again, a whole word search isn't
	    recognized.
	    When doing "replace all" a whole word search was never done.
Solution:   Don't put a search or replace command in the input buffer,
	    execute it directly.
	    Recognize "\<" and "\>" after removing "\V".
	    Add "\<" and "\>" also for "replace all".
Files:	    src/gui.c

Patch 6.0.139
Problem:    When stopping 'wildmenu' completion, the statusline of the
	    bottom-left vertically split window isn't redrawn. (Yegappan
	    Lakshmanan)
Solution:   Redraw all the bottom statuslines.
Files:	    src/ex_getln.c, src/proto/screen.pro, src/screen.c

Patch 6.0.140
Problem:    Memory allocated for local mappings and abbreviations is leaked
	    when the buffer is wiped out.
Solution:   Clear the local mappings when deleting a buffer.
Files:	    src/buffer.c, src/getchar.c, src/proto/getchar.pro, src/vim.h

Patch 6.0.141
Problem:    When using ":enew" in an empty buffer, some buffer-local things
	    are not cleared.  b:keymap_name is not set.
Solution:   Clear user commands and mappings local to the buffer when re-using
	    the current buffer.  Reload the keymap.
Files:	    src/buffer.c

Patch 6.0.142
Problem:    When Python is linked statically, loading dynamic extensions might
	    fail.
Solution:   Add an extra linking flag when needed. (Andrew Rodionoff)
Files:	    src/configure.in, src/auto/configure

Patch 6.0.143
Problem:    When a syntax item includes a line break in a pattern, the syntax
	    may not be updated properly when making a change.
Solution:   Add the "linebreaks" argument to ":syn sync".
Files:	    runtime/doc/syntax.txt, src/screen.c, src/structs.h, src/syntax.c

Patch 6.0.144
Problem:    After patch 6.0.088 redoing "veU" doesn't work.
Solution:   Don't add the "U" to the redo buffer, it will be used as an undo
	    command.
Files:	    src/normal.c

Patch 6.0.145
Problem:    When Vim can't read any input it might get stuck.  When
	    redirecting stdin and stderr Vim would not read commands from a
	    file.  (Servatius Brandt)
Solution:   When repeatedly trying to read a character when it's not possible,
	    exit Vim.  When stdin and stderr are not a tty, still try reading
	    from them, but don't do a blocking wait.
Files:	    src/ui.c

Patch 6.0.146
Problem:    When 'statusline' contains "%{'-'}" this results in a zero.
	    (Milan Vancura)
Solution:   Don't handle numbers with a minus as a number, they were not
	    displayed anyway.
Files:	    src/buffer.c

Patch 6.0.147
Problem:    It's not easy to mark a Vim version as being modified.  The new
	    license requires this.
Solution:   Add the --modified-by argument to configure and the MODIFIED_BY
	    define.  I's used in the intro screen and the ":version" output.
Files:	    src/auto/configure, src/configure.in, src/config.h.in,
	    src/feature.h, src/version.c

Patch 6.0.148
Problem:    After "p" in an empty line, `[ goes to the second character.
	    (Kontra Gergely)
Solution:   Don't increment the column number in an empty line.
Files:	    src/ops.c

Patch 6.0.149
Problem:    The pattern "\(.\{-}\)*" causes a hang.  When using a search
	    pattern that causes a stack overflow to be detected Vim could
	    still hang.
Solution:   Correctly report "operand could be empty" when using "\{-}".
	    Check for "out_of_stack" inside loops to avoid a hang.
Files:	    src/regexp.c

Patch 6.0.150
Problem:    When using a multi-byte encoding, patch 6.0.148 causes "p" to work
	    like "P". (Sung-Hyun Nam)
Solution:   Compute the byte length of a multi-byte character.
Files:	    src/ops.c

Patch 6.0.151
Problem:    Redrawing the status line and ruler can be wrong when it contains
	    multi-byte characters.
Solution:   Use character width and byte length correctly. (Yasuhiro Matsumoto)
Files:	    src/screen.c

Patch 6.0.152
Problem:    strtrans() could hang on an illegal UTF-8 byte sequence.
Solution:   Skip over illegal bytes. (Yasuhiro Matsumoto)
Files:	    src/charset.c

Patch 6.0.153
Problem:    When using (illegal) double-byte characters and Vim syntax
	    highlighting Vim can crash. (Yasuhiro Matsumoto)
Solution:   Increase a pointer over a character instead of a byte.
Files:	    src/regexp.c

Patch 6.0.154
Problem:    MS-DOS and MS-Windows: The menu entries for xxd don't work when
	    there is no xxd in the path.
	    When converting back from Hex the filetype may remain "xxd" if it
	    is not detected.
Solution:   When xxd is not in the path use the one in the runtime directory,
	    where the install program has put it.
	    Clear the 'filetype' option before detecting the new value.
Files:	    runtime/menu.vim

Patch 6.0.155
Problem:    Mac: compilation problems in ui.c after patch 6.0.145. (Axel
	    Kielhorn)
Solution:   Don't call mch_inchar() when NO_CONSOLE is defined.
Files:	    src/ui.c

Patch 6.0.156
Problem:    Starting Vim with the -b argument and two files, ":next" doesn't
	    set 'binary' in the second file, like Vim 5.7. (Norman Diamond)
Solution:   Set the global value for 'binary'.
Files:	    src/option.c

Patch 6.0.157
Problem:    When defining a user command with "-complete=dir" files will also
	    be expanded.  Also, "-complete=mapping" doesn't appear to work.
	    (Michael Naumann)
Solution:   Use the expansion flags defined with the user command.
	    Handle expanding mappings specifically.
Files:	    src/ex_docmd.c

Patch 6.0.158
Problem:    When getting the warning for a file being changed outside of Vim
	    and reloading the file, the 'readonly' option is reset, even when
	    the permissions didn't change. (Marcel Svitalsky)
Solution:   Keep 'readonly' set when reloading a file and the permissions
	    didn't change.
Files:	    src/fileio.c

Patch 6.0.159
Problem:    Wildcard expansion for ":emenu" also shows separators.
Solution:   Skip menu separators for ":emenu", ":popup" and ":tearoff".
	    Also, don't handle ":tmenu" as if it was ":tearoff".  And leave
	    out the alternatives with "&" included.
Files:	    src/menu.c

Patch 6.0.160
Problem:    When compiling with GCC 3.0.2 and using the "-O2" argument, the
	    optimizer causes a problem that makes Vim crash.
Solution:   Add a configure check to avoid "-O2" for this version of gcc.
Files:	    src/configure.in, src/auto/configure

Patch 6.0.161 (extra)
Problem:    Win32: Bitmaps don't work with signs.
Solution:   Make it possible to use bitmaps with signs. (Muraoka Taro)
Files:	    src/ex_cmds.c, src/feature.h, src/gui_w32.c, src/gui_x11.c,
	    src/proto/gui_w32.pro, src/proto/gui_x11.pro

Patch 6.0.162
Problem:    Client-server: An error message for a wrong expression appears in
	    the server instead of the cient.
Solution:   Pass the error message from the server to the client.  Also
	    adjust the example code. (Flemming Madsen)
Files:	    src/globals.h, src/if_xcmdsrv.c, src/main.c, src/os_mswin.c,
	    src/proto/if_xcmdsrv.pro, src/proto/os_mswin.pro,
	    runtime/doc/eval.txt, runtime/tools/xcmdsrv_client.c

Patch 6.0.163
Problem:    When using a GUI dialog, a file name is sometimes used like it was
	    a directory.
Solution:   Separate path and file name properly.
	    For GTK, Motif and Athena concatenate directory and file name for
	    the default selection.
Files:	    src/diff.c, src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c,
	    src/gui_athena.c, src/gui_gtk.c, src/gui_motif.c, src/message.c

Patch 6.0.164
Problem:    After patch 6.0.135 the menu entries for pasting don't work in
	    Insert and Visual mode. (Muraoka Taro)
Solution:   Add <script> to allow script-local mappings.
Files:	    runtime/menu.vim

Patch 6.0.165
Problem:    Using --remote and executing locally gives unavoidable error
	    messages.
Solution:   Add --remote-silent and --remote-wait-silent to silently execute
	    locally.
	    For Win32 there was no error message when a server didn't exist.
Files:	    src/eval.c, src/if_xcmdsrv.c, src/main.c, src/os_mswin.c,
	    src/proto/if_xcmdsrv.pro, src/proto/os_mswin.pro

Patch 6.0.166
Problem:    GUI: There is no way to avoid dialogs to pop up.
Solution:   Add the 'c' flag to 'guioptions': Use console dialogs.  (Yegappan
	    Lakshmanan)
Files:	    runtime/doc/options.txt, src/option.h, src/message.c

Patch 6.0.167
Problem:    When 'fileencodings' is "latin2" some characters in the help files
	    are displayed wrong.
Solution:   Force the 'fileencoding' for the help files to be "latin1".
Files:	    src/fileio.c

Patch 6.0.168
Problem:    ":%s/\n/#/" doesn't replace at an empty line. (Bruce DeVisser)
Solution:   Don't skip matches after joining two lines.
Files:	    src/ex_cmds.c

Patch 6.0.169
Problem:    When run as evim and the GUI can't be started we get stuck in a
	    terminal without menus in Insert mode.
Solution:   Exit when using "evim" and "gvim -y" when the GUI can't be
	    started.
Files:	    src/main.c

Patch 6.0.170
Problem:    When printing double-width characters the size of tabs after them
	    is wrong.  (Muraoka Taro)
Solution:   Correctly compute the column after a double-width character.
Files:	    src/ex_cmds2.c

Patch 6.0.171
Problem:    With 'keymodel' including "startsel", in Insert mode after the end
	    of a line, shift-Left does not move the cursor. (Steve Hall)
Solution:   CTRL-O doesn't move the cursor left, need to do that explicitly.
Files:	    src/edit.c

Patch 6.0.172
Problem:    CTRL-Q doesn't replace CTRL-V after CTRL-X in Insert mode while it
	    does in most other situations.
Solution:   Make CTRL-X CTRL-Q work like CTRL-X CTRL-V in Insert mode.
Files:	    src/edit.c

Patch 6.0.173
Problem:    When using "P" to insert a line break the cursor remains past the
	    end of the line.
Solution:   Check for the cursor being beyond the end of the line.
Files:	    src/ops.c

Patch 6.0.174
Problem:    After using "gd" or "gD" the search direction for "n" may still be
	    backwards. (Servatius Brandt)
Solution:   Reset the search direction to forward.
Files:	    src/normal.c, src/search.c, src/proto/search.pro

Patch 6.0.175
Problem:    ":help /\z(\)" doesn't work. (Thomas Koehler)
Solution:   Double the backslashes.
Files:	    src/ex_cmds.c

Patch 6.0.176
Problem:    When killed by a signal autocommands are still triggered as if
	    nothing happened.
Solution:   Add the v:dying variable to allow autocommands to work differently
	    when a deadly signal has been trapped.
Files:	    src/eval.c, src/os_unix.c, src/vim.h

Patch 6.0.177
Problem:    When 'commentstring' is empty and 'foldmethod' is "marker", "zf"
	    doesn't work. (Thomas S. Urban)
Solution:   Add the marker even when 'commentstring' is empty.
Files:	    src/fold.c, src/normal.c

Patch 6.0.178
Problem:    Uninitialized memory read from xp_backslash field.
Solution:   Initialize xp_backslash field properly.
Files:	    src/eval.c, src/ex_docmd.c, src/ex_getln.c, src/misc1.c, src/tag.c

Patch 6.0.179
Problem:    Win32: When displaying UTF-8 characters may read uninitialized
	    memory.
Solution:   Add utfc_ptr2len_check_len() to avoid reading past the end of a
	    string.
Files:	    src/mbyte.c, src/proto/mbyte.pro, src/gui_w32.c

Patch 6.0.180
Problem:    Expanding environment variables in a string that ends in a
	    backslash could go past the end of the string.
Solution:   Detect the trailing backslash.
Files:	    src/misc1.c

Patch 6.0.181
Problem:    When using ":cd dir" memory was leaked.
Solution:   Free the allocated memory.  Also avoid an uninitialized memory
	    read.
Files:	    src/misc2.c

Patch 6.0.182
Problem:    When using a regexp on multi-byte characters, could try to read a
	    character before the start of the line.
Solution:   Don't decrement a pointer to before the start of the line.
Files:	    src/regexp.c

Patch 6.0.183
Problem:    Leaking memory when ":func!" redefines a function.
Solution:   Free the function name when it's not used.
Files:	    src/eval.c

Patch 6.0.184
Problem:    Leaking memory when expanding option values.
Solution:   Don't always copy the expanded option into allocated memory.
Files:	    src/option.c

Patch 6.0.185
Problem:    Crash in Vim when pasting a selection in another application, on a
	    64 bit machine.
Solution:   Fix the format for an Atom to 32 bits. (Peter Derr)
Files:	    src/ui.c

Patch 6.0.186
Problem:    X11: Three warnings when compiling the client-server code.
Solution:   Add a typecast to unsigned char.
Files:	    src/if_xcmdsrv.c

Patch 6.0.187
Problem:    "I" in Visual mode and then "u" reports too many changes. (Andrew
	    Stryker)
	    "I" in Visual linewise mode adjusts the indent for no apparent
	    reason.
Solution:   Only save those lines for undo that are changed.
	    Don't change the indent after inserting in Visual linewise mode.
Files:	    src/ops.c

Patch 6.0.188
Problem:    Win32: After patch 6.0.161 signs defined in the vimrc file don't
	    work.
Solution:   Initialize the sign icons after initializing the GUI. (Vince
	    Negri)
Files:	    src/gui.c, src/gui_x11.c

Patch 6.0.189
Problem:    The size of the Visual area isn't always displayed when scrolling
	    ('ruler' off, 'showcmd' on).  Also not when using a search
	    command. (Sylvain Hitier)
Solution:   Redisplay the size of the selection after showing the mode.
Files:	    src/screen.c

Patch 6.0.190
Problem:    GUI: when 'mouse' is empty a click with the middle button still
	    moves the cursor.
Solution:   Paste at the cursor position instead of the mouse position.
Files:	    src/normal.c

Patch 6.0.191
Problem:    When no servers are available serverlist() gives an error instead
	    of returning an empty string. (Hari Krishna)
Solution:   Don't give an error message.
Files:	    src/eval.c

Patch 6.0.192
Problem:    When 'virtualedit' is set, "ylj" goes to the wrong column. (Andrew
	    Nikitin)
Solution:   Reset the flag that w_virtcol is valid when moving the cursor back
	    to the start of the operated area.
Files:	    src/normal.c

Patch 6.0.193
Problem:    When 'virtualedit' is set, col(".") after the end of the line
	    should return one extra.
Solution:   Add one to the column.
Files:	    src/eval.c

Patch 6.0.194
Problem:    "--remote-silent" tries to send a reply to the client, like it was
	    "--remote-wait".
Solution:   Properly check for the argument.
Files:	    src/main.c

Patch 6.0.195
Problem:    When 'virtualedit' is set and a search starts in virtual space
	    ":call search('x')" goes to the wrong position. (Eric Long)
Solution:   Reset coladd when finding a match.
Files:	    src/search.c

Patch 6.0.196
Problem:    When 'virtualedit' is set, 'selection' is "exclusive" and visually
	    selecting part of a tab at the start of a line, "x" joins it with
	    the previous line.  Also, when the selection spans more than one
	    line the whole tab is deleted.
Solution:   Take coladd into account when adjusting for 'selection' being
	    "exclusive".  Also expand a tab into spaces when deleting more
	    than one line.
Files:	    src/normal.c, src/ops.c

Patch 6.0.197
Problem:    When 'virtualedit' is set and 'selection' is "exclusive", "v$x"
	    doesn't delete the last character in the line. (Eric Long)
Solution:   Don't reset the inclusive flag. (Helmut Stiegler)
Files:	    src/normal.c

Patch 6.0.198
Problem:    When 'virtualedit' is set and 'showbreak' is not empty, moving the
	    cursor over the line break doesn't work properly. (Eric Long)
Solution:   Make getviscol() and getviscol2() use getvvcol() to obtain the
	    virtual cursor position.  Adjust coladvance() and oneleft() to
	    skip over the 'showbreak' characters.
Files:	    src/edit.c, src/misc2.c

Patch 6.0.199
Problem:    Multi-byte: could use iconv() after calling iconv_end().
	    (Yasuhiro Matsumoto)
Solution:   Stop converting input and output stream after calling iconv_end().
Files:	    src/mbyte.c

Patch 6.0.200
Problem:    A script that starts with "#!perl" isn't recognized as a Perl
	    filetype.
Solution:   Ignore a missing path in a script header.  Also, speed up
	    recognizing scripts by simplifying the patterns used.
Files:	    runtime/scripts.vim

Patch 6.0.201
Problem:    When scrollbinding and doing a long jump, switching windows jumps
	    to another position in the file.  Scrolling a few lines at a time
	    is OK. (Johannes Zellner)
Solution:   When setting w_topline reset the flag that indicates w_botline is
	    valid.
Files:	    src/diff.c

Patch 6.0.202
Problem:    The "icon=" argument for the menu command to define a toolbar icon
	    with a file didn't work for GTK. (Christian J. Robinson)
	    For Motif and Athena a full path was required.
Solution:   Search the icon file using the specified path.  Expand environment
	    variables in the file name.
Files:	    src/gui_gtk.c, src/gui_x11.c

Patch 6.0.203
Problem:    Can change 'fileformat' even though 'modifiable is off. (Servatius
	    Brandt)
Solution:   Correct check for kind of set command.
Files:	    src/option.c

Patch 6.0.204
Problem:    ":unlet" doesn't work for variables with curly braces. (Thomas
	    Scott Urban)
Solution:   Handle variable names with curly braces properly. (Vince Negri)
Files:	    src/eval.c

Patch 6.0.205 (extra)
Problem:    "gvim -f" still forks when using the batch script to start Vim.
Solution:   Add an argument to "start" to use a foreground session (Michael
	    Geddes)
Files:	    src/dosinst.c

Patch 6.0.206
Problem:    Unix: if expanding a wildcard in a file name results in a
	    wildcard character and there are more parts in the path with a
	    wildcard, it is expanded again.
	    Windows: ":edit \[abc]" could never edit the file "[abc]".
Solution:   Don't expand wildcards in already expanded parts.
	    Don't remove backslashes used to escape the special meaning of a
	    wildcard; can edit "[abc]" if '[' is removed from 'isfname'.
Files:	    src/misc1.c, src/os_unix.c

Patch 6.0.207 (extra)
Problem:    Win32: The shortcuts and start menu entries let Vim startup in the
	    desktop directory, which is not very useful.
Solution:   Let shortcuts start Vim in $HOME or $HOMEDIR$HOMEPATH.
Files:	    src/dosinst.c

Patch 6.0.208
Problem:    GUI: When using a keymap and the cursor is not blinking, CTRL-^ in
	    Insert mode doesn't directly change the cursor color.  (Alex
	    Solow)
Solution:   Force a redraw of the cursor after CTRL-^.
Files:	    src/edit.c

Patch 6.0.209
Problem:    GUI GTK: After selecting a 'guifont' with the font dialog there
	    are redraw problems for multi-byte characters.
Solution:   Separate the font dialog from setting the new font name to avoid
	    that "*" is used to find wide and bold fonts.
	    When redrawing extra characters for the bold trick, take care of
	    UTF-8 characters.
Files:	    src/gui.c, src/gui_gtk_x11.c, src/option.c, src/proto/gui.pro,
	    src/proto/gui_gtk_x11.pro

Patch 6.0.210
Problem:    After patch 6.0.167 it's no longer possible to edit a help file in
	    another encoding than latin1.
Solution:   Let the "++enc=" argument overrule the encoding.
Files:	    src/fileio.c

Patch 6.0.211
Problem:    When reading a file fails, the buffer is empty, but it might still
	    be possible to write it with ":w" later.  The original file is
	    lost then. (Steve Amerige)
Solution:   Set the 'readonly' option for the buffer.
Files:	    src/fileio.c

Patch 6.0.212
Problem:    GUI GTK: confirm("foo", "") causes a crash.
Solution:   Don't make a non-existing button the default.  Add a default "OK"
	    button if none is specified.
Files:	    src/eval.c, src/gui_gtk.c

Patch 6.0.213
Problem:    When a file name contains unprintable characters, CTRL-G and other
	    commands don't work well.
Solution:   Turn unprintable into printable characters. (Yasuhiro Matsumoto)
Files:	    src/buffer.c, src/charset.c

Patch 6.0.214
Problem:    When there is a buffer without a name, empty entries appear in the
	    jumplist saved in the viminfo file.
Solution:   Don't write jumplist entries without a file name.
Files:	    src/mark.c

Patch 6.0.215
Problem:    After using "/" from Visual mode the Paste menu and Toolbar
	    entries don't work.  Pasting with the middle mouse doesn't work
	    and modeless selection doesn't work.
Solution:   Use the command line mode menus and use the mouse like in the
	    command line.
Files:	    src/gui.c, src/menu.c, src/ui.c

Patch 6.0.216
Problem:    After reloading a file, displayed in another window than the
	    current one, which was changed outside of Vim the part of the file
	    around the cursor set by autocommands may be displayed, but
	    jumping back to the original cursor position when entering the
	    window again.
Solution:   Restore the topline of the window.
Files:	    src/fileio.c

Patch 6.0.217
Problem:    When getting help from a help file that was used before, an empty
	    unlisted buffer remains in the buffer list. (Eric Long)
Solution:   Wipe out the buffer used to do the tag jump from.
Files:	    src/buffer.c, src/ex_cmds.c, src/proto/buffer.pro

Patch 6.0.218
Problem:    With explorer plugin: "vim -o filename dirname" doesn't load the
	    explorer window until entering the window.
Solution:   Call s:EditDir() for each window after starting up.
Files:	    runtime/plugin/explorer.vim

Patch 6.0.219
Problem:    ":setlocal" and ":setglobal", without arguments, display terminal
	    options. (Zdenek Sekera)
Solution:   Skip terminal options for these two commands.
Files:	    src/option.c

Patch 6.0.220
Problem:    After patch 6.0.218 get a beep on startup. (Muraoka Taro)
Solution:   Don't try going to another window when there isn't one.
Files:	    runtime/plugin/explorer.vim

Patch 6.0.221
Problem:    When using ":bdel" and all other buffers are unloaded the lowest
	    numbered buffer is jumped to instead of the most recent one. (Dave
	    Cecil)
Solution:   Prefer an unloaded buffer from the jumplist.
Files:	    src/buffer.c

Patch 6.0.222
Problem:    When 'virtualedit' is set and using autoindent, pressing Esc after
	    starting a new line leaves behind part of the autoindent. (Helmut
	    Stiegler)
Solution:   After deleting the last char in the line adjust the cursor
	    position in del_bytes().
Files:	    src/misc1.c, src/ops.c

Patch 6.0.223
Problem:    When splitting a window that contains the explorer, hitting CR on
	    a file name gives error messages.
Solution:   Set the window variables after splitting the window.
Files:	    runtime/plugin/explorer.vim

Patch 6.0.224
Problem:    When 'sidescroll' and 'sidescrolloff' are set in a narrow window
	    the text may jump left-right and the cursor is displayed in the
	    wrong position. (Aric Blumer)
Solution:   When there is not enough room, compute the left column for the
	    window to put the cursor in the middle.
Files:	    src/move.c

Patch 6.0.225
Problem:    In Visual mode "gk" gets stuck in a closed fold. (Srinath
	    Avadhanula)
Solution:   Behave differently in a closed fold.
Files:	    src/normal.c

Patch 6.0.226
Problem:    When doing ":recover file" get the ATTENTION prompt.
	    After recovering the same file five times get a read error or a
	    crash.  (Alex Davis)
Solution:   Set the recoverymode flag before setting the file name.
	    Correct the amount of used memory for the size of block zero.
Files:	    src/ex_docmd.c

Patch 6.0.227 (extra)
Problem:    The RISC OS port has several problems.
Solution:   Update the makefile and fix some of the problems. (Andy Wingate)
Files:	    src/Make_ro.mak, src/os_riscos.c, src/os_riscos.h,
	    src/proto/os_riscos.pro, src/search.c

Patch 6.0.228
Problem:    After putting text in Visual mode the '] mark is not at the end of
	    the put text.
	    Undo doesn't work properly when putting a word into a Visual
	    selection that spans more than one line.
Solution:   Correct the '] mark for the deleting the Visually selected text.
	    #ifdef code that depends on FEAT_VISUAL properly.
	    Also fix that "d" crossing line boundary puts '[ just before
	    deleted text.
	    Fix undo by saving all deleted lines at once.
Files:	    src/ex_docmd.c, src/globals.h, src/normal.c, src/ops.c,
	    src/structs.h, src/vim.h

Patch 6.0.229
Problem:    Multi-byte: With 'm' in 'formatoptions', formatting doesn't break
	    at a multi-byte char followed by an ASCII char, and the other way
	    around. (Muraoka Taro)
	    When joining lines a space is inserted between multi-byte
	    characters, which is not always wanted.
Solution:   Check for multi-byte character before and after the breakpoint.
	    Don't insert a space before or after a multi-byte character when
	    joining lines and the 'M' flag is in 'formatoptions'.  Don't
	    insert a space between multi-byte characters when the 'B' flag is
	    in 'formatoptions'.
Files:	    src/edit.c, src/ops.c, src/option.h

Patch 6.0.230
Problem:    The ":" used as a motion after an operator is exclusive, but
	    sometimes it should be inclusive.
Solution:   Make the "v" in between an operator and motion toggle
	    inclusive/exclusive. (Servatius Brandt)
Files:	    runtime/doc/motion.txt, src/normal.c

Patch 6.0.231
Problem:    "gd" and "gD" don't work when the variable matches in a comment
	    just above the match to be found. (Servatius Brandt)
Solution:   Continue searching in the first column below the comment.
Files:	    src/normal.c

Patch 6.0.232
Problem:    "vim --version" prints on stderr while "vim --help" prints on
	    stdout.
Solution:   Make "vim --version" use stdout.
Files:	    runtime/doc/starting.txt, src/globals.h, src/main.c, src/message.c

Patch 6.0.233
Problem:    "\1\{,8}" in a regexp is not allowed, but it should work, because
	    there is an upper limit.  (Jim Battle)
Solution:   Allow using "\{min,max}" after an atom that can be empty if there
	    is an upper limit.
Files:	    src/regexp.c

Patch 6.0.234
Problem:    It's not easy to set the cursor position without modifying marks.
Solution:   Add the cursor() function. (Yegappan Lakshmanan)
Files:	    runtime/doc/eval.txt, src/eval.c

Patch 6.0.235
Problem:    When writing a file and renaming the original file to make the
	    backup, permissions could change when setting the owner.
Solution:   Only set the owner when it's needed and set the permissions again
	    afterwards.
	    When 'backupcopy' is "auto" check that the owner and permissions
	    of a newly created file can be set properly.
Files:	    src/fileio.c

Patch 6.0.236
Problem:    ":edit" without argument should move cursor to line 1 in Vi
	    compatible mode.
Solution:   Add 'g' flag to 'cpoptions'.
Files:	    runtime/doc/options.txt, src/ex_docmd.c, src/option.h

Patch 6.0.237
Problem:    In a C file, using the filetype plugin, re-indenting a comment
	    with two spaces after the middle "*" doesn't align properly.
Solution:   Don't use a middle entry from a start/middle/end to line up with
	    the start of the comment when the start part doesn't match with
	    the actual comment start.
Files:	    src/misc1.c

Patch 6.0.238
Problem:    Using a ":subsitute" command with a substitute() call in the
	    substitution expression causes errors. (Srinath Avadhanula)
Solution:   Save and restore pointers when doing substitution recursively.
Files:	    src/regexp.c

Patch 6.0.239
Problem:    Using "A" to append after a Visually selected block which is after
	    the end of the line, spaces are inserted in the wrong line and
	    other unexpected effects. (Michael Naumann)
Solution:   Don't advance the cursor to the next line.
Files:	    src/ops.c

Patch 6.0.240
Problem:    Win32: building with Python 2.2 doesn't work.
Solution:   Add support for Python 2.2 with dynamic linking. (Paul Moore)
Files:	    src/if_python.c

Patch 6.0.241
Problem:    Win32: Expanding the old value of an option that is a path that
	    starts with a backslash, an extra backslash is inserted.
Solution:   Only insert backslashes where needed.
	    Also handle multi-byte characters properly when removing
	    backslashes.
Files:	    src/option.c

Patch 6.0.242
Problem:    GUI: On a system with an Exceed X server sometimes get a "Bad
	    Window" error. (Tommi Maekitalo)
Solution:   When forking, use a pipe to wait in the parent for the child to
	    have done the setsid() call.
Files:	    src/gui.c

Patch 6.0.243
Problem:    Unix: "vim --version" outputs a NL before the last line instead of
	    after it. (Charles Campbell)
Solution:   Send the NL to the same output stream as the text.
Files:	    src/message.c, src/os_unix.c, src/proto/message.pro

Patch 6.0.244
Problem:    Multi-byte: Problems with (illegal) UTF-8 characters in menu and
	    file name (e.g., icon text, status line).
Solution:   Correctly handle unprintable characters.  Catch illegal UTF-8
	    characters and replace them with <xx>.  Truncating the status line
	    wasn't done correctly at a multi-byte character. (Yasuhiro
	    Matsumoto)
	    Added correct_cmdspos() and transchar_byte().
Files:	    src/buffer.c, src/charset.c, src/ex_getln.c, src/gui.c,
	    src/message.c, src/screen.c, src/vim.h

Patch 6.0.245
Problem:    After using a color scheme, setting the 'background' option might
	    not work. (Peter Horst)
Solution:   Disable the color scheme if it switches 'background' back to the
	    wrong value.
Files:	    src/option.c

Patch 6.0.246
Problem:    ":echomsg" didn't use the highlighting set by ":echohl". (Gary
	    Holloway)
Solution:   Use the specified attributes for the message. (Yegappan
	    Lakshmanan)
Files:	    src/eval.c

Patch 6.0.247
Problem:    GTK GUI: Can't use gvim in a kpart widget.
Solution:   Add the "--echo-wid" argument to let Vim echo the window ID on
	    stdout. (Philippe Fremy)
Files:	    runtime/doc/starting.txt, src/globals.h, src/gui_gtk_x11.c,
	    src/main.c

Patch 6.0.248
Problem:    When using compressed help files and 'encoding' isn't "latin1",
	    Vim converts the help file before decompressing. (David Reviejo)
Solution:   Don't convert a help file when 'binary' is set.
Files:	    src/fileio.c

Patch 6.0.249
Problem:    "vim -t edit -c 'sta ex_help'" doesn't move cursor to edit().
Solution:   Don't set the cursor on the first line for "-c" arguments when
	    there also is a "-t" argument.
Files:	    src/main.c

Patch 6.0.250 (extra)
Problem:    Macintosh: Various problems when compiling.
Solution:   Various fixes, mostly #ifdefs. (Dany St. Amant)
Files:	    src/gui_mac.c, src/main.c, src/misc2.c, src/os_mac.h,
	    src/os_mac.pbproj/project.pbxproj, src/os_unix.c

Patch 6.0.251 (extra)
Problem:    Macintosh: menu shortcuts are not very clear.
Solution:   Show the shortcut with the Mac clover symbol. (raindog)
Files:	    src/gui_mac.c

Patch 6.0.252
Problem:    When a user function was defined with "abort", an error that is
	    not inside if/endif or while/endwhile doesn't abort the function.
	    (Servatius Brandt)
Solution:   Don't reset did_emsg when the function is to be aborted.
Files:	    src/ex_docmd.c

Patch 6.0.253
Problem:    When 'insertmode' is set, after "<C-O>:edit file" the next <C-O>
	    doesn't work. (Benji Fisher)  <C-L> has the same problem.
Solution:   Reset need_start_insertmode once in edit().
Files:	    src/edit.c

Patch 6.0.254 (extra)
Problem:    Borland C++ 5.5: Checking for stack overflow doesn't work
	    correctly.  Matters when using a complicated regexp.
Solution:   Remove -N- from Make_bc5.mak. (Yasuhiro Matsumoto)
Files:	    src/Make_bc5.mak

Patch 6.0.255 (extra) (depends on patch 6.0.116 and 6.0.121)
Problem:    Win32: ACL support doesn't work well on Samba drives.
Solution:   Add a check for working ACL support. (Mike Williams)
Files:	    src/os_win32.c

Patch 6.0.256 (extra)
Problem:    Win32: ":highlight Comment guifg=asdf" does not give an error
	    message. (Randall W.  Morris)  Also for other systems.
Solution:   Add gui_get_color() to give one error message for all systems.
Files:	    src/gui.c, src/gui_amiga.c, src/gui_athena.c, src/gui_motif.c,
	    src/gui_riscos.c, src/gui_x11.c, src/gui_gtk_x11.c,
	    src/proto/gui.pro, src/syntax.c

Patch 6.0.257
Problem:    Win32: When 'mousefocus' is set and there is a BufRead
	    autocommand, after the dialog for permissions changed outside of
	    Vim: 'mousefocus' stops working. (Robert Webb)
Solution:   Reset need_mouse_correct after checking timestamps.
Files:	    src/fileio.c

Patch 6.0.258
Problem:    When 'scrolloff' is 999 and there are folds, the text can jump up
	    and down when moving the cursor down near the end of the file.
	    (Lubomir Host)
Solution:   When putting the cursor halfway the window start counting lines at
	    the end of a fold.
Files:	    src/move.c

Patch 6.0.259
Problem:    MS-DOS: after editing the command line the cursor shape may remain
	    like in Insert mode. (Volker Kiefel)
Solution:   Reset the cursor shape after editing the command line.
Files:	    src/ex_getln.c

Patch 6.0.260
Problem:    GUI: May crash while starting up when giving an error message for
	    missing color. (Servatius Brandt)
Solution:   Don't call gui_write() when still starting up.  Don't give error
	    message for empty color name.  Don't use 't_vb' while the GUI is
	    still starting up.
Files:	    src/fileio.c, src/gui.c, src/misc1.c, src/ui.c

Patch 6.0.261
Problem:    nr2char() and char2nr() don't work with multi-byte characters.
Solution:   Use 'encoding' for these functions. (Yasuhiro Matsumoto)
Files:	    runtime/doc/eval.txt, src/eval.c

Patch 6.0.262 (extra)
Problem:    Win32: IME doesn't work properly.  OnImeComposition() isn't used
	    at all.
Solution:   Adjust various things for IME.
Files:	    src/globals.h, src/gui_w32.c, src/mbyte.c, src/proto/ui.pro,
	    src/structs.h, src/ui.c

Patch 6.0.263
Problem:    GTK: When a dialog is closed by the window manager, Vim hangs.
	    (Christian J. Robinson)
Solution:   Use GTK_WIDGET_DRAWABLE() instead of GTK_WIDGET_VISIBLE().
Files:	    src/gui_gtk.c, src/gui_gtk_x11.c

Patch 6.0.264
Problem:    The amount of virtual memory is used to initialize 'maxmemtot',
	    which may be much more than the amount of physical memory,
	    resulting in a lot of swapping.
Solution:   Get the amount of physical memory with sysctl(), sysconf() or
	    sysinfo() when possible.
Files:	    src/auto/configure, src/configure.in, src/config.h.in,
	    src/os_unix.c, src/os_unix.h

Patch 6.0.265
Problem:    Win32: Using backspace while 'fkmap' is set causes a crash.
	    (Jamshid Oasjmoha)
Solution:   Don't try mapping special keys.
Files:	    src/farsi.c

Patch 6.0.266
Problem:    The rename() function deletes the file if the old and the new name
	    are the same. (Volker Kiefel)
Solution:   Don't do anything if the names are equal.
Files:	    src/fileio.c

Patch 6.0.267
Problem:    UTF-8: Although 'isprint' says a character is printable,
	    utf_char2cells() still considers it unprintable.
Solution:   Use vim_isprintc() for characters upto 0x100. (Yasuhiro Matsumoto)
Files:	    src/mbyte.c

Patch 6.0.268 (extra) (depends on patch 6.0.255)
Problem:    Win32: ACL check crashes when using forward slash in file name.
Solution:   Improve the check for the path in the file name.
Files:	    src/os_win32.c

Patch 6.0.269
Problem:    Unprintable characters in a file name may cause problems when
	    using the 'statusline' option or when 'buftype' is "nofile".
Solution:   call trans_characters() for the resulting statusline. (Yasuhiro
	    Matsumoto)
Files:	    src/buffer.c, src/screen.c, src/charset.c

Patch 6.0.270 (depends on patch 6.0.267)
Problem:    A tab causes UTF-8 text to be displayed in the wrong position.
	    (Ron Aaron)
Solution:   Correct utf_char2cells() again.
Files:	    src/mbyte.c

Patch 6.1a.001 (extra)
Problem:    32bit DOS: copying text to the clipboard may cause a crash.
	    (Jonathan D Johnston)
Solution:   Don't copy one byte too much in SetClipboardData().
Files:	    src/os_msdos.c

Patch 6.1a.002
Problem:    GTK: On some configurations, when closing a dialog from the window
	    manager, Vim hangs.
Solution:   Catch the "destroy" signal. (Aric Blumer)
Files:	    src/gui_gtk.c

Patch 6.1a.003
Problem:    Multi-byte: With UTF-8 double-wide char and 'virtualedit' set:
	    yanking in Visual mode doesn't include the last byte. (Eric Long)
Solution:   Don't add a space for a double-wide character.
Files:	    src/ops.c

Patch 6.1a.004 (extra)
Problem:    MINGW: undefined type. (Ron Aaron)
Solution:   Make GetCompositionString_inUCS2() static.
Files:	    src/gui_w32.c, src/gui_w48.c, src/proto/gui_w32.pro

Patch 6.1a.005 (extra)
Problem:    Win32: ":hardcopy" doesn't work after ":hardcopy!". (Jonathan
	    Johnston)
Solution:   Don't keep the driver context when using ":hardcopy!". (Vince
	    Negri)
Files:	    src/os_mswin.c

Patch 6.1a.006
Problem:    multi-byte: after setting 'encoding' the window title might be
	    wrong.
Solution:   Force resetting the title. (Yasuhiro Matsumoto)
Files:	    src/option.c

Patch 6.1a.007
Problem:    Filetype detection for "*.inc" doesn't work.
Solution:   Use a ":let" command. (David Schweikert)
Files:	    runtime/filetype.vim

Patch 6.1a.008 (extra)
Problem:    Win32: ACL detection for network shares doesn't work.
Solution:   Include the trailing (back)slash in the root path. (Mike Williams)
Files:	    src/os_win32.c

Patch 6.1a.009
Problem:    When using "\@<=" or "\@<!" in a pattern, a "\1" may refer to a ()
	    part that follows, but it generates an error message.
Solution:   Allow a forward reference when there is a following "\@<=" or
	    "\@<!".
Files:	    runtime/doc/pattern.txt, src/regexp.c

Patch 6.1a.010
Problem:    When using ":help" and opening a new window, the alternate file
	    isn't set.
Solution:   Set the alternate file to the previously edited file.
Files:	    src/ex_cmds.c

Patch 6.1a.011
Problem:    GTK: ":set co=77", change width with the mouse, ":set co=77"
	    doesn't resize the window. (Darren Hiebert)
Solution:   Set the form size after handling a resize event.
Files:	    src/gui_gtk_x11.c

Patch 6.1a.012
Problem:    GTK: The file browser always returns a full path. (Lohner)
Solution:   Shorten the file name if possible.
Files:	    src/gui_gtk.c

Patch 6.1a.013
Problem:    When using "=~word" in 'cinkeys' or 'indentkeys', the case of the
	    last character of the word isn't ignored. (Raul Segura Acevedo)
Solution:   Ignore case when checking the last typed character.
Files:	    src/edit.c

Patch 6.1a.014
Problem:    After patch 6.1a.006 can't compile without the title feature.
Solution:   Add an #ifdef.
Files:	    src/option.c

Patch 6.1a.015
Problem:    MS-Windows: When expanding a file name that contains a '[' or '{'
	    an extra backslash is inserted. (Raul Segura Acevedo)
Solution:   Avoid adding the backslash.
Files:	    src/ex_getln.c

Patch 6.1a.016
Problem:    Completion after ":language" doesn't include "time". (Raul Segura
	    Acevedo)
Solution:   Add the alternative to the completions.
Files:	    src/ex_cmds2.c

Patch 6.1a.017
Problem:    Clicking the mouse in the top row of a window where the first line
	    doesn't fit moves the cursor to the wrong column.
Solution:   Add the skipcol also for the top row of a window.
Files:	    src/ui.c

Patch 6.1a.018
Problem:    When 'scrolloff' is one and the window height is one, "gj" can put
	    the cursor above the window. (Raul Segura Acevedo)
Solution:   Don't let skipcol become bigger than the cursor column.
Files:	    src/move.c

Patch 6.1a.019
Problem:    When using a composing character on top of an ASCII character, the
	    "l" command clears the composing character.  Only when 'ruler' and
	    'showcmd' are off. (Raphael Finkel)
Solution:   Don't move the cursor by displaying characters when there are
	    composing characters.
Files:	    src/screen.c

Patch 6.1a.020
Problem:    GTK: after patch 6.1a.011 resizing with the mouse doesn't always
	    work well for small sizes. (Adrien Beau)
Solution:   Use another way to avoid the problem with ":set co=77".
Files:	    src/gui_gtk_x11.c

Patch 6.1a.021
Problem:    Several Syntax menu entries are wrong or confusing.
Solution:   Rephrase and correct the menu entries. (Adrien Beau)
Files:	    runtime/makemenu.vim, runtime/menu.vim

Patch 6.1a.022
Problem:    A tags file might be used twice on case insensitive systems.
	    (Rick Swanton)
Solution:   Don't use the same file name twice in the default for the 'tags'
	    option.  Ignore case when comparing names of already visited
	    files.
Files:	    src/misc2.c, src/option.c

Patch 6.1a.023
Problem:    When starting the GUI get "C" characters echoed in the terminal.
Solution:   Don't try sending a clear-screen command while the GUI is starting
	    up.
Files:	    src/screen.c

Patch 6.1a.024
Problem:    In other editors CTRL-F is often used for a find dialog.
Solution:   In evim use CTRL-F for the find dialog.
Files:	    runtime/evim.vim

Patch 6.1a.025
Problem:    The choices for the fileformat dialog can't be translated.
Solution:   Add g:menutrans_fileformat_choices. (Adrien Beau)
Files:	    runtime/menu.vim

Patch 6.1a.026
Problem:    Indenting Java files is wrong with "throws", "extends" and
	    "implements" clauses.
Solution:   Update the Java indent script.
Files:	    runtime/indent/java.vim

Patch 6.1a.027
Problem:    A few Syntax menu entries missing or incorrect.
Solution:   Add and correct the menu entries. (Adrien Beau)
	    Shorten a few menus to avoid they become too long.
Files:	    runtime/makemenu.vim, runtime/menu.vim

Patch 6.1a.028
Problem:    XIM: problems with feedback and some input methods.
Solution:   Use iconv for calculating the cells.  Remove the queue for
	    key_press_event only when text was changed. (Yasuhiro Matsumoto)
Files:	    src/globals.h, src/mbyte.c, src/screen.c

Patch 6.1a.029
Problem:    After patch 6.1a.028 can't compile GTK version with XIM but
	    without multi-byte chars.
Solution:   Add an #ifdef. (Aschwin Marsman)
Files:	    src/mbyte.c

Patch 6.1a.030
Problem:    With double-byte encodings toupper() and tolower() may have wrong
	    results.
Solution:   Skip double-byte characters. (Eric Long)
Files:	    src/eval.c

Patch 6.1a.031
Problem:    Accessing the 'balloondelay' variable may cause a crash.
Solution:   Make the variable for 'balloondelay' a long. (Olaf Seibert)
Files:	    src/option.h

Patch 6.1a.032 (extra)
Problem:    Some menu files used a wrong encoding name for "scriptencoding".
Solution:   Move the translations to a separate file, which is sourced after
	    setting "scriptencoding".
	    Also add Czech menu translations in ASCII and update the other
	    encodings.
Files:	    runtime/lang/menu_cs_cz.iso_8859-1.vim,
	    runtime/lang/menu_cs_cz.iso_8859-2.vim,
	    runtime/lang/menu_czech_czech_republic.1250.vim,
	    runtime/lang/menu_czech_czech_republic.1252.vim,
	    runtime/lang/menu_czech_czech_republic.ascii.vim,
	    runtime/lang/menu_de_de.iso_8859-1.vim,
	    runtime/lang/menu_de_de.latin1.vim,
	    runtime/lang/menu_fr_fr.iso_8859-1.vim,
	    runtime/lang/menu_fr_fr.latin1.vim,
	    runtime/lang/menu_french_france.1252.vim,
	    runtime/lang/menu_german_germany.1252.vim,
	    runtime/lang/menu_ja_jp.euc-jp.vim,
	    runtime/lang/menu_ja_jp.utf-8.vim,
	    runtime/lang/menu_japanese_japan.932.vim

Patch 6.1a.033
Problem:    XIM: doesn't reset input context.
Solution:   call xim_reset() with im_set_active(FALSE). (Takuhiro Nishioka)
Files:	    src/mbyte.c

Patch 6.1a.034 (extra)
Problem:    Win32: The ACL checks for a readonly file still don't work well.
Solution:   Remove the ACL checks, go back to how it worked in Vim 6.0.
Files:	    src/os_win32.c

Patch 6.1a.035
Problem:    multi-byte: When using ":sh" in the GUI, typed and displayed
	    multi-byte characters are not handled correctly.
Solution:   Deal with multi-byte characters to and from the shell. (Yasuhiro
	    Matsumoto)  Also handle UTF-8 composing characters.
Files:	    src/os_unix.c

Patch 6.1a.036
Problem:    GTK: the save-yourself event was not handled.
Solution:   Catch the save-yourself event and preserve swap files. (Neil Bird)
Files:	    src/gui_gtk_x11.c

Patch 6.1a.037
Problem:    The MS-Windows key mapping doesn't include CTRL-S for saving.
	    (Vlad Sandrini)
Solution:   Map CTRL-S to ":update".
Files:	    runtime/mswin.vim

Patch 6.1a.038
Problem:    Solaris: Including both sys/sysctl.h and sys/sysinfo.h doesn't
	    work. (Antonio Colombo)
Solution:   Don't include sys/sysinfo.h when not calling sysinfo().
Files:	    src/os_unix.c

Patch 6.1a.039
Problem:    Not all visual basic files are recognized.
Solution:   Add checks to catch *.ctl files. (Raul Segura Acevedo)
Files:	    runtime/filetype.vim

Patch 6.1a.040
Problem:    A *.pl file is recognized as Perl, but it could be a prolog file.
Solution:   Check the first non-empty line. (Kontra Gergely)
Files:	    runtime/filetype.vim

Patch 6.1a.041
Problem:    When pressing the left mouse button in the command line and them
	    moving the mouse upwards, nearly all the text is selected.
Solution:   Don't try extending a modeless selection when there isn't one.
Files:	    src/ui.c

Patch 6.1a.042
Problem:    When merging files, ":diffput" and ":diffget" are used a lot, but
	    they require a lot of typing.
Solution:   Add "dp" for ":diffput" and "do" for ":diffget".
Files:	    runtime/doc/diff.txt, src/diff.c, src/normal.c, src/proto/diff.pro


Patch 6.1b.001 (extra)
Problem:    Checking for wildcards in a path does not handle multi-byte
	    characters with a trail byte which is a wildcard.
Solution:   Handle multi-byte characters correctly. (Muraoka Taro)
Files:	    src/os_amiga.c, src/os_mac.c, src/os_msdos.c, src/os_mswin.c,
	    src/os_unix.c

Patch 6.1b.002
Problem:    A regexp that ends in "\{" is not flagged as an error.  May cause
	    a stack overflow when 'incsearch' is set. (Gerhard Hochholzer)
Solution:   Handle a missing "}" as an error.
Files:	    src/regexp.c

Patch 6.1b.003 (extra)
Problem:    The RISC OS GUI doesn't compile.
Solution:   Include changes since Vim 5.7. (Andy Wingate)
Files:	    src/Make_ro.mak, src/gui_riscos.c, src/os_riscos.c,
	    src/os_riscos.h, src/proto/gui_riscos.pro

Patch 6.1b.004
Problem:    col("'>") returns a negative number for linewise selection. (Neil
	    Bird)
Solution:   Don't add one to MAXCOL.
Files:	    src/eval.c

Patch 6.1b.005
Problem:    Using a search pattern that causes an out-of-stack error while
	    'hlsearch' is set keeps giving the hit-Enter prompt.
	    A search pattern that takes a long time delays typing when
	    'incsearch' is set.
Solution:   Stop 'hlsearch' highlighting when the regexp causes an error.
	    Stop searching for 'incsearch' when a character is typed.
Files:	    src/globals.h, src/message.c, src/screen.c, src/search.c,
	    src/vim.h

Patch 6.1b.006
Problem:    When entering a composing character on the command line with
	    CTRL-V, the text isn't redrawn correctly.
Solution:   Redraw the text under and after the cursor.
Files:	    src/ex_getln.c

Patch 6.1b.007
Problem:    When the cursor is in the white space between two sentences, "dis"
	    deletes the first character of the following sentence, "das"
	    deletes a space after the sentence.
Solution:   Backup the cursor one character in these situations.
Files:	    src/search.c

Patch 6.1b.008
Problem:    *.xsl files are not recognized as xslt but xml.
	    Monk files are not recognized.
Solution:   Delete the duplicate line for *.xsl. (Johannes Zellner)
	    Recognize monk files.
Files:	    runtime/filetype.vim

Patch 6.1b.009
Problem:    Can't always compile small features and then adding eval feature,
	    "sandbox" is undefined. (Axel Kielhorn)
Solution:   Always define "sandbox" when the eval feature is used.
Files:	    src/globals.h

Patch 6.1b.010 (extra)
Problem:    When compiling gvimext.cpp with MSVC 4.2 get a number of warnings.
Solution:   Change "true" to "TRUE". (Walter Briscoe)
Files:	    GvimExt/gvimext.cpp

Patch 6.1b.011
Problem:    When using a very long string for confirm(), can't quit the
	    displaying at the more prompt. (Hari Krishna Dara)
Solution:   Jump to the end of the message to show the choices.
Files:	    src/message.c

Patch 6.1b.012
Problem:    Multi-byte: When 'showbreak' is set and a double-wide character
	    doesn't fit at the right window edge the cursor gets stuck there.
	    Using cursor-left gets stuck when 'virtualedit' is set.  (Eric
	    Long)
Solution:   Fix the way the extra ">" character is counted when 'showbreak' is
	    set.  Don't correct cursor for virtual editing on a double-wide
	    character.
Files:	    src/charset.c, src/edit.c

Patch 6.1b.013
Problem:    A user command that partly matches with a buffer-local user
	    command and matches full with a global user command unecessarily
	    gives an 'ambiguous command' error.
Solution:   Find the full global match even after a partly local match.
Files:	    src/ex_docmd.c

Patch 6.1b.014
Problem:    EBCDIC: switching mouse events off causes garbage on screen.
	    Positioning the cursor in the GUI causes garbage.
Solution:   Insert an ESC in the terminal code. (Ralf Schandl)
	    Use "\b" instead of "\010" for KS_LE.
Files:	    src/os_unix.c, src/term.c

Patch 6.1b.015
Problem:    Vimtutor has a typo.  Get a warning for "tempfile" if it
	    doesn't exist.
Solution:   Move a quote to the end of a line. (Max Ischenko)
	    Use "mktemp" first, more systems have it.
Files:	    src/vimtutor

Patch 6.1b.016
Problem:    GTK: loading a fontset that works partly, Vim might hang or crash.
Solution:   Avoid that char_width becomes zero. (Yasuhiro Matsumoto)
Files:	    src/gui_gtk_x11.c

Patch 6.1b.017
Problem:    GUI: When using ":shell" and there is a beep, nothing happens.
Solution:   Call vim_beep() to produce the beep from the shell. (Yasuhiro
	    Matsumoto)
Files:	    src/message.c

Patch 6.1b.018 (depends on 6.1b.006)
Problem:    When entering the encryption key, special keys may still reveal
	    the typed characters.
Solution:   Make sure stars are used or nothing is shown in all cases.
Files:	    src/digraph.c, src/getchar.c, src/ex_getln.c

Patch 6.1b.019 (depends on 6.1b.005)
Problem:    A search pattern that takes a long time slows down typing when
	    'incsearch' is set.
Solution:   Pass SEARCH_PEEK to dosearch().
Files:	    src/ex_getln.c

Patch 6.1b.020
Problem:    When using the matchit plugin, "%" finds a match on the "end" of a
	    ":syntax region" command in Vim scripts.
Solution:   Skip over ":syntax region" commands by setting b:match_skip.
Files:	    runtime/ftplugin/vim.vim

Patch 6.1b.021
Problem:    when 'mousefocus' is set, CTRL-W CTRL-] sometimes doesn't warp the
	    pointer to the new window. (Robert Webb)
Solution:   Don't reset need_mouse_correct when checking the timestamp of a
	    file.
Files:	    src/fileio.c

Patch 6.1b.022
Problem:    With lots of folds "j" does not obey 'scrolloff' properly.
	    (Srinath Avadhanula)
Solution:   Go to end of the fold before counting context lines.
Files:	    src/move.c

Patch 6.1b.023
Problem:    On MS-Windows system() may cause checking timestamps, because Vim
	    looses and gains input focus, while this doesn't happen on Unix.
Solution:   Don't check timestamps while system() is busy.
Files:	    src/ex_cmds2.c, src/fileio.c, src/globals.h, src/misc1.c

Patch 6.1b.024 (extra)
Problem:    Gettext 0.11 complains that "sjis" is not a standard name.
Solution:   Use "cp932" instead.
Files:	    src/po/sjiscorr.c

Patch 6.1b.025 (extra)
Problem:    Win32: When closing gvim while it is minimized  and has a changed
	    file, the file-changed dialog pops up in a corner of the screen.
Solution:   Put the dialog in the middle of the screen.
Files:	    src/gui_w48.c

Patch 6.1b.026
Problem:    When 'diffopt' contains 'iwhite' but not 'icase': differences in
	    case are not highlighted properly. (Gerhard Hochholzer)
Solution:   Don't ignore case when ignoring white space differences.
Files:	    src/diff.c

Patch 6.1b.027
Problem:    "vim --remote +" may cause a crash.
Solution:   Check for missing file name argument. (Martin Kahlert)
Files:	    src/main.c

Patch 6.1b.028 (extra)
Problem:    Win16: Can't compile after patch 6.1b.025.
Solution:   Add code specifically for Win16. (Vince Negri)
Files:	    src/gui_w48.c

Patch 6.1b.029
Problem:    Win32: When a directory on an NTFS partition is read/execute (no
	    delete,modify,write) and the file has modify rights, trying to
	    write the file deletes it.  Making the file read/write/execute
	    (not delete) solves it. (Mark Canup)
Solution:   Use the Unix code to check for a writable directory.  If not, then
	    make a backup copy and overwrite the file.
Files:	    src/fileio.c

Patch 6.1b.030 (extra)
Problem:    Mac: small mistake in the build script and prototypes.
Solution:   Fix the build script and add the prototypes. (Axel Kielhorn)
Files:	    src/os_mac.build, src/gui_mac.c

Patch 6.1b.031 (extra)
Problem:    Win32 GUI: ":set guifont=*" doesn't set 'guifont' to the resulting
	    font name. (Vlad Sandrini)
Solution:   Put the code back in gui_mch_init_font() to form the font name out
	    of the logfont.
Files:	    src/gui_w48.c

Patch 6.1b.032
Problem:    Athena: Setting a color scheme before the GUI has started causes a
	    crash. (Todd Blumer)
Solution:   Don't try using color names that haven't been set yet.
Files:	    src/gui_athena.c

Patch 6.1b.033
Problem:    When using a count after a ":s" command may get ml_get errors.
	    (Dietmar Lang)
Solution:   Check that the resulting range does not go past the end of the
	    buffer.
Files:	    src/ex_cmds.c

Patch 6.1b.034
Problem:    After sourcing mswin.vim, when using <C-S-Right> after
	    auto-indenting and then <Del>, get warning for allocating
	    rediculous amount of memory. (Dave Delgreco)
Solution:   Adjust the start of the Visual area when deleting the auto-indent.
Files:	    src/edit.c

Patch 6.1b.035
Problem:    When using evim, dropping a file on Vim and then double clicking
	    on a word, it is changed to "i". (Merlin Hansen)
Solution:   Reset need_start_insertmode after editing the file.
Files:	    src/ex_docmd.c


==============================================================================
VERSION 6.2						*version-6.2*

This section is about improvements made between version 6.1 and 6.2.

This is mainly a bug-fix release.  There are also a few new features.

Main new features:
- Support for GTK 2. (Daniel Elstner)
- Support for editing Arabic text. (Nadim Shaikli & Isam Bayazidi)
- ":try" command and exception handling. (Servatius Brandt)
- Support for the neXtaw GUI toolkit (mostly like Athena). (Alexey Froloff)
- Cscope support for Win32. (Khorev Sergey)
- Support for PostScript printing in various 8-bit encodings. (Mike Williams)


Changed							*changed-6.2*
-------

Removed the scheme indent file, the internal Lisp indenting works well now.

Moved the GvimEXt, OleVim and VisVim directories into the "src" directory.
This is more consistent with how xxd is handled.

The VisVim.dll file is installed in the top directory, next to gvimext.dll,
instead of in a subdirectory "VisVim".  Fixes that NSIS was uninstalling it
from the wrong directory.

Removed the art indent file, it didn't do anything.

submatch() returned line breaks with CR instead of LF.

Changed the Win32 Makefiles to become more uniform and compile gvimext.dll.
(Dan Sharp)

'cindent': Align a "//" comment with a "//" comment in a previous line.
(Helmut Stiegler)

Previously only for xterm-like terminals parent widgets were followed to find
the title and icon label.  Now do this for all terminal emulators.

Made it possible to recognize backslashes for "%" matching.  The 'M' flag in
'cpoptions' disables it. (Haakon Riiser)

Removed the Make_tcc.mak makefile for Turbo C.  It didn't work and we probably
can't make it work (the compiler runs out of memory).

Even though the documentation refers to keywords, "[ CTRL-D" was using
'isident' to find matches.  Changed it to use 'iskeyword'.  Also applies to
other commands that search for defined words in included files such as
":dsearch", "[D" and "[d".

Made 'keywordprg' global-local. (Christian Robinson)

Enabled the Netbeans interface by default.  Reversed the configure argument
from "--enable-netbeans" to "--disable-netbeans".


Added							*added-6.2*
-----

New options:
	'arabic'
	'arabicshape'
	'ambiwidth'
	'autochdir'
	'casemap'
	'copyindent'
	'cscopequickfix'
	'preserveindent'
	'printencoding'
	'rightleftcmd'
	'termbidi'
	'toolbariconsize'
	'winfixheight'

New keymaps:
	Serbian (Aleksandar Veselinovic)
	Chinese Pinyin (Fredrik Roubert)
	Esperanto (Antoine J. Mechelynck)

New syntax files:
	Valgrind (Roger Luethi)
	Smarty template (Manfred Stienstra)
	MySQL (Kenneth Pronovici)
	RockLinux package description (Piotr Esden-Tempski)
	MMIX (Dirk Huesken)
	gkrellmrc (David Necas)
	Tilde (Tobias Rundtrom)
	Logtalk (Paulo Moura)
	PLP (Juerg Waalboer)
	fvwm2m4 (David Necas)
	IPfilter (Hendrik Scholz)
	fstab (Radu Dineiu)
	Quake (Nikolai Weibull)
	Occam (Mario Schweigler)
	lpc (Shizhu Pan)
	Exim conf (David Necas)
	EDIF (Artem Zankovich)
	.cvsrc (Nikolai Weibull)
	.fetchmailrc (Nikolai Weibull)
	GNU gpg (Nikolai Weibull)
	Grub (Nikolai Weibull)
	Modconf (Nikolai Weibull)
	RCS (Dmitry Vasiliev)
	Art (Dorai Sitaram)
	Renderman Interface Bytestream (Andrew J Bromage)
	Mailcap (Doug Kearns)
	Subversion commit file (Dmitry Vasiliev)
	Microsoft IDL (Vadim Zeitlin)
	WildPackets EtherPeek Decoder (Christopher Shinn)
	Spyce (Rimon Barr)
	Resolv.conf (Radu Dineiu)
	A65 (Clemens Kirchgatterer)
	sshconfig and sshdconfig (David Necas)
	Cheetah and HTMLCheetah (Max Ischenko)
	Packet filter (Camiel Dobbelaar)

New indent files:
	Eiffel (David Clarke)
	Tilde (Tobias Rundtrom)
	Occam (Mario Schweigler)
	Art (Dorai Sitaram)
	PHP (Miles Lott)
	Dylan (Brent Fulgham)

New tutor translations:
	Slovak (Lubos Celko)
	Greek (Christos Kontas)
	German (Joachim Hofmann)
	Norwegian (Øyvind Holm)

New filetype plugins:
	Occam (Mario Schweigler)
	Art (Dorai Sitaram)
	ant.vim, aspvbs.vim, config.vim, csc.vim, csh.vim, dtd.vim, html.vim,
	jsp.vim, pascal.vim, php.vim, sgml.vim, sh.vim, svg.vim, tcsh.vim,
	xhtml.vim, xml.vim, xsd.vim.  (Dan Sharp)

New compiler plugins:
	Checkstyle (Doug Kearns)
	g77 (Ralf Wildenhues)
	fortran (Johann-Guenter Simon)
	Xmllint (Doug Kearns)
	Ruby (Tim Hammerquist)
	Modelsim vcom (Paul Baleme)

New menu translations:
	Brazillian (José de Paula)
	British (Mike Williams)
	Korean in UTF-8. (Nam SungHyun)
	Norwegian (Øyvind Holm)
	Serbian (Aleksandar Jelenak)

New message translation for Norwegian. (Øyvind Holm)

New color scheme:
	desert (Hans Fugal)

Arabic specific features. 'arabicshape', 'termbidi', 'arabic' and
'righleftcmd' options.  (Nadim Shaikli & Isam Bayazidi)

Support for neXtaw GUI toolkit, mostly like Athena. (Alexey Froloff)

Win32: cscope support. (Khorev Sergey)

VMS: various improvements to documentation and makefiles.  (Zoltan Arpadffy)

Added "x" key to the explorer plugin: execute the default action. (Yasuhiro
Matsumoto)

Compile gvimext.dll with MingW. (Rene de Zwart)

Add the "tohtml.vim" plugin.  It defines the ":TOhtml" user command, an easy
way to convert text to HTML.

Added ":try" / ":catch" / ":finally" / ":endtry" commands.  Add E999 numbers
to all error messages, so that they can be caught by the number.
(Servatius Brandt)
Moved part of ex_docmd.c to the new ex_eval.c source file.

Include support for GTK+ 2.2.x (Daniel Elstner)
Adds the "~" register: drag & drop text.
Adds the 'toolbariconsize' option.
Add -Dalloca when running lint to work around a problem with alloca()
prototype.

When selecting an item in the error window to jump to, take some effort to
find an ordinary window to show the file in (not a preview window).

Support for PostScript printing of various 8-bit encodings. (Mike Williams)

inputdialog() accepts a third argument that is used when the dialog is
cancelled.  Makes it possible to see a difference between cancelling and
entering nothing.

Included Aap recipes.  Can be used to update Vim to the latest version,
building and installing.

"/" option in 'cinoptions': extra indent for comment lines. (Helmut Stiegler)

Vim variable "v:register" and functions setreg(), getreg() and getregtype().
(Michael Geddes)

"v" flag in 'cpoptions': Leave text on screen with backspace in Insert mode.
(Phillip Vandry)

Dosinst.exe also finds gvimext.dll in the "GvimExt" directory.  Useful when
runing install in the "src" directory for testing.

Support tag files that were sorted with case ignored. (Flemming Madsen)

When completing a wildcard in a leading path element, as in "../*/Makefile",
only the last part ("Makefile") was listed.  Support custom defined
command line completion.  (Flemming Madsen)

Also recognize "rxvt" as an xterm-like terminal. (Tomas Styblo)

Proper X11 session management.  Fixes that the WM_SAVE_YOURSELF event was not
used by popular desktops.  (Neil Bird)
Not used for Gnome 2, it has its own handling.

Support BOR, DEBUG and SPAWNO arguments for the Borland 3 Makefile. (Walter
Briscoe)

Support page breaks for printing.  Adds the "formfeed" field in
'printoptions'.  (Mike Williams)

Mac OSX: multi-language support: iconv and gettext. (Muraoka Taro, Axel
Kielhorn)

"\Z" flag in patterns: ignore differences in combining characters. (Ron Aaron)

Added 'preserveindent' and 'copyindent' options.  They use existing white
space characters instead of using Tabs as much as possible. (Chris Leishman)

Updated Unicode tables to Unicode 4.0. (Raphael Finkel)

Support for the mouse wheel in rxvt. (AIDA Shinra)

Win32: Added ":8" file modifier to get short filename.  Test50 tests the ":8"
expansion on Win32 systems. (Michael Geddes)

'cscopequickfix' option: Open quickfix window for Cscope commands.  Also
cleanup the code for giving messages.  (Khorev Sergey)

GUI: Support more than 222 columns for mouse positions.

":stopinsert" command: Don't return to Insert mode.

"interrupt" command for debug mode.  Useful for simulating CTRL-C. (Servatius
Brandt)


Fixed							*fixed-6.2*
-----

Removed a few unused #defines from config.h.in, os_os2_cfg.h and os_vms_conf.h.

The Vim icons in PNG format didn't have a transparent background. (Greg
Roelofs)

Fixed a large number of spelling mistakes in the docs. (Adri Verhoef)

The #defines for prototype generation were causing trouble.  Changed them to
typedefs.

A new version of libintl.h uses __asm__, which confuses cproto.  Define a
dummy __asm__ macro.

When 'virtualedit' is set can't move to halfway an unprintable character.
Cripples CTRL-V selection. (Taro Muraoka)
Allow moving to halfway an unprintable character.  Don't let getvvcol() change
the pos->coladd argument.

When a tab wraps to the next line, 'listchars' is set and 'foldcolumn' is
non-zero, only one character of the foldcolumn is highlighted. (Muraoka Taro)

When using ":catch" without an argument Vim crashes. (Yasuhiro Matsumoto)
When no argument given use the ".*" pattern.

Win32: When gvim.exe is started from a shortcut with the window style property
set to maximize Vim doesn't start with a maximized window. (Yasuhiro
Matsumoto)  Open the window with the default size and don't call ShowWindow()
again when it's already visible. (Helmut Stiegler)

gui_gtk.c used MAX, but it's undefined to avoid a conflict with system header
files.

Win32: When closing a window from a mapping some pixels remain on the
statusline. (Yasuhiro Matsumoto)

A column number in an errorformat that goes beyond the end of the line may
cause a crash.

":throw 'test'" crashes Vim. (Yasuhiro Matsumoto)

The file selector's scrollbar colors are not set after doing a ":hi Scrollbar
guifg=color".  And the file selector's colors are not changed by the
colorscheme command.  (David Harrison)

Motif: When compiling with FEAT_FOOTER defined, the text area gets a few
pixels extra space on the right.  Remove the special case in
gui_get_base_width(). (David Harrison)

Using CTRL-R CTRL-P in Insert mode puts the '] mark in the wrong position.
(Helmut Stiegler)

When 'formatoptions' includes "awct" a non-comment wasn't auto-formatted.

Using a "--cmd" argument more than 10 times caused a crash.

DEC style mouse support didn't work if the page field is not empty.
(Uribarri)

"vim -l one two" did only set 'lisp' in the first file.  Vi does it for every
file.

":set tw<" didn't work.  Was checking for '^' instead of '<'.

In ":hardcopy > %.ps" the "%" was not expanded to the current filename.

Made ":redraw" also update the Visual area.

When a not implemented command, such as ":perl", has wrong arguments the less
important error was reported, giving the user the idea the command could work.

On non-Unix systems autocommands for writing did not attempt a match with the
short file name, causing a pattern like "a/b" to fail.

VMS: e_screenmode was not defined and a few other fixes for VMS. (Zoltan
Arpadffy)

redraw_msg() depended on FEAT_ARABIC instead of FEAT_RIGHTLEFT. (Walter
Briscoe)

Various changes for the PC Makefiles. (Walter Briscoe)

Use _truename() instead of our own code to expand a file name into a full
path. (Walter Briscoe)

Error in filetype check for /etc/modutils. (Lubomir Host)

Cscope interface: allocated a buffer too small.

Win16: remove a trailing backslash from a path when obtaining the permission
flags. (Vince Negri)

When searching for tags with case ignored Vim could hang.

When searching directories with a stopdir could get a crash.  Did not
re-allocate enough memory. (Vince Negri)

A user command may cause a crash.  Don't use the command index when it's
negative. (Vince Negri)

putenv() didn't work for MingW and Cygwin. (Dan Sharp)

Many functions were common between os_msdos.c and os_win16.c.  Use os_msdos.c
for compiling the Win16 version and remove the functions from os_win16.c.
(Vince Negri)

For terminals that behave like an xterm but didn't have a name that is
recognized, the window title would not always be set.

When syntax highlighting is off ":hardcopy" could still attempt printing
colors.

Crash when using ":catch" without an argument.  (Servatius Brandt)

Win32: ":n #" doubled the backslashes.

Fixed Arabic shaping for the command line. (Nadim Shaikli)

Avoid splitting up a string displayed on the command line into individual
characters, it breaks Arabic shaping.

Updated Cygwin and MingW makefiles to use more dependencies. (Dan Sharp)

2html.vim didn't work with 'nomagic' set.

When a local argument list is used and doing ":only" Vim could crash later.
(Muraoka Taro)

When using "%P" in 'statusline' and the fillchar is "-", a percentage of 3%
could result in "-3%".  Also avoid changing a space inside a filename to the
fill character.

MSwin: Handling of backslashes and double quotes for command line arguments
was not like what other applications do.  (Walter Briscoe)

Test32 sometimes didn't work, because test11.out was written as TEST11.OUT.

Avoid pointer conversions warnings for Borland C 5.5 in dosinst.c and
uninstal.c.

More improvements for Make_bc3.mak file. (Walter Briscoe)

When ":syn sync linebreaks=1" is used, editing the first line caused a redraw
of the whole screen.

Making translated messages didn't work, if_perl.xs wasn't found. (Vlad
Sandrini)

Motif and Athena: moving Vim to the foreground didn't uniconify it.  Use
XMapRaised() instead of XRaiseWindow(). (Srikanth Sankaran)

When using ":ptag" in a window where 'scrollbind' is set the preview window
would also have 'scrollbind' set.  Also reset 'foldcolumn' and 'diff'.

Various commands that split a window took over 'scrollbind', which is hardly
ever desired.  Esp. for "q:" and ":copen".  Mostly reset 'scrollbind' when
splitting a window.

When 'shellslash' is set in the vimrc file the first entry of ":scriptnames"
would still have backslashes.  Entries in the quickfix list could also have
wrong (back)slashes.

Win32: printer dialog texts were not translated. (Yasuhiro Matsumoto)

When using a multi-byte character with a K_SPECIAL byte or a special key code
with "--remote-send" the received byte sequence was mangled.  Put it in the
typeahead buffer instead of the input buffer.

Win32: The cursor position was incorrect after changing cursor shape.
(Yasuhiro Matsumoto).

Win32: When 'encoding' is not the current codepage the title could not be set
to non-ascii characters.

"vim -d scp://machine/file1 scp://machine/file2" did not work, there was only
one window.  Fixed the netrw plugin not to wipe out the buffer if it is
displayed in other windows.

"/$" caused "e" in last column of screen to disappear, a highlighted blank was
displayed instead.

":s/ *\ze\n//e" removed the line break and introduced arbitrary text.  Was
using the line count including what matched after the "\ze".

Using the "c" flag with ":s" changed the behavior when a line break is
replaced and "\@<=" is used.  Without "c" a following match was not found.

":%s/\vA@<=\nB@=//gce" got stuck on "A\nB" when entering "n".

VMS: add HAVE_STRFTIME in the config file. (Zoltan Arpadffy)

When a delete prompts if a delete should continue when yanking is not
possible, restore msg_silent afterwards.

":sign" did not complain about a missing argument.

When adding or deleting a sign 'hlsearch' highlighting could disappear.
Use the generic functions for updating signs.

On MS-Windows NT, 2K and XP don't use command.com but cmd.exe for testing.
Makes the tests work on more systems.

In the DOS tests don't create "/tmp" to avoid an error.

Mac classic: Problems with reading files with CR vs CR/LF.  Rely on the
library version of fgets() to work correctly for Metrowerks 2.2. (Axel
Kielhorn)

When typing a password a "*" was shown for each byte instead of for each
character.  Added multi-byte handling to displaying the stars. (Yasuhiro
Matsumoto)

When using Perl 5.6 accessing $curbuf doesn't work.  Add an #ifdef to use
different code for 5.6 and 5.8.  (Dan Sharp)

MingW and Cygwin: Don't strip the debug executable. (Dan Sharp)

An assignment to a variable with curlies that includes "==" doesn't work.
Skip over the curlies before searching for an "=". (Vince Negri)

When cancelling the selection of alternate matching tags the tag stack index
could be advanced too far, resulting in an error message when using CTRL-T.


Patch 6.1.001
Problem:    When formatting UTF-8 text it might be wrapped at a space that is
	    followed by a composing character. (Raphael Finkel)
	    Also correct a display error for removing a composing char on top
	    of a space.
Solution:   Check for a composing character on a space.
Files:	    src/edit.c, src/misc1.c, src/screen.c

Patch 6.1.002 (extra)
Problem:    Win32: after a ":popup" command the mouse pointer stays hidden.
Solution:   Unhide the mouse pointer before showing the menu.
Files:	    src/gui_w48.c

Patch 6.1.003
Problem:    When 'laststatus' is zero and there is a vertical split, the
	    vertical separator is drawn in the command line. (Srikant
	    Sankaran)
Solution:   Don't draw the vertical separator where there is no statusline.
Files:	    src/screen.c

Patch 6.1.004
Problem:    Unicode 3.2 changes width and composing of a few characters.
	    (Markus Kuhn)
Solution:   Adjust the Unicode functions for the character width and composing
	    characters.
Files:	    src/mbyte.c

Patch 6.1.005
Problem:    When using more than 50 items in 'statusline' Vim might crash.
	    (Steve Hall)
Solution:   Increment itemcnt in check_stl_option(). (Flemming Madsen)
Files:	    src/option.c

Patch 6.1.006
Problem:    When using "P" in Visual mode to put linewise selected text, the
	    wrong text is deleted. (Jakub Turski)
Solution:   Put the text before the Visual area and correct the text to be
	    deleted for the inserted lines.
	    Also fix that "p" of linewise text in Visual block mode doesn't
	    work correctly.
Files:	    src/normal.c, src/ops.c

Patch 6.1.007
Problem:    Using ":filetype plugin off" when filetype plugins were never
	    enabled causes an error message. (Yiu Wing)
Solution:   Use ":silent!" to avoid the error message.
Files:	    runtime/ftplugof.vim

Patch 6.1.008
Problem:    The "%" command doesn't ignore \" inside a string, it's seen as
	    the end of the string. (Ken Clark)
Solution:   Skip a double quote preceded by an odd number of backslashes.
Files:	    src/search.c

Patch 6.1.009
Problem:    Vim crashes when using a huge number for the maxwid value in a
	    statusline. (Robert M. Nowotniak)
Solution:   Check for an overflow that makes maxwid negative.
Files:	    src/buffer.c

Patch 6.1.010
Problem:    Searching backwards for a question mark with "?\?" doesn't work.
	    (Alan Isaac)  Same problem in ":s?\??" and ":g?\??".
Solution:   Change the "\?" in a pattern to "?" when using "?" as delimiter.
Files:	    src/ex_cmds.c, src/ex_docmd.c, src/proto/regexp.pro, src/regexp.c,
	    src/search.c, src/syntax.c, src/tag.c

Patch 6.1.011
Problem:    XIM: doesn't work correctly when 'number' is set.  Also, a focus
	    problem when selecting candidates.
Solution:   Fix the XIM problems. (Yasuhiro Matsumoto)
Files:	    src/mbyte.c, src/screen.c

Patch 6.1.012
Problem:    A system() call might fail if fread() does CR-LF to LF
	    translation.
Solution:   Open the output file in binary mode. (Pavol Huhas)
Files:	    src/misc1.c

Patch 6.1.013
Problem:    Win32: The default for 'printexpr' doesn't work when there are
	    special characters in 'printdevice'.
Solution:   Add double quotes around the device name. (Mike Williams)
Files:	    runtime/doc/option.txt, src/option.c

Patch 6.1.014
Problem:    An operator like "r" used in Visual block mode doesn't use
	    'virtualedit' when it's set to "block".
Solution:   Check for 'virtualedit' being active in Visual block mode when the
	    operator was started.
Files:	    src/ex_docmd.c, src/globals.h, src/misc2.c, src/normal.c,
	    src/ops.c, src/undo.c

Patch 6.1.015
Problem:    After patch 6.1.014 can't compile with tiny features. (Christian
	    J. Robinson)
Solution:   Add the missing define of virtual_op.
Files:	    src/vim.h

Patch 6.1.016 (extra)
Problem:    Win32: Outputting Hebrew or Arabic text might have a problem with
	    reversing.
Solution:   Replace the RevOut() function with ETO_IGNORELANGUAGE. (Ron Aaron)
Files:	    src/gui_w32.c

Patch 6.1.017
Problem:    Cygwin: After patch 6.1.012 Still doesn't do binary file I/O.
	    (Pavol Juhas)
Solution:   Define BINARY_FILE_IO for Cygwin.
Files:	    src/os_unix.h

Patch 6.1.018
Problem:    Error message when using cterm highlighting. (Leonardo Di Lella)
Solution:   Remove a backslash before a question mark.
Files:	    runtime/syntax/cterm.vim

Patch 6.1.019 (extra)
Problem:    Win32: File name is messed up when editing just a drive name.
	    (Walter Briscoe)
Solution:   Append a NUL after the drive name. (Vince Negri)
Files:	    src/os_win32.c

Patch 6.1.020
Problem:    col("'>") returns a huge number after using Visual line mode.
Solution:   Return the length of the line instead.
Files:	    src/eval.c

Patch 6.1.021 (depends on patch 6.1.009)
Problem:    Vim crashes when using a huge number for the minwid value in a
	    statusline. (Robert M. Nowotniak)
Solution:   Check for an overflow that makes minwid negative.
Files:	    src/buffer.c

Patch 6.1.022
Problem:    Grabbing the status line above the command-line window works like
	    the bottom status line was grabbed. (Jim Battle)
Solution:   Make it possible to grab the status line above the command-line
	    window, so that it can be resized.
Files:	    src/ui.c

Patch 6.1.023 (extra)
Problem:    VMS: running tests doesn't work properly.
Solution:   Adjust the makefile. (Zoltan Arpadffy)
Files:	    src/testdir/Make_vms.mms

Patch 6.1.024
Problem:    When header files use a new syntax for declaring functions, Vim
	    can't figure out missing prototypes properly.
Solution:   Accept braces around a function name. (M. Warner Losh)
Files:	    src/osdef.sh

Patch 6.1.025
Problem:    Five messages for "vim --help" don't start with a capital. (Vlad
	    Sandrini)
Solution:   Make the messages consistent.
Files:	    src/main.c

Patch 6.1.026
Problem:    *.patch files are not recognized as diff files.  In a script a
	    "VAR=val" argument after "env" isn't ignored.  PHP scripts are not
	    recognized.
Solution:   Add *.patch for diff filetypes.  Ignore "VAR=val".  Recognize PHP
	    scripts. (Roman Neuhauser)
Files:	    runtime/filetype.vim, runtime/scripts.vim

Patch 6.1.027
Problem:    When 'foldcolumn' is non-zero, a special character that wraps to
	    the next line disturbs the foldcolumn highlighting.  (Yasuhiro
	    Matsumoto)
Solution:   Only use the special highlighting when drawing text characters.
Files:	    src/screen.c

Patch 6.1.028
Problem:    Client-server: When a --remote-expr fails, Vim still exits with
	    status zero.
Solution:   Exit Vim with a non-zero status to indicate the --remote-expr
	    failed. (Thomas Scott Urban)
Files:	    src/main.c

Patch 6.1.029
Problem:    When 'encoding' is an 8-bit encoding other than "latin1", editing
	    a utf-8 or other Unicode file uses the wrong conversion. (Jan
	    Fedak)
Solution:   Don't use Unicode to latin1 conversion for 8-bit encodings other
	    than "latin1".
Files:	    src/fileio.c

Patch 6.1.030
Problem:    When CTRL-N is mapped in Insert mode, it is also mapped after
	    CTRL-X CTRL-N, while it is not mapped after CTRL-X CTRL-F.
	    (Kontra Gergely)
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.
Solution:   Use "rb" or "rt" when needed. (Pavol Juhas)
Files:	    src/xxd/xxd.c

Patch 6.1.032
Problem:    Can't specify a quickfix file without jumping to the first error.
Solution:   Add the ":cgetfile" command. (Yegappan Lakshmanan)
Files:	    runtime/doc/index.txt, runtime/doc/quickfix.txt, src/ex_cmds.h,
	    src/quickfix.c

Patch 6.1.033
Problem:    GUI: When the selection is lost and the Visual highlighting is
	    changed to underlining, the cursor is left in a different
	    position. (Christian Michon)
Solution:   Update the cursor position after redrawing the selection.
Files:	    src/ui.c

Patch 6.1.034
Problem:    A CVS diff file isn't recognized as diff filetype.
Solution:   Skip lines starting with "? " before checking for an "Index:" line.
Files:	    runtime/scripts.vim

Patch 6.1.035 (extra, depends on 6.1.016)
Problem:    Win32: Outputting Hebrew or Arabic text might have a problem with
	    reversing on MS-Windows 95/98/ME.
Solution:   Restore the RevOut() function and use it in specific situations
	    only. (Ron Aaron)
Files:	    src/gui_w32.c

Patch 6.1.036
Problem:    This command may cause a crash: ":v/./,//-j". (Ralf Arens)
Solution:   Compute the right length of the regexp when it's empty.
Files:	    src/search.c

Patch 6.1.037
Problem:    When 'lazyredraw' is set, pressing "q" at the hit-enter prompt
	    causes an incomplete redraw and the cursor isn't positioned.
	    (Lubomir Host)
Solution:   Overrule 'lazyredraw' when do_redraw is set.
Files:	    src/main.c, src/screen.c

Patch 6.1.038
Problem:    Multi-byte: When a ":s" command contains a multi-byte character
	    where the trail byte is '~' the text is messed up.
Solution:   Properly skip multi-byte characters in regtilde() (Muraoka Taro)
Files:	    src/regexp.c

Patch 6.1.039
Problem:    When folds are defined and the file is changed outside of Vim,
	    reloading the file doesn't update the folds. (Anders
	    Schack-Nielsen)
Solution:   Recompute the folds after reloading the file.
Files:	    src/fileio.c

Patch 6.1.040
Problem:    When changing directory for expanding a file name fails there is
	    no error message.
Solution:   Give an error message for this situation.  Don't change directory
	    if we can't return to the original directory.
Files:	    src/diff.c, src/ex_docmd.c, src/globals.h, src/misc1.c,
	    src/os_unix.c

Patch 6.1.041
Problem:    ":mkvimrc" doesn't handle a mapping that has a leading space in
	    the rhs. (Davyd Ondrejko)
Solution:   Insert a CTRL-V before the leading space.  Also display leading
	    and trailing white space in <> form.
Files:	    src/getchar.c, src/message.c

Patch 6.1.042
Problem:    "vim -r" doesn't show all matches when 'wildignore' removes swap
	    files. (Steve Talley)
Solution:   Keep all matching swap file names.
Files:	    src/memline.c

Patch 6.1.043
Problem:    After patch 6.1.040 a few warnings are produced.
Solution:   Add a type cast to "char *" for mch_chdir(). (Axel Kielhorn)
Files:	    src/diff.c, src/ex_docmd.c.c, src/misc1.c, src/os_unix.c

Patch 6.1.044 (extra)
Problem:    GUI: When using the find/replace dialog with text that contains a
	    slash, an invalid substitute command is generated.
	    On Win32 a find doesn't work when 'insertmode' is set.
Solution:   Escape slashes with a backslash.
	    Make the Win32, Motif and GTK gui use common code for the
	    find/replace dialog.
	    Add the "match case" option for Motif and GTK.
Files:	    src/feature.h, src/proto/gui.pro, src/gui.c, src/gui.h,
	    src/gui_motif.c, src/gui_gtk.c, src/gui_w48.c

Patch 6.1.045
Problem:    In Visual mode, with lots of folds and 'scrolloff' set to 999,
	    moving the cursor down near the end of the file causes the text to
	    jump up and down. (Lubomir Host)
Solution:   Take into account that the cursor may be on the last line of a
	    closed fold.
Files:	    src/move.c

Patch 6.1.046
Problem:    X11 GUI: ":set lsp=2 gcr=n-v-i:hor1-blinkon0" draws a black
	    rectangle.  ":set lsp=2 gcr=n-v-i:hor10-blinkon0" makes the cursor
	    disappear.  (Nam SungHyun)
Solution:   Correctly compute the height of the horizontal cursor.
Files:	    src/gui_gtk_x11.c, src/gui_x11.c

Patch 6.1.047
Problem:    When skipping commands after an error was encountered, expressions
	    for ":if", ";elseif" and ":while" are still evaluated.
Solution:   Skip the expression after an error. (Servatius Brandt)
Files:	    src/ex_docmd.c

Patch 6.1.048
Problem:    Unicode 3.2 changes were missing a few Hangul Jamo characters.
Solution:   Recognize more characters as composing characters. (Jungshik Shin)
Files:	    src/mbyte.c

Patch 6.1.049 (extra)
Problem:    On a 32 bit display a valid color may cause an error message,
	    because its pixel value is negative. (Chris Paulson-Ellis)
Solution:   Check for -11111 instead of the color being negative.
	    Don't add one to the pixel value, -1 may be used for white.
Files:	    src/globals.h, src/gui.c, src/gui.h, src/gui_amiga.c,
	    src/gui_athena.c, src/gui_beos.cc, src/gui_gtk_x11.c,
	    src/gui_mac.c, src/gui_motif.c, src/gui_photon.c,
	    src/gui_riscos.c, src/gui_w16.c, src/gui_w32.c, src/gui_w48.c,
	    src/gui_x11.c, src/mbyte.c, src/syntax.c

Patch 6.1.050 (depends on 6.1.049)
Problem:    After patch 6.1.049 the non-GUI version doesn't compile.
Solution:   Add an #ifdef FEAT_GUI.  (Robert Stanton)
Files:	    src/syntax.c

Patch 6.1.051 (depends on 6.1.044)
Problem:    Doesn't compile with GUI and small features.
Solution:   Adjust the #if for ga_append().
Files:	    src/misc2.c

Patch 6.1.052
Problem:    Unix: The executable() function doesn't work when the "which"
	    command isn't available.
Solution:   Go through $PATH manually.  Also makes it work for VMS.
Files:	    src/os_unix.c

Patch 6.1.053
Problem:    When 'sessionoptions' contains "globals", or "localoptions" and an
	    option value contains a line break, the resulting script is wrong.
Solution:   Use "\n" and "\r" for a line break. (Srinath Avadhanula)
Files:	    src/eval.c

Patch 6.1.054
Problem:    GUI: A mouse click is not recognized at the more prompt, even when
	    'mouse' includes 'r'.
Solution:   Recognize a mouse click at the more prompt.
	    Also accept a mouse click in the last line in the GUI.
	    Add "ml" entry in 'mouseshape'.
Files:	    src/gui.c, src/message.c, src/misc1.c, src/misc2.c, src/option.c,
	    src/structs.h

Patch 6.1.055
Problem:    When editing a compressed file, Vim will inspect the contents to
	    guess the filetype.
Solution:   Don't source scripts.vim for .Z, .gz, .bz2, .zip and .tgz files.
Files:	    runtime/filetype.vim, runtime/plugin/gzip.vim

Patch 6.1.056
Problem:    Loading the Syntax menu can take quite a bit of time.
Solution:   Add the "skip_syntax_sel_menu" variable.  When its defined the
	    available syntax files are not in the Syntax menu.
Files:	    runtime/doc/gui.txt, runtime/menu.vim

Patch 6.1.057
Problem:    An ESC inside a mapping doesn't work as documented when
	    'insertmode' is set, it does go from Visual or Normal mode to
	    Insert mode. (Benji Fisher)
Solution:   Make it work as documented.
Files:	    src/normal.c

Patch 6.1.058
Problem:    When there is a closed fold just above the first line in the
	    window, using CTRL-X CTRL-Y in Insert mode will show only one line
	    of the fold. (Alexey Marinichev)
Solution:   Correct the topline by putting it at the start of the fold.
Files:	    src/move.c

Patch 6.1.059
Problem:    ":redir > ~/file" doesn't work. (Stephen Rasku)
Solution:   Expand environment variables in the ":redir >" argument.
Files:	    src/ex_docmd.c

Patch 6.1.060
Problem:    When 'virtualedit' is set and 'selection' is "exclusive", deleting
	    a character just before a tab changes the tab into spaces.  Undo
	    doesn't restore the tab. (Helmut Stiegler)
Solution:   Don't replace the tab by spaces when it's not needed.  Correcly
	    save the line before it's changed.
Files:	    src/ops.c

Patch 6.1.061
Problem:    When 'virtualedit' is set and 'selection' is "exclusive", a Visual
	    selection that ends just after a tab doesn't include that tab in
	    the highlighting.  (Helmut Stiegler)
Solution:   Use a different way to exclude the character under the cursor.
Files:	    src/screen.c

Patch 6.1.062
Problem:    The "man" filetype plugin doesn't work properly on Solaris 5.
Solution:   Use a different way to detect that "man -s" should be used. (Hugh
	    Sasse)
Files:	    runtime/ftplugin/man.vim

Patch 6.1.063
Problem:    Java indenting doesn't work properly.
Solution:   Ignore comments when checking if the indent doesn't increase after
	    a "}".
Files:	    runtime/indent/java.vim

Patch 6.1.064
Problem:    The URLs that the netrw plugin recognized for ftp and rcp did not
	    conform to the standard method://[user@]host[:port]/path.
Solution:   Use ftp://[user@]host[[:#]port]/path, which supports both the new
	    and the previous style.  Also added a bit of dav/cadaver support.
	    (Charles Campbell)
Files:	    runtime/plugin/netrw.vim

Patch 6.1.065
Problem:    VMS: The colorscheme, keymap and compiler menus are not filled in.
Solution:   Ignore case when looking for ".vim" files. (Coen Engelbarts)
Files:	    runtime/menu.vim

Patch 6.1.066 (extra)
Problem:    When calling system() in a plugin reading stdin hangs.
Solution:   Don't set the terminal to RAW mode when it wasn't in RAW mode
	    before the system() call.
Files:	    src/os_amiga.c, src/os_msdos.c, src/os_riscos.c, src/os_unix.c,
	    src/os_win16.c, src/os_win32.c

Patch 6.1.067
Problem:    ":set viminfo+=f0" is not working. (Benji Fisher)
Solution:   Check the "f" flag instead of "'" in 'viminfo'.
Files:	    src/mark.c

Patch 6.1.068
Problem:    When a file is reloaded after it was changed outside of Vim, diff
	    mode isn't updated. (Michael Naumann)
Solution:   Invalidate the diff info so that it's updated when needed.
Files:	    src/fileio.c

Patch 6.1.069
Problem:    When 'showmatch' is set and "$" is in 'cpoptions', using
	    "C}<Esc>" may forget to remove the "$". (Preben Guldberg)
Solution:   Restore dollar_vcol after displaying the matching cursor position.
Files:	    src/search.c

Patch 6.1.070 (depends on 6.1.060)
Problem:    Compiler warning for signed/unsigned mismatch. (Mike Williams)
Solution:   Add a typecast to int.
Files:	    src/ops.c

Patch 6.1.071
Problem:    When 'selection' is exclusive, g CTRL-G in Visual mode counts one
	    character too much. (David Necas)
Solution:   Subtract one from the end position.
Files:	    src/ops.c

Patch 6.1.072
Problem:    When a file name in a tags file starts with http:// or something
	    else for which there is a BufReadCmd autocommand, the file isn't
	    opened anyway.
Solution:   Check if there is a matching BufReadCmd autocommand and try to
	    open the file.
Files:	    src/fileio.c, src/proto/fileio.pro, src/tag.c

Patch 6.1.073 (extra)
Problem:    BC5: Can't easily specify a tiny, small, normal, big or huge
	    version.
Solution:   Allow selecting the version with the FEATURES variable. (Ajit
	    Thakkar)
Files:	    src/Make_bc5.mak

Patch 6.1.074
Problem:    When 'cdpath' includes "../..", changing to a directory in which
	    we currently already are doesn't work.  ff_check_visited() adds
	    the directory both when using it as the root for searching and for
	    the actual matches. (Stephen Rasku)
Solution:   Use a separate list for the already searched directories.
Files:	    src/misc2.c

Patch 6.1.075 (depends on 6.1.072)
Problem:    Can't compile fileio.c on MS-Windows.
Solution:   Add a declaration for the "p" pointer. (Madoka Machitani)
Files:	    src/fileio.c

Patch 6.1.076 (extra)
Problem:    Macintosh: explorer plugin doesn't work on Mac Classic.
	    IME doesn't work.  Dialog boxes don't work on Mac OS X
Solution:   Fix explorer plugin and key modifiers. (Axel Kielhorn)
	    Fix IME support. (Muraoka Taro)
	    Disable dialog boxes. (Benji Fisher)
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)
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

Patch 6.1.078
Problem:    When using 'foldmethod' "marker" and the end marker appears before
	    the start marker in the file, no fold is found. (Nazri Ramliy)
Solution:   Don't let the fold depth go negative.
Files:	    src/fold.c

Patch 6.1.079
Problem:    When using "s" in Visual block mode with 'virtualedit' set, when
	    the selected block is after the end of some lines the wrong text
	    is inserted and some lines are skipped. (Servatius Brandt)
Solution:   Insert the right text and extend short lines.
Files:	    src/ops.c

Patch 6.1.080
Problem:    When using gcc with /usr/local already in the search path, adding
	    it again causes problems.
Solution:   Adjust configure.in to avoid adding /usr/local/include and
	    /usr/local/lib when using GCC and they are already used. (Johannes
	    Zellner)
Files:	    src/auto/configure, src/configure.in

Patch 6.1.081
Problem:    ":help CTRL-\_CTRL-N" doesn't work.  (Christian J. Robinson)
Solution:   Double the backslash to avoid the special meaning of "\_".
Files:	    src/ex_cmds.c

Patch 6.1.082
Problem:    On MS-Windows the vimrc_example.vim script is sourced and then
	    mswin.vim.  This enables using select mode, but since "p" is
	    mapped it doesn't replace the selection.
Solution:   Remove the mapping of "p" from vimrc_example.vim, it's obsolete.
	    (Vlad Sandrini)
Files:	    runtime/vimrc_example.vim

Patch 6.1.083
Problem:    When $LANG is "sk" or "sk_sk", the Slovak menu file isn't found.
	    (Martin Lacko)
Solution:   Guess the right menu file based on the system.
Files:	    runtime/lang/menu_sk_sk.vim

Patch 6.1.084 (depends on 6.1.080)
Problem:    "include" and "lib" are mixed up when checking the directories gcc
	    already searches.
Solution:   Swap the variable names. (SunHo Kim)
Files:	    src/auto/configure, src/configure.in

Patch 6.1.085
Problem:    When using CTRL-O CTRL-\ CTRL-N from Insert mode, the displayed
	    mode "(insert)" isn't removed. (Benji Fisher)
Solution:   Clear the command line.
Files:	    src/normal.c

Patch 6.1.086 (depends on 6.1.049)
Problem:    The guifg color for CursorIM doesn't take effect.
Solution:   Use the foreground color when it's defined. (Muraoka Taro)
Files:	    src/gui.c

Patch 6.1.087
Problem:    A thesaurus with Japanese characters has problems with characters
	    in different word classes.
Solution:   Only separate words with single-byte non-word characters.
	    (Muraoka Taro)
Files:	    src/edit.c

Patch 6.1.088 (extra)
Problem:    Win32: no debugging info is generated.  Tags file excludes .cpp
	    files.
Solution:   Add "/map" to compiler flags.  Add "*.cpp" to ctags command.
	    (Muraoka Taro)
Files:	    src/Make_mvc.mak

Patch 6.1.089
Problem:    On BSDI systems there is no ss_sp field in stack_t. (Robert Jan)
Solution:   Use ss_base instead.
Files:	    src/auto/configure, src/configure.in, src/config.h.in,
	    src/os_unix.c

Patch 6.1.090
Problem:    CTRL-F gets stuck when 'scrolloff' is non-zero and there is a mix
	    of long wrapping lines and a non-wrapping line.
Solution:   Check that CTRL-F scrolls at least one line.
Files:	    src/move.c

Patch 6.1.091
Problem:    GTK: Can't change preeditstate without setting 'imactivatekey'.
Solution:   Add some code to change preeditstate for OnTheSpot. (Yasuhiro
	    Matsumoto)
Files:	    src/mbyte.c

Patch 6.1.092
Problem:    ":mapclear <buffer>" doesn't work. (Srikanth Adayapalam)
Solution:   Allow an argument for ":mapclear".
Files:	    src/ex_cmds.h

Patch 6.1.093 (extra)
Problem:    Mac and MS-Windows GUI: when scrolling while ":s" is working the
	    results can be messed up, because the cursor is moved.
Solution:   Disallow direct scrolling when not waiting for a character.
Files:	    src/gui_mac.c, src/gui_w16.c, src/gui_w32.c, src/gui_w48.c

Patch 6.1.094
Problem:    Cygwin: Passing a file name that has backslashes isn't handled
	    very well.
Solution:   Convert file name arguments to Posix.  (Chris Metcalf)
Files:	    src/main.c

Patch 6.1.095
Problem:    When using signs can free an item on the stack.
	    Overruling sign colors doesn't work. (Srikanth Sankaran)
Solution:   Don't free the item on the stack.  Use NULL instead of "none" for
	    the value of the color.
Files:	    src/gui_x11.c

Patch 6.1.096
Problem:    When erasing the right halve of a double-byte character, it may
	    cause further characters to be erased. (Yasuhiro Matsumoto)
Solution:   Make sure only one character is erased.
Files:	    src/screen.c

Patch 6.1.097 (depends on 6.1.090)
Problem:    When 'scrolloff' is set to a huge value, CTRL-F at the end of the
	    file scrolls one line. (Lubomir Host)
Solution:   Don't scroll when CTRL-F detects the end-of-file.
Files:	    src/move.c

Patch 6.1.098
Problem:    MS-Windows: When the xxd program is under "c:\program files" the
	    "Convert to Hex" menu doesn't work. (Brian Mathis)
Solution:   Put the path to xxd in double quotes.
Files:	    runtime/menu.vim

Patch 6.1.099
Problem:    Memory corrupted when closing a fold with more than 99999 lines.
Solution:   Allocate more space for the fold text. (Walter Briscoe)
Files:	    src/eval.c

Patch 6.1.100 (extra, depends on 6.1.088)
Problem:    Win32: VC5 and earlier don't support the /mapinfo option.
Solution:   Add "/mapinfo" only when "MAP=lines" is specified. (Muraoka Taro)
Files:	    src/Make_mvc.mak

Patch 6.1.101
Problem:    After using ":options" the tabstop of a new window is 15.  Entry
	    in ":options" window for 'autowriteall' is wrong. (Antoine J
	    Mechelynck)  Can't insert a space in an option value.
Solution:   Use ":setlocal" instead of ":set".  Change "aw" to "awa".
	    Don't map space in Insert mode.
Files:	    runtime/optwin.vim

Patch 6.1.102
Problem:    Unprintable and multi-byte characters in a statusline item are not
	    truncated correctly. (Yasuhiro Matsumoto)
Solution:   Count the width of characters instead of the number of bytes.
Files:	    src/buffer.c

Patch 6.1.103
Problem:    A function returning from a while loop, with 'verbose' set to 12
	    or higher, doesn't mention the return value.  A function with the
	    'abort' attribute may return -1 while the verbose message says
	    something else.
Solution:   Move the verbose message about returning from a function to
	    call_func(). (Servatius Brandt)
Files:	    src/eval.c

Patch 6.1.104
Problem:    GCC 3.1 appears to have an optimizer problem that makes test 3
	    crash.
Solution:   For GCC 3.1 add -fno-strength-reduce to avoid the optimizer bug.
	    Filter out extra info from "gcc --version".
Files:	    src/auto/configure, src/configure.in

Patch 6.1.105
Problem:    Win32: The default for 'shellpipe' doesn't redirect stderr. (Dion
	    Nicolaas)
Solution:   Redirect stderr, depending on the shell (like for 'shellredir').
Files:	    src/option.c

Patch 6.1.106
Problem:    The maze program crashes.
Solution:   Change "11" to "27" and it works. (Greg Roelofs)
Files:	    runtime/macros/maze/mazeansi.c

Patch 6.1.107
Problem:    When 'list' is set the current line in the error window may be
	    displayed wrong. (Muraoka Taro)
Solution:   Don't continue the line after the $ has been displayed and the
	    rightmost column is reached.
Files:	    src/screen.c

Patch 6.1.108
Problem:    When interrupting a filter command such as "!!sleep 20" the file
	    becomes read-only. (Mark Brader)
Solution:   Only set the read-only flag when opening a buffer is interrupted.
	    When the shell command was interrupted, read the output that was
	    produced so far.
Files:	    src/ex_cmds.c, src/fileio.c

Patch 6.1.109
Problem:    When 'eadirection' is "hor", using CTRL-W = doesn't equalize the
	    window heights. (Roman Neuhauser)
Solution:   Ignore 'eadirection' for CTRL-W =
Files:	    src/window.c

Patch 6.1.110
Problem:    When using ":badd file" when "file" is already present but not
	    listed, it stays unlisted. (David Frey)
Solution:   Set 'buflisted'.
Files:	    src/buffer.c

Patch 6.1.111
Problem:    It's not possible to detect using the Unix sources on Win32 or Mac.
Solution:   Add has("macunix") and has("win32unix").
Files:	    runtime/doc/eval.txt, src/eval.c

Patch 6.1.112
Problem:    When using ":argdo", ":bufdo" or ":windo", CTRL-O doesn't go to
	    the cursor position from before this command but every position
	    where the argument was executed.
Solution:   Only remember the cursor position from before the ":argdo",
	    ":bufdo" and ":windo".
Files:	    src/ex_cmds2.c, src/mark.c

Patch 6.1.113
Problem:    ":bufdo bwipe" only wipes out half the buffers.  (Roman Neuhauser)
Solution:   Decide what buffer to go to next before executing the command.
Files:	    src/ex_cmds2.c

Patch 6.1.114
Problem:    ":python import vim", ":python vim.current.buffer[0:0] = []" gives
	    a lalloc(0) error. (Chris Southern)
Solution:   Don't allocate an array when it's size is zero.
Files:	    src/if_python.c

Patch 6.1.115
Problem:    "das" on the white space at the end of a paragraph does not delete
	    the "." the sentence ends with.
Solution:   Don't exclude the last character when it is not white space.
Files:	    src/search.c

Patch 6.1.116
Problem:    When 'endofline' is changed while 'binary' is set a file should be
	    considered modified. (Olaf Buddenhagen)
Solution:   Remember the 'eol' value when editing started and consider the
	    file changed when the current value is different and 'binary' is
	    set.  Also fix that the window title isn't updated when 'ff' or
	    'bin' changes.
Files:	    src/option.c, src/structs.h

Patch 6.1.117
Problem:    Small problem with editing a file over ftp: and with Cygwin.
Solution:   Remove a dot from a ":normal" command.  Use "cygdrive" where
	    appropriate.  (Charles Campbell)
Files:	    runtime/plugin/netrw.vim

Patch 6.1.118
Problem:    When a file in diff mode is reloaded because it changed outside
	    of Vim, other windows in diff mode are not always updated.
	    (Michael Naumann)
Solution:   After reloading a file in diff mode mark all windows in diff mode
	    for redraw.
Files:	    src/diff.c

Patch 6.1.119 (extra)
Problem:    With the Sniff interface, using Sniff 4.0.X on HP-UX, there may be
	    a crash when connecting to Sniff.
Solution:   Initialize sniff_rq_sep such that its value can be changed.
	    (Martin Egloff)
Files:	    src/if_sniff.c

Patch 6.1.120 (depends on 6.1.097)
Problem:    When 'scrolloff' is non-zero and there are folds, CTRL-F at the
	    end of the file scrolls part of a closed fold.  (Lubomir Host)
Solution:   Adjust the first line to the start of a fold.
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.
	    (Mario Schweigler)
Solution:   Set the cursor for Insert mode one character to the right.
Files:	    runtime/menu.vim

Patch 6.1.122
Problem:    ":file name" creates a new buffer to hold the old buffer name,
	    which becomes the alternate file.  This buffer is unexpectedly
	    listed.
Solution:   Create the buffer for the alternate name unlisted.
Files:	    src/ex_cmds.c

Patch 6.1.123
Problem:    A ":match" command with more than one argument doesn't report an
	    error.
Solution:   Check for extra characters. (Servatius Brandt)
Files:	    src/ex_docmd.c

Patch 6.1.124
Problem:    When trying to exit and there is a hidden buffer that had 'eol'
	    off and 'bin' set exiting isn't possible. (John McGowan)
Solution:   Set b_start_eol when clearing the buffer.
Files:	    src/buffer.c

Patch 6.1.125
Problem:    Explorer plugin asks for saving a modified buffer even when it's
	    open in another window as well.
Solution:   Count the number of windows using the buffer.
Files:	    runtime/plugin/explorer.vim

Patch 6.1.126
Problem:    Adding the choices in the syntax menu is consuming much of the
	    startup time of the GUI while it's not often used.
Solution:   Only add the choices when the user wants to use them.
Files:	    Makefile, runtime/makemenu.vim, runtime/menu.vim,
	    runtime/synmenu.vim, src/Makefile

Patch 6.1.127
Problem:    When using "--remote file" and the server has 'insertmode' set,
	    commands are inserted instead of being executed. (Niklas Volbers)
Solution:   Go to Normal mode again after the ":drop" command.
Files:	    src/main.c

Patch 6.1.128
Problem:    The expression "input('very long prompt')" puts the cursor in the
	    wrong line (column is OK).
Solution:   Add the wrapped lines to the indent. (Yasuhiro Matsumoto)
Files:	    src/ex_getln.c

Patch 6.1.129
Problem:    On Solaris editing "file/" and then "file" results in using the
	    same buffer.  (Jim Battle)
Solution:   Before using stat(), check that there is no illegal trailing
	    slash.
Files:	    src/auto/configure, src/config.h.in, src/configure.in,
	    src/macros.h src/misc2.c, src/proto/misc2.pro

Patch 6.1.130
Problem:    The documentation for some of the 'errorformat' items is unclear.
Solution:   Add more examples and explain hard to understand items. (Stefan
	    Roemer)
Files:	    runtime/doc/quickfix.txt

Patch 6.1.131
Problem:    X11 GUI: when expanding a CSI byte in the input stream to K_CSI,
	    the CSI byte itself isn't copied.
Solution:   Copy the CSI byte.
Files:	    src/gui_x11.c

Patch 6.1.132
Problem:    Executing a register in Ex mode may cause commands to be skipped.
	    (John McGowan)
Solution:   In Ex mode use an extra check if the register contents was
	    consumed, to avoid input goes into the typeahead buffer.
Files:	    src/ex_docmd.c

Patch 6.1.133
Problem:    When drawing double-wide characters in the statusline, may clear
	    half of a character. (Yasuhiro Matsumoto)
Solution:   Force redraw of the next character by setting the attributes
	    instead of putting a NUL in ScreenLines[].  Do put a NUL in
	    ScreenLines[] when overwriting half of a double-wide character.
Files:	    src/screen.c

Patch 6.1.134
Problem:    An error for a trailing argument of ":match" should not be given
	    after ":if 0". (Servatius Brandt)
Solution:   Only do the check when executing commands.
Files:	    src/ex_docmd.c

Patch 6.1.135
Problem:    Passing a command to the shell that includes a newline always has
	    a backslash before the newline.
Solution:   Remove one backslash before the newline.  (Servatius Brandt)
Files:	    src/ex_docmd.c

Patch 6.1.136
Problem:    When $TERM is "linux" the default for 'background' is "dark", even
	    though the GUI uses a light background. (Hugh Allen)
Solution:   Don't mark the option as set when defaulting to "dark" for the
	    linux console.  Also reset 'background' to "light" when the GUI
	    has a light background.
Files:	    src/option.c

Patch 6.1.137
Problem:    Converting to HTML has a clumsy way of dealing with tabs which may
	    change the highlighting.
Solution:   Replace tabs with spaces after converting a line to HTML. (Preben
	    Guldberg)
Files:	    runtime/syntax/2html.vim

Patch 6.1.138 (depends on 6.1.126)
Problem:    Adding extra items to the Syntax menu can't be done when the "Show
	    individual choices" menu is used.
Solution:   Use ":runtime!" instead of ":source", so that all synmenu.vim
	    files in the runtime path are loaded. (Servatius Brandt)
	    Also fix that a translated menu can't be removed.
Files:	    runtime/menu.vim

Patch 6.1.139
Problem:    Cygwin: PATH_MAX is not defined.
Solution:   Include limits.h. (Dan Sharp)
Files:	    src/main.c

Patch 6.1.140
Problem:    Cygwin: ":args `ls *.c`" does not work if the shell command
	    produces CR NL line separators.
Solution:   Remove the CR characters ourselfs. (Pavol Juhas)
Files:	    src/os_unix.c

Patch 6.1.141
Problem:    ":wincmd gx" may cause problems when mixed with other commands.
	    ":wincmd c" doesn't close the window immediately. (Benji Fisher)
Solution:   Pass the extra command character directly instead of using the
	    stuff buffer and call ex_close() directly.
Files:	    src/ex_docmd.c, src/normal.c, src/proto/normal.pro,
	    src/proto/window.pro, src/window.c

Patch 6.1.142
Problem:    Defining paragraphs without a separating blank line isn't
	    possible.  Paragraphs can't be formatted automatically.
Solution:   Allow defining paragraphs with lines that end in white space.
	    Added the 'w' and 'a' flags in 'formatoptions'.
Files:	    runtime/doc/change.txt, src/edit.c, src/misc1.c, src/normal.c,
	    src/option.h, src/ops.c, src/proto/edit.pro, src/proto/ops.pro,
	    src/vim.h

Patch 6.1.143 (depends on 6.1.142)
Problem:    Auto formatting near the end of the file moves the cursor to a
	    wrong position.  In Insert mode some lines are made one char too
	    narrow.  When deleting a line undo might not always work properly.
Solution:   Don't always move to the end of the line in the last line.  Don't
	    position the cursor past the end of the line in Insert mode.
	    After deleting a line save the cursor line for undo.
Files:	    src/edit.c, src/ops.c, src/normal.c

Patch 6.1.144
Problem:    Obtaining the size of a line in screen characters can be wrong.
	    A pointer may wrap around zero.
Solution:   In win_linetabsize() check for a MAXCOL length argument. (Jim
	    Dunleavy)
Files:	    src/charset.c

Patch 6.1.145
Problem:    GTK: Drag&drop with more than 3 files may cause a crash. (Mickael
	    Marchand)
Solution:   Rewrite the code that parses the received list of files to be more
	    robust.
Files:	    src/charset.c, src/gui_gtk_x11.c

Patch 6.1.146
Problem:    MS-Windows: When $HOME is constructed from $HOMEDRIVE and
	    $HOMEPATH, it is not used for storing the _viminfo file.  (Normal
	    Diamond)
Solution:   Set $HOME with the value obtained from $HOMEDRIVE and $HOMEPATH.
Files:	    src/misc1.c

Patch 6.1.147 (extra)
Problem:    MS-Windows: When a dialog has no default button, pressing Enter
	    ends it anyway and all buttons are selected.
Solution:   Don't end a dialog when there is no default button.  Don't select
	    all button when there is no default. (Vince Negri)
Files:	    src/gui_w32.c

Patch 6.1.148 (extra)
Problem:    MS-Windows: ACL is not properly supported.
Solution:   Add an access() replacement that also works for ACL. (Mike
	    Williams)
Files:	    runtime/doc/editing.txt, src/os_win32.c

Patch 6.1.149 (extra)
Problem:    MS-Windows: Can't use diff mode from the file explorer.
Solution:   Add a "diff with Vim" context menu entry. (Dan Sharp)
Files:	    GvimExt/gvimext.cpp, GvimExt/gvimext.h

Patch 6.1.150
Problem:    OS/2, MS-Windows and MS-DOS: When 'shellslash' is set getcwd()
	    still uses backslash. (Yegappan Lakshmanan)
Solution:   Adjust slashes in getcwd().
Files:	    src/eval.c

Patch 6.1.151 (extra)
Problem:    Win32: The NTFS substream isn't copied.
Solution:   Copy the substream when making a backup copy. (Muraoka Taro)
Files:	    src/fileio.c, src/os_win32.c, src/proto/os_win32.pro

Patch 6.1.152
Problem:    When $LANG is iso8859-1 translated menus are not used.
Solution:   Change iso8859 to iso_8859.
Files:	    runtime/menu.vim

Patch 6.1.153
Problem:    Searching in included files may search recursively when the path
	    starts with "../".  (Sven Berkvens-Matthijsse)
Solution:   Compare full file names, use inode/device when possible.
Files:	    src/search.c

Patch 6.1.154 (extra)
Problem:    DJGPP: "vim -h" leaves the cursor in a wrong position.
Solution:   Don't position the cursor using uninitilized variables. (Jim
	    Dunleavy)
Files:	    src/os_msdos.c

Patch 6.1.155
Problem:    Win32: Cursor may sometimes disappear in Insert mode.
Solution:   Change "hor10" in 'guicursor' to "hor15". (Walter Briscoe)
Files:	    src/option.c

Patch 6.1.156
Problem:    Conversion between DBCS and UCS-2 isn't implemented cleanly.
Solution:   Clean up a few things.
Files:	    src/mbyte.c, src/structs.h

Patch 6.1.157
Problem:    'hlsearch' highlights only the second comma in ",,,,," with
	    "/,\@<=[^,]*". (Preben Guldberg)
Solution:   Also check for an empty match to start just after a previous
	    match.
Files:	    src/screen.c

Patch 6.1.158
Problem:    "zs" and "ze" don't work correctly with ":set nowrap siso=1".
	    (Preben Guldberg)
Solution:   Take 'siso' into account when computing the horizontal scroll
	    position for "zs" and "ze".
Files:	    src/normal.c

Patch 6.1.159
Problem:    When expanding an abbreviation that includes a multi-byte
	    character too many characters are deleted. (Andrey Urazov)
Solution:   Delete the abbreviation counting characters instead of bytes.
Files:	    src/getchar.c

Patch 6.1.160
Problem:    ":$read file.gz" doesn't work. (Preben Guldberg)
Solution:   Don't use the '[ mark after it has become invalid.
Files:	    runtime/plugin/gzip.vim

Patch 6.1.161 (depends on 6.1.158)
Problem:    Warning for signed/unsigned compare.  Can set 'siso' to a negative
	    value. (Mike Williams)
Solution:   Add a typecast.  Add a check for 'siso' being negative.
Files:	    src/normal.c, src/option.c

Patch 6.1.162
Problem:    Python interface: Didn't initialize threads properly.
Solution:   Call PyEval_InitThreads() when starting up.
Files:	    src/if_python.c

Patch 6.1.163
Problem:    Win32: Can't compile with Python after 6.1.162.
Solution:   Dynamically load  PyEval_InitThreads(). (Dan Sharp)
Files:	    src/if_python.c

Patch 6.1.164
Problem:    If 'modifiable' is off, converting to xxd fails and 'filetype' is
	    changed to "xxd" anyway.
Solution:   Don't change 'filetype' when conversion failed.
Files:	    runtime/menu.vim

Patch 6.1.165
Problem:    Making changes in several lines and then a change in one of these
	    lines that splits it in two or more lines, undo information was
	    corrupted.  May cause a crash. (Dave Fishburn)
Solution:   When skipping to save a line for undo because it was already
	    saved, move it to become the last saved line, so that when the
	    command changes the line count other saved lines are not involved.
Files:	    src/undo.c

Patch 6.1.166
Problem:    When 'autoindent' is set and mswin.vim has been sourced, pasting
	    with CTRL-V just after auto-indenting removes the indent. (Shlomi
	    Fish)
Solution:   First insert an "x" and delete it again, so that the auto-indent
	    remains.
Files:	    runtime/mswin.vim

Patch 6.1.167
Problem:    When giving a negative argument to ":retab" strange things start
	    happening. (Hans Ginzel)
Solution:   Check for a negative value.
Files:	    src/ex_cmds.c

Patch 6.1.168
Problem:    Pressing CTRL-C at the hit-enter prompt doesn't end the prompt.
Solution:   Make CTRL-C stop the hit-enter prompt.
Files:	    src/message.c

Patch 6.1.169
Problem:    bufexists() finds a buffer by using the name of a symbolic link to
	    it, but bufnr() doesn't. (Yegappan Lakshmanan)
Solution:   When bufnr() can't find a buffer, try using the same method as
	    bufexists().
Files:	    src/eval.c

Patch 6.1.170
Problem:    Using ":mksession" uses the default session file name, but "vim
	    -S" doesn't. (Hans Ginzel)
Solution:   Use the default session file name if "-S" is the last command
	    line argument or another option follows.
Files:	    runtime/doc/starting.txt, src/main.c

Patch 6.1.171
Problem:    When opening a line just above a closed fold with "O" and the
	    comment leader is automatically inserted, the cursor is displayed
	    in the first column. (Sung-Hyun Nam)
Solution:   Update the flag that indicates the cursor is in a closed fold.
Files:	    src/misc1.c

Patch 6.1.172
Problem:    Command line completion of ":tag /pat" does not show the same
	    results as the tags the command actually finds. (Gilles Roy)
Solution:   Don't modify the pattern to make it a regexp.
Files:	    src/ex_getln.c, src/tag.c

Patch 6.1.173
Problem:    When using remote control to edit a position in a file and this
	    file is the current buffer and it's modified, the window is split
	    and the ":drop" command fails.
Solution:   Don't split the window, keep editing the same buffer.
	    Use the ":drop" command in VisVim to avoid the problem there.
Files:	    src/ex_cmds.c, src/ex_cmds2.c, src/proto/ex_cmds2.pro,
	    VisVim/Commands.cpp

Patch 6.1.174
Problem:    It is difficult to know in a script whether an option not only
	    exists but really works.
Solution:   Add "exists('+option')".
Files:	    runtime/doc/eval.txt, src/eval.c

Patch 6.1.175
Problem:    When reading commands from a pipe and a CTRL-C is pressed, Vim
	    will hang. (Piet Delport)
Solution:   Don't keep reading characters to clear typeahead when an interrupt
	    was detected, stop when a single CTRL-C is read.
Files:	    src/getchar.c, src/ui.c

Patch 6.1.176
Problem:    When the stack limit is very big a false out-of-stack error may
	    be detected.
Solution:   Add a check for overflow of the stack limit computation. (Jim
	    Dunleavy)
Files:	    src/os_unix.c

Patch 6.1.177 (depends on 6.1.141)
Problem:    ":wincmd" does not allow a following command. (Gary Johnson)
Solution:   Check for a following " | cmd".  Also give an error for trailing
	    characters.
Files:	    src/ex_docmd.c

Patch 6.1.178
Problem:    When 'expandtab' is set "r<C-V><Tab>" still expands the Tab.
	    (Bruce deVisser)
Solution:   Replace with a literal Tab.
Files:	    src/normal.c

Patch 6.1.179 (depends on 6.1.091)
Problem:    When using X11R5 XIMPreserveState is undefined. (Albert Chin)
Solution:   Include the missing definitions.
Files:	    src/mbyte.c

Patch 6.1.180
Problem:    Use of the GUI code for forking is inconsistent.
Solution:   Define MAY_FORK and use it for later #ifdefs. (Ben Fowlwer)
Files:	    src/gui.c

Patch 6.1.181
Problem:    If the terminal doesn't wrap from the last char in a line to the
	    next line, the last column is blanked out. (Peter Karp)
Solution:   Don't output a space to mark the wrap, but the same character
	    again.
Files:	    src/screen.c

Patch 6.1.182 (depends on 6.1.142)
Problem:    It is not possible to auto-format comments only. (Moshe Kaminsky)
Solution:   When the 'a' and 'c' flags are in 'formatoptions' only auto-format
	    comments.
Files:	    runtime/doc/change.txt, src/edit.c

Patch 6.1.183
Problem:    When 'fencs' is empty and 'enc' is utf-8, reading a file with
	    illegal bytes gives "CONVERSION ERROR" even though no conversion
	    is done.  'readonly' is set, even though writing the file results
	    in an unmodified file.
Solution:   For this specific error use "ILLEGAL BYTE" and don't set
	    'readonly'.
Files:	    src/fileio.c

Patch 6.1.184 (extra)
Problem:    The extra mouse buttons found on some mice don't work.
Solution:   Support two extra buttons for MS-Windows. (Michael Geddes)
Files:	    runtime/doc/term.txt, src/edit.c, src/ex_getln.c, src/gui.c,
	    src/gui_w32.c, src/gui_w48.c, src/keymap.h, src/message.c,
	    src/misc1.c, src/misc2.c, src/normal.c. src/vim.h

Patch 6.1.185 (depends on 6.1.182)
Problem:    Can't compile without +comments feature.
Solution:   Add #ifdef FEAT_COMMENTS. (Christian J. Robinson)
Files:	    src/edit.c

Patch 6.1.186 (depends on 6.1.177)
Problem:    ":wincmd" does not allow a following comment. (Aric Blumer)
Solution:   Check for a following double quote.
Files:	    src/ex_docmd.c

Patch 6.1.187
Problem:    Using ":doarg" with 'hidden' set and the current file is the only
	    argument and was modified gives an error message. (Preben
	    Guldberg)
Solution:   Don't try re-editing the same file.
Files:	    src/ex_cmds2.c

Patch 6.1.188 (depends on 6.1.173)
Problem:    Unused variable in the small version.
Solution:   Move the declaration for "p" inside #ifdef FEAT_LISTCMDS.
Files:	    src/ex_cmds2.c

Patch 6.1.189
Problem:    inputdialog() doesn't work when 'c' is in 'guioptions'. (Aric
	    Blumer)
Solution:   Fall back to the input() function in this situation.
Files:	    src/eval.c

Patch 6.1.190 (extra)
Problem:    VMS: doesn't build with GTK GUI.  Various other problems.
Solution:   Fix building for GTK.  Improved Perl, Python and TCL support.
	    Improved VMS documentation. (Zoltan Arpadffy)
	    Added Vimtutor for VMS (T. R. Wyant)
Files:	    runtime/doc/os_vms.txt, src/INSTALLvms.txt, src/gui_gtk_f.h,
	    src/if_tcl.c, src/main.c, src/gui_gtk_vms.h, src/Make_vms.mms,
	    src/os_vms.opt, src/proto/if_tcl.pro, vimtutor.com,
	    src/testdir/Make_vms.mms

Patch 6.1.191
Problem:    When using "vim -s script" and redirecting the output, the delay
	    for the "Output is not to a terminal" warning slows Vim down too
	    much.
Solution:   Don't delay when reading commands from a script.
Files:	    src/main.c

Patch 6.1.192
Problem:    ":diffsplit" doesn't add "hor" to 'scrollopt'. (Gary Johnson)
Solution:   Add "hor" to 'scrollopt' each time ":diffsplit" is used.
Files:	    src/diff.c, src/main.c

Patch 6.1.193
Problem:    Crash in in_id_list() for an item with a "containedin" list. (Dave
	    Fishburn)
Solution:   Check for a negative syntax id, used for keywords.
Files:	    src/syntax.c

Patch 6.1.194
Problem:    When "t_ti" is set but it doesn't cause swapping terminal pages,
	    "ZZ" may cause the shell prompt to appear on top of the file-write
	    message.
Solution:   Scroll the text up in the Vim page before swapping to the terminal
	    page. (Michael Schroeder)
Files:	    src/os_unix.c

Patch 6.1.195
Problem:    The quickfix and preview windows always keep their height, while
	    other windows can't fix their height.
Solution:   Add the 'winfixheight' option, so that a fixed height can be
	    specified for any window.  Also fix that the wildmenu may resize a
	    one-line window to a two-line window if 'ls' is zero.
Files:	    runtime/doc/options.txt, runtime/optwin.vim, src/ex_cmds.c,
	    src/ex_getln.c, src/globals.h, src/option.c, src/quickfix.c,
	    src/screen.c, src/structs.h, src/window.c

Patch 6.1.196  (depends on 6.1.084)
Problem:    On Mac OS X 10.2 generating osdef.h fails.
Solution:   Add -no-cpp-precomp to avoid using precompiled header files, which
	    disables printing the search path. (Ben Fowler)
Files:	    src/auto/configure, src/configure.in

Patch 6.1.197
Problem:    ":help <C-V><C-\><C-V><C-N>" (resulting in <1c><0e>) gives an
	    error message. (Servatius Brandt)
Solution:   Double the backslash in "CTRL-\".
Files:	    src/ex_cmds.c

Patch 6.1.198 (extra) (depends on 6.1.076)
Problem:    Mac OS X: Dialogues don't work.
Solution:   Fix a crashing problem for some GUI dialogues.  Fix a problem when
	    saving to a new file from the GUI. (Peter Cucka)
Files:	    src/feature.h, src/gui_mac.c

Patch 6.1.199
Problem:    'guifontwide' doesn't work on Win32.
Solution:   Output each wide character separately. (Michael Geddes)
Files:	    src/gui.c

Patch 6.1.200
Problem:    ":syn sync fromstart" is not skipped after ":if 0".  This can make
	    syntax highlighting very slow.
Solution:   Check "eap->skip" appropriately. (Rob West)
Files:	    src/syntax.c

Patch 6.1.201 (depends on 6.1.192)
Problem:    Warning for illegal pointer combination. (Zoltan Arpadffy)
Solution:   Add a typecast.
Files:	    src/diff.c

Patch 6.1.202  (extra)(depends on 6.1.148)
Problem:    Win32: filewritable() doesn't work properly on directories.
Solution:   fix filewritable(). (Mike Williams)
Files:	    src/os_win32.c

Patch 6.1.203
Problem:    ":%s/~//" causes a crash after ":%s/x//". (Gary Holloway)
Solution:   Avoid reading past the end of a line when "~" is empty.
Files:	    src/regexp.c

Patch 6.1.204 (depends on 6.1.129)
Problem:    Warning for an illegal pointer on Solaris.
Solution:   Add a typecast. (Derek Wyatt)
Files:	    src/misc2.c

Patch 6.1.205
Problem:    The gzip plugin changes the alternate file when editing a
	    compressed file. (Oliver Fuchs)
Solution:   Temporarily remove the 'a' and 'A' flags from 'cpo'.
Files:	    runtime/plugin/gzip.vim

Patch 6.1.206
Problem:    The script generated with ":mksession" doesn't work properly when
	    some commands are mapped.
Solution:   Use ":normal!" instead of ":normal".  And use ":wincmd" where
	    possible. (Muraoka Taro)
Files:	    src/ex_docmd.c, src/fold.c

Patch 6.1.207
Problem:    Indenting a Java file hangs below a line with a comment after a
	    command.
Solution:   Break out of a loop. (Andre Pang)
	    Also line up } with matching {.
Files:	    runtime/indent/java.vim

Patch 6.1.208
Problem:    Can't use the buffer number from the Python interface.
Solution:   Add buffer.number. (Michal Vitecek)
Files:	    src/if_python.c

Patch 6.1.209
Problem:    Printing doesn't work on Mac OS classic.
Solution:   Use a ":" for path separator when opening the resource file. (Axel
	    Kielhorn)
Files:	    src/ex_cmds2.c

Patch 6.1.210
Problem:    When there is an iconv() conversion error when reading a file
	    there can be an error the next time iconv() is used.
Solution:   Reset the state of the iconv() descriptor. (Yasuhiro Matsumoto)
Files:	    src/fileio.c

Patch 6.1.211
Problem:    The message "use ! to override" is confusing.
Solution:   Make it "add ! to override".
Files:	    src/buffer.c, src/eval.c, src/ex_docmd.c, src/fileio.c,
	    src/globals.h

Patch 6.1.212
Problem:    When Vim was started with "-R" ":new" creates a buffer
	    'noreadonly' while ":enew" has 'readonly' set. (Preben Guldberg)
Solution:   Don't set 'readonly in a new empty buffer for ":enew".
Files:	    src/ex_docmd.c

Patch 6.1.213
Problem:    Using CTRL-W H may cause a big gap to appear below the last
	    window. (Aric Blumer)
Solution:   Don't set the window height when there is a vertical split.
	    (Yasuhiro Matsumoto)
Files:	    src/window.c

Patch 6.1.214
Problem:    When installing Vim and the runtime files were checked out from
	    CVS the CVS directories will also be installed.
Solution:   Avoid installing the CVS dirs and their contents.
Files:	    src/Makefile

Patch 6.1.215
Problem:    Win32: ":pwd" uses backslashes even when 'shellslash' is set.
	    (Xiangjiang Ma)
Solution:   Adjust backslashes before printing the message.
Files:	    src/ex_docmd.c

Patch 6.1.216
Problem:    When dynamically loading the iconv library, the error codes may be
	    confused.
Solution:   Use specific error codes for iconv and redefine them for dynamic
	    loading. (Yasuhiro Matsumoto)
Files:	    src/fileio.c, src/mbyte.c, src/vim.h

Patch 6.1.217
Problem:    When sourcing the same Vim script using a different name (symbolic
	    link or MS-Windows 8.3 name) it is listed twice with
	    ":scriptnames".  (Tony Mechelynck)
Solution:   Turn the script name into a full path before using it.  On Unix
	    compare inode/device numbers.
Files:	    src/ex_cmds2.c

Patch 6.1.218
Problem:    No error message for using the function argument "5+".  (Servatius
	    Brandt)
Solution:   Give an error message if a function or variable is expected but is
	    not found.
Files:	    src/eval.c

Patch 6.1.219
Problem:    When using ":amenu :b 1<CR>" with a Visual selection and
	    'insertmode' is set, Vim does not return to Insert mode. (Mickael
	    Marchand)
Solution:   Add the command CTRL-\ CTRL-G that goes to Insert mode if
	    'insertmode' is set and to Normal mode otherwise.  Append this to
	    menus defined with ":amenu".
Files:	    src/edit.c, src/ex_getln.c, src/normal.c

Patch 6.1.220
Problem:    When using a BufReadPost autocommand that changes the line count,
	    e.g., "$-1join", reloading a file that was changed outside Vim
	    does not work properly. (Alan G Isaac)
Solution:   Make the buffer empty before reading the new version of the file.
	    Save the lines in a dummy buffer, so that they can be put back
	    when reading the file fails.
Files:	    src/buffer.c, src/ex_cmds.c, src/fileio.c, src/globals.h,
	    src/proto/buffer.pro

Patch 6.1.221
Problem:    Changing case may not work properly, depending on the current
	    locale.
Solution:   Add the 'casemap' option to let the user chose how changing case
	    is to be done.
	    Also fix lowering case when an UTF-8 character doesn't keep the
	    same byte length.
Files:	    runtime/doc/options.txt, src/ascii.h, src/auto/configure,
	    src/buffer.c, src/charset.c, src/config.h.in, src/configure.in,
	    src/diff.c, src/edit.c, src/eval.c, src/ex_cmds2.c,
	    src/ex_docmd.c, src/ex_getln.c, src/fileio.c, src/gui_amiga.c
	    src/gui_mac.c, src/gui_photon.c, src/gui_w48.c, src/gui_beos.cc,
	    src/macros.h, src/main.c, src/mbyte.c, src/menu.c, src/message.c,
	    src/misc1.c, src/misc2.c, src/option.c, src/os_msdos.c,
	    src/os_mswin.c, src/proto/charset.pro, src/regexp.c, src/option.h,
	    src/syntax.c

Patch 6.1.222 (depends on 6.1.219)
Problem:    Patch 6.1.219 was incomplete.
Solution:   Add the changes for ":amenu".
Files:	    src/menu.c

Patch 6.1.223 (extra)
Problem:    Win32: When IME is activated 'iminsert' is set, but it might never
	    be reset when IME is disabled. (Muraoka Taro)
	    All systems: 'iminsert' is set to 2 when leaving Insert mode, even
	    when langmap is being used. (Peter Valach)
Solution:   Don't set "b_p_iminsert" in _OnImeNotify(). (Muraoka Taro)
	    Don't store the status of the input method in 'iminsert' when
	    'iminsert' is one.  Also for editing the command line and for
	    arguments to Normal mode commands.
Files:	    src/edit.c, src/ex_getln.c, src/gui_w32.c, src/normal.c

Patch 6.1.224
Problem:    "expand('$VAR')" returns an empty string when the expanded $VAR
	    is not an existing file. (Aric Blumer)
Solution:   Included non-existing files, as documented.
Files:	    src/eval.c

Patch 6.1.225
Problem:    Using <C-O><C-^> in Insert mode has a delay when starting "vim -u
	    NONE" and ":set nocp hidden". (Emmanuel)  do_ecmd() uses
	    fileinfo(), the redraw is done after a delay to give the user time
	    to read the message.
Solution:   Put the message from fileio() in "keep_msg", so that the redraw is
	    done before the delay (still needed to avoid the mode message
	    overwrites the fileinfo() message).
Files:	    src/buffer.c

Patch 6.1.226
Problem:    Using ":debug" with a ":normal" command may cause a hang.  (Colin
	    Keith)
Solution:   Save the typeahead buffer when obtaining a debug command.
Files:	    src/ex_cmds2.c, src/getchar.c, src/proto/getchar.pro

Patch 6.1.227
Problem:    It is possible to use a variable name "asdf:asdf" and ":let j:asdf
	    = 5" does not give an error message. (Mikolaj Machowski)
Solution:   Check for a ":" inside the variable name.
Files:	    src/eval.c

Patch 6.1.228 (extra)
Problem:    Win32: The special output function for Hangul is used too often,
	    causing special handling for other situations to be skipped.
	    bInComposition is always FALSE, causing ImeGetTempComposition()
	    always to return NULL.
Solution:   Remove HanExtTextOut().  Delete the dead code around
	    bInComposition and ImeGetTempComposition().
Files:	    src/gui_w16.c, src/gui_w32.c, src/gui_w48.c

Patch 6.1.229
Problem:    Win32: Conversion to/from often used codepages requires the iconv
	    library, which is not always available.
Solution:   Use standard MS-Windows functions for the conversion when
	    possible. (mostly by Glenn Maynard)
	    Also fixes missing declaration for patch 6.1.220.
Files:	    src/fileio.c

Patch 6.1.230 (extra)
Problem:    Win16: building doesn't work.
Solution:   Exclude the XBUTTON handling. (Vince Negri)
Files:	    src/gui_w48.c

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
	    multi-byte word characters doesn't work, the mouse class for
	    punctuation and word characters was mixed up.
Files:	    src/normal.c

Patch 6.1.232 (depends on 6.1.226)
Problem:    Using ex_normal_busy while it might not be available. (Axel
	    Kielhorn)
Solution:   Only use ex_normal_busy when FEAT_EX_EXTRA is defined.
Files:	    src/ex_cmds2.c

Patch 6.1.233
Problem:    ":help expr-||" does not work.
Solution:   Don't use the '|' as a command separator
Files:	    src/ex_cmds.c

Patch 6.1.234 (depends on 6.1.217)
Problem:    Get a warning for using a negative value for st_dev.
Solution:   Don't assign a negative value to st_dev.
Files:	    src/ex_cmds2.c

Patch 6.1.235 (depends on 6.1.223)
Problem:    'iminsert' is changed from 1 to 2 when leaving Insert mode. (Peter
	    Valach)
Solution:   Check "State" before resetting it to NORMAL.
Files:	    src/edit.c

Patch 6.1.236
Problem:    Memory leaks when appending lines for ":diffget" or ":diffput" and
	    when reloading a changed buffer.
Solution:   Free a line after calling ml_append().
Files:	    src/diff.c, src/fileio.c

Patch 6.1.237
Problem:    Putting in Visual block mode does not work correctly when "$" was
	    used or when the first line is short.  (Christian Michon)
Solution:   First delete the selected text and then put the new text.  Save
	    and restore registers as necessary.
Files:	    src/globals.h, src/normal.c, src/ops.c, src/proto/ops.pro,
	    src/vim.h

Patch 6.1.238 (extra)
Problem:    Win32: The "icon=" argument for the ":menu" command does not
	    search for the bitmap file.
Solution:   Expand environment variables and search for the bitmap file.
	    (Vince Negri)
	    Make it consistent, use the same mechanism for X11 and GTK.
Files:	    src/gui.c src/gui_gtk.c, src/gui_w32.c, src/gui_x11.c,
	    src/proto/gui.pro

Patch 6.1.239
Problem:    Giving an error for missing :endif or :endwhile when being
	    interrupted.
Solution:   Don't give these messages when interrupted.
Files:	    src/ex_docmd.c, src/os_unix.c

Patch 6.1.240 (extra)
Problem:    Win32 with BCC 5: CPU may be defined in the environment, which
	    causes a wrong argument for the compiler. (Walter Briscoe)
Solution:   Use CPUNR instead of CPU.
Files:	    src/Make_bc5.mak

Patch 6.1.241
Problem:    Something goes wrong when drawing or undrawing the cursor.
Solution:   Remember when the cursor invalid in a better way.
Files:	    src/gui.c

Patch 6.1.242
Problem:    When pasting a large number of lines on the command line it is not
	    possible to interrupt. (Jean Jordaan)
Solution:   Check for an interrupt after each pasted line.
Files:	    src/ops.c

Patch 6.1.243 (extra)
Problem:    Win32: When the OLE version is started and wasn't registered, a
	    message pops up to suggest registering, even when this isn't
	    possible (when the registry is not writable).
Solution:   Check if registering is possible before asking whether it should
	    be done. (Walter Briscoe)
	    Also avoid restarting Vim after registering.
Files:	    src/if_ole.cpp

Patch 6.1.244
Problem:    Patch 6.1.237 was missing the diff for vim.h. (Igor Goldenberg)
Solution:   Include it here.
Files:	    src/vim.h

Patch 6.1.245
Problem:    Comparing with ignored case does not work properly for Unicode
	    with a locale where case folding an ASCII character results in a
	    multi-byte character. (Glenn Maynard)
Solution:   Handle ignore-case compare for Unicode differently.
Files:	    src/mbyte.c

Patch 6.1.246
Problem:    ":blast" goes to the first buffer if the last one is unlisted.
	    (Andrew Stryker)
Solution:   From the last buffer search backwards for the first listed buffer
	    instead of forwards.
Files:	    src/ex_docmd.c

Patch 6.1.247
Problem:    ACL support doesn't always work properly.
Solution:   Add a configure argument to disable ACL "--disable-acl". (Thierry
	    Vignaud)
Files:	    src/auto/configure, src/configure.in

Patch 6.1.248
Problem:    Typing 'q' at the more-prompt for ":let" does not quit the
	    listing. (Hari Krishna Dara)
Solution:   Quit the listing when got_int is set.
Files:	    src/eval.c

Patch 6.1.249
Problem:    Can't expand a path on the command line if it includes a "|" as a
	    trail byte of a multi-byte character.
Solution:   Check for multi-byte characters. (Yasuhiro Matsumoto)
Files:	    src/ex_docmd.c

Patch 6.1.250
Problem:    When changing the value of 'lines' inside the expression set with
	    'diffexpr' Vim might crash. (Dave Fishburn)
Solution:   Don't allow changing the screen size while updating the screen.
Files:	    src/globals.h, src/option.c, src/screen.c

Patch 6.1.251
Problem:    Can't use completion for ":lcd" and ":lchdir" like ":cd".
Solution:   Expand directory names for these commands. (Servatius Brandt)
Files:	    src/ex_docmd.c

Patch 6.1.252
Problem:    "vi}" does not include a line break when the "}" is at the start
	    of a following line. (Kamil Burzynski)
Solution:   Include the line break.
Files:	    src/search.c

Patch 6.1.253 (extra)
Problem:    Win32 with Cygwin: Changes the path of arguments in a wrong way.
	    (Xiangjiang Ma)
Solution:   Don't use cygwin_conv_to_posix_path() for the Win32 version.
	    Update the Cygwin makefile to support more features.  (Dan Sharp)
Files:	    src/Make_cyg.mak, src/if_ole.cpp, src/main.c

Patch 6.1.254
Problem:    exists("foo{bar}") does not work.  ':unlet v{"a"}r' does not work.
	    ":let v{a}r1 v{a}r2" does not work. ":func F{(1)}" does not work.
	    ":delfunc F{" does not give an error message.  ':delfunc F{"F"}'
	    does not work.
Solution:   Support magic braces for the exists() argument. (Vince Negri)
	    Check for trailing comments explicitly for ":unlet".  Add support
	    for magic braces in further arguments of ":let".  Look for a
	    parenthesis only after the function name.  (Servatius Brandt)
	    Also expand magic braces for "exists('*expr')".  Give an error
	    message for an invalid ":delfunc" argument.  Allow quotes in the
	    ":delfunc" argument.
Files:	    src/eval.c, src/ex_cmds.h, src/ex_docmd.c

Patch 6.1.255 (depends on 6.1.254)
Problem:    Crash when loading menu.vim a second time. (Christian Robinson)
	    ":unlet garbage foo" tries unletting "foo" after an error message.
	    (Servatius Brandt)
	    Very long function arguments cause very long messages when
	    'verbose' is 14 or higher.
Solution:   Avoid reading from uninitialized memory.
	    Break out of a loop after an invalid argument for ":unlet".
	    Truncate long function arguments to 80 characters.
Files:	    src/eval.c

Patch 6.1.256 (depends on 6.1.255)
Problem:    Defining a function after ":if 0" could still cause an error
	    message for an existing function.
	    Leaking memory when there are trailing characters for ":delfunc".
Solution:   Check the "skip" flag.  Free the memory. (Servatius Brandt)
Files:	    src/eval.c

Patch 6.1.257
Problem:    ":cwindow" always sets the previous window to the last but one
	    window.  (Benji Fisher)
Solution:   Set the previous window properly.
Files:	    src/globals.c, src/quickfix.c, src/window.c

Patch 6.1.258
Problem:    Buffers menu doesn't work properly for multibyte buffer names.
Solution:   Use a pattern to get the left and right part of the name.
	    (Yasuhiro Matsumoto)
Files:	    runtime/menu.vim

Patch 6.1.259 (extra)
Problem:    Mac: with 'patchmode' is used filenames are truncated.
Solution:   Increase the BASENAMELEN for Mac OS X. (Ed Ralston)
Files:	    src/os_mac.h

Patch 6.1.260 (depends on 6.1.104)
Problem:    GCC 3.2 still seems to have an optimizer problem. (Zvi Har'El)
Solution:   Use the same configure check as used for GCC 3.1.
Files:	    src/auto/configure, src/configure.in

Patch 6.1.261
Problem:    When deleting a line in a buffer which is not the current buffer,
	    using the Perl interface Delete(), the cursor in the current
	    window may move. (Chris Houser)
Solution:   Don't adjust the cursor position when changing another buffer.
Files:	    src/if_perl.xs

Patch 6.1.262
Problem:    When jumping over folds with "z[", "zj" and "zk" the previous
	    position is not remembered. (Hari Krishna Dara)
Solution:   Set the previous context mark before jumping.
Files:	    src/fold.c

Patch 6.1.263
Problem:    When typing a multi-byte character that triggers an abbreviation
	    it is not inserted properly.
Solution:   Handle adding the typed multi-byte character. (Yasuhiro Matsumoto)
Files:	    src/getchar.c

Patch 6.1.264 (depends on patch 6.1.254)
Problem:    exists() does not work for built-in functions. (Steve Wall)
Solution:   Don't check for the function name to start with a capital.
Files:	    src/eval.c

Patch 6.1.265
Problem:    libcall() can be used in 'foldexpr' to call any system function.
	    rename(), delete() and remote_send() can also be used in
	    'foldexpr'.  These are security problems. (Georgi Guninski)
Solution:   Don't allow using libcall(), rename(), delete(), remote_send() and
	    similar functions in the sandbox.
Files:	    src/eval.c

Patch 6.1.266 (depends on 6.1.265)
Problem:    Win32: compile error in eval.c. (Bill McCarthy)
Solution:   Move a variable declaration.
Files:	    src/eval.c

Patch 6.1.267
Problem:    Using "p" to paste into a Visual selected area may cause a crash.
Solution:   Allocate enough memory for saving the register contents. (Muraoka
	    Taro)
Files:	    src/ops.c

Patch 6.1.268
Problem:    When triggering an abbreviation with a multi-byte character, this
	    character is not correctly inserted after expanding the
	    abbreviation. (Taro Muraoka)
Solution:   Add ABBR_OFF to all characters above 0xff.
Files:	    src/edit.c, src/ex_getln.c, src/getchar.c

Patch 6.1.269
Problem:    After using input() text written with ":redir" gets extra indent.
	    (David Fishburn)
Solution:   Restore msg_col after using input().
Files:	    src/ex_getln.c

Patch 6.1.270 (depends on 6.1.260)
Problem:    GCC 3.2.1 still seems to have an optimizer problem.
Solution:   Use the same configure check as used for GCC 3.1.
Files:	    src/auto/configure, src/configure.in

Patch 6.1.271
Problem:    When compiling without the +syntax feature there are errors.
Solution:   Don't use some code for syntax highlighting. (Roger Cornelius)
	    Make test 45 work without syntax highlighting.
	    Also fix an error in a pattern matching: "\%(" was not supported.
Files:	    src/ex_cmds2.c, src/regexp.c, src/testdir/test45.in

Patch 6.1.272
Problem:    After using ":set define<" a crash may happen. (Christian Robinson)
Solution:   Make a copy of the option value in allocated memory.
Files:	    src/option.c

Patch 6.1.273
Problem:    When the cursor doesn't blink, redrawing an exposed area may hide
	    the cursor.
Solution:   Always draw the cursor, also when it didn't move. (Muraoka Taro)
Files:	    src/gui.c

Patch 6.1.274 (depends on 6.1.210)
Problem:    Resetting the iconv() state after each error is wrong for an
	    incomplete sequence.
Solution:   Don't reset the iconv() state.
Files:	    src/fileio.c

Patch 6.1.275
Problem:    When using "v" in a startup script, get warning message that
	    terminal cannot highlight. (Charles Campbell)
Solution:   Only give the message after the terminal has been initialized.
Files:	    src/normal.c

Patch 6.1.276
Problem:    "gvim --remote file" doesn't prompt for an encryption key.
Solution:   The further characters the client sends to the server are used.
	    Added inputsave() and inputrestore() to allow prompting the
	    user directly and not using typeahead.
	    Also fix possible memory leak for ":normal".
Files:	    src/eval.c, src/ex_cmds2.c, src/ex_docmd.c, src/getchar.c,
	    src/main.c, src/proto/getchar.pro, src/proto/ui.pro,
	    src/runtime/doc/eval.txt, src/structs.h, src/ui.c, src/vim.h

Patch 6.1.277 (depends on 6.1.276)
Problem:    Compilation error when building with small features.
Solution:   Define trash_input_buf() when needed. (Kelvin Lee)
Files:	    src/ui.c

Patch 6.1.278
Problem:    When using signs the line number of a closed fold doesn't line up
	    with the other line numbers. (Kamil Burzynski)
Solution:   Insert two spaces for the sign column.
Files:	    src/screen.c

Patch 6.1.279
Problem:    The prototype for smsg() and smsg_attr() do not match the function
	    definition.  This may cause trouble for some compilers. (Nix)
Solution:   Use va_list for systems that have stdarg.h.  Use "int" instead of
	    "void" for the return type.
Files:	    src/auto/configure, src/config.h.in, src/configure.in,
	    src/proto.h, src/message.c

Patch 6.1.280
Problem:    It's possible to use an argument "firstline" or "lastline" for a
	    function but using "a:firstline" or "a:lastline" in the function
	    won't work.  (Benji Fisher)
Solution:   Give an error message for these arguments.
	    Also avoid that the following function body causes a whole row of
	    errors, skip over it after an error in the first line.
Files:	    src/eval.c

Patch 6.1.281
Problem:    In Insert mode CTRL-X CTRL-G leaves the cursor after the ruler.
Solution:   Set the cursor position before waiting for the argument of CTRL-G.
	    (Yasuhiro Matsumoto)
Files:	    src/edit.c

Patch 6.1.282
Problem:    Elvis uses "se" in a modeline, Vim doesn't recognize this.
Solution:   Also accept "se " where "set " is accepted in a modeline.
	    (Yasuhiro Matsumoto)
Files:	    src/buffer.c

Patch 6.1.283
Problem:    For ":sign" the icon file name cannot contain a space.
Solution:   Handle backslashes in the file name.  (Yasuhiro Matsumoto)
Files:	    src/ex_cmds.c

Patch 6.1.284
Problem:    On Solaris there is a warning for "struct utimbuf".
Solution:   Move including "utime.h" to outside the function. (Derek Wyatt)
Files:	    src/fileio.c

Patch 6.1.285
Problem:    Can't wipe out a buffer with 'bufhide' option.
Solution:   Add "wipe" value to 'bufhide'. (Yegappan Lakshmanan)
Files:	    runtime/doc/options.txt, src/buffer.c, src/option.c,
	    src/quickfix.c

Patch 6.1.286
Problem:    'showbreak' cannot contain multi-byte characters.
Solution:   Allow using all printable characters for 'showbreak'.
Files:	    src/charset.c, src/move.c, src/option.c

Patch 6.1.287 (depends on 6.1.285)
Problem:    Effect of "delete" and "wipe" in 'bufhide' were mixed up.
Solution:   Wipe out when wiping out is asked for.
Files:	    src/buffer.c

Patch 6.1.288
Problem:    ":silent function F" hangs. (Hari Krishna Dara)
Solution:   Don't use msg_col, it is not incremented when using ":silent".
	    Also made the function output look a bit better.  Don't translate
	    "function".
Files:	    src/eval.c

Patch 6.1.289 (depends on 6.1.278)
Problem:    Compiler warning for pointer. (Axel Kielhorn)
Solution:   Add a typecast for "  ".
Files:	    src/screen.c

Patch 6.1.290 (extra)
Problem:    Truncating long text for message box may break multi-byte
	    character.
Solution:   Adjust to start of multi-byte character. (Yasuhiro Matsumoto)
Files:	    src/os_mswin.c

Patch 6.1.291 (extra)
Problem:    Win32: CTRL-@ doesn't work.  Don't even get a message for it.
Solution:   Recognize the keycode for CTRL-@. (Yasuhiro Matsumoto)
Files:	    src/gui_w48.c

Patch 6.1.292 (extra, depends on 6.1.253)
Problem:    Win32: Can't compile with new MingW compiler.
	    Borland 5 makefile doesn't generate pathdef.c.
Solution:   Remove -wwide-multiply argument. (Rene de Zwart)
	    Various fixes for other problems in Win32 makefiles. (Dan Sharp)
Files:	    src/Make_bc5.mak, src/Make_cyg.mak, src/Make_ming.mak,
	    src/Make_mvc.mak

Patch 6.1.293
Problem:    byte2line() returns a wrong result for some values.
Solution:   Change ">=" to ">" in ml_find_line_or_offset(). (Bradford C Smith)
	    Add one to the line number when at the end of a block.
Files:	    src/memline.c

Patch 6.1.294
Problem:    Can't include a multi-byte character in a string by its hex value.
	    (Benji Fisher)
Solution:   Add "\u....": a character specified with up to four hex numbers
	    and stored according to the value of 'encoding'.
Files:	    src/eval.c

Patch 6.1.295 (extra)
Problem:    Processing the cs.po file generates an error. (Rahul Agrawal)
Solution:   Fix the printf format characters in the translation.
Files:	    src/po/cs.po

Patch 6.1.296
Problem:    Win32: When cancelling the font dialog 'guifont' remains set to
	    "*".
Solution:   Restore the old value of 'guifont' (Yasuhiro Matsumoto)
Files:	    src/option.c

Patch 6.1.297
Problem:    "make test" fails in test6 in an UTF-8 environment. (Benji Fisher)
Solution:   Before executing the BufReadPost autocommands save the current
	    fileencoding, so that the file isn't marked changed.
Files:	    src/fileio.c

Patch 6.1.298
Problem:    When using signs and the first line of a closed fold has a sign
	    it can be redrawn as if the fold was open.  (Kamil Burzynski)
Solution:   Don't redraw a sign inside a closed fold.
Files:	    src/screen.c

Patch 6.1.299
Problem:    ":edit +set\ ro file" doesn't work.
Solution:   Halve the number of backslashes in the "+cmd" argument.
Files:	    src/ex_docmd.c

Patch 6.1.300 (extra)
Problem:    Handling of ETO_IGNORELANGUAGE is confusing.
Solution:   Clean up the handling of ETO_IGNORELANGUAGE. (Glenn Maynard)
Files:	    src/gui_w32.c

Patch 6.1.301 (extra)
Problem:    French translation of file-save dialog doesn't show file name.
Solution:   Insert a star in the printf string. (Francois Terrot)
Files:	    src/po/fr.po

Patch 6.1.302
Problem:    Counting lines of the Visual area is incorrect for closed folds.
	    (Mikolaj Machowski)
Solution:   Correct the start and end for the closed fold.
Files:	    src/normal.c

Patch 6.1.303 (extra)
Problem:    The Top/Bottom/All text does not always fit in the ruler when
	    translated to Japanese.  Problem with a character being wider when
	    in a bold font.
Solution:   Use ETO_PDY to specify the width of each character. (Yasuhiro
	    Matsumoto)
Files:	    src/gui_w32.c

Patch 6.1.304 (extra, depends on 6.1.292)
Problem:    Win32: Postscript is always enabled in the MingW Makefile.
	    Pathdef.c isn't generated properly with Make_bc5.mak. (Yasuhiro
	    Matsumoto)
Solution:   Change an ifdef to an ifeq. (Madoka Machitani)
	    Use the Borland make redirection to generate pathdef.c. (Maurice
	    Barnum)
Files:	    src/Make_bc5.mak, src/Make_ming.mak

Patch 6.1.305
Problem:    When 'verbose' is 14 or higher, a function call may cause reading
	    uninitialized data. (Walter Briscoe)
Solution:   Check for end-of-string in trunc_string().
Files:	    src/message.c

Patch 6.1.306
Problem:    The AIX VisualAge cc compiler doesn't define __STDC__.
Solution:   Use __EXTENDED__ like __STDC__. (Jess Thrysoee)
Files:	    src/os_unix.h

Patch 6.1.307
Problem:    When a double-byte character has an illegal tail byte the display
	    is messed up. (Yasuhiro Matsumoto)
Solution:   Draw "XX" instead of the wrong character.
Files:	    src/screen.c

Patch 6.1.308
Problem:    Can't reset the Visual mode returned by visualmode().
Solution:   Use an optional argument to visualmode(). (Charles Campbell)
Files:	    runtime/doc/eval.txt, src/eval.c, src/normal.c,
	    src/structs.h

Patch 6.1.309
Problem:    The tutor doesn't select German if the locale name is
	    "German_Germany.1252". (Joachim Hofmann)
Solution:   Check for "German" in the locale name.  Also check for
	    ".ge".  And include the German and Greek tutors.
Files:	    runtime/tutor/tutor.de, runtime/tutor/tutor.vim,
	    runtime/tutor/tutor.gr, runtime/tutor/tutor.gr.cp737

Patch 6.1.310 (depends on 6.1.307)
Problem:    All double-byte characters are displayed as "XX".
Solution:   Use ">= 32" instead of "< 32".  (Yasuhiro Matsumoto)
Files:	    src/screen.c

Patch 6.1.311 (extra)
Problem:    VMS: path in window title doesn't include necessary separator.
	    file version doesn't always work properly with Unix.
	    Crashes because of memory overwrite in GUI.
	    Didn't always handle files with lowercase and correct path.
Solution:   Fix the problems.  Remove unnessary file name translations.
	    (Zoltan Arpadffy)
Files:	    src/buffer.c, src/ex_cmds2.c, src/fileio.c, src/memline.c,
	    src/misc1.c, src/misc2.c, src/os_unix.c, src/os_vms.c, src/tag.c

Patch 6.1.312
Problem:    When using ":silent" debugging is also done silently.
Solution:   Disable silence while at the debug prompt.
Files:	    src/ex_cmds2.c

Patch 6.1.313
Problem:    When a ":drop fname" command is used and "fname" is open in
	    another window, it is also opened in the current window.
Solution:   Change to the window with "fname" instead.
	    Don't redefine the argument list when dropping only one file.
Files:	    runtime/doc/windows.txt, src/ex_cmds2.c, src/ex_cmds.c,
	    src/ex_docmd.c, src/proto/ex_cmds2.pro, src/proto/ex_docmd.pro

Patch 6.1.314 (depends on 6.1.126)
Problem:    Missing backslash in "Generic Config file" syntax menu.
Solution:   Insert the backslash. (Zak Beck)
Files:	    runtime/makemenu.vim, runtime/synmenu.vim

Patch 6.1.315 (extra)
Problem:    A very long hostname may lead to an unterminated string.  Failing
	    to obtain a hostname may result in garbage.  (Walter Briscoe)
Solution:   Add a NUL at the end of the hostname buffer.
Files:	    src/os_mac.c, src/os_msdos.c, src/os_unix.c, src/os_win16.c,
	    src/os_win32.c

Patch 6.1.316
Problem:    When exiting with "wq" and there is a hidden buffer, after the
	    "file changed" dialog there is a warning for a changed buffer.
	    (Ajit Thakkar)
Solution:   Do update the buffer timestamps when exiting.
Files:	    src/fileio.c

Patch 6.1.317
Problem:    Closing a window may cause some of the remaining windows to be
	    positioned wrong if there is a mix of horizontal and vertial
	    splits. (Stefan Ingi Valdimarsson)
Solution:   Update the frame sizes before updating the window positions.
Files:	    src/window.c

Patch 6.1.318
Problem:    auto/pathdef.c can include wrong quotes when a compiler flag
	    includes quotes.
Solution:   Put a backslash before the quotes in compiler flags. (Shinra Aida)
Files:	    src/Makefile

Patch 6.1.319 (depends on 6.1.276)
Problem:    Using "--remote +cmd file" does not execute "cmd".
Solution:   Call inputrestore() in the same command line as inputsave(),
	    otherwise it will never get executed.
Files:	    src/main.c

Patch 6.1.320 (depends on 6.1.313)
Problem:    When a ":drop one\ file" command is used the file "one\ file" is
	    opened, the backslash is not removed. (Taro Muraoka)
Solution:   Handle backslashes correctly.  Always set the argument list to
	    keep it simple.
Files:	    runtime/doc/windows.txt, src/ex_cmds.c

Patch 6.1.321
Problem:    When 'mouse' includes 'n' but not 'v', don't allow starting Visual
	    mode with the mouse.
Solution:   Don't use MOUSE_MAY_VIS when there is no 'v' in 'mouse'. (Flemming
	    Madsen)
Files:	    src/normal.c

Patch 6.1.322 (extra, depends on 6.1.315)
Problem:    Win32: The host name is always "PC " plus the real host name.
Solution:   Don't insert "PC " before the host name.
Files:	    src/os_win32.c

Patch 6.1.323
Problem:    ":registers" doesn't stop listing for a "q" at the more prompt.
	    (Hari Krishna Dara)
Solution:   Check for interrupt and got_int.
Files:	    src/ops.c, src/proto/ops.pro

Patch 6.1.324
Problem:    Crash when dragging a vertical separator when <LeftMouse> is
	    remapped to jump to another window.
Solution:   Pass the window pointer to the function doing the dragging instead
	    of always using the current window. (Daniel Elstner)
	    Also fix that starting a drag changes window focus.
Files:	    src/normal.c, src/proto/window.pro, src/ui.c, src/vim.h,
	    src/window.c

Patch 6.1.325
Problem:    Shift-Tab is not automatically recognized in an xterm.
Solution:   Add <Esc>[Z as the termcap code. (Andrew Pimlott)
Files:	    src/term.c

Patch 6.1.326
Problem:    Using a search pattern may read from uninitialized data (Yasuhiro
	    Matsumoto)
Solution:   Initialize pointers to NULL.
Files:	    src/regexp.c

Patch 6.1.327
Problem:    When opening the "mbyte.txt" help file the utf-8 characters are
	    unreadable, because the fileencoding is forced to be latin1.
Solution:   Check for utf-8 encoding first in help files. (Daniel Elstner)
Files:	    runtime/doc/mbyte.txt, src/fileio.c

Patch 6.1.328
Problem:    Prototype for enc_canon_search() is missing.
Solution:   Add the prototype. (Walter Briscoe)
Files:	    src/mbyte.c

Patch 6.1.329
Problem:    When editing a file "a b c" replacing "%" in ":Cmd %" or ":next %"
	    does not work properly.  (Hari Krishna Dara)
Solution:   Always escape spaces when expanding "%".  Don't split argument for
	    <f-args> in a user command when only one argument is used.
Files:	    src/ex_docmd.c

Patch 6.1.330
Problem:    GTK, Motif and Athena: Keypad keys produce the same code as
	    non-keypad keys, making it impossible to map them separately.
Solution:   Use different termcap codes for the keypad keys. (Neil Bird)
Files:	    src/gui_gtk_x11.c, src/gui_x11.c

Patch 6.1.331
Problem:    When translating the help files, "LOCAL ADDITIONS" no longer marks
	    the spot where help files from plugins are to be listed.
Solution:   Add a "local-additions" tag and use that to find the right spot.
Files:	    runtime/doc/help.txt, src/ex_cmds.c

Patch 6.1.332 (extra)
Problem:    Win32: Loading Perl dynamically doesn't work with Perl 5.8.
	    Perl 5.8 also does not work with Cygwin and Ming.
Solution:   Adjust the function calls. (Taro Muraoka)
	    Adjust the cyg and ming makefiles. (Dan Sharp)
Files:	    src/Make_cyg.mak, src/Make_ming.mak, src/Make_mvc.mak,
	    src/if_perl.xs

Patch 6.1.333 (extra)
Problem:    Win32: Can't handle Unicode text on the clipboard.
	    Can't pass NUL byte, it becomes a line break.  (Bruce DeVisser)
Solution:   Support Unicode for the clipboard (Ron Aaron and Glenn Maynard)
	    Also support copy/paste of NUL bytes.
Files:	    src/os_mswin.c, src/os_win16.c src/os_win32.c

Patch 6.1.334 (extra, depends on 6.1.303)
Problem:    Problem with drawing Hebrew characters.
Solution:   Only use ETO_PDY for Windows NT and the like. (Yasuhiro Matsumoto)
Files:	    src/gui_w32.c

Patch 6.1.335 (extra)
Problem:    Failure of obtaining the cursor position and window size is
	    ignored.
Solution:   Remove a semicolon after an "if". (Walter Briscoe)
Files:	    src/gui_w32.c

Patch 6.1.336 (extra)
Problem:    Warning for use of function prototypes of smsg().
Solution:   Define HAVE_STDARG_H. (Walter Briscoe)
Files:	    src/os_win32.h

Patch 6.1.337
Problem:    When using "finish" in debug mode in function B() for ":call
	    A(B())" does not stop after B() is finished.
Solution:   Increase debug_level while evaluating a function.
Files:	    src/ex_docmd.c

Patch 6.1.338
Problem:    When using a menu that checks out the current file from Insert
	    mode, there is no warning for the changed file until exiting
	    Insert mode.  (Srikanth Sankaran)
Solution:   Add a check for need_check_timestamps in the Insert mode loop.
Files:	    src/edit.c

Patch 6.1.339
Problem:    Completion doesn't allow "g:" in ":let g:did_<Tab>". (Benji
	    Fisher)
Solution:   Return "g:var" for global variables when that is what is being
	    expanded. (Flemming Madsen)
Files:	    src/eval.c

Patch 6.1.340 (extra, depends on 6.1.332)
Problem:    Win32: Can't compile the Perl interface with nmake.
Solution:   Don't compare the version number as a string but as a number.
	    (Juergen Kraemer)
Files:	    src/Make_mvc.mak

Patch 6.1.341
Problem:    In Insert mode with 'rightleft' set the cursor is drawn halfway a
	    double-wide character.  For CTRL-R and CTRL-K in Insert mode the "
	    or ? is not displayed.
Solution:   Draw the cursor in the next character cell.  Display the " or ?
	    over the right half of the double-wide character. (Yasuhiro
	    Matsumoto)  Also fix that cancelling a digraph doesn't redraw
	    a double-byte character correctly.
Files:	    src/edit.c, src/gui.c, src/mbyte.c

Patch 6.1.342 (depends on 6.1.341)
Problem:    With 'rightleft' set typing "c" on a double-wide character causes
	    the cursor to be displayed one cell to the left.
Solution:   Draw the cursor in the next character cell.  (Yasuhiro Matsumoto)
Files:	    src/gui.c

Patch 6.1.343 (depends on 6.1.342)
Problem:    Cannot compile with the +multi_byte feature but without +rightleft.
	    Cannot compile without the GUI.
Solution:   Fix the #ifdefs.  (partly by Nam SungHyun)
Files:	    src/gui.c, src/mbyte.c, src/ui.c

Patch 6.1.344
Problem:    When using ":silent filetype" the output is still put in the
	    message history. (Hari Krishna Dara)
Solution:   Don't add messages in the history when ":silent" is used.
Files:	    src/message.c

Patch 6.1.345 (extra)
Problem:    Win32: 'imdisable' doesn't work.
Solution:   Make 'imdisable' work. (Yasuhiro Matsumoto)
Files:	    src/gui_w32.c

Patch 6.1.346
Problem:    The scroll wheel can only scroll the current window.
Solution:   Make the scroll wheel scroll the window that the mouse points to.
	    (Daniel Elstner)
Files:	    src/edit.c, src/gui.c, src/normal.c, src/term.c

Patch 6.1.347
Problem:    When using cscope to list matching tags, the listed number is
	    sometimes not equal to what cscope uses. (Vihren Milev)
Solution:   For cscope tags use only one table, don't give tags in the current
	    file a higher priority.
Files:	    src/tag.c

Patch 6.1.348
Problem:    Wildmode with wildmenu: ":set wildmode=list,full", ":colorscheme
	    <tab>" results in "zellner" instead of the first entry. (Anand
	    Hariharan)
Solution:   Don't call ExpandOne() from globpath(). (Flemming Madsen)
Files:	    src/ex_getln.c

Patch 6.1.349
Problem:    "vim --serverlist" when no server was ever started gives an error
	    message without "\n".
	    "vim --serverlist" doesn't exit when the X server can't be
	    contacted, it starts Vim unexpectedly. (Ricardo Signes)
Solution:   Don't give an error when no Vim server was ever started.
	    Treat failing of opening the display equal to errors inside the
	    remote*() functions. (Flemming Madsen)
Files:	    src/if_xcmdsrv.c, src/main.c

Patch 6.1.350
Problem:    When entering a buffer with ":bnext" for the first time, using an
	    autocommand to restore the last used cursor position doesn't work.
	    (Paolo Giarusso)
Solution:   Don't use the last known cursor position of the current Vim
	    invocation if an autocommand changed the position.
Files:	    src/buffer.c

Patch 6.1.351 (depends on 6.1.349)
Problem:    Crash when starting Vim the first time in an X server. (John
	    McGowan)
Solution:   Don't call xFree() with a fixed string.
Files:	    src/if_xcmdsrv.c

Patch 6.1.352 (extra, depends on 6.1.345)
Problem:    Win32: Crash when setting "imdisable" in _vimrc.
Solution:   Don't call IME functions when imm32.dll was not loaded (yet).
	    Also add typecasts to avoid Compiler warnings for
	    ImmAssociateContext() argument.
Files:	    src/gui_w32.c

Patch 6.1.353 (extra, depends on 6.1.334)
Problem:    Problem with drawing Arabic characters.
Solution:   Don't use ETO_PDY, do use padding.
Files:	    src/gui_w32.c

Patch 6.1.354 (extra, depends on 6.1.333)
Problem:    MS-Windows 98: Notepad can't paste text copied from Vim when
	    'encoding' is "utf-8".
Solution:   Also make CF_TEXT available on the clipboard. (Ron Aaron)
Files:	    src/os_mswin.c

Patch 6.1.355
Problem:    In a regexp '\n' will never match anything in a string.
Solution:   Make '\n' match a newline character.
Files:	    src/buffer.c, src/edit.c, src/eval.c, src/ex_cmds2.c,
	    src/ex_docmd.c, src/ex_getln.c, src/fileio.c, src/misc1.c,
	    src/option.c, src/os_mac.c, src/os_unix.c, src/quickfix.c,
	    src/regexp.c, src/search.c, src/syntax.c, src/tag.c, src/vim.h

Patch 6.1.356 (extra, depends on, well, eh, several others)
Problem:    Compiler warnings for using convert_setup() and a few other
	    things.
Solution:   Add typecasts.
Files:	    src/mbyte.c, src/os_mswin.c, src/proto/os_win32.pro, src/os_win32.c

Patch 6.1.357
Problem:    CR in the quickfix window jumps to the error under the cursor, but
	    this doesn't work in Insert mode. (Srikanth Sankaran)
Solution:   Handle CR in Insert mode in the quickfix window.
Files:	    src/edit.c

Patch 6.1.358
Problem:    The tutor doesn't select another locale version properly.
Solution:   Insert the "let" command. (Yasuhiro Matsumoto)
Files:	    runtime/tutor/tutor.vim

Patch 6.1.359 (extra)
Problem:    Mac Carbon: Vim doesn't get focus when started from the command
	    line.  Crash when using horizontal scroll bar.
Solution:   Set Vim as the frontprocess.  Fix scrolling.  (Peter Cucka)
Files:	    src/gui_mac.c

Patch 6.1.360 (depends on 6.1.341)
Problem:    In Insert mode CTRL-K ESC messes up a multi-byte character.
	    (Anders Helmersson)
Solution:   Save all bytes of a character when displaying a character
	    temporarily.
Files:	    src/edit.c, src/proto/screen.pro, src/screen.c

Patch 6.1.361
Problem:    Cannot jump to a file mark with ":'M".
Solution:   Allow jumping to another file for a mark in an Ex address when it
	    is the only thing in the command line.
Files:	    src/ex_docmd.c

Patch 6.1.362
Problem:    tgetent() may return zero for success. tgetflag() may return -1
	    for an error.
Solution:   Check tgetflag() for returning a positive value.  Add an autoconf
	    check for the value that tgetent() returns.
Files:	    src/auto/configure, src/config.h.in, src/configure.in, src/term.c

Patch 6.1.363
Problem:    byte2line() can return one more than the number of lines.
Solution:   Return -1 if the offset is one byte past the end.
Files:	    src/memline.c

Patch 6.1.364
Problem:    That the FileChangedShell autocommand event never nests makes it
	    difficult to reload a file in a normal way.
Solution:   Allow nesting for the FileChangedShell event but do not allow
	    triggering itself again.
	    Also avoid autocommands for the cmdline window in rare cases.
Files:	    src/ex_getln.c, src/fileio.c, src/window.c

Patch 6.1.365 (depends on 6.1.217)
Problem:    Setting a breakpoint in a sourced file with a relative path name
	    doesn't work. (Servatius Brandt)
Solution:   Expand the file name to a full path.
Files:	    src/ex_cmds2.c

Patch 6.1.366
Problem:    Can't use Vim with Netbeans.
Solution:   Add the Netbeans interface.  Includes support for sign icons and
	    "-fg" and "-bg" arguments for GTK.  Add the 'autochdir'
	    option.  (Gordon Prieur, George Hernandez, Dave Weatherford)
	    Make it possible to display both a sign with a text and one with
	    line highlighting in the same line.
	    Add support for Agide, interface version 2.1.
	    Also fix that when 'iskeyword' includes '?' the "*" command
	    doesn't work properly on a word that includes "?" (Bill McCarthy):
	    Don't escape "?" to "\?" when searching forward.
Files:	    runtime/doc/Makefile, runtime/doc/netbeans.txt,
	    runtime/doc/options.txt, runtime/doc/various.txt,
	    src/Makefile, src/auto/configure, src/buffer.c, src/config.h.in,
	    src/config.mk.in, src/configure.in, src/edit.c, src/ex_cmds.c,
	    src/ex_docmd.c, src/feature.h, src/fileio.c, src/globals.h,
	    src/gui.c, src/gui_beval.c, src/gui_gtk_x11.c, src/gui_x11.c,
	    src/main.c, src/memline.c, src/misc1.c, src/misc2.c, src/move.c,
	    src/nbdebug.c, src/nbdebug.h, src/netbeans.c, src/normal.c,
	    src/ops.c, src/option.c, src/option.h, src/proto/buffer.pro,
	    src/proto/gui_beval.pro, src/proto/gui_gtk_x11.pro,
	    src/proto/gui_x11.pro, src/proto/misc2.pro,
	    src/proto/netbeans.pro, src/proto/normal.pro, src/proto/ui.pro,
	    src/proto.h, src/screen.c, src/structs.h, src/ui.c, src/undo.c,
	    src/vim.h, src/window.c, src/workshop.c

Patch 6.1.367 (depends on 6.1.365)
Problem:    Setting a breakpoint in a function doesn't work.  For a sourced
	    file it doesn't work when symbolic links are involved.  (Servatius
	    Brandt)
Solution:   Expand the file name in the same way as do_source() does.  Don't
	    prepend the path to a function name.
Files:	    src/ex_cmds2.c

Patch 6.1.368
Problem:    Completion for ":map" does not include <silent> and <script>.
	    ":mkexrc" do not save the <silent> attribute of mappings.
Solution:   Add "<silent>" to the generated map commands when appropriate.
	    (David Elstner)
	    Add <silent> and <script> to command line completion.
Files:	    src/getchar.c

Patch 6.1.369 (extra)
Problem:    VMS: Vim hangs when attempting to edit a read-only file in the
	    terminal.  Problem with VMS filenames for quickfix.
Solution:   Rewrite low level input.  Remove version number from file name in
	    a couple more places.  Fix crash after patch 6.1.362.  Correct
	    return code for system().  (Zoltan Arpadffy, Tomas Stehlik)
Files:	    src/misc1.c, src/os_unix.c, src/os_vms.c, src/proto/os_vms.pro,
	    src/os_vms_conf.h, src/quickfix.c, src/ui.c

Patch 6.1.370
Problem:    #ifdef nesting is unclear.
Solution:   Insert spaces to indicate the nesting.
Files:	    src/os_unix.c

Patch 6.1.371
Problem:    "%V" in 'statusline' doesn't show "0-1" in an empty line.
Solution:   Add one to the column when comparing with virtual column (Andrew
	    Pimlott)
Files:	    src/buffer.c

Patch 6.1.372
Problem:    With 16 bit ints there are compiler warnings. (Walter Briscoe)
Solution:   Change int into long.
Files:	    src/structs.h, src/syntax.c

Patch 6.1.373
Problem:    The default page header for printing is not translated.
Solution:   Add _() around the two places where "Page" is used. (Mike
	    Williams)  Translate the default value of the 'titleold' and
	    'printheader' options.
Files:	    src/ex_cmds2.c, src/option.c

Patch 6.1.374 (extra)
Problem:    MS-Windows: Cannot build GvimExt with MingW or Cygwin.
Solution:   Add makefile and modified resource files. (Rene de Zwart)
	    Also support Cygwin. (Alejandro Lopez_Valencia)
Files:	    GvimExt/Make_cyg.mak, GvimExt/Make_ming.mak, GvimExt/Makefile,
	    GvimExt/gvimext_ming.def, GvimExt/gvimext_ming.rc

Patch 6.1.375
Problem:    MS-Windows: ':!dir "%"' does not work for a file name with spaces.
	    (Xiangjiang Ma)
Solution:   Don't insert backslashes for spaces in a shell command.
Files:	    src/ex_docmd.c

Patch 6.1.376
Problem:    "vim --version" and "vim --help" have a non-zero exit code.
	    That is unusual. (Petesea)
Solution:   Use a zero exit code.
Files:	    src/main.c

Patch 6.1.377
Problem:    Can't add words to 'lispwords' option.
Solution:   Add P_COMMA and P_NODUP flags. (Haakon Riiser)
Files:	    src/option.c

Patch 6.1.378
Problem:    When two buffer-local user commands are ambiguous, a full match
	    with a global user command isn't found. (Hari Krishna Dara)
Solution:   Detect this situation and accept the global command.
Files:	    src/ex_docmd.c

Patch 6.1.379
Problem:    Linux with kernel 2.2 can't use the alternate stack in combination
	    with threading, causes an infinite loop.
Solution:   Don't use the alternate stack in this situation.
Files:	    src/os_unix.c

Patch 6.1.380
Problem:    When 'winminheight' is zero and the quickfix window is zero lines,
	    entering the window doesn't make it highter. (Christian J.
	    Robinson)
Solution:   Make sure the current window is at least one line high.
Files:	    src/window.c

Patch 6.1.381
Problem:    When a BufWriteCmd is used and it leaves the buffer modified, the
	    window may still be closed. (Hari Krishna Dara)
Solution:   Return FAIL from buf_write() when the buffer is still modified
	    after a BufWriteCmd autocommand was used.
Files:	    src/fileio.c

Patch 6.1.382 (extra)
Problem:    Win32 GUI: When using two monitors, the code that checks/fixes the
	    window size and position (e.g. when a font changes) doesn't work
	    properly.  (George Reilly)
Solution:   Handle a double monitor situation. (Helmut Stiegler)
Files:	    src/gui_w32.c

Patch 6.1.383
Problem:    The filling of the status line doesn't work properly for
	    multi-byte characters. (Nam SungHyun)
	    There is no check for going past the end of the buffer.
Solution:   Properly distinguish characters and bytes.  Properly check for
	    running out of buffer space.
Files:	    src/buffer.c, src/ex_cmds2.c, src/proto/buffer.pro, src/screen.c

Patch 6.1.384
Problem:    It is not possible to find if a certain patch has been included.
	    (Lubomir Host)
Solution:   Support using has() to check if a patch was included.
Files:	    runtime/doc/eval.txt, src/eval.c, src/proto/version.pro,
	    src/version.c

Patch 6.1.385 (depends on 6.1.383)
Problem:    Can't compile without the multi-byte feature.
Solution:   Move an #ifdef.  (Christian J. Robinson)
Files:	    src/buffer.c

Patch 6.1.386
Problem:    Get duplicate tags when running ":helptags".
Solution:   Do the other halve of moving a section to another help file.
Files:	    runtime/tagsrch.txt

Patch 6.1.387 (depends on 6.1.373)
Problem:    Compiler warning for pointer cast.
Solution:   Add (char_u *).
Files:	    src/option.c

Patch 6.1.388 (depends on 6.1.384)
Problem:    Compiler warning for pointer cast.
Solution:   Add (char *).  Only include has_patch() when used.
Files:	    src/eval.c, src/version.c

Patch 6.1.389 (depends on 6.1.366)
Problem:    Balloon evaluation doesn't work for GTK.
	    has("balloon_eval") doesn't work.
Solution:   Add balloon evaluation for GTK.  Also improve displaying of signs.
	    (Daniel Elstner)
	    Also make ":gui" start the netbeans connection and avoid using
	    netbeans functions when the connection is not open.
Files:	    src/Makefile, src/feature.h, src/gui.c, src/gui.h,
	    src/gui_beval.c, src/gui_beval.h, src/gui_gtk.c,
	    src/gui_gtk_x11.c, src/eval.c, src/memline.c, src/menu.c,
	    src/netbeans.c, src/proto/gui_beval.pro, src/proto/gui_gtk.pro,
	    src/structs.h, src/syntax.c, src/ui.c, src/workshop.c

Patch 6.1.390 (depends on 6.1.389)
Problem:    It's not possible to tell Vim to save and exit through the
	    Netbeans interface.  Would still try to send balloon eval text
	    after the connection is closed.
	    Can't use Unicode characters for sign text.
Solution:   Add functions "saveAndExit" and "getModified".  Check for a
	    working connection before sending a balloonText event.
	    various other cleanups.
	    Support any character for sign text. (Daniel Elstner)
Files:	    runtime/doc/netbeans.txt, runtime/doc/sign.txt, src/ex_cmds.c,
	    src/netbeans.c, src/screen.c

Patch 6.1.391
Problem:    ml_get() error when using virtualedit. (Charles Campbell)
Solution:   Get a line from a specific window, not the current one.
Files:	    src/charset.c

Patch 6.1.392 (depends on 6.1.383)
Problem:    Highlighting in the 'statusline' is in the wrong position when an
	    item is tructated. (Zak Beck)
Solution:   Correct the start of 'statusline' items properly for a truncated
	    item.
Files:	    src/buffer.c

Patch 6.1.393
Problem:    When compiled with Python and threads, detaching the terminal may
	    cause Vim to loop forever.
Solution:   Add -pthread to $CFLAGS when using Python and gcc. (Daniel
	    Elstner)
Files:	    src/auto/configure,, src/configure.in

Patch 6.1.394 (depends on 6.1.390)
Problem:    The netbeans interface doesn't recognize multibyte glyph names.
Solution:   Check the number of cells rather than bytes to decide
	    whether a glyph name is not a filename. (Daniel Elstner)
Files:	    src/netbeans.c

Patch 6.1.395 (extra, depends on 6.1.369)
Problem:    VMS: OLD_VMS is never defined.  Missing function prototype.
Solution:   Define OLD_VMS in Make_vms.mms.  Add vms_sys_status() to
	    os_vms.pro. (Zoltan Arpadffy)
Files:	    src/Make_vms.mms, src/proto/os_vms.pro

Patch 6.1.396 (depends on 6.1.330)
Problem:    Compiler warnings for using enum.
Solution:   Add typecast to char_u.
Files:	    src/gui_gtk_x11.c, src/gui_x11.c

Patch 6.1.397 (extra)
Problem:    The install program may use a wrong path for the diff command if
	    there is a space in the install directory path.
Solution:   Use double quotes around the path if necessary. (Alejandro
	    Lopez-Valencia)  Also use double quotes around the file name
	    arguments.
Files:	    src/dosinst.c

Patch 6.1.398
Problem:    Saving the typeahead for debug mode causes trouble for a test
	    script. (Servatius Brandt)
Solution:   Add the ":debuggreedy" command to avoid saving the typeahead.
Files:	    runtime/doc/repeat.txt, src/ex_cmds.h, src/ex_cmds2.c,
	    src/ex_docmd.c, src/proto/ex_cmds2.pro

Patch 6.1.399
Problem:    Warning for unused variable.
Solution:   Remove the variable two_or_more.
Files:	    src/ex_cmds.c

Patch 6.1.400 (depends on 6.1.381)
Problem:    When a BufWriteCmd wipes out the buffer it may still be accessed.
Solution:   Don't try accessing a buffer that has been wiped out.
Files:	    src/fileio.c

Patch 6.1.401 (extra)
Problem:    Building the Win16 version with Borland 5.01 doesn't work.
	    "make test" doesn't work with Make_dos.mak. (Walter Briscoe)
Solution:   Various fixes to the w16 makefile. (Walter Briscoe)
	    Don't use deltree.  Use "mkdir \tmp" instead of "mkdir /tmp".
Files:	    src/Make_w16.mak, src/testdir/Make_dos.mak

Patch 6.1.402
Problem:    When evaluating a function name with curly braces, an error
	    is not handled consistently.
Solution:   Accept the result of an curly braces expression when an
	    error was encountered.  Skip evaluating an expression in curly
	    braces when skipping.  (Servatius Brandt)
Files:	    src/eval.c

Patch 6.1.403 (extra)
Problem:    MS-Windows 16 bit: compiler warnings.
Solution:   Add typecasts. (Walter Briscoe)
Files:	    src/ex_cmds2.c, src/gui_w48.c, src/os_mswin.c, src/os_win16.c,
	    src/syntax.c

Patch 6.1.404 (extra)
Problem:    Various small problems.
Solution:   Fix comments.  Various small additions, changes in indent, removal
	    of unused items and fixes.
Files:	    Makefile, README.txt, runtime/menu.vim, runtime/vimrc_example.vim,
	    src/INSTALL, src/INSTALLole.txt, src/Make_bc5.mak,
	    src/Make_cyg.mak, src/Make_ming.mak, src/Makefile,
	    src/config.h.in, src/edit.c, src/eval.c, src/ex_cmds2.c,
	    src/ex_docmd.c, src/ex_getln.c, src/fileio.c, src/getchar.c,
	    src/gui.c, src/gui_gtk.c, src/gui_photon.c, src/if_cscope.c,
	    src/if_python.c, src/keymap.h, src/mark.c, src/mbyte.c,
	    src/message.c, src/misc1.c, src/misc2.c, src/normal.c,
	    src/option.c, src/os_os2_cfg.h, src/os_win32.c,
	    src/proto/getchar.pro, src/proto/message.pro,
	    src/proto/regexp.pro, src/screen.c, src/structs.h, src/syntax.c,
	    src/term.c, src/testdir/test15.in, src/testdir/test15.ok,
	    src/vim.rc, src/xxd/Make_cyg.mak, src/xxd/Makefile

Patch 6.1.405
Problem:    A few files are missing from the toplevel Makefile.
Solution:   Add the missing files.
Files:	    Makefile

Patch 6.1.406 (depends on 6.1.392)
Problem:    When a statusline item doesn't fit arbitrary text appears.
	    (Christian J. Robinson)
Solution:   When there is just enough room but not for the "<" truncate the
	    statusline item like there is no room.
Files:	    src/buffer.c

Patch 6.1.407
Problem:    ":set scrollbind | help" scrollbinds the help window. (Andrew
	    Pimlott)
Solution:   Reset 'scrollbind' when opening a help window.
Files:	    src/ex_cmds.c

Patch 6.1.408
Problem:    When 'rightleft' is set unprintable character 0x0c is displayed as
	    ">c0<".
Solution:   Reverse the text of the hex character.
Files:	    src/screen.c

Patch 6.1.409
Problem:    Generating tags for the help doesn't work for some locales.
Solution:   Set LANG=C LC_ALL=C in the environment for "sort". (Daniel
	    Elstner)
Files:	    runtime/doc/Makefile

Patch 6.1.410 (depends on 6.1.390)
Problem:    Linking error when compiling with Netbeans but without sign icons.
	    (Malte Neumann)
Solution:   Don't define buf_signcount() when sign icons are unavailable.
Files:	    src/buffer.c

Patch 6.1.411
Problem:    When 'virtualedit' is set, highlighting a Visual block beyond the
	    end of a line may be wrong.
Solution:   Correct the virtual column when the end of the line is before the
	    displayed part of the line. (Muraoka Taro)
Files:	    src/screen.c

Patch 6.1.412
Problem:    When swapping terminal screens and using ":gui" to start the GUI,
	    the shell prompt may be after a hit-enter prompt.
Solution:   Output a newline in the terminal when starting the GUI and there
	    was a hit-enter prompt..
Files:	    src/gui.c

Patch 6.1.413
Problem:    When 'clipboard' contains "unnamed", "p" in Visual mode doesn't
	    work correctly.
Solution:   Save the register before overwriting it and put the resulting text
	    on the clipboard afterwards.  (Muraoka Taro)
Files:	    src/normal.c, src/ops.c

Patch 6.1.414 (extra, depends on 6.1.369)
Problem:    VMS: Vim busy waits when waiting for input.
Solution:   Delay for a short while before getting another character.  (Zoltan
	    Arpadffy)
Files:	    src/os_vms.c

Patch 6.1.415
Problem:    When there is a vertical split and a quickfix window, reducing the
	    size of the Vim window may result in a wrong window layout and a
	    crash.
Solution:   When reducing the window size and there is not enough space for
	    'winfixheight' set the frame height to the larger height, so that
	    there is a retry while ignoring 'winfixheight'. (Yasuhiro
	    Matsumoto)
Files:	    src/window.c

Patch 6.1.416 (depends on 6.1.366)
Problem:    When using the Netbeans interface, a line with a sign cannot be
	    changed.
Solution:   Respect the GUARDEDOFFSET for sign IDs when checking for a guarded
	    area.
Files:	    src/netbeans.c

Patch 6.1.417
Problem:    Unprintable multi-byte characters are not handled correctly.
	    Multi-byte characters above 0xffff are displayed as another
	    character.
Solution:   Handle unprintable multi-byte characters.  Display multi-byte
	    characters above 0xffff with a marker.  Recognize UTF-16 words and
	    BOM words as unprintable.  (Daniel Elstner)
Files:	    src/charset.c, src/mbyte.c, src/screen.c

Patch 6.1.418
Problem:    The result of strftime() is in the current locals.  Need to
	    convert it to 'encoding'.
Solution:   Obtain the current locale and convert the argument for strftime()
	    to it and the result back to 'encoding'.  (Daniel Elstner)
Files:	    src/eval.c, src/ex_cmds.c, src/ex_cmds2.c, src/mbyte.c,
	    src/proto/mbyte.pro, src/option.c, src/os_mswin.c

Patch 6.1.419
Problem:    Vim doesn't compile on AIX 5.1.
Solution:   Don't define _NO_PROTO on this system. (Uribarri)
Files:	    src/auto/configure, src/configure.in

Patch 6.1.420 (extra)
Problem:    convert_input() has an unnecessary STRLEN().
	    Conversion from UCS-2 to a codepage uses word count instead of
	    byte count.
Solution:   Remove the STRLEN() call. (Daniel Elstner)
	    Always use byte count for string_convert().
Files:	    src/gui_w32.c, src/mbyte.c

Patch 6.1.421 (extra, depends on 6.1.354)
Problem:    MS-Windows 9x: When putting text on the clipboard it can be in
	    the wrong encoding.
Solution:   Convert text to the active codepage for CF_TEXT. (Glenn Maynard)
Files:	    src/os_mswin.c

Patch 6.1.422
Problem:    Error in .vimrc doesn't cause hit-enter prompt when swapping
	    screens. (Neil Bird)
Solution:   Set msg_didany also when sending a message to the terminal
	    directly.
Files:	    src/message.c

Patch 6.1.423
Problem:    Can't find arbitrary text in help files.
Solution:   Added the ":helpgrep" command.
Files:	    runtime/doc/various.txt, src/ex_cmds.h, src/ex_docmd.c,
	    src/proto/quickfix.pro, src/quickfix.c

Patch 6.1.424 (extra)
Problem:    Win32: Gvim compiled with VC++ 7.0 run on Windows 95 does not show
	    menu items.
Solution:   Define $WINVER to avoid an extra item is added to MENUITEMINFO.
	    (Muraoka Taro)
Files:	    src/Make_mvc.mak

Patch 6.1.425
Problem:    ":helptags $VIMRUNTIME/doc" does not add the "help-tags" tag.
Solution:   Do add the "help-tags" tag for that specific directory.
Files:	    src/ex_cmds.c

Patch 6.1.426
Problem:    "--remote-wait +cmd file" waits forever. (Valery Kondakoff)
Solution:   Don't wait for the "+cmd" argument to have been edited.
Files:	    src/main.c

Patch 6.1.427
Problem:    Several error messages for regexp patterns are not translated.
Solution:   Use _() properly. (Muraoka Taro)
Files:	    src/regexp.c

Patch 6.1.428
Problem:    FreeBSD: wait() may hang when compiled with Python support and
	    doing a system() call in a startup script.
Solution:   Use waitpid() instead of wait() and poll every 10 msec, just like
	    what is done in the GUI.
Files:	    src/os_unix.c

Patch 6.1.429 (depends on 6.1.390)
Problem:    Crash when using showmarks.vim plugin. (Charles Campbell)
Solution:   Check for sign_get_text() returning a NULL pointer.
Files:	    src/screen.c

Patch 6.1.430
Problem:    In Lisp code backslashed parens should be ignored for "%". (Dorai)
Solution:   Skip over backslashed parens.
Files:	    src/search.c

Patch 6.1.431
Problem:    Debug commands end up in redirected text.
Solution:   Disable redirection while handling debug commands.
Files:	    src/ex_cmds2.c

Patch 6.1.432 (depends on 6.1.375)
Problem:    MS-Windows: ":make %:p" inserts extra backslashes. (David Rennalls)
Solution:   Don't add backslashes, handle it like ":!cmd".
Files:	    src/ex_docmd.c

Patch 6.1.433
Problem:    ":popup" only works for Win32.
Solution:   Add ":popup" support for GTK.  (Daniel Elstner)
Files:	    runtime/doc/gui.txt, src/ex_docmd.c, src/gui_gtk.c, src/menu.c,
	    src/proto/gui_gtk.pro

Patch 6.1.434 (extra)
Problem:    Win32: When there are more than 32767 lines, the scrollbar has a
	    roundoff error.
Solution:   Make a click on an arrow move one line.  Also move the code to
	    gui_w48.c, there is hardly any difference between the 16 bit and
	    32 bit versions. (Walter Briscoe)
Files:	    src/gui_w16.c, src/gui_w32.c, src/gui_w48.c

Patch 6.1.435
Problem:    ":winsize x" resizes the Vim window to the minimal size. (Andrew
	    Pimlott)
Solution:   Give an error message for wrong arguments of ":winsize" and
	    ":winpos".
Files:	    src/ex_docmd.c

Patch 6.1.436
Problem:    When a long UTF-8 file contains an illegal byte it's hard to find
	    out where it is. (Ron Aaron)
Solution:   Add the line number to the error message.
Files:	    src/fileio.c

Patch 6.1.437 (extra, depends on 6.1.421)
Problem:    Using multi-byte functions when they are not available.
Solution:   Put the clipboard conversion inside an #ifdef. (Vince Negri)
	    Also fix a pointer type mistake. (Walter Briscoe)
Files:	    src/os_mswin.c

Patch 6.1.438
Problem:    When Perl has thread support Vim cannot use the Perl interface.
Solution:   Add a configure check and disable Perl when it will not work.
	    (Aron Griffis)
Files:	    src/auto/configure, src/configure.in

Patch 6.1.439
Problem:    Netbeans: A "create" function doesn't actually create a buffer,
	    following functions may fail.
Solution:   Create a Vim buffer without a name when "create" is called.
	    (Gordon Prieur)
Files:	    runtime/doc/netbeans.txt, src/netbeans.c

Patch 6.1.440
Problem:    The "@*" command doesn't obtain the actual contents of the
	    clipboard. (Hari Krishna Dara)
Solution:   Obtain the clipboard text before executing the command.
Files:	    src/ops.c

Patch 6.1.441
Problem:    "zj" and "zk" cannot be used as a motion command after an
	    operator. (Ralf Hetzel)
Solution:   Accept these commands as motion commands.
Files:	    src/normal.c

Patch 6.1.442
Problem:    Unicode 3.2 defines more space and punctuation characters.
Solution:   Add the new characters to the Unicode tables. (Raphael Finkel)
Files:	    src/mbyte.c

Patch 6.1.443 (extra)
Problem:    Win32: The gvimext.dll build with Borland 5.5 requires another
	    DLL.
Solution:   Build a statically linked version by default. (Dan Sharp)
Files:	    GvimExt/Make_bc5.mak

Patch 6.1.444 (extra)
Problem:    Win32: Enabling a build with gettext support is not consistant.
Solution:   Use "GETTEXT" for Borland and msvc makefiles. (Dan Sharp)
Files:	    src/Make_bc5.mak, src/Make_mvc.mak

Patch 6.1.445 (extra)
Problem:    DJGPP: get warning for argument of putenv()
Solution:   Define HAVE_PUTENV to use DJGPP's putenv(). (Walter Briscoe)
Files:	    src/os_msdos.h

Patch 6.1.446 (extra)
Problem:    Win32: The MingW makefile uses a different style of arguments than
	    other makefiles.
	    Dynamic IME is not supported for Cygwin.
Solution:   Use "no" and "yes" style arguments.  Remove the use of the
	    dyn-ming.h include file. (Dan Sharp)
	    Do not include the ime.h file and adjust the makefile. (Alejandro
	    Lopez-Valencia)
Files:	    src/Make_cyg.mak, src/Make_ming.mak, src/gui_w32.c,
	    src/if_perl.xs, src/if_python.c, src/if_ruby.c, src/os_win32.c

Patch 6.1.447
Problem:    "make install" uses "make" directly for generating help tags.
Solution:   Use $(MAKE) instead of "make". (Tim Mooney)
Files:	    src/Makefile

Patch 6.1.448
Problem:    'titlestring' has a default maximum width of 50 chars per item.
Solution:   Remove the default maximum (also for 'statusline').
Files:	    src/buffer.c

Patch 6.1.449
Problem:    When "1" and "a" are in 'formatoptions', auto-formatting always
	    moves a newly added character to the next line. (Servatius Brandt)
Solution:   Don't move a single character to the next line when it was just
	    typed.
Files:	    src/edit.c

Patch 6.1.450
Problem:    Termcap entry "kB" for back-tab is not recognized.
Solution:   Use back-tab as the shift-tab code.
Files:	    src/keymap.h, src/misc2.c, src/term.c

Patch 6.1.451
Problem:    GUI: When text in the find dialog contains a slash, a backslash is
	    inserted the next time it is opened. (Mezz)
Solution:   Remove escaped backslashes and question marks. (Daniel Elstner)
Files:	    src/gui.c

Patch 6.1.452 (extra, after 6.1.446)
Problem:    Win32: IME support doesn't work for MSVC.
Solution:   Use _MSC_VER instead of __MSVC. (Alejandro Lopez-Valencia)
Files:	    src/gui_w32.c

Patch 6.1.453 (after 6.1.429)
Problem:    When compiled without sign icons but with sign support, adding a
	    sign may cause a crash.
Solution:   Check for the text sign to exist before using it. (Kamil
	    Burzynski)
Files:	    src/screen.c

Patch 6.1.454 (extra)
Problem:    Win32: pasting Russian text in Vim with 'enc' set to cp1251
	    results in utf-8 bytes.  (Perelyubskiy)
	    Conversion from DBCS to UCS2 does not work when 'encoding' is not
	    the active codepage.
Solution:   Introduce enc_codepage and use it for conversion to 'encoding'
	    (Glenn Maynard)
	    Use MultiByteToWideChar() and WideCharToMultiByte() instead of
	    iconv().  Should do most needed conversions without iconv.dll.
Files:	    src/globals.h, src/gui_w32.c, src/mbyte.c, src/os_mswin.c,
	    src/proto/mbyte.pro, src/proto/os_mswin.pro, src/structs.h

Patch 6.1.455
Problem:    Some Unicode characters can be one or two character cells wide.
Solution:   Add the 'ambiwidth' option to tell Vim how to display these
	    characters. (Jungshik Shin)
	    Also reset the script ID when setting an option to its default
	    value, so that ":verbose set" won't give wrong info.
Files:	    runtime/doc/options.txt, src/mbyte.c, src/option.c, src/option.h

Patch 6.1.456 (extra, after 6.1.454)
Problem:    Win32: IME doesn't work.
Solution:   ImmGetCompositionStringW() returns the size in bytes, not words.
	    (Yasuhiro Matsumoto)  Also fix typecast problem.
Files:	    src/gui_w32.c, src/os_mswin.c

Patch 6.1.457
Problem:    An empty register in viminfo causes conversion to fail.
Solution:   Don't convert an empty string. (Yasuhiro Matsumoto)
Files:	    src/ex_cmds.c, src/mbyte.c

Patch 6.1.458
Problem:    Compiler warning for pointer.
Solution:   Add a typecast.
Files:	    src/ex_cmds.c

Patch 6.1.459 (extra)
Problem:    Win32: libcall() may return an invalid pointer and cause Vim to
	    crash.
Solution:   Add a strict check for the returned pointer. (Bruce Mellows)
Files:	    src/os_mswin.c

Patch 6.1.460
Problem:    GTK: after scrolling the text one line with a key, clicking the
	    arrow of the scrollbar does not always work. (Nam SungHyun)
Solution:   Always update the scrollbar thumb when the value changed, even
	    when it would not move, like for RISCOS.  (Daniel Elstner)
Files:	    src/gui.c, src/gui.h

Patch 6.1.461
Problem:    When a keymap is active, typing a character in Select mode does
	    not use it. (Benji Fisher)
Solution:   Apply Insert mode mapping to the character typed in Select mode.
Files:	    src/normal.c

Patch 6.1.462
Problem:    When autocommands wipe out a buffer, a crash may happen. (Hari
	    Krishna Dara)
Solution:   Don't decrement the window count of a buffer before calling the
	    autocommands for it.  When re-using the current buffer, watch out
	    for autocommands changing the current buffer.
Files:	    src/buffer.c, src/ex_cmds.c, src/proto/buffer.pro

Patch 6.1.463
Problem:    When writing a compressed file, the file name that gzip stores in
	    the file is the weird temporary file name. (David Rennalls)
Solution:   Use the real file name when possible.
Files:	    runtime/plugin/gzip.vim

Patch 6.1.464
Problem:    Crash when using C++ syntax highlighting. (Gerhard Hochholzer)
Solution:   Check for a negative index.
Files:	    src/syntax.c

Patch 6.1.465 (after 6.1.454)
Problem:    Compile error when using cygwin.
Solution:   Change #ifdef WIN32 to #ifdef WIN3264. (Alejandro Lopez-Valencia)
	    Undefine WIN32 after including windows.h
Files:	    src/mbyte.c

Patch 6.1.466
Problem:    The "-f" argument is a bit obscure.
Solution:   Add the "--nofork" argument.  Improve the help text a bit.
Files:	    runtime/doc/starting.txt, src/main.c

Patch 6.1.467
Problem:    Setting the window title doesn't work for Chinese.
Solution:   Use an X11 function to convert text to a text property. (Kentaro
	    Nakazawa)
Files:	    src/os_unix.c

Patch 6.1.468
Problem:    ":mksession" also stores folds for buffers which will not be
	    restored.
Solution:   Only store folds for a buffer with 'buftype' empty and help files.
Files:	    src/ex_docmd.c

Patch 6.1.469
Problem:    'listchars' cannot contain multi-byte characters.
Solution:   Handle multi-byte UTF-8 list characters. (Matthew Samsonoff)
Files:	    src/message.c, src/option.c, src/screen.c

Patch 6.1.470 (lang)
Problem:    Polish messages don't show up correctly on MS-Windows.
Solution:   Convert messages to cp1250. (Mikolaj Machowski)
	    Also add English message translations, because it got in the way
	    of the patch.
Files:	    Makefile, src/po/Makefile, src/po/en_gb.po, src/po/pl.po

Patch 6.1.471
Problem:    ":jumps" output continues after pressing "q" at the more-prompt.
	    (Hari Krishna Dara)
Solution:   Check for "got_int" being set.
Files:	    src/mark.c

Patch 6.1.472
Problem:    When there is an authentication error when connecting to the X
	    server Vim exits.
Solution:   Use XSetIOErrorHandler() to catch the error and longjmp() to avoid
	    the exit.  Also do this in the main loop, so that when the X
	    server exits a Vim running in a console isn't killed.
Files:	    src/globals.h, src/main.c, src/os_unix.c

Patch 6.1.473
Problem:    Referring to $curwin or $curbuf in Perl 5.6 causes a crash.
Solution:   Add "pTHX_" to cur_val(). (Yasuhiro Matsumoto)
Files:	    src/if_perl.xs

Patch 6.1.474
Problem:    When opening the command-line window in Ex mode it's impossible to
	    go back. (Pavol Juhas)
Solution:   Reset "exmode_active" and restore it when the command-line window
	    is closed.
Files:	    src/ex_getln.c


Patch 6.2f.001
Problem:    The configure check for Ruby didn't work properly for Ruby 1.8.0.
Solution:   Change the way the Ruby check is done. (Aron Griffis)
Files:	    src/auto/configure, src/configure.in

Patch 6.2f.002
Problem:    The output of ":ls" doesn't show whether a buffer had read errors.
Solution:   Add the "x" flag in the ":ls" output.
Files:	    runtime/doc/windows.txt, src/buffer.c

Patch 6.2f.003
Problem:    Test49 doesn't properly test the behavior of ":catch" without an
	    argument.
Solution:   Update test49. (Servatius Brandt)
Files:	    src/testdir/test49.ok, src/testdir/test49.vim

Patch 6.2f.004
Problem:    "vim --version" always uses CR/LF in the output.
Solution:   Omit the CR.
Files:	    src/message.c, src/os_unix.c

Patch 6.2f.005
Problem:    Two error messages without a colon after the number.
Solution:   Add the colon. (Taro Muraoka)
Files:	    src/if_cscope.c

Patch 6.2f.006
Problem:    When saving a file takes a while and Vim regains focus this can
	    result in a "file changed outside of Vim" warning and ml_get()
	    errors. (Mike Williams)
Solution:   Add the "b_saving" flag to avoid checking the timestamp while the
	    buffer is being saved. (Michael Schaap)
Files:	    src/fileio.c, src/structs.h

Patch 6.2f.007
Problem:    Irix compiler complains about multiple defined symbols.
	    vsnprintf() is not available.  (Charles Campbell)
Solution:   Insert EXTERN for variables in globals.h.  Change the configure
	    check for vsnprintf() from compiling to linking.
Files:	    src/auto/configure, src/configure.in, src/globals.h

Patch 6.2f.008
Problem:    The Aap recipe doesn't work with Aap 0.149.
Solution:   Change targetarg to TARGETARG.  Update the mysign file.
Files:	    src/main.aap, src/mysign

Patch 6.2f.009 (extra)
Problem:    Small problem when building with Borland 5.01.
Solution:   Use mkdir() instead of _mkdir(). (Walter Briscoe)
Files:	    src/dosinst.h

Patch 6.2f.010
Problem:    Warning for missing prototypes.
Solution:   Add missing prototypes. (Walter Briscoe)
Files:	    src/if_cscope.c

Patch 6.2f.011
Problem:    The configure script doesn't work with autoconf 2.5x.
Solution:   Add square brackets around a header check. (Aron Griffis)
	    Note: touch src/auto/configure after applying this patch.
Files:	    src/configure.in

Patch 6.2f.012
Problem:    ":echoerr" doesn't work correctly inside try/endtry.
Solution:   Don't reset did_emsg inside a try/endtry. (Servatius Brandt)
Files:	    src/eval.c

Patch 6.2f.013 (extra)
Problem:    Macintosh: Compiler warning for a trigraph.
Solution:   Insert a backslash before each question mark. (Peter Cucka)
Files:	    src/os_mac.h

Patch 6.2f.014 (extra)
Problem:    Macintosh: ex_eval is not included in the project file.
Solution:   Add ex_eval. (Dany St-Amant)
Files:	    src/os_mac.pbproj/project.pbxproj

Patch 6.2f.015 (extra)
Problem:    Win32: When changing header files not all source files involved
	    are recompiled.
Solution:   Improve the dependency rules. (Dan Sharp)
Files:	    src/Make_cyg.mak, src/Make_ming.mak

Patch 6.2f.016
Problem:    "vim --version > ff" on non-Unix systems results in a file with a
	    missing line break at the end. (Bill McCArthy)
Solution:   Add a line break.
Files:	    src/main.c

Patch 6.2f.017
Problem:    Unix: starting Vim in the background and then bringing it to the
	    foreground may cause the termainal settings to be wrong.
Solution:   Check for tcsetattr() to return an error, retry when it does.
	    (Paul Tapper)
Files:	    src/os_unix.c

Patch 6.2f.018
Problem:    Mac OS X 10.2: OK is defined to zero in cursus.h while Vim uses
	    one.  Redefining it causes a warning message.
Solution:   Undefine OK before defining it to one. (Taro Muraoka)
Files:	    src/vim.h

Patch 6.2f.019
Problem:    Mac OS X 10.2: COLOR_BLACK and COLOR_WHITE are defined in
	    curses.h.
Solution:   Rename them to PRCOLOR_BLACK and PRCOLOR_WHITE.
Files:	    src/ex_cmds2.c

Patch 6.2f.020
Problem:    Win32: test50 produces beeps and fails with some versions of diff.
Solution:   Remove empty lines and convert the output to dos fileformat.
Files:	    src/testdir/test50.in

Patch 6.2f.021
Problem:    Running configure with "--enable-netbeans" disables Netbeans.
	    (Gordon Prieur)
Solution:   Fix the tests in configure.in where the default is to enable a
	    feature.  Fix that "--enable-acl" reported "yes" confusingly.
Files:	    src/auto/configure, src/configure.in, src/mysign

Patch 6.2f.022
Problem:    A bogus value for 'foldmarker' is not rejected, possibly causing a
	    hang. (Derek Wyatt)
Solution:   Check for a non-empty string before and after the comma.
Files:	    src/option.c

Patch 6.2f.023
Problem:    When the help files are not in $VIMRUNTIME but 'helpfile' is
	    correct Vim still can't find the help files.
Solution:   Also look for a tags file in the directory of 'helpfile'.
Files:	    src/tag.c

Patch 6.2f.024
Problem:    When 'delcombine' is set and a character has more than two
	    composing characters "x" deletes them all.
Solution:   Always delete only the last composing character.
Files:	    src/misc1.c

Patch 6.2f.025
Problem:    When reading a file from stdin that has DOS line endings but a
	    missing end-of-line for the last line 'fileformat' becomes "unix".
	    (Bill McCarthy)
Solution:   Don't add the missing line break when re-reading the text from the
	    buffer.
Files:	    src/fileio.c

Patch 6.2f.026
Problem:    When typing new text at the command line, old composing characters
	    may be displayed.
Solution:   Don't read composing characters from after the end of the
	    text to be displayed.
Files:	    src/ex_getln.c, src/mbyte.c, src/message.c, src/proto/mbyte.pro,
	    src/screen.c

Patch 6.2f.027
Problem:    Compiler warnings for unsigned char pointers. (Tony Leneis)
Solution:   Add typecasts to char pointer.
Files:	    src/quickfix.c

Patch 6.2f.028
Problem:    GTK: When 'imactivatekey' is empty and XIM is inactive it can't be
	    made active again.  Cursor isn't updated immediately when changing
	    XIM activation.  Japanese XIM may hang when using 'imactivatekey'.
	    Can't activate XIM after typing fFtT command or ":sh".
Solution:   Properly set the flag that indicates the IM is active.  Update the
	    cursor right away.  Do not send a key-release event.  Handle
	    Normal mode and running an external command differently.
	    (Yasuhiro Matsumoto)
Files:	    src/mbyte.c

Patch 6.2f.029
Problem:    Mixing use of int and enum.
Solution:   Adjust argument type of cs_usage_msg().  Fix wrong typedef.
Files:	    src/if_cscope.c, src/if_cscope.h

Patch 6.2f.030 (after 6.2f.028)
Problem:    Cursor moves up when using XIM.
Solution:   Reset im_preedit_cursor.  (Yasuhiro Matsumoto)
Files:	    src/mbyte.c

Patch 6.2f.031
Problem:    Crash when listing a function argument in the debugger. (Ron Aaron)
Solution:   Init the name field of an argument to NULL.
Files:	    src/eval.c

Patch 6.2f.032
Problem:    When a write fails for a ":silent!" while inside try/endtry the
	    BufWritePost autocommands are not triggered.
Solution:   Check the emsg_silent flag in should_abort(). (Servatius Brandt)
Files:	    src/ex_eval.c, src/testdir/test49.ok, src/testdir/test49.vim

Patch 6.2f.033
Problem:    Cscope: re-entrance problem for ":cscope" command.  Checking for
	    duplicate database didn't work well for Win95.  Didn't check for
	    duplicate databases after an empty entry.
Solution:   Don't set postponed_split too early.  Remember first empty
	    database entry. (Sergey Khorev)
Files:	    src/if_cscope.c

Patch 6.2f.034
Problem:    The netbeans interface cannot be used on systems without
	    vsnprintf(). (Tony Leneis)
Solution:   Use EMSG(), EMSGN() and EMSG2() instead.
Files:	    src/auto/configure, src/configure.in, src/netbeans.c

Patch 6.2f.035
Problem:    The configure check for the netbeans interface doesn't work if the
	    socket and nsl libraries are required.
Solution:   Check for the socket and nsl libraries before the netbeans check.
Files:	    src/auto/configure, src/configure.in

Patch 6.2f.036
Problem:    Moving leftwards over text with an illegal UTF-8 byte moves one
	    byte instead of one character.
Solution:   Ignore an illegal byte after the cursor position.
Files:	    src/mbyte.c

Patch 6.2f.037
Problem:    When receiving a Netbeans command at the hit-enter or more prompt
	    the screen is redrawn but Vim is still waiting at the prompt.
Solution:   Quit the prompt like a CTRL-C was typed.
Files:	    src/netbeans.c

Patch 6.2f.038
Problem:    The dependency to run autoconf causes a patch for configure.in
	    to run autoconf, even though the configure script was updated as
	    well.
Solution:   Only run autoconf with "make autoconf".
Files:	    src/Makefile

Patch 6.2f.039
Problem:    CTRL-W K makes the new top window very high.
Solution:   When 'equalalways' is set equalize the window heights.
Files:	    src/window.c


 vim:tw=78:ts=8:ft=help:norl:
