*version6.txt*  For Vim version 9.0.  Last change: 2022 Apr 06


		  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				|new-6|

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|

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

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

==============================================================================
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 '20,"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 Window 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						*new-6*

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 similarly 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 multibyte 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 multibyte 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 multibyte 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 multibyte characters.
- Added support for Unicode upper/lowercase flipping and comparing. (based on
  patch by Raphael Finkel)
  Let "~" on multibyte characters that have a third case ("title case")
  switch between the three cases. (Raphael Finkel)

Allow defining digraphs for multibyte 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 multibyte 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 multibyte 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 multibyte 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.


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 always. (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 multibyte 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).
foldclosedend()	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 multibyte 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". (Marcin 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: (Marcin 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-LessTif.
- 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. (Axel Kielhorn)
- 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.
- 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 multibyte to be mapped.  Can cause very
hard to find problems.  Disallow mapping part of a multibyte 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 its 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 froze 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 multibyte 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 multibyte sequence.

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

Wildmenu didn't handle multibyte 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 multibyte
  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 half 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 half 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 too 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 multibyte characters didn't work.
- When 'selection' is "exclusive", selecting a word that ends in a multibyte
  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 half 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 multibyte 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 multibyte 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 multibyte 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.  (Marcin 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. (Marcin 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 multibyte 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 multibyte character the cursor
would be on the right half, which causes problems with some terminals.

Didn't handle multibyte 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. (Marcin 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 multibyte 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 multibyte 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 Taiwanese 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/message.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 multibyte 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 multibyte character with
	    a trailbyte 0x5c is not handled correctly.
Solution:   Recognize multibyte 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 scrolling 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
	    multibyte 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 half 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 "OxjAxkdd" 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.  It'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 multibyte encoding, patch 6.0.148 causes "p" to work
	    like "P". (Sung-Hyun Nam)
Solution:   Compute the byte length of a multibyte character.
Files:	    src/ops.c

Patch 6.0.151
Problem:    Redrawing the status line and ruler can be wrong when it contains
	    multibyte 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 client.
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 multibyte 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 multibyte 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 multibyte char followed by an ASCII char, and the other way
	    around. (Muraoka Taro)
	    When joining lines a space is inserted between multibyte
	    characters, which is not always wanted.
Solution:   Check for multibyte character before and after the breakpoint.
	    Don't insert a space before or after a multibyte character when
	    joining lines and the 'M' flag is in 'formatoptions'.  Don't
	    insert a space between multibyte 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 ":substitute" 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 multibyte 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 multibyte 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 multibyte 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 up to 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:    multibyte: 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 multibyte 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:    multibyte: When using ":sh" in the GUI, typed and displayed
	    multibyte characters are not handled correctly.
Solution:   Deal with multibyte 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 multibyte
	    characters with a trail byte which is a wildcard.
Solution:   Handle multibyte 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 unnecessarily
	    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
	    loses 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
	    ridiculous 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 (Juerd 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:
	Brazilian (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
'rightleftcmd' 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
running 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 multibyte 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 multibyte 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 instead 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 multibyte character
	    where the trail byte is '~' the text is messed up.
Solution:   Properly skip multibyte 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 it's 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.  Correctly
	    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 with ACL linking fails. (Lubomir Host)
Solution:   When the "acl" library is used, check if the "attr" library is
	    present and use it.
Files:	    src/auto/configure, src/configure.in, src/link.sh

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 half 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 multibyte 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 last 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 ourselves. (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 uninitialized 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 multibyte
	    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 choose 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
	    multibyte characters.
Solution:   Use vim_iswordc() instead of vim_isIDc().  This means 'iskeyword'
	    is used instead of 'isident'.  Also fix that mixing ASCII with
	    multibyte 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
	    multibyte 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 multibyte character.
Solution:   Check for multibyte 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 multibyte character that triggers an abbreviation
	    it is not inserted properly.
Solution:   Handle adding the typed multibyte 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 multibyte 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 multibyte 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 multibyte
	    character.
Solution:   Adjust to start of multibyte 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 multibyte 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 unnecessary 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 vertical
	    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 multibyte 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 higher. (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
	    multibyte 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 multibyte 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 half 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 truncated. (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 a 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 multibyte characters are not handled correctly.
	    Multi-byte characters above 0xffff are displayed as another
	    character.
Solution:   Handle unprintable multibyte characters.  Display multibyte
	    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 multibyte 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 consistent.
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 multibyte characters.
Solution:   Handle multibyte 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 terminal 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 curses.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


==============================================================================
VERSION 6.3						*version-6.3*

This section is about improvements made between version 6.2 and 6.3.

This is mainly a bug-fix release.  There are also a few new features.
The major number of new items is in the runtime files and translations.


Changed							*changed-6.3*
-------

The intro message also displays a note about sponsoring Vim, mixed randomly
with the message about helping children in Uganda.

Included the translated menus, keymaps and tutors with the normal runtime
files.  The separate "lang" archive now only contains translated messages.

Made the translated menu file names a bit more consistent.  Use "latin1" for
"iso_8859-1" and "iso_8859-15".

Removed the "file_select.vim" script from the distribution.  It's not more
useful than other scripts that can be downloaded from www.vim.org.

The "runtime/doc/tags" file is now always in unix fileformat.  On MS-Windows
it used to be dos fileformat, but ":helptags" generates a unix format file.


Added							*added-6.3*
-----

New commands:
	:cNfile		go to last error in previous file
	:cpfile		idem
	:changes	print the change list
	:keepmarks	following command keeps marks where they are
	:keepjumps	following command keeps jumplist and marks
	:lockmarks	following command keeps marks where they are
	:redrawstatus	force a redraw of the status line(s)

New options:
	'antialias'	Mac OS X: use smooth, antialiased fonts
	'helplang'	preferred help languages

Syntax files:
	Arch inventory (Nikolai Weibull)
	Calendar (Nikolai Weibull)
	Ch (Wayne Cheng)
	Controllable Regex Mutilator (Nikolai Weibull)
	D (Jason Mills)
	Desktop (Mikolaj Machowski)
	Dircolors (Nikolai Weibull)
	Elinks configuration (Nikolai Weibull)
	FASM (Ron Aaron)
	GrADS scripts (Stefan Fronzek)
	Icewm menu (James Mahler)
	LDIF (Zak Johnson)
	Locale input, fdcc. (Dwayne Bailey)
	Pinfo config (Nikolai Weibull)
	Pyrex (Marco Barisione)
	Relax NG Compact (Nikolai Weibull)
	Slice (Morel Bodin)
	VAX Macro Assembly (Tom Uijldert)
	grads (Stefan Fronzek)
	libao (Nikolai Weibull)
	mplayer (Nikolai Weibull)
	rst (Nikolai Weibull)
	tcsh (Gautam Iyer)
	yaml (Nikolai Weibull)

Compiler plugins:
	ATT dot (Marcos Macedo)
	Apple Project Builder (Alexander von Below)
	Intel (David Harrison)
	bdf (Nikolai Weibull)
	icc (Peter Puck)
	javac (Doug Kearns)
	neato (Marcos Macedo)
	onsgmls (Robert B. Rowsome)
	perl (Christian J. Robinson)
	rst (Nikolai Weibull)
	se (SmartEiffel) (Doug Kearns)
	tcl (Doug Kearns)
	xmlwf (Robert B. Rowsome)

Filetype plugins:
	Aap (Bram Moolenaar)
	Ch (Wayne Cheng)
	Css (Nikolai Weibull)
	Pyrex (Marco Barisione)
	Rst (Nikolai Weibull)

Indent scripts:
	Aap (Bram Moolenaar)
	Ch (Wayne Cheng)
	DocBook (Nikolai Weibull)
	MetaPost (Eugene Minkovskii)
	Objective-C (Kazunobu Kuriyama)
	Pyrex (Marco Barisione)
	Rst (Nikolai Weibull)
	Tcsh (Gautam Iyer)
	XFree86 configuration file (Nikolai Weibull)
	Zsh (Nikolai Weibull)

Keymaps:
	Greek for cp1253 (Panagiotis Louridas)
	Hungarian (Magyar) (Laszlo Zavaleta)
	Persian-Iranian (Behnam Esfahbod)

Message translations:
	Catalan (Ernest Adrogue)
	Russian (Vassily Ragosin)
	Swedish (Johan Svedberg)

Menu translations:
	Catalan (Ernest Adrogue)
	Russian (Tim Alexeevsky)
	Swedish (Johan Svedberg)

Tutor translations:
	Catalan (Ernest Adrogue)
	Russian in cp1251 (Alexey Froloff)
	Slovak in cp1250 and iso8859-2 (Lubos Celko)
	Swedish (Johan Svedberg)
	Korean (Kee-Won Seo)
	UTF-8 version of the Japanese tutor (Yasuhiro Matsumoto) Use this as
		the original, create the other Japanese tutor by conversion.

Included "russian.txt" help file. (Vassily Ragosin)

Include Encapsulated PostScript and PDF versions of the Vim logo in the extra
archive.

The help highlighting finds the highlight groups and shows them in the color
that is actually being used. (idea from Yakov Lerner)

The big Win32 version is now compiled with Ruby interface, version 1.8.  For
Python version 2.3 is used.  For Perl version 5.8 is used.

The "ftdetect" directory is mentioned in the documentation.  The DOS install
program creates it.


Fixed							*fixed-6.3*
-----

Test 42 failed on MS-Windows.  Set and reset 'fileformat' and 'binary' options
here and there.  (Walter Briscoe)

The explorer plugin didn't work for double-byte 'encoding's.

Use "copy /y" in Make_bc5.mak to avoid a prompt for overwriting.

Patch 6.2.001
Problem:    The ":stopinsert" command doesn't have a help tag.
Solution:   Add the tag. (Antoine J. Mechelynck)
Files:	    runtime/doc/insert.txt, runtime/doc/tags

Patch 6.2.002
Problem:    When compiled with the +multi_byte feature but without +eval,
	    displaying UTF-8 characters may cause a crash. (Karsten Hopp)
Solution:   Also set the default for 'ambiwidth' when compiled without the
	    +eval feature.
Files:	    src/option.c

Patch 6.2.003
Problem:    GTK 2: double-wide characters below 256 are not displayed
	    correctly.
Solution:   Check the cell width for characters above 127. (Yasuhiro
	    Matsumoto)
Files:	    src/gui_gtk_x11.c

Patch 6.2.004
Problem:    With a line-Visual selection at the end of the file a "p" command
	    puts the text one line upwards.
Solution:   Detect that the last line was deleted and put forward. (Taro
	    Muraoka)
Files:	    src/normal.c

Patch 6.2.005
Problem:    GTK: the "Find" and "Find and Replace" tools don't work. (Aschwin
	    Marsman)
Solution:   Show the dialog after creating it.  (David Necas)
Files:	    src/gui_gtk.c

Patch 6.2.006
Problem:    The Netbeans code contains an obsolete function that uses "vim61"
	    and sets the fall-back value for $VIMRUNTIME.
Solution:   Delete the obsolete function.
Files:	    src/main.c, src/netbeans.c, src/proto/netbeans.pro

Patch 6.2.007
Problem:    Listing tags for Cscope doesn't always work.
Solution:   Avoid using smgs_attr(). (Sergey Khorev)
Files:	    src/if_cscope.c

Patch 6.2.008
Problem:    XIM with GTK 2: After backspacing preedit characters are wrong.
Solution:   Reset the cursor position. (Yasuhiro Matsumoto)
Files:	    src/mbyte.c

Patch 6.2.009
Problem:    Win32: The self-installing executable "Full" selection only
	    selects some of the items to install. (Salman Mohsin)
Solution:   Change commas to spaces in between section numbers.
Files:	    nsis/gvim.nsi

Patch 6.2.010
Problem:    When 'virtualedit' is effective and a line starts with a
	    multibyte character, moving the cursor right doesn't work.
Solution:   Obtain the right character to compute the column offset. (Taro
	    Muraoka)
Files:	    src/charset.c

Patch 6.2.011
Problem:    Alpha OSF1: stat() is a macro and doesn't allow an #ifdef halfway.
	    (Moshe Kaminsky)
Solution:   Move the #ifdef outside of stat().
Files:	    src/os_unix.c

Patch 6.2.012
Problem:    May hang when polling for a character.
Solution:   Break the wait loop when not waiting for a character.
Files:	    src/os_unix.c

Patch 6.2.013 (extra)
Problem:    Win32: The registry key for uninstalling GvimExt still uses "6.1".
Solution:   Change the version number to "6.2". (Ajit Thakkar)
Files:	    src/GvimExt/GvimExt.reg

Patch 6.2.014 (after 6.2.012)
Problem:    XSMP doesn't work when using poll().
Solution:   Use xsmp_idx instead of gpm_idx. (Neil Bird)
Files:	    src/os_unix.c

Patch 6.2.015
Problem:    The +xsmp feature is never enabled.
Solution:   Move the #define for USE_XSMP to below where WANT_X11 is defined.
	    (Alexey Froloff)
Files:	    src/feature.h

Patch 6.2.016
Problem:    Using ":scscope find" with 'cscopequickfix' does not always split
	    the window. (Gary Johnson)
	    Win32: ":cscope add" could make the script that contains it
	    read-only until the corresponding ":cscope kill".
	    Errors during ":cscope add" may not be handled properly.
Solution:   When using the quickfix window may need to split the window.
	    Avoid file handle inheritance for the script.
	    Check for a failed connection and/or process.  (Sergey Khorev)
Files:	    src/ex_cmds2.c, src/if_cscope.c

Patch 6.2.017
Problem:    Test11 sometimes prompts the user, because a file would have been
	    changed outside of Vim. (Antonio Colombo)
Solution:   Add a FileChangedShell autocommand to avoid the prompt.
Files:	    src/testdir/test11.in

Patch 6.2.018
Problem:    When using the XSMP protocol and reading from stdin Vim may wait
	    for a key to be pressed.
Solution:   Avoid that RealWaitForChar() is used recursively.
Files:	    src/os_unix.c

Patch 6.2.019 (lang)
Problem:    Loading the Portuguese menu causes an error message.
Solution:   Join two lines.  (Jose Pedro Oliveira, José de Paula)
Files:	    runtime/lang/menu_pt_br.vim

Patch 6.2.020
Problem:    The "Syntax/Set syntax only" menu item causes an error message.
	    (Oyvind Holm)
Solution:   Set the script-local variable in a function. (Benji Fisher)
Files:	    runtime/synmenu.vim

Patch 6.2.021
Problem:    The user manual section on exceptions contains small mistakes.
Solution:   Give a good example of an error that could be missed and other
	    improvements. (Servatius Brandt)
Files:	    runtime/doc/usr_41.txt

Patch 6.2.022 (extra)
Problem:    Win32: After deleting a menu item it still appears in a tear-off
	    window.
Solution:   Set the mode to zero for the deleted item. (Yasuhiro Matsumoto)
Files:	    src/gui_w32.c

Patch 6.2.023 (extra)
Problem:    Win32: Make_ivc.mak does not clean everything.
Solution:   Delete more files in the clean rule. (Walter Briscoe)
Files:	    src/Make_ivc.mak

Patch 6.2.024 (extra)
Problem:    Win32: Compiler warnings for typecasts.
Solution:   Use DWORD instead of WORD. (Walter Briscoe)
Files:	    src/gui_w32.c

Patch 6.2.025
Problem:    Missing prototype for sigaltstack().
Solution:   Add the prototype when it is not found in a header file.
Files:	    src/os_unix.c

Patch 6.2.026
Problem:    Warning for utimes() argument.
Solution:   Add a typecast.
Files:	    src/fileio.c

Patch 6.2.027
Problem:    Warning for uninitialized variable.
Solution:   Set mb_l to one when not using multibyte characters.
Files:	    src/message.c

Patch 6.2.028
Problem:    Cscope connection may kill Vim process and others.
Solution:   Check for pid being larger than one. (Khorev Sergey)
Files:	    src/if_cscope.c

Patch 6.2.029
Problem:    When using the remote server functionality Vim may leak memory.
	    (Srikanth Sankaran)
Solution:   Free the result of XListProperties().
Files:	    src/if_xcmdsrv.c

Patch 6.2.030
Problem:    Mac: Warning for not being able to use precompiled header files.
Solution:   Don't redefine select.  Use -no-cpp-precomp for compiling, so that
	    function prototypes are still found.
Files:	    src/os_unix.c, src/osdef.sh

Patch 6.2.031
Problem:    The langmenu entry in the options window doesn't work. (Rodolfo
	    Lima)
	    With GTK 1 the ":options" command causes an error message.
	    (Michael Naumann)
Solution:   Change "lmenu" to "langmenu".  Only display the 'tbis' option for
	    GTK 2.
Files:	    runtime/optwin.vim

Patch 6.2.032
Problem:    The lpc filetype is never recognized. (Shizhu Pan)
Solution:   Check for g:lpc_syntax_for_c instead of the local variable
	    lpc_syntax_for_c. (Benji Fisher)
Files:	    runtime/filetype.vim

Patch 6.2.033 (extra)
Problem:    Mac: Various compiler warnings.
Solution:   Don't include Classic-only headers in Unix version.
	    Remove references to several unused variables. (Ben Fowler)
	    Fix double definition of DEFAULT_TERM.
	    Use int instead of unsigned short for pixel values, so that the
	    negative error values are recognized.
Files:	    src/gui_mac.c, src/term.c

Patch 6.2.034
Problem:    Mac: Compiler warning for redefining DEFAULT_TERM.
Solution:   Fix double definition of DEFAULT_TERM.
Files:	    src/term.c

Patch 6.2.035
Problem:    Mac: Compiler warnings in Python interface.
Solution:   Make a difference between pure Mac and Unix-Mac. (Peter Cucka)
Files:	    src/if_python.c

Patch 6.2.036 (extra)
Problem:    Mac Unix version: If foo is a directory, then ":e f<Tab>" should
	    expand to ":e foo/" instead of ":e foo" .  (Vadim Zeitlin)
Solution:   Define DONT_ADD_PATHSEP_TO_DIR only for pure Mac. (Benji Fisher)
Files:	    src/os_mac.h

Patch 6.2.037
Problem:    Win32: converting an encoding name to a codepage could result in
	    an arbitrary number.
Solution:   make encname2codepage() return zero if the encoding name doesn't
	    contain a codepage number.
Files:	    src/mbyte.c

Patch 6.2.038 (extra)
Problem:    Warning messages when using the MingW compiler. (Bill McCarthy)
	    Can't compile console version without +mouse feature.
Solution:   Initialize variables, add parenthesis.
	    Add an #ifdef around g_nMouseClick. (Ajit Thakkar)
Files:	    src/eval.c, src/os_win32.c, src/gui_w32.c, src/dosinst.c

Patch 6.2.039 (extra)
Problem:    More warning messages when using the MingW compiler.
Solution:   Initialize variables. (Bill McCarthy)
Files:	    src/os_mswin.c

Patch 6.2.040
Problem:    FreeBSD: Crash while starting up when compiled with +xsmp feature.
Solution:   Pass a non-NULL argument to IceAddConnectionWatch().
Files:	    src/os_unix.c

Patch 6.2.041 (extra, after 6.2.033)
Problem:    Mac: Compiler warnings for conversion types, missing prototype,
	    missing return type.
Solution:   Change sscanf "%hd" to "%d", the argument is an int now.  Add
	    gui_mch_init_check() prototype.  Add "int" to termlib functions.
Files:	    src/gui_mac.c, src/proto/gui_mac.pro, src/termlib.c.

Patch 6.2.042 (extra)
Problem:    Cygwin: gcc 3.2 has an optimizer problem, sometimes causing a
	    crash.
Solution:   Add -fno-strength-reduce to the compiler arguments. (Dan Sharp)
Files:	    src/Make_cyg.mak

Patch 6.2.043
Problem:    Compiling with both netbeans and workshop doesn't work.
Solution:   Move the shellRectangle() function to gui_x11.c. (Gordon Prieur)
Files:	    src/gui_x11.c, src/integration.c, src/netbeans.c,
	    src/proto/netbeans.pro

Patch 6.2.044
Problem:    ":au filetypedetect" gives an error for a non-existing event name,
	    but it's actually a non-existing group name. (Antoine Mechelynck)
Solution:   Make the error message clearer.
Files:	    src/fileio.c

Patch 6.2.045
Problem:    Obtaining the '( mark changes the '' mark. (Gary Holloway)
Solution:   Don't set the '' mark when searching for the start/end of the
	    current sentence/paragraph.
Files:	    src/mark.c

Patch 6.2.046
Problem:    When evaluating an argument of a function throws an exception the
	    function is still called. (Hari Krishna Dara)
Solution:   Don't call the function when an exception was thrown.
Files:	    src/eval.c

Patch 6.2.047 (extra)
Problem:    Compiler warnings when using MingW. (Bill McCarthy)
Solution:   Give the s_dwLastClickTime variable a type.  Initialize dwEndTime.
Files:	    src/os_win32.c

Patch 6.2.048
Problem:    The Python interface doesn't compile with Python 2.3 when
	    dynamically loaded.
Solution:   Use dll_PyObject_Malloc and dll_PyObject_Free. (Paul Moore)
Files:	    src/if_python.c

Patch 6.2.049
Problem:    Using a "-range=" argument with ":command" doesn't work and
	    doesn't generate an error message.
Solution:   Generate an error message.
Files:	    src/ex_docmd.c

Patch 6.2.050
Problem:    Test 32 didn't work on MS-Windows.
Solution:   Write the temp file in Unix fileformat. (Walter Briscoe)
Files:	    src/testdir/test32.in

Patch 6.2.051
Problem:    When using "\=submatch(0)" in a ":s" command, line breaks become
	    NUL characters.
Solution:   Change NL to CR characters, so that they become line breaks.
Files:	    src/regexp.c

Patch 6.2.052
Problem:    A few messages are not translated.
Solution:   Add _() to the messages. (Muraoka Taro)
Files:	    src/ex_cmds.c

Patch 6.2.053
Problem:    Prototype for bzero() doesn't match most systems.
Solution:   Use "void *" instead of "char *" and "size_t" instead of "int".
Files:	    src/osdef1.h.in

Patch 6.2.054
Problem:    A double-byte character with a second byte that is a backslash
	    causes problems inside a string.
Solution:   Skip over multibyte characters in a string properly. (Yasuhiro
	    Matsumoto)
Files:	    src/eval.c

Patch 6.2.055
Problem:    Using col('.') from CTRL-O in Insert mode does not return the
	    correct value for multibyte characters.
Solution:   Correct the cursor position when it is necessary, move to the
	    first byte of a multibyte character. (Yasuhiro Matsumoto)
Files:	    src/edit.c

Patch 6.2.056 (extra)
Problem:    Building with Sniff++ doesn't work.
Solution:   Use the multi-threaded libc when needed. (Holger Ditting)
Files:	    src/Make_mvc.mak

Patch 6.2.057 (extra)
Problem:    Mac: With -DMACOS_X putenv() is defined twice, it is in a system
	    library.  Get a warning for redefining OK.  Unused variables in
	    os_mac.c
Solution:   Define HAVE_PUTENV.  Undefine OK after including curses.h.
	    Remove declarations for unused variables.
Files:	    src/os_mac.c, src/os_mac.h, src/vim.h

Patch 6.2.058
Problem:    When 'autochdir' is set ":bnext" to a buffer without a name causes
	    a crash.
Solution:   Don't call vim_chdirfile() when the file name is NULL. (Taro
	    Muraoka)
Files:	    src/buffer.c

Patch 6.2.059
Problem:    When 'scrolloff' is a large number and listing completion results
	    on the command line, then executing a command that jumps close to
	    where the cursor was before, part of the screen is not updated.
	    (Yakov Lerner)
Solution:   Don't skip redrawing part of the window when it was scrolled.
Files:	    src/screen.c

Patch 6.2.060 (extra)
Problem:    Win32: When 'encoding' is set to "iso-8859-7" copy/paste to/from
	    the clipboard gives a lalloc(0) error. (Kriton Kyrimis)
Solution:   When the string length is zero allocate one byte.  Also fix that
	    when the length of the Unicode text is zero (conversion from
	    'encoding' to UCS-2 was not possible) the normal text is used.
Files:	    src/os_mswin.c

Patch 6.2.061
Problem:    GUI: Using the left mouse button with the shift key should work
	    like "*" but it scrolls instead. (Martin Beller)
Solution:   Don't recognize an rxvt scroll wheel event when using the GUI.
Files:	    src/term.c

Patch 6.2.062
Problem:    When one buffer uses a syntax with "containedin" and another
	    buffer does not, redrawing depends on what the current buffer is.
	    (Brett Pershing Stahlman)
Solution:   Use "syn_buf" instead of "curbuf" to get the b_syn_containedin
	    flag.
Files:	    src/syntax.c

Patch 6.2.063
Problem:    When using custom completion end up with no matches.
Solution:   Make cmd_numfiles and cmd_files local to completion to avoid that
	    they are overwritten when ExpandOne() is called recursively by
	    f_glob().
Files:	    src/eval.c, src/ex_docmd.c, src/ex_getln.c, src/proto/ex_getln.pro,
	    src/misc1.c, src/structs.h, src/tag.c

Patch 6.2.064
Problem:    resolve() only handles one symbolic link, need to repeat it to
	    resolve all of them.  Then need to simplify the file name.
Solution:   Make resolve() resolve all symbolic links and simplify the result.
	    Add simplify() to just simplify a file name.  Fix that test49
	    doesn't work if /tmp is a symbolic link.  (Servatius Brandt)
Files:	    runtime/doc/eval.txt, src/eval.c, src/tag.c,
	    src/testdir/test49.vim

Patch 6.2.065
Problem:    ":windo 123" only updates other windows when entering them.
	    (Walter Briscoe)
Solution:   Update the topline before going to the next window.
Files:	    src/ex_cmds2.c

Patch 6.2.066 (extra)
Problem:    Ruby interface doesn't work with Ruby 1.8.0.
Solution:   Change "defout" to "stdout". (Aron Griffis)
	    Change dynamic loading. (Taro Muraoka)
Files:	    src/if_ruby.c, src/Make_mvc.mak

Patch 6.2.067
Problem:    When searching for a string that starts with a composing character
	    the command line isn't drawn properly.
Solution:   Don't count the space to draw the composing character on and
	    adjust the cursor column after drawing the string.
Files:	    src/message.c

Patch 6.2.068
Problem:    Events for the netbeans interface that include a file name with
	    special characters don't work properly.
Solution:   Use nb_quote() on the file name. (Sergey Khorev)
Files:	    src/netbeans.c

Patch 6.2.069 (after 6.2.064)
Problem:    Unused variables "limit" and "new_st" and unused label "fail" in
	    some situation. (Bill McCarthy)
Solution:   Put the declarations inside an #ifdef. (Servatius Brandt)
Files:	    src/eval.c, src/tag.c

Patch 6.2.070 (after 6.2.069)
Problem:    Still unused variable "new_st". (Bill McCarthy)
Solution:   Move the declaration to the right block this time.
Files:	    src/tag.c

Patch 6.2.071
Problem:    'statusline' can only contain 50 % items. (Antony Scriven)
Solution:   Allow 80 items and mention it in the docs.
Files:	    runtime/doc/option.txt, src/vim.h

Patch 6.2.072
Problem:    When using expression folding, foldexpr() mostly returns -1 for
	    the previous line, which makes it difficult to write a fold
	    expression.
Solution:   Make the level of the previous line available while still looking
	    for the end of a fold.
Files:	    src/fold.c

Patch 6.2.073
Problem:    When adding detection of a specific filetype for a plugin you need
	    to edit "filetype.vim".
Solution:   Source files from the "ftdetect" directory, so that a filetype
	    detection plugin only needs to be dropped in a directory.
Files:	    runtime/doc/filetype.txt, runtime/doc/usr_05.txt,
	    runtime/doc/usr_41.txt, runtime/filetype.vim

Patch 6.2.074
Problem:    Warnings when compiling the Python interface. (Ajit Thakkar)
Solution:   Use ANSI function declarations.
Files:	    src/if_python.c

Patch 6.2.075
Problem:    When the temp file for writing viminfo can't be used "NULL"
	    appears in the error message. (Ben Lavender)
Solution:   Print the original file name when there is no temp file name.
Files:	    src/ex_cmds.c

Patch 6.2.076
Problem:    The tags listed for cscope are in the wrong order. (Johannes
	    Stezenbach)
Solution:   Remove the reordering of tags for the current file. (Sergey
	    Khorev)
Files:	    src/if_cscope.c

Patch 6.2.077
Problem:    When a user function specifies custom completion, the function
	    gets a zero argument instead of an empty string when there is no
	    word before the cursor. (Preben Guldberg)
Solution:   Don't convert an empty string to a zero.
Files:	    src/eval.c

Patch 6.2.078
Problem:    "make test" doesn't work if Vim wasn't compiled yet. (Ed Avis)
Solution:   Build Vim before running the tests.
Files:	    src/Makefile

Patch 6.2.079
Problem:    ":w ++enc=utf-8 !cmd" doesn't work.
Solution:   Check for the "++" argument before the "!".
Files:	    src/ex_docmd.c

Patch 6.2.080
Problem:    When 't_ti' is not empty but doesn't swap screens, using "ZZ" in
	    an unmodified file doesn't clear the last line.
Solution:   Call msg_clr_eos() when needed. (Michael Schroeder)
Files:	    src/os_unix.c

Patch 6.2.081
Problem:    Problem when using a long multibyte string for the statusline.
Solution:   Use the right pointer to get the cell size. (Taro Muraoka)
Files:	    src/buffer.c

Patch 6.2.082
Problem:    Can't compile with Perl 5.8.1.
Solution:   Rename "e_number" to "e_number_exp". (Sascha Blank)
Files:	    src/digraph.c, src/globals.h

Patch 6.2.083
Problem:    When a compiler uses ^^^^ to mark a word the information is not
	    visible in the quickfix window. (Srikanth Sankaran)
Solution:   Don't remove the indent for a line that is not recognized as an
	    error message.
Files:	    src/quickfix.c

Patch 6.2.084
Problem:    "g_" in Visual mode always goes to the character after the line.
	    (Jean-Rene David)
Solution:   Ignore the NUL at the end of the line.
Files:	    src/normal.c

Patch 6.2.085
Problem:    ":verbose set ts" doesn't say an option was set with a "-c" or
	    "--cmd" argument.
Solution:   Remember the option was set from a Vim argument.
Files:	    src/main.c, src/ex_cmds2.c, src/vim.h

Patch 6.2.086
Problem:    "{" and "}" stop inside a closed fold.
Solution:   Only stop once inside a closed fold. (Stephen Riehm)
Files:	    src/search.c

Patch 6.2.087
Problem:    CTRL-^ doesn't use the 'confirm' option.  Same problem with
	    ":bnext". (Yakov Lerner)
Solution:   Put up a dialog for a changed file when 'confirm' is set in more
	    situations.
Files:	    src/buffer.c, src/ex_cmds.c

Patch 6.2.088
Problem:    When 'sidescrolloff' is set 'showmatch' doesn't work correctly if
	    the match is less than 'sidescrolloff' off from the side of the
	    window.  (Roland Stahn)
Solution:   Set 'sidescrolloff' to zero while displaying the match.
Files:	    src/search.c

Patch 6.2.089
Problem:    ":set isk+=" adds a comma. (Mark Waggoner)
Solution:   Don't add a comma when the added value is empty.
Files:	    src/option.c

Patch 6.2.090 (extra)
Problem:    Win32: MingW compiler complains about #pragmas. (Bill McCarthy)
Solution:   Put an #ifdef around the #pragmas.
Files:	    src/os_win32.c

Patch 6.2.091
Problem:    When an autocommand is triggered when a file is dropped on Vim and
	    it produces output, messages from a following command may be
	    scrolled unexpectedly. (David Rennalls)
Solution:   Save and restore msg_scroll in handle_drop().
Files:	    src/ex_docmd.c

Patch 6.2.092
Problem:    Invalid items appear in the help file tags. (Antonio Colombo)
Solution:   Only accept tags with white space before the first "*".
Files:	    runtime/doc/doctags.c, src/ex_cmds.c

Patch 6.2.093
Problem:    ":nnoremenu" also defines menu for Visual mode. (Klaus Bosau)
Solution:   Check the second command character for an "o", not the third.
Files:	    src/menu.c

Patch 6.2.094
Problem:    Can't compile with GTK and tiny features.
Solution:   Include handle_drop() and vim_chdirfile() when FEAT_DND is defined.
	    Do not try to split the window.
Files:	    src/ex_docmd.c, src/misc2.c

Patch 6.2.095
Problem:    The message "Cannot go to buffer x" is confusing for ":buf 6".
	    (Frans Englich)
Solution:   Make it "Buffer x does not exist".
Files:	    src/buffer.c

Patch 6.2.096
Problem:    Win32: ":let @* = ''" put a newline on the clipboard. (Klaus
	    Bosau)
Solution:   Put zero bytes on the clipboard for an empty string.
Files:	    src/ops.c

Patch 6.2.097
Problem:    Setting or resetting 'insertmode' in a BufEnter autocommand
	    doesn't always have immediate effect. (Nagger)
Solution:   When 'insertmode' is set, set need_start_insertmode, when it's
	    reset set stop_insert_mode.
Files:	    src/option.c

Patch 6.2.098 (after 6.2.097)
Problem:    Can't build Vim with tiny features. (Christian J. Robinson)
Solution:   Declare stop_insert_mode always.
Files:	    src/edit.c, src/globals.h

Patch 6.2.099 (extra)
Problem:    Test 49 fails. (Mikolaj Machowski)
Solution:   The Polish translation must not change "E116" to "R116".
Files:	    src/po/pl.po

Patch 6.2.100
Problem:    "make proto" fails when compiled with the Perl interface.
Solution:   Remove "-fno.*" from PERL_CFLAGS, cproto sees it as its option.
Files:	    src/auto/configure, src/configure.in

Patch 6.2.101
Problem:    When using syntax folding, opening a file slows down a lot when
	    it's size increases by only 20%. (Gary Johnson)
Solution:   The array with cached syntax states is leaking entries.  After
	    cleaning up the list obtain the current entry again.
Files:	    src/syntax.c

Patch 6.2.102
Problem:    The macros equal() and CR conflict with a Carbon header file.
Solution:   Rename equal() to equalpos().  Rename CR to CAR.
	    Do this in the non-extra files only.
Files:	    src/ascii.h, src/buffer.c, src/charset.c, src/edit.c, src/eval.c,
	    src/ex_cmds.c, src/ex_cmds2.c, src/ex_getln.c, src/fileio.c,
	    src/getchar.c, src/gui.c, src/gui_athena.c, src/gui_gtk_x11.c,
	    src/gui_motif.c, src/macros.h, src/mark.c, src/message.c,
	    src/misc1.c, src/misc2.c, src/normal.c, src/ops.c, src/os_unix.c,
	    src/regexp.c, src/search.c, src/ui.c, src/workshop.c

Patch 6.2.103 (extra)
Problem:    The macros equal() and CR conflict with a Carbon header file.
Solution:   Rename equal() to equalpos().  Rename CR to CAR.
	    Do this in the extra files only.
Files:	    src/gui_photon.c, src/gui_w48.c

Patch 6.2.104
Problem:    Unmatched braces in the table with options.
Solution:   Move the "}," outside of the #ifdef. (Yakov Lerner)
Files:	    src/option.c

Patch 6.2.105
Problem:    When the cursor is past the end of the line when calling
	    get_c_indent() a crash might occur.
Solution:   Don't look past the end of the line. (NJ Verenini)
Files:	    src/misc1.c

Patch 6.2.106
Problem:    Tag searching gets stuck on a very long line in the tags file.
Solution:   When skipping back to search the first matching tag remember the
	    offset where searching started looking for a line break.
Files:	    src/tag.c

Patch 6.2.107 (extra)
Problem:    The NetBeans interface cannot be used on Win32.
Solution:   Add support for the NetBeans for Win32.  Add support for reading
	    XPM files on Win32.  Also fixes that a sign icon with a space in
	    the file name did not work through the NetBeans interface.
	    (Sergey Khorev)
	    Also: avoid repeating error messages when the connection is lost.
Files:	    Makefile, runtime/doc/netbeans.txt, src/Make_bc5.mak,
	    src/Make_cyg.mak, src/Make_ming.mak, src/Make_mvc.mak,
	    src/bigvim.bat, src/feature.h, src/gui_beval.c, src/gui_beval.h,
	    src/gui_w32.c, src/gui_w48.c, src/menu.c, src/nbdebug.c,
	    src/nbdebug.h, src/netbeans.c, src/os_mswin.c, src/os_win32.h,
	    src/proto/gui_beval.pro, src/proto/gui_w32.pro,
	    src/proto/netbeans.pro, src/proto.h, src/version.c, src/vim.h,
	    src/xpm_w32.c, src/xpm_w32.h

Patch 6.2.108
Problem:    Crash when giving a message about ignoring case in a tag. (Manfred
	    Kuehn)
Solution:   Use a longer buffer for the message.
Files:	    src/tag.c

Patch 6.2.109
Problem:    Compiler warnings with various Amiga compilers.
Solution:   Add typecast, prototypes, et al. that are also useful for other
	    systems.  (Flavio Stanchina)
Files:	    src/eval.c, src/ops.c

Patch 6.2.110
Problem:    When $LANG includes the encoding, a menu without an encoding name
	    is not found.
Solution:   Also look for a menu file without any encoding.
Files:	    runtime/menu.vim

Patch 6.2.111
Problem:    Encoding "cp1251" is not recognized.
Solution:   Add "cp1251" to the table of encodings. (Alexey Froloff)
Files:	    src/mbyte.c

Patch 6.2.112
Problem:    After applying patches test32 fails. (Antonio Colombo)
Solution:   Have "make clean" in the testdir delete *.rej and *.orig files.
	    Use this when doing "make clean" in the src directory.
Files:	    src/Makefile, src/testdir/Makefile

Patch 6.2.113
Problem:    Using ":startinsert" after "$" works like "a" instead of "i".
	    (Ajit Thakkar)
Solution:   Reset "w_curswant" for ":startinsert" and reset o_eol in edit().
Files:	    src/edit.c, src/ex_docmd.c

Patch 6.2.114
Problem:    When stdout is piped through "tee", the size of the screen may not
	    be correct.
Solution:   Use stdin instead of stdout for ioctl() when stdin is a tty and
	    stdout isn't.
Files:	    src/os_unix.c

Patch 6.2.115 (extra)
Problem:    Compiler warnings with various Amiga compilers.
Solution:   Add typecast, prototypes, et al.  Those changes that are
	    Amiga-specific. (Flavio Stanchina)
Files:	    src/fileio.c, src/memfile.c, src/os_amiga.c, src/os_amiga.h,
	    src/vim.h

Patch 6.2.116 (extra)
Problem:    German keyboard with Numlock set different from system startup
	    causes problems.
Solution:   Ignore keys with code 0xff. (Helmut Stiegler)
Files:	    src/gui_w48.c

Patch 6.2.117
Problem:    Breakpoints in loops of sourced files and functions are not
	    detected. (Hari Krishna Dara)
Solution:   Check for breakpoints when using lines that were previously read.
	    (Servatius Brandt)
Files:	    src/eval.c, src/ex_cmds2.c, src/ex_docmd.c, src/proto/eval.pro,
	    src/proto/ex_cmds2.pro

Patch 6.2.118 (extra)
Problem:    Mac: Compiling is done in a non-standard way.
Solution:   Use the Unix method for Mac OS X, with autoconf.  Add "CARBONGUI"
	    to Makefile and configure. (Eric Kow)
	    Move a few prototypes from os_mac.pro to gui_mac.pro.
Files:	    src/Makefile, src/auto/configure, src/configure.in,
	    src/config.mk.in, src/gui_mac.c, src/os_mac.h, src/os_macosx.c,
	    src/proto/gui_mac.pro, src/proto/os_mac.pro,
	    src/infplist.xml, src/vim.h

Patch 6.2.119 (after 6.2.107)
Problem:    When packing the MS-Windows archives a few files are missing.
	    (Guopeng Wen)
Solution:   Add gui_beval.* to the list of generic source files.
Files:	    Makefile

Patch 6.2.120
Problem:    Win32 GUI: The console dialogs are not supported on MS-Windows,
	    disabling the 'c' flag of 'guioptions'. (Servatius Brandt)
Solution:   Define FEAT_CON_DIALOG also for GUI-only builds.
Files:	    src/feature.h

Patch 6.2.121 (after 6.2.118)
Problem:    Not all make programs support "+=". (Charles Campbell)
Solution:   Use a normal assignment.
Files:	    src/Makefile

Patch 6.2.122 (after 6.2.119)
Problem:    Not all shells can expand [^~].  File missing.  (Guopeng Wen)
Solution:   Use a simpler pattern.  Add the Aap recipe for the maze program
	    and a clean version of the source code.
Files:	    Makefile, runtime/macros/maze/Makefile,
	    runtime/macros/maze/README.txt, runtime/macros/maze/main.aap,
	    runtime/macros/maze/mazeclean.c

Patch 6.2.123 (after 6.2.118)
Problem:    Running configure fails. (Tony Leneis)
Solution:   Change "==" to "=" for a test.
Files:	    src/auto/configure, src/configure.in

Patch 6.2.124 (after 6.2.121)(extra)
Problem:    Mac: Recursive use of M4FLAGS causes problems.  When running Vim
	    directly it can't find the runtime files.  (Emily Jackson)
	    Using GNU constructs causes warnings with other make programs.
	    (Ronald Schild)
Solution:   Use another name for the M4FLAGS variable.
	    Don't remove "Vim.app" from the path.
	    Update the explanation for compiling on the Mac. (Eric Kow)
	    Don't use $(shell ) and $(addprefix ).
Files:	    src/INSTALLmac.txt, src/Makefile, src/misc1.c

Patch 6.2.125 (after 6.2.107)
Problem:    The "winsock2.h" file isn't always available.
Solution:   Don't include this header file.
Files:	    src/netbeans.c

Patch 6.2.126
Problem:    Typing CTRL-C at a confirm() prompt doesn't throw an exception.
Solution:   Reset "mapped_ctrl_c" in get_keystroke(), so that "got_int" is set
	    in _OnChar().
Files:	    src/misc1.c

Patch 6.2.127 (extra)
Problem:    Win32 console: Typing CTRL-C doesn't throw an exception.
Solution:   Set got_int immediately when CTRL-C is typed, don't wait for
	    mch_breakcheck() being called.
Files:	    src/os_win32.c

Patch 6.2.128 (after 6.2.118)
Problem:    src/auto/configure is not consistent with src/configure.in.
Solution:   Use the newly generated configure script.
Files:	    src/auto/configure

Patch 6.2.129
Problem:    When 'number' is set 'wrapmargin' does not work Vi-compatible.
	    (Yasuhiro Matsumoto)
Solution:   Reduce the textwidth when 'number' is set.  Also for 'foldcolumn'
	    and similar things.
Files:	    src/edit.c

Patch 6.2.130 (extra)
Problem:    Win32 console: When 'restorescreen' is not set exiting Vim causes
	    the screen to be cleared. (Michael A. Mangino)
Solution:   Don't clear the screen when exiting and 'restorescreen' isn't set.
Files:	    src/os_win32.c

Patch 6.2.131 (extra)
Problem:    Win32: Font handles are leaked.
Solution:   Free italic, bold and bold-italic handles before overwriting them.
	    (Michael Wookey)
Files:	    src/gui_w48.c

Patch 6.2.132 (extra)
Problem:    Win32: console version doesn't work on latest Windows Server 2003.
Solution:   Copy 12000 instead of 15000 cells at a time to avoid running out
	    of memory.
Files:	    src/os_win32.c

Patch 6.2.133
Problem:    When starting the GUI a bogus error message about 'imactivatekey'
	    may be given.
Solution:   Only check the value of 'imactivatekey' when the GUI is running.
Files:	    src/gui.c, src/option.c

Patch 6.2.134 (extra)
Problem:    Win32: When scrolling parts of the window are redrawn when this
	    isn't necessary.
Solution:   Only invalidate parts of the window when they are obscured by
	    other windows. (Michael Wookey)
Files:	    src/gui_w48.c

Patch 6.2.135
Problem:    An item <> in the ":command" argument is interpreted as <args>.
Solution:   Avoid that <> is recognized as <args>.
Files:	    src/ex_docmd.c

Patch 6.2.136
Problem:    ":e ++enc=latin1 newfile" doesn't set 'fenc' when the file doesn't
	    exist.  (Miroslaw Dobrzanski-Neumann)
Solution:   Set 'fileencoding' to the specified encoding when editing a file
	    that does not exist.
Files:	    src/fileio.c

Patch 6.2.137
Problem:    "d:cmd<CR>" cannot be repeated with ".".  Breaks repeating "d%"
	    when using the matchit plugin.
Solution:   Store the command to be repeated.  This is restricted to
	    single-line commands.
Files:	    src/ex_docmd.c, src/globals.h, src/normal.c, src/vim.h

Patch 6.2.138 (extra)
Problem:    Compilation problem on VMS with dynamic buffer on the stack.
Solution:   Read one byte less than the size of the buffer, so that we can
	    check for the string length without an extra buffer.
Files:	    src/os_vms.c

Patch 6.2.139
Problem:    Code is repeated in the two Perl files.
Solution:   Move common code from if_perl.xs and if_perlsfio.c to vim.h.
	    Also fix a problem with generating prototypes.
Files:	    src/if_perl.xs, src/if_perlsfio.c, src/vim.h

Patch 6.2.140 (after 6.2.121)
Problem:    Mac: Compiling with Python and Perl doesn't work.
Solution:   Adjust the configure check for Python to use "-framework Python"
	    for Python 2.3 on Mac OS/X.
	    Move "-ldl" after "DynaLoader.a" in the link command.
	    Change "perllibs" to "PERL_LIBS".
Files:	    src/auto/configure, src/configure.in, src/config.mk.in

Patch 6.2.141 (extra)
Problem:    Mac: The b_FSSpec field is sometimes unused.
Solution:   Change the #ifdef to FEAT_CW_EDITOR and defined it in feature.h
Files:	    src/fileio.c, src/gui_mac.c, src/structs.h, src/feature.h

Patch 6.2.142 (after 6.2.124)
Problem:    Mac: building without GUI through configure doesn't work.
	    When the system is slow, unpacking the resource file takes too
	    long.
Solution:   Don't always define FEAT_GUI_MAC when MACOS is defined, define it
	    in the Makefile.
	    Add a configure option to skip Darwin detection.
	    Use a Python script to unpack the resources to avoid a race
	    condition. (Taro Muraoka)
Files:	    Makefile, src/Makefile, src/auto/configure, src/configure.in,
	    src/dehqx.py, src/vim.h

Patch 6.2.143
Problem:    Using "K" on Visually selected text doesn't work if it ends in
	    a multibyte character.
Solution:   Include all the bytes of the last character. (Taro Muraoka)
Files:	    src/normal.c

Patch 6.2.144
Problem:    When "g:html_use_css" is set the HTML header generated by the
	    2html script is wrong.
Solution:   Add the header after adding HREF for links.
	    Also use ":normal!" instead of ":normal" to avoid mappings
	    getting in the way.
Files:	    runtime/syntax/2html.vim

Patch 6.2.145 (after 6.2.139)
Problem:    Undefining "bool" doesn't work for older systems. (Wojtek Pilorz)
Solution:   Only undefine "bool" on Mac OS.
Files:	    src/vim.h

Patch 6.2.146
Problem:    On some systems the prototype for iconv() is wrong, causing a
	    warning message.
Solution:   Use a cast (void *) to avoid the warning. (Charles Campbell)
Files:	    src/fileio.c, src/mbyte.c

Patch 6.2.147
Problem:    ":s/pat/\=col('.')" always replaces with "1".
Solution:   Set the cursor to the start of the match before substituting.
	    (Helmut Stiegler)
Files:	    src/ex_cmds.c

Patch 6.2.148
Problem:    Can't break an Insert into several undoable parts.
Solution:   Add the CTRL-G u command.
Files:	    runtime/doc/insert.txt, src/edit.c

Patch 6.2.149
Problem:    When the cursor is on a line past 21,474,748 the indicated
	    percentage of the position is invalid.  With that many lines
	    "100%" causes a negative cursor line number, resulting in a crash.
	    (Daniel Goujot)
Solution:   Divide by 100 instead of multiplying.  Avoid overflow when
	    computing the line number for "100%".
Files:	    src/buffer.c, src/ex_cmds2.c, src/normal.c

Patch 6.2.150
Problem:    When doing "vim - < file" lines are broken at NUL chars.
	    (Daniel Goujot)
Solution:   Change NL characters back to NUL when reading from the temp
	    buffer.
Files:	    src/fileio.c

Patch 6.2.151
Problem:    When doing "vim --remote +startinsert file" some commands are
	    inserted as text. (Klaus Bosau)
Solution:   Put all the init commands in one Ex line, not using a <CR>, so
	    that Insert mode isn't started too early.
Files:	    src/main.c

Patch 6.2.152
Problem:    The cursor() function doesn't reset the column offset for
	    'virtualedit'.
Solution:   Reset the offset to zero. (Helmut Stiegler)
Files:	    src/eval.c

Patch 6.2.153
Problem:    Win32: ":lang german" doesn't use German messages.
Solution:   Add a table to translate the Win32 language names to two-letter
	    language codes.
Files:	    src/ex_cmds2.c

Patch 6.2.154
Problem:    Python bails out when giving a warning message. (Eugene
	    Minkovskii)
Solution:   Set sys.argv[] to an empty string.
Files:	    src/if_python.c

Patch 6.2.155
Problem:    Win32: Using ":tjump www" in a help file gives two results.
	    (Dave Roberts)
Solution:   Ignore differences between slashes and backslashes when checking
	    for identical tag matches.
Files:	    src/tag.c

Patch 6.2.156 (after 6.2.125)
Problem:    Win32: Netbeans fails to build, EINTR is not defined.
Solution:   Redefine EINTR to WSAEINTR. (Mike Williams)
Files:	    src/netbeans.c

Patch 6.2.157
Problem:    Using "%p" in 'errorformat' gives a column number that is too
	    high.
Solution:   Set the flag to use the number as a virtual column.  (Lefteris
	    Koutsoloukas)
Files:	    src/quickfix.c

Patch 6.2.158
Problem:    The sed command on Solaris and HPUX doesn't work for a line that
	    doesn't end in a newline.
Solution:   Add a newline when feeding text to sed. (Mark Waggoner)
Files:	    src/configure.in, src/auto/configure

Patch 6.2.159
Problem:    When using expression folding and 'foldopen' is "undo" an undo
	    command doesn't always open the fold.
Solution:   Save and restore the KeyTyped variable when evaluating 'foldexpr'.
	    (Taro Muraoka)
Files:	    src/fold.c

Patch 6.2.160
Problem:    When 'virtualedit' is "all" and 'selection' is "exclusive",
	    selecting a double-width character below a single-width character
	    may cause a crash.
Solution:   Avoid overflow on unsigned integer decrement. (Taro Muraoka)
Files:	    src/normal.c

Patch 6.2.161 (extra)
Problem:    VMS: Missing header file.  Reading input busy loops.
Solution:   Include termdef.h.  Avoid the use of a wait function in
	    vms_read().  (Frank Ries)
Files:	    src/os_unix.h, src/os_vms.c

Patch 6.2.162
Problem:    ":redraw" doesn't always display the text that includes the cursor
	    position, e.g. after ":call cursor(1, 0)". (Eugene Minkovskii)
Solution:   Call update_topline() before redrawing.
Files:	    src/ex_docmd.c

Patch 6.2.163
Problem:    "make install" may also copy AAPDIR directories.
Solution:   Delete AAPDIR directories, just like CVS directories.
Files:	    src/Makefile

Patch 6.2.164 (after 6.2.144)
Problem:    When "g:html_use_css" is set the HTML header generated by the
	    2html script is still wrong.
Solution:   Search for a string instead of jumping to a fixed line number.
	    Go to the start of the line before inserting the header.
	    (Jess Thrysoee)
Files:	    runtime/syntax/2html.vim

Patch 6.2.165
Problem:    The configure checks hang when using autoconf 2.57.
Solution:   Invoke AC_PROGRAM_EGREP to set $EGREP. (Aron Griffis)
Files:	    src/auto/configure, src/configure.in

Patch 6.2.166
Problem:    When $GZIP contains "-N" editing compressed files doesn't work
	    properly.
Solution:   Add "-n" to "gzip -d" to avoid restoring the file name. (Oyvind
	    Holm)
Files:	    runtime/plugin/gzip.vim

Patch 6.2.167
Problem:    The Python interface leaks memory when assigning lines to a
	    buffer. (Sergey Khorev)
Solution:   Do not copy the line when calling ml_replace().
Files:	    src/if_python.c

Patch 6.2.168
Problem:    Python interface: There is no way to get the indices from a range
	    object.
Solution:   Add the "start" and "end" attributes. (Maurice S. Barnum)
Files:	    src/if_python.c, runtime/doc/if_pyth.txt

Patch 6.2.169
Problem:    The prototype for _Xmblen() appears in a recent XFree86 header
	    file, causing a warning for our prototype. (Hisashi T Fujinaka)
Solution:   Move the prototype to an osdef file, so that it's filtered out.
Files:	    src/mbyte.c, src/osdef2.h.in

Patch 6.2.170
Problem:    When using Sun WorkShop the current directory isn't changed to
	    where the file is.
Solution:   Set the 'autochdir' option when using WorkShop.  And avoid using
	    the basename when 'autochdir' is not set.
Files:	    src/gui_x11.c, src/ex_cmds.c

Patch 6.2.171 (after 6.2.163)
Problem:    The "-or" argument of "find" doesn't work for SysV systems.
Solution:   Use "-o" instead. (Gordon Prieur)
Files:	    src/Makefile

Patch 6.2.172 (after 6.2.169)
Problem:    The prototype for _Xmblen() still causes trouble.
Solution:   Include the X11 header file that defines the prototype.
Files:	    src/osdef2.h.in, src/osdef.sh

Patch 6.2.173 (extra)
Problem:    Win32: Ruby interface doesn't work with Ruby 1.8.0 for other
	    compilers than MSVC.
Solution:   Fix the BC5, Cygwin and Mingw makefiles. (Dan Sharp)
Files:	    src/Make_bc5.mak, src/Make_cyg.mak, src/Make_ming.mak

Patch 6.2.174
Problem:    After the ":intro" message only a mouse click in the last line
	    gets past the hit-return prompt.
Solution:   Accept a click at or below the hit-return prompt.
Files:	    src/gui.c, src/message.c

Patch 6.2.175
Problem:    Changing 'backupext' in a *WritePre autocommand doesn't work.
	    (William Natter)
Solution:   Move the use of p_bex to after executing the *WritePre
	    autocommands.  Also avoids reading allocated memory after freeing.
Files:	    src/fileio.c

Patch 6.2.176
Problem:    Accented characters in translated help files are not handled
	    correctly. (Fabien Vayssiere)
Solution:   Include "192-255" in 'iskeyword' for the help window.
Files:	    src/ex_cmds.c

Patch 6.2.177 (extra)
Problem:    VisVim: Opening a file with a space in the name doesn't work. (Rob
	    Retter)  Arbitrary commands are being executed. (Neil Bird)
Solution:   Put a backslash in front of every space in the file name.
	    (Gerard Blais)  Terminate the CTRL-\ CTRL-N command with a NUL.
Files:	    src/VisVim/Commands.cpp, src/VisVim/VisVim.rc

Patch 6.2.178
Problem:    People who don't know how to exit Vim try pressing CTRL-C.
Solution:   Give a message how to exit Vim when CTRL-C is pressed and it
	    doesn't cancel anything.
Files:	    src/normal.c

Patch 6.2.179 (extra)
Problem:    The en_gb messages file isn't found on case sensitive systems.
Solution:   Rename en_gb to en_GB. (Mike Williams)
Files:	    src/po/en_gb.po, src/po/en_GB.po, src/po/Make_ming.mak,
	    src/po/Make_mvc.mak, src/po/Makefile, src/po/README_mvc.txt

Patch 6.2.180
Problem:    Compiling with GTK2 on Win32 doesn't work.
Solution:   Include gdkwin32.h instead of gdkx.h. (Srinath Avadhanula)
Files:	    src/gui_gtk.c, src/gui_gtk_f.c, src/gui_gtk_x11.c, src/mbyte.c

Patch 6.2.181 (after 6.2.171)
Problem:    The "-o" argument of "find" has lower priority than the implied
	    "and" with "-print".
Solution:   Add parenthesis around the "-o" expression. (Gordon Prieur)
Files:	    src/Makefile

Patch 6.2.182 (after 6.2.094)
Problem:    Compilation with tiny features fails because of missing
	    get_past_head() function.
Solution:   Adjust the #ifdef for get_past_head().
Files:	    src/misc1.c

Patch 6.2.183 (after 6.2.178)
Problem:    Warning for char/unsigned char mixup.
Solution:   Use MSG() instead of msg(). (Tony Leneis)
Files:	    src/normal.c

Patch 6.2.184
Problem:    With 'formatoptions' set to "1aw" inserting text may cause the
	    paragraph to be ended. (Alan Schmitt)
Solution:   Temporarily add an extra space to make the paragraph continue
	    after moving the word after the cursor to the next line.
	    Also format when pressing Esc.
Files:	    src/edit.c, src/normal.c, src/proto/edit.pro

Patch 6.2.185
Problem:    Restoring a session with zero-height windows does not work
	    properly. (Charles Campbell)
Solution:   Accept a zero argument to ":resize" as intended.  Add a window
	    number argument to ":resize" to be able to set the size of other
	    windows, because the current window cannot be zero-height.
	    Fix the explorer plugin to avoid changing the window sizes.  Add
	    the winrestcmd() function for this.
Files:	    runtime/doc/eval.txt, runtime/plugin/explorer.vim, src/eval.c,
	    src/ex_cmds.h, src/ex_docmd.c, src/proto/window.pro, src/window.c

Patch 6.2.186 (after 6.2.185)
Problem:    Documentation file eval.txt contains examples without indent.
Solution:   Insert the indent.  Also fix other mistakes.
Files:	    runtime/doc/eval.txt

Patch 6.2.187
Problem:    Using Insure++ reveals a number of bugs.  (Dominique Pelle)
Solution:   Initialize variables where needed.  Free allocated memory to avoid
	    leaks.  Fix comparing tags to avoid reading past allocated memory.
Files:	    src/buffer.c, src/diff.c, src/fileio.c, src/mark.c, src/misc1.c,
	    src/misc2.c, src/ops.c, src/option.c, src/tag.c, src/ui.c

Patch 6.2.188 (extra)
Problem:    MS-Windows: Multi-byte characters in a filename cause trouble for
	    the window title.
Solution:   Return when the wide function for setting the title did its work.
Files:	    src/gui_w48.c

Patch 6.2.189
Problem:    When setting 'viminfo' after editing a new buffer its marks are
	    not stored. (Keith Roberts)
Solution:   Set the "b_marks_read" flag when skipping to read marks from the
	    viminfo file.
Files:	    src/fileio.c

Patch 6.2.190
Problem:    When editing a compressed files, marks are lost.
Solution:   Add the ":lockmarks" modifier and use it in the gzip plugin.
	    Make exists() also check for command modifiers, so that the
	    existence of ":lockmarks" can be checked for.
	    Also add ":keepmarks" to avoid that marks are deleted when
	    filtering text.
	    When deleting lines put marks 'A - 'Z and '0 - '9 at the first
	    deleted line instead of clearing the mark.  They were kept in the
	    viminfo file anyway.
	    Avoid that the gzip plugin puts deleted text in registers.
Files:	    runtime/doc/motion.txt, runtime/plugin/gzip.vim, src/ex_cmds.c,
	    src/ex_docmd.c, src/mark.c, src/structs.h

Patch 6.2.191
Problem:    The intro message is outdated.  Information about sponsoring and
	    registering is missing.
Solution:   Show info about sponsoring and registering Vim in the intro
	    message now and then.  Add help file about sponsoring.
Files:	    runtime/doc/help.txt, runtime/doc/sponsor.txt, runtime/doc/tags,
	    runtime/menu.vim, src/version.c

Patch 6.2.192
Problem:    Using CTRL-T and CTRL-D with "gR" messes up the text.  (Jonathan
	    Hankins)
Solution:   Avoid calling change_indent() recursively.
Files:	    src/edit.c

Patch 6.2.193
Problem:    When recalling a search pattern from the history from a ":s,a/c,"
	    command the '/' ends the search string. (JC van Winkel)
Solution:   Store the separator character with the history entries.  Escape
	    characters when needed, replace the old separator with the new one.
	    Also fixes that recalling a "/" search for a "?" command messes up
	    trailing flags.
Files:	    src/eval.c, src/ex_getln.c, src/normal.c, src/proto/ex_getln.pro,
	    src/search.c, src/tag.c

Patch 6.2.194 (after 6.2.068)
Problem:    For NetBeans, instead of writing the file and sending an event
	    about it, tell NetBeans to write the file.
Solution:   Add the "save" command, "netbeansBuffer" command and
	    "buttonRelease" event to the netbeans protocol.  Updated the
	    interface to version 2.2.  (Gordon Prieur)
	    Also: open a fold when the cursor has been positioned.
	    Also: fix memory leak, free result of nb_quote().
Files:	    runtime/doc/netbeans.txt, src/fileio.c, src/netbeans.c,
	    src/normal.c, src/proto/netbeans.pro, src/structs.h

Patch 6.2.195 (after 6.2.190)
Problem:    Compiling fails for missing CPO_REMMARK symbol.
Solution:   Add the patch I forgot to include...
Files:	    src/option.h

Patch 6.2.196 (after 6.2.191)
Problem:    Rebuilding the documentation doesn't use the sponsor.txt file.
Solution:   Add sponsor.txt to the Makefile. (Christian J. Robinson)
Files:	    runtime/doc/Makefile

Patch 6.2.197
Problem:    It is not possible to force a redraw of status lines. (Gary
	    Johnson)
Solution:   Add the ":redrawstatus" command.
Files:	    runtime/doc/various.txt, src/ex_cmds.h, src/ex_docmd.c,
	    src/screen.c

Patch 6.2.198
Problem:    A few messages are not translated. (Ernest Adrogue)
Solution:   Mark the messages to be translated.
Files:	    src/ex_cmds.c

Patch 6.2.199 (after 6.2.194)
Problem:    Vim doesn't work perfectly well with NetBeans.
Solution:   When NetBeans saves the file, reset the timestamp to avoid "file
	    changed" warnings.  Close a buffer in a proper way.  Don't try
	    giving a debug message with an invalid pointer.  Send a
	    newDotAndMark message when needed.  Report a change by the "r"
	    command to NetBeans.  (Gordon Prieur)
Files:	    src/netbeans.c, src/normal.c

Patch 6.2.200
Problem:    When recovering a file, 'fileformat' is always the default, thus
	    writing the file may result in differences. (Penelope Fudd)
Solution:   Before recovering the file try reading the original file to obtain
	    the values of 'fileformat', 'fileencoding', etc.
Files:	    src/memline.c

Patch 6.2.201
Problem:    When 'autowriteall' is set ":qall" still refuses to exit if there
	    is a modified buffer. (Antoine Mechelynck)
Solution:   Attempt writing modified buffers as intended.
Files:	    src/ex_cmds2.c

Patch 6.2.202
Problem:    Filetype names of CHILL and ch script are confusing.
Solution:   Rename "ch" to "chill" and "chscript" to "ch".
Files:	    runtime/filetype.vim, runtime/makemenu.vim, runtime/synmenu.vim
	    runtime/syntax/ch.vim, runtime/syntax/chill.vim

Patch 6.2.203
Problem:    With characterwise text that has more than one line, "3P" works
	    wrong.  "3p" has the same problem.  There also is a display
	    problem. (Daniel Goujot)
Solution:   Perform characterwise puts with a count in the right position.
Files:	    src/ops.c

Patch 6.2.204 (after 6.2.086)
Problem:    "]]" in a file with closed folds moves to the end of the file.
	    (Nam SungHyun)
Solution:   Find one position in each closed fold, then move to after the fold.
Files:	    src/search.c

Patch 6.2.205 (extra)
Problem:    MS-Windows: When the taskbar is at the left or top of the screen,
	    the Vim window placement is wrong.
Solution:   Compute the size and position of the window correctly. (Taro
	    Muraoka)
Files:	    src/gui_w32.c, src/gui_w48.c

Patch 6.2.206
Problem:    Multi-byte characters cannot be used as hotkeys in a console
	    dialog.  (Mattias Erkisson)
Solution:   Handle multibyte characters properly.  Also put () or [] around
	    default hotkeys.
Files:	    src/message.c, src/macros.h

Patch 6.2.207
Problem:    When 'encoding' is a multibyte encoding, expanding an
	    abbreviation that starts where insertion started results in
	    characters before the insertion to be deleted.  (Xiangjiang Ma)
Solution:   Stop searching leftwards for the start of the word at the position
	    where insertion started.
Files:	    src/getchar.c

Patch 6.2.208
Problem:    When using fold markers, three lines in a row have the start
	    marker and deleting the first one with "dd", a nested fold is not
	    deleted.  (Kamil Burzynski)
	    Using marker folding, a level 1 fold doesn't stop when it is
	    followed by "{{{2", starting a level 2 fold.
Solution:   Don't stop updating folds at the end of a change when the nesting
	    level of folds is larger than the fold level.
	    Correctly compute the number of folds that start at "{{{2".
	    Also avoid a crash for a NULL pointer.
Files:	    src/fold.c

Patch 6.2.209
Problem:    A bogus fold is created when using "P" while the cursor is in the
	    middle of a closed fold. (Kamil Burzynski)
Solution:   Correct the line number where marks are modified for closed folds.
Files:	    src/ops.c

Patch 6.2.210 (extra)
Problem:    Mac OSX: antialiased fonts are not supported.
Solution:   Add the 'antialias' option to switch on antialiasing on Mac OSX
	    10.2 and later. (Peter Cucka)
Files:	    runtime/doc/options.txt, src/gui_mac.c, src/option.h, src/option.c

Patch 6.2.211 (extra)
Problem:    Code for handling file dropped on Vim is duplicated.
Solution:   Move the common code to gui_handle_drop().
	    Add code to drop the files in the window under the cursor.
	    Support drag&drop on the Macintosh.  (Taro Muraoka)
	    When dropping a directory name edit that directory (using the
	    explorer plugin)
	    Fix that changing directory with Shift pressed didn't work for
	    relative path names.
Files:	    src/fileio.c, src/gui.c, src/gui_gtk_x11.c, src/gui_mac.c,
	    src/gui_w48.c, src/proto/fileio.pro, src/proto/gui.pro

Patch 6.2.212 (after 6.2.199)
Problem:    NetBeans: Replacing with a count is not handled correctly.
Solution:   Move reporting the change outside of the loop for the count.
	    (Gordon Prieur)
Files:	    src/normal.c

Patch 6.2.213 (after 6.2.208)
Problem:    Using marker folding, "{{{1" doesn't start a new fold when already
	    at fold level 1. (Servatius Brandt)
Solution:   Correctly compute the number of folds that start at "{{{1".
Files:	    src/fold.c

Patch 6.2.214 (after 6.2.211) (extra)
Problem:    Warning for an unused variable.
Solution:   Delete the declaration. (Bill McCarthy)
Files:	    src/gui_w48.c

Patch 6.2.215
Problem:    NetBeans: problems saving an unmodified file.
Solution:   Add isNetbeansModified() function.  Disable netbeans_unmodified().
	    (Gordon Prieur)
Files:	    src/fileio.c, src/netbeans.c, src/proto/netbeans.pro,
	    runtime/doc/netbeans.txt, runtime/doc/tags

Patch 6.2.216 (after 6.2.206)
Problem:    Multi-byte characters still cannot be used as hotkeys in a console
	    dialog.  (Mattias Erkisson)
Solution:   Make get_keystroke() handle multibyte characters.
Files:	    src/misc1.c

Patch 6.2.217
Problem:    GTK: setting the title doesn't always work correctly.
Solution:   Invoke gui_mch_settitle(). (Tomas Stehlik)
Files:	    src/os_unix.c

Patch 6.2.218
Problem:    Warning for function without prototype.
Solution:   Add argument types to the msgCB field of the BalloonEval struct.
Files:	    src/gui_beval.h

Patch 6.2.219
Problem:    Syntax highlighting hangs on an empty match of an item with a
	    nextgroup.  (Charles Campbell)
Solution:   Remember that the item has already matched and don't match it
	    again at the same position.
Files:	    src/syntax.c

Patch 6.2.220
Problem:    When a Vim server runs in a console a remote command isn't handled
	    before a key is typed.  (Joshua Neuheisel)
Solution:   Don't try reading more input when a client-server command has been
	    received.
Files:	    src/os_unix.c

Patch 6.2.221
Problem:    No file name completion for ":cscope add".
Solution:   Add the XFILE flag to ":cscope". (Gary Johnson)
Files:	    src/ex_cmds.h

Patch 6.2.222
Problem:    Using "--remote" several times on a row only opens some of the
	    files. (Dany St-Amant)
Solution:   Don't delete all typeahead when the server receives a command from
	    a client, only delete typed characters.
Files:	    src/main.c

Patch 6.2.223
Problem:    Cscope: Avoid a hang when cscope waits for a response while Vim
	    waits for a prompt.
	    Error messages from Cscope mess up the display.
Solution:   Detect the hit-enter message and respond by sending a return
	    character to cscope. (Gary Johnson)
	    Use EMSG() and strerror() when possible.  Replace perror() with
	    PERROR() everywhere, add emsg3().
Files:	    src/diff.c, src/if_cscope.c, src/integration.c, src/message.c,
	    src/proto/message.pro, src/misc2.c, src/netbeans.c, src/vim.h

Patch 6.2.224
Problem:    Mac: Can't compile with small features. (Axel Kielhorn)
Solution:   Also include vim_chdirfile() when compiling for the Mac.
Files:	    src/misc2.c

Patch 6.2.225
Problem:    NetBeans: Reported modified state isn't exactly right.
Solution:   Report a file being modified in the NetBeans way.
Files:	    src/netbeans.c

Patch 6.2.226 (after 6.2.107) (extra)
Problem:    The "ws2-32.lib" file isn't always available.
Solution:   Use "WSock32.lib" instead. (Taro Muraoka, Dan Sharp)
Files:	    src/Make_cyg.mak, src/Make_ming.mak, src/Make_mvc.mak

Patch 6.2.227 (extra)
Problem:    The "PC" symbol is defined but not used anywhere.
Solution:   Remove "-DPC" from the makefiles.
Files:	    src/Make_bc3.mak, src/Make_bc5.mak, src/Make_cyg.mak,
	    src/Make_ming.mak

Patch 6.2.228
Problem:    Receiving CTRL-\ CTRL-N after typing "f" or "m" doesn't switch Vim
	    back to Normal mode.  Same for CTRL-\ CTRL-G.
Solution:   Check if the character typed after a command is CTRL-\ and obtain
	    another character to check for CTRL-N or CTRL-G, waiting up to
	    'ttimeoutlen' msec.
Files:	    src/normal.c

Patch 6.2.229
Problem:    ":function" with a name that uses magic curlies does not work
	    inside a function.  (Servatius Brandt)
Solution:   Skip over the function name properly.
Files:	    src/eval.c

Patch 6.2.230 (extra)
Problem:    Win32: a complex pattern may cause a crash.
Solution:   Use __try and __except to catch the exception and handle it
	    gracefully, when possible.  Add myresetstkoflw() to reset the
	    stack overflow. (Benjamin Peterson)
Files:	    src/Make_bc5.mak, src/os_mswin.c src/os_win32.c, src/os_win32.h,
	    src/proto/os_win32.pro, src/regexp.c

Patch 6.2.231 (after 6.2.046)
Problem:    Various problems when an error exception is raised from within a
	    builtin function.  When it is invoked while evaluating arguments
	    to a function following arguments are still evaluated.  When
	    invoked with a line range it will be called for remaining lines.
Solution:   Update "force_abort" also after calling a builtin function, so
	    that aborting() always returns the correct value. (Servatius
	    Brandt)
Files:	    src/eval.c, src/ex_eval.c, src/proto/ex_eval.pro,
	    src/testdir/test49.ok, src/testdir/test49.vim

Patch 6.2.232
Problem:    ":python vim.command('python print 2*2')" crashes Vim.  (Eugene
	    Minkovskii)
Solution:   Disallow executing a Python command recursively and give an error
	    message.
Files:	    src/if_python.c

Patch 6.2.233
Problem:    On Mac OSX adding -pthread for Python only generates a warning.
	    The test for Perl threads rejects Perl while it's OK.
	    Tcl doesn't work at all.
	    The test for Ruby fails if ruby exists but there are no header
	    files.  The Ruby library isn't detected properly
Solution:   Avoid adding -pthread on Mac OSX.  Accept Perl threads when it's
	    not the 5.5 threads.
	    Use the Tcl framework for header files.  For Ruby rename cWindow
	    to cVimWindow to avoid a name clash. (Ken Scott)
	    Only enable Ruby when the header files can be found.  Use "-lruby"
	    instead of "libruby.a" when it can't be found.
Files:	    src/auto/configure, src/configure.in, src/if_ruby.c

Patch 6.2.234
Problem:    GTK 2 GUI: ":sp" and the ":q" leaves the cursor on the command
	    line.
Solution:   Flush output before removing scrollbars.  Also do this in other
	    places where gui_mch_*() functions are invoked.
Files:	    src/ex_cmds.c, src/option.c, src/window.c

Patch 6.2.235 (extra)
Problem:    Win32: Cursor isn't removed with a 25x80 window and doing:
	    "1830ia<Esc>400a-<Esc>0w0". (Yasuhiro Matsumoto)
Solution:   Remove the call to gui_undraw_cursor() from gui_mch_insert_lines().
Files:	    src/gui_w48.c

Patch 6.2.236
Problem:    Using gvim with Agide gives "connection lost" error messages.
Solution:   Only give the "connection lost" message when the buffer was once
	    owned by NetBeans.
Files:	    src/netbeans.c, src/structs.h

Patch 6.2.237
Problem:    GTK 2: Thai text is drawn wrong.  It changes when moving the
	    cursor over it.
Solution:   Disable the shaping engine, it moves combining characters to a
	    wrong position and combines characters, while drawing the cursor
	    doesn't combine characters.
Files:	    src/gui_gtk_x11.c

Patch 6.2.238 (after 6.2.231)
Problem:    ":function" does not work inside a while loop. (Servatius Brandt)
Solution:   Add get_while_line() and pass it to do_one_cmd() when in a while
	    loop, so that all lines are stored and can be used again when
	    repeating the loop.
	    Adjust test 49 so that it checks for the fixed problems.
	    (Servatius Brandt)
Files:	    src/digraph.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_eval.c,
	    src/proto/ex_cmds2.pro, src/proto/ex_docmd.pro,
	    src/testdir/test49.in, src/testdir/test49.ok,
	    src/testdir/test49.vim

Patch 6.2.239
Problem:    GTK 2: With closed folds the arrow buttons of a vertical scrollbar
	    often doesn't scroll. (Moshe Kaminsky)
Solution:   Hackish solution: Detect that the button was pressed from the
	    mouse pointer position.
Files:	    src/gui_gtk.c, src/gui.c

Patch 6.2.240
Problem:    GTK 2: Searching for bitmaps for the toolbar doesn't work as with
	    other systems.  Need to explicitly use "icon=name".  (Ned Konz,
	    Christian J.  Robinson)
Solution:   Search for icons like done for Motif.
Files:	    src/gui_gtk.c

Patch 6.2.241
Problem:    GTK 2: Search and Search/Replace dialogs are synced, that makes no
	    sense.  Buttons are sometimes greyed-out. (Jeremy Messenger)
Solution:   Remove the code to sync the two dialogs.  Adjust the code to react
	    to an empty search string to also work for GTK2. (David Necas)
Files:	    src/gui_gtk.c

Patch 6.2.242
Problem:    Gnome: "vim --help" only shows the Gnome arguments, not the Vim
	    arguments.
Solution:   Don't let the Gnome code remove the "--help" argument and don't
	    exit at the end of usage().
Files:	    src/gui_gtk_x11.c, src/main.c

Patch 6.2.243 (extra)
Problem:    Mac: Dropping a file on a Vim icon causes a hit-enter prompt.
Solution:   Move the dropped files to the global argument list, instead of the
	    usual drop handling. (Eckehard Berns)
Files:	    src/main.c, src/gui_mac.c

Patch 6.2.244
Problem:    ':echo "\xf7"' displays the illegal byte as if it was a character
	    and leaves "cho" after it.
Solution:   When checking the length of a UTF-8 byte sequence and it's shorter
	    than the number of bytes available, assume it's an illegal byte.
Files:	    src/mbyte.c

Patch 6.2.245
Problem:    Completion doesn't work for ":keepmarks" and ":lockmarks".
Solution:   Add the command modifiers to the table of commands. (Madoka
	    Machitani)
Files:	    src/ex_cmds.h, src/ex_docmd.c

Patch 6.2.246
Problem:    Mac: Starting Vim from Finder doesn't show error messages.
Solution:   Recognize that output is being displayed by stderr being
	    "/dev/console".  (Eckehard Berns)
Files:	    src/main.c, src/message.c

Patch 6.2.247 (after 6.2.193)
Problem:    When using a search pattern from the viminfo file the last
	    character is replaced with a '/'.
Solution:   Store the separator character in the right place. (Kelvin Lee)
Files:	    src/ex_getln.c

Patch 6.2.248
Problem:    GTK: When XIM is enabled normal "2" and keypad "2" cannot be
	    distinguished.
Solution:   Detect that XIM changes the keypad key to the expected ASCII
	    character and fall back to the non-XIM code. (Neil Bird)
Files:	    src/gui_gtk_x11.c, src/mbyte.c, src/proto/mbyte.pro

Patch 6.2.249
Problem:    ":cnext" moves to the error in the next file, but there is no
	    method to go back.
Solution:   Add ":cpfile" and ":cNfile".
Files:	    src/ex_cmds.h, src/quickfix.c, src/vim.h, runtime/doc/quickfix.txt

Patch 6.2.250
Problem:    Memory leaks when using signs. (Xavier de Gaye)
Solution:   Delete the list of signs when unloading a buffer.
Files:	    src/buffer.c

Patch 6.2.251
Problem:    GTK: The 'v' flag in 'guioptions' doesn't work. (Steve Hall)
	    Order of buttons is reversed for GTK 2.2.4.  Don't always get
	    focus back after handling a dialog.
Solution:   Make buttons appear vertically when desired.  Reverse the order in
	    which buttons are added to a dialog.  Move mouse pointer around
	    when the dialog is done and we don't have focus.
Files:	    src/gui_gtk.c

Patch 6.2.252 (extra, after 6.2.243)
Problem:    Mac: Dropping a file on a Vim icon causes a hit-enter prompt for
	    Mac OS classic.
Solution:   Remove the #ifdef from the code that fixes it for Mac OSX.
Files:	    src/gui_mac.c

Patch 6.2.253
Problem:    When 'tagstack' is not set a ":tag id" command does not work after
	    a ":tjump" command.
Solution:   Set "new_tag" when 'tagstack' isn't set. (G. Narendran)
Files:	    src/tag.c

Patch 6.2.254
Problem:    May run out of space for error messages.
Solution:   Keep room for two more bytes.
Files:	    src/quickfix.c

Patch 6.2.255
Problem:    GTK: A new item in the popup menu is put just after instead of
	    just before the right item. (Gabriel Zachmann)
Solution:   Don't increment the menu item index.
Files:	    src/gui_gtk.c

Patch 6.2.256
Problem:    Mac: "macroman" encoding isn't recognized, need to use
	    "8bit-macroman".
Solution:   Recognize "macroman" with an alias "mac". (Eckehard Berns)
Files:	    src/mbyte.c

Patch 6.2.257 (after 6.2.250)
Problem:    Signs are deleted for ":bdel", but they could still be useful.
Solution:   Delete signs only for ":bwipe".
Files:	    src/buffer.c

Patch 6.2.258
Problem:    GUI: can't disable (grey-out) a popup menu item.  (Ajit Thakkar)
Solution:   Loop over the popup menus for all modes.
Files:	    src/menu.c

Patch 6.2.259
Problem:    If there are messages when exiting, on the console there is a
	    hit-enter prompt while the message can be read; in the GUI the
	    message may not be visible.
Solution:   Use the hit-enter prompt when there is an error message from
	    writing the viminfo file or autocommands, or when there is any
	    output in the GUI and 'verbose' is set.  Don't use a hit-enter
	    prompt for the non-GUI version unless there is an error message.
Files:	    src/main.c

Patch 6.2.260
Problem:    GTK 2: Can't quit a dialog with <Esc>.
	    GTK 1 and 2: <Enter> always gives a result, even when the default
	    button has been disabled.
Solution:   Handle these keys explicitly.  When no default button is specified
	    use the first one (works mostly like it was before).
Files:	    src/gui_gtk.c

Patch 6.2.261
Problem:    When 'autoindent' and 'cindent' are set and a line is recognized
	    as a comment, starting a new line won't do 'cindent' formatting.
Solution:   Also use 'cindent' formatting for lines that are used as a
	    comment. (Servatius Brandt)
Files:	    src/misc1.c

Patch 6.2.262
Problem:    1 CTRL-W w beeps, even though going to the first window is
	    possible. (Charles Campbell)
Solution:   Don't beep.
Files:	    src/window.c

Patch 6.2.263
Problem:    Lint warnings: Duplicate function prototypes, duplicate macros,
	    use of a zero character instead of a zero pointer, unused
	    variable.  Clearing allocated memory in a complicated way.
Solution:   Remove the function prototypes from farsi.h.  Remove the
	    duplicated lines in keymap.h.  Change getvcol() argument from NUL
	    to NULL.  Remove the "col" variable in regmatch().  Use
	    lalloc_clear() instead of lalloc(). (Walter Briscoe)
Files:	    src/farsi.h, src/keymap.h, src/ops.c, src/regexp.c, src/search.c

Patch 6.2.264 (after 6.2.247)
Problem:    Writing past allocated memory when using a command line from the
	    viminfo file.
Solution:   Store the NUL in the right place.
Files:	    src/ex_getln.c

Patch 6.2.265
Problem:    Although ":set" is not allowed in the sandbox, ":let &opt = val"
	    works.
Solution:   Do allow changing options in the sandbox, but not the ones that
	    can't be changed from a modeline.
Files:	    src/ex_cmds.h, src/options.c

Patch 6.2.266
Problem:    When redirecting output and using ":silent", line breaks are
	    missing from output of ":map" and ":tselect".  Alignment of
	    columns is wrong.
Solution:   Insert a line break where "msg_didout" was tested.  Update msg_col
	    when redirecting and using ":silent".
Files:	    src/getchar.c, src/message.c

Patch 6.2.267 (extra)
Problem:    Win32: "&&" in a tearoff menu is not shown. (Luc Hermitte)
Solution:   Use the "name" item from the menu instead of the "dname" item.
Files:	    src/gui_w32.c, src/menu.c

Patch 6.2.268
Problem:    GUI: When changing 'guioptions' part of the window may be off
	    screen. (Randall Morris)
Solution:   Adjust the size of the window when changing 'guioptions', but only
	    when adding something.
Files:	    src/gui.c

Patch 6.2.269
Problem:    Diff mode does not highlight a change in a combining character.
	    (Raphael Finkel)
Solution:   Make diff_find_change() multibyte aware: find the start byte of
	    a character that contains a change.
Files:	    src/diff.c

Patch 6.2.270
Problem:    Completion in Insert mode, then repeating with ".", doesn't handle
	    composing characters in the completed text. (Raphael Finkel)
Solution:   Don't skip over composing chars when adding completed text to the
	    redo buffer.
Files:	    src/getchar.c

Patch 6.2.271
Problem:    NetBeans: Can't do "tail -f" on the log.  Passing socket info with
	    an argument or environment variable is not secure.
Solution:   Wait after initializing the log.  Allow passing the socket info
	    through a file. (Gordon Prieur)
Files:	    runtime/doc/netbeans.txt, src/main.c, src/netbeans.c

Patch 6.2.272
Problem:    When the "po" directory exists, but "po/Makefile" doesn't,
	    building fails.  Make loops when the "po" directory has been
	    deleted after running configure.
Solution:   Check for the "po/Makefile" instead of just the "po" directory.
	    Check this again before trying to run make with that Makefile.
Files:	    src/auto/configure, src/configure.in, src/Makefile

Patch 6.2.273
Problem:    Changing the sort order in an explorer window for an empty
	    directory produces error messages. (Doug Kearns)
Solution:   When an invalid range is used for a function that is not going to
	    be executed, skip over the arguments anyway.
Files:	    src/eval.c

Patch 6.2.274
Problem:    ":print" skips empty lines when 'list' is set and there is no
	    "eol" in 'listchars'. (Yakov Lerner)
Solution:   Skip outputting a space for an empty line only when 'list' is set
	    and the end-of-line character is not empty.
Files:	    src/message.c

Patch 6.2.275 (extra, after 6.2.267)
Problem:    Warning for uninitialized variable when using gcc.
Solution:   Initialize "acLen" to zero. (Bill McCarthy)
Files:	    src/gui_w32.c

Patch 6.2.276
Problem:    ":echo X()" does not put a line break between the message that X()
	    displays and the text that X() returns. (Yakov Lerner)
Solution:   Invoke msg_start() after evaluating the argument.
Files:	    src/eval.c

Patch 6.2.277
Problem:    Vim crashes when a ":runtime ftplugin/ada.vim" causes a recursive
	    loop. (Robert Nowotniak)
Solution:   Restore "msg_list" before returning from do_cmdline().
Files:	    src/ex_docmd.c

Patch 6.2.278
Problem:    Using "much" instead of "many".
Solution:   Correct the error message.
Files:	    src/eval.c

Patch 6.2.279
Problem:    There is no default choice for a confirm() dialog, now that it is
	    possible not to have a default choice.
Solution:   Make the first choice the default choice.
Files:	    runtime/doc/eval.txt, src/eval.c

Patch 6.2.280
Problem:    "do" and ":diffget" don't work in the first line and the last line
	    of a buffer. (Aron Griffis)
Solution:   Find a difference above the first line and below the last line.
	    Also fix a few display updating bugs.
Files:	    src/diff.c, src/fold.c, src/move.c

Patch 6.2.281
Problem:    PostScript printing doesn't work on Mac OS X 10.3.2.
Solution:   Adjust the header file. (Mike Williams)
Files:	    runtime/print/prolog.ps

Patch 6.2.282
Problem:    When using CTRL-O to go back to a help file, it becomes listed.
	    (Andrew Nesbit)
	    Using ":tag" or ":tjump" in a help file doesn't keep the help file
	    settings (e.g. for 'iskeyword').
Solution:   Don't mark a buffer as listed when its help flag is set.  Put all
	    the option settings for a help buffer together in do_ecmd().
Files:	    src/ex_cmds.c

Patch 6.2.283
Problem:    The "local additions" in help.txt are used without conversion,
	    causing latin1 characters showing up wrong when 'enc' is utf-8.
	    (Antoine J. Mechelynck)
Solution:   Convert the text to 'encoding'.
Files:	    src/ex_cmds.c

Patch 6.2.284
Problem:    Listing a function puts "endfunction" in the message history.
	    Typing "q" at the more prompt isn't handled correctly when listing
	    variables and functions.  (Hara Krishna Dara)
Solution:   Don't use msg() for "endfunction".  Check "got_int" regularly.
Files:	    src/eval.c

Patch 6.2.285
Problem:    GUI: In a single wrapped line that fills the window, "gj" in the
	    last screen line leaves the cursor behind. (Ivan Tarasov)
Solution:   Undraw the cursor before scrolling the text up.
Files:	    src/gui.c

Patch 6.2.286
Problem:    When trying to rename a file and it doesn't exist, the destination
	    file is deleted anyway. (Luc Deux)
Solution:   Don't delete the destination when the source doesn't exist. (Taro
	    Muraoka)
Files:	    src/fileio.c

Patch 6.2.287 (after 6.2.264)
Problem:    Duplicate lines are added to the viminfo file.
Solution:   Compare with existing entries without an offset.  Also fixes
	    reading very long history lines from viminfo.
Files:	    src/ex_getln.c

Patch 6.2.288 (extra)
Problem:    Mac: An external program can't be interrupted.
Solution:   Don't use the 'c' key for backspace. (Eckehard Berns)
Files:	    src/gui_mac.c

Patch 6.2.289
Problem:    Compiling the Tcl interface with thread support causes ":make" to
	    fail.  (Juergen Salk)
Solution:   Use $TCL_DEFS from the Tcl config script to obtain the required
	    compile flags for using the thread library.
Files:	    src/auto/configure, src/configure.in

Patch 6.2.290 (extra)
Problem:    Mac: The mousewheel doesn't work.
Solution:   Add mousewheel support.  Also fix updating the thumb after a drag
	    and then using another way to scroll.  (Eckehard Berns)
Files:	    src/gui_mac.c

Patch 6.2.291 (extra)
Problem:    Mac: the plus button and close button don't do anything.
Solution:   Make the plus button maximize the window and the close button
	    close Vim. (Eckehard Berns)
Files:	    src/gui.c, src/gui_mac.c

Patch 6.2.292
Problem:    Motif: When removing GUI arguments from argv[] a "ps -ef" shows
	    the last argument repeated.
Solution:   Set argv[argc] to NULL. (Michael Jarvis)
Files:	    src/gui_x11.c

Patch 6.2.293 (after 6.2.255)
Problem:    GTK: A new item in a menu is put before the tearoff item.
Solution:   Do increment the menu item index for non-popup menu items.
Files:	    src/gui_gtk.c

Patch 6.2.294 (extra)
Problem:    Mac: Cannot use modifiers with Space, Tab, Enter and Escape.
Solution:   Handle all modifiers for these keys.  (Eckehard Berns)
Files:	    src/gui_mac.c

Patch 6.2.295
Problem:    When in debug mode, receiving a message from a remote client
	    causes a crash.  Evaluating an expression causes Vim to wait for
	    "cont" to be typed, without a prompt.  (Hari Krishna Dara)
Solution:   Disable debugging when evaluating an expression for a client.
	    (Michael Geddes)  Don't try reading into the typeahead buffer when
	    it may have been filled in another way.
Files:	    src/ex_getln.c, src/getchar.c, src/if_xcmdsrv.c, src/main.c,
	    src/misc1.c, src/proto/getchar.pro, src/proto/main.pro,
	    src/proto/os_unix.pro, src/proto/ui.pro, src/structs.h,
	    src/os_unix.c, src/ui.c

Patch 6.2.296 (extra)
Problem:    Same as 6.2.295.
Solution:   Extra files for patch 6.2.295.
Files:	    src/os_amiga.c, src/os_msdos.c, src/os_riscos.c, src/os_win32.c,
	    src/proto/os_amiga.pro, src/proto/os_msdos.pro,
	    src/proto/os_riscos.pro, src/proto/os_win32.pro

Patch 6.2.297 (after 6.2.232)
Problem:    Cannot invoke Python commands recursively.
Solution:   With Python 2.3 and later use the available mechanisms to invoke
	    Python recursively. (Matthew Mueller)
Files:	    src/if_python.c

Patch 6.2.298
Problem:    A change always sets the '. mark and an insert always sets the '^
	    mark, even when this is not wanted.
	    Cannot go back to the position of older changes without undoing
	    those changes.
Solution:   Add the ":keepjumps" command modifier.
	    Add the "g," and "g;" commands.
Files:	    runtime/doc/motion.txt, src/ex_cmds.h, src/ex_docmd.c, src/edit.c,
	    src/mark.c, src/misc1.c, src/normal.c, src/proto/mark.pro,
	    src/structs.h, src/undo.c

Patch 6.2.299
Problem:    Can only use one language for help files.
Solution:   Add the 'helplang' option to select the preferred language(s).
	    Make ":helptags" generate tags files for all languages.
Files:	    runtime/doc/options.txt, runtime/doc/various.txt, src/Makefile,
	    src/ex_cmds.c, src/ex_cmds2.c, src/ex_cmds.h, src/ex_getln.c,
	    src/normal.c, src/option.c, src/option.h, src/proto/ex_cmds.pro,
	    src/proto/ex_cmds2.pro, src/proto/option.pro, src/structs.h,
	    src/tag.c, src/vim.h

Patch 6.2.300 (after 6.2.297)
Problem:    Cannot build Python interface with Python 2.2 or earlier.
Solution:   Add a semicolon.
Files:	    src/if_python.c

Patch 6.2.301
Problem:    The "select all" item from the popup menu doesn't work for Select
	    mode.
Solution:   Use the same commands as for the "Edit.select all" menu.
	    (Benji Fisher)
Files:	    runtime/menu.vim

Patch 6.2.302
Problem:    Using "CTRL-O ." in Insert mode doesn't work properly. (Benji
	    Fisher)
Solution:   Restore "restart_edit" after an insert command that was not typed.
	    Avoid waiting with displaying the mode when there is no text to be
	    overwritten.
	    Fix that "CTRL-O ." sometimes doesn't put the cursor back after
	    the end-of-line.  Only reset the flag that CTRL-O was used past
	    the end of the line when restarting editing.  Update "o_lnum"
	    number when inserting text and "o_eol" is set.
Files:	    src/edit.c, src/normal.c

Patch 6.2.303
Problem:    Cannot use Unicode digraphs while 'encoding' is not Unicode.
Solution:   Convert the character from Unicode to 'encoding' when needed.
	    Use the Unicode digraphs for the Macintosh. (Eckehard Berns)
Files:	    src/digraph.c

Patch 6.2.304 (extra, after 6.2.256)
Problem:    Mac: No proper support for 'encoding'.  Conversion without iconv()
	    is not possible.
Solution:   Convert input from 'termencoding' to 'encoding'.  Add
	    mac_string_convert().  Convert text for the clipboard when needed.
	    (Eckehard Berns)
Files:	    src/gui_mac.c, src/mbyte.c, src/structs.h, src/vim.h

Patch 6.2.305 (after 6.2.300)
Problem:    Win32: Cannot build Python interface with Python 2.3. (Ajit
	    Thakkar)
Solution:   Add two functions to the dynamic loading feature.
Files:	    src/if_python.c

Patch 6.2.306 (extra)
Problem:    Win32: Building console version with BCC 5.5 gives a warning for
	    get_cmd_args() prototype missing.  (Ajit Thakkar)
Solution:   Don't build os_w32exe.c for the console version.
Files:	    src/Make_bc5.mak

Patch 6.2.307 (after 6.2.299)
Problem:    Installing help files fails.
Solution:   Expand wildcards for translated help files separately.
Files:	    src/Makefile

Patch 6.2.308
Problem:    Not all systems have "whoami", resulting in an empty user name.
Solution:   Use "logname" when possible, "whoami" otherwise.  (David Boyce)
Files:	    src/Makefile

Patch 6.2.309
Problem:    "3grx" waits for two ESC to be typed.  (Jens Paulus)
Solution:   Append the ESC to the stuff buffer when redoing the "gr" insert.
Files:	    src/edit.c

Patch 6.2.310
Problem:    When setting 'undolevels' to -1, making a change and setting
	    'undolevels' to a positive value an "undo list corrupt" error
	    occurs. (Madoka Machitani)
Solution:   Sync undo before changing 'undolevels'.
Files:	    src/option.c

Patch 6.2.311 (after 6.2.298)
Problem:    When making several changes in one line the changelist grows
	    quickly.  There is no error message for reaching the end of the
	    changelist.  Reading changelist marks from viminfo doesn't work
	    properly.
Solution:   Only make a new entry in the changelist when making a change in
	    another line or 'textwidth' columns away.  Add E662, E663 and E664
	    error messages.  Put a changelist mark from viminfo one position
	    before the end.
Files:	    runtime/doc/motion.txt, src/mark.c, src/misc1.c, src/normal.c

Patch 6.2.312 (after 6.2.299)
Problem:    "make install" clears the screen when installing the docs.
Solution:   Execute ":helptags" in silent mode.
Files:	    runtime/doc/Makefile

Patch 6.2.313
Problem:    When opening folds in a diff window, other diff windows no longer
	    show the same text.
Solution:   Sync the folds in diff windows.
Files:	    src/diff.c, src/fold.c, src/move.c, src/proto/diff.pro,
	    src/proto/move.pro

Patch 6.2.314
Problem:    When 'virtualedit' is set "rx" may cause a crash with a blockwise
	    selection and using "$". (Moritz Orbach)
Solution:   Don't try replacing chars in a line that has no characters in the
	    block.
Files:	    src/ops.c

Patch 6.2.315
Problem:    Using CTRL-C in a Visual mode mapping while 'insertmode' is set
	    stops Vim from returning to Insert mode.
Solution:   Don't reset "restart_edit" when a CTRL-C is found and 'insertmode'
	    is set.
Files:	    src/normal.c

Patch 6.2.316 (after 6.2.312)
Problem:    "make install" tries connecting to the X server when installing
	    the docs. (Stephen Thomas)
Solution:   Add the "-X" argument.
Files:	    runtime/doc/Makefile

Patch 6.2.317 (after 6.2.313)
Problem:    When using "zi" in a diff window, other diff windows are not
	    adjusted. (Richard Curnow)
Solution:   Distribute a change in 'foldenable' to other diff windows.
Files:	    src/normal.c

Patch 6.2.318
Problem:    When compiling with _THREAD_SAFE external commands don't echo
	    typed characters.
Solution:   Don't set the terminal mode to TMODE_SLEEP when it's already at
	    TMODE_COOK.
Files:	    src/os_unix.c

Patch 6.2.319 (extra)
Problem:    Building gvimext.dll with Mingw doesn't work properly.
Solution:   Use gcc instead of dllwrap.  Use long option names. (Alejandro
	    Lopez-Valencia)
Files:	    src/GvimExt/Make_ming.mak

Patch 6.2.320
Problem:    Win32: Adding and removing the menubar resizes the Vim window.
	    (Jonathon Merz)
Solution:   Don't let a resize event change 'lines' unexpectedly.
Files:	    src/gui.c

Patch 6.2.321
Problem:    When using modeless selection, wrapping lines are not recognized,
	    a line break is always inserted.
Solution:   Add LineWraps[] to remember whether a line wrapped or not.
Files:	    src/globals.h, src/screen.c, src/ui.c

Patch 6.2.322
Problem:    With 'showcmd' set, after typing "dd" the next "d" may not be
	    displayed. (Jens Paulus)
Solution:   Redraw the command line after updating the screen, scrolling may
	    have set "clear_cmdline".
Files:	    src/screen.c

Patch 6.2.323
Problem:    Win32: expanding "~/file" in an autocommand pattern results in
	    backslashes, while this pattern should only have forward slashes.
Solution:   Make expanding environment variables respect 'shellslash' and set
	    p_ssl when expanding the autocommand pattern.
Files:	    src/fileio.c, src/misc1.c, src/proto/fileio.pro

Patch 6.2.324 (extra)
Problem:    Win32: when "vimrun.exe" has a path with white space, such as
	    "Program Files", executing external commands may fail.
Solution:   Put double quotes around the path to "vimrun".
Files:	    src/os_win32.c

Patch 6.2.325
Problem:    When $HOME includes a space, doing ":set tags=~/tags" doesn't
	    work, the space is used to separate file names.  (Brett Stahlman)
Solution:   Escape the space with a backslash.
Files:	    src/option.c

Patch 6.2.326
Problem:    ":windo set syntax=foo" doesn't work.  (Tim Chase)
Solution:   Don't change 'eventignore' for ":windo".
Files:	    src/ex_cmds2.c

Patch 6.2.327
Problem:    When formatting text all marks in the formatted lines are lost.
	    A word is not joined to a previous line when this would be
	    possible.  (Mikolaj Machowski)
Solution:   Try to keep marks in the same position as much as possible.
	    Also keep mark positions when joining lines.
	    Start auto-formatting in the previous line when appropriate.
	    Add the "gw" operator: Like "gq" but keep the cursor where it is.
Files:	    runtime/doc/change.txt, src/edit.c, src/globals.h, src/mark.c,
	    src/misc1.c, src/normal.c, src/ops.c, src/proto/edit.pro,
	    src/proto/mark.pro, src/proto/ops.pro, src/structs.h, src/vim.h

Patch 6.2.328
Problem:    XIM with GTK: It is hard to understand what XIM is doing.
Solution:   Add xim_log() to log XIM events and help with debugging.
Files:	    src/mbyte.c

Patch 6.2.329
Problem:    ":=" does not work Vi compatible. (Antony Scriven)
Solution:   Print the last line number instead of the current line.  Don't
	    print "line".
Files:	    src/ex_cmds.h, src/ex_docmd.c

Patch 6.2.330 (extra, after 6.2.267)
Problem:    Win32: Crash when tearing off a menu.
Solution:   Terminate a string with a NUL. (Yasuhiro Matsumoto)
Files:	    src/gui_w32.c

Patch 6.2.331 (after 6.2.327)
Problem:    "gwap" leaves cursor in the wrong line.
Solution:   Remember the cursor position before finding the ends of the
	    paragraph.
Files:	    src/normal.c, src/ops.c, src/structs.h

Patch 6.2.332 (extra)
Problem:    Amiga: Compile error for string array. Compiling the Amiga GUI
	    doesn't work.
Solution:   Use a char pointer instead.  Move including "gui_amiga.h" to after
	    including "vim.h".  Add a semicolon. (Ali Akcaagac)
Files:	    src/gui_amiga.c, src/os_amiga.c

Patch 6.2.333 (extra)
Problem:    Win32: printing doesn't work with specified font charset.
Solution:   Use the specified font charset. (Mike Williams)
Files:	    src/os_mswin.c

Patch 6.2.334 (extra, after 6.2.296)
Problem:    Win32: evaluating client expression in debug mode requires typing
	    "cont".
Solution:   Use eval_client_expr_to_string().
Files:	    src/os_mswin.c

Patch 6.2.335
Problem:    The ":sign" command cannot be followed by another command.
Solution:   Add TRLBAR to the command flags.
Files:	    src/ex_cmds.h

Patch 6.2.336 (after 6.2.327)
Problem:    Mixup of items in an expression.
Solution:   Move "== NUL" to the right spot.
Files:	    src/edit.c

Patch 6.2.337 (extra, after 6.2.319)
Problem:    Building gvimext.dll with Mingw doesn't work properly.
Solution:   Fix white space and other details. (Alejandro Lopez-Valencia)
Files:	    src/GvimExt/Make_ming.mak

Patch 6.2.338 (after 6.2.331)
Problem:    When undoing "gwap" the cursor is always put at the start of the
	    paragraph.  When undoing auto-formatting the cursor may be above
	    the change.
Solution:   Try to move the cursor back to where it was or to the first line
	    that actually changed.
Files:	    src/normal.c, src/ops.c, src/undo.c

Patch 6.2.339
Problem:    Crash when using many different highlight groups and a User
	    highlight group.  (Juergen Kraemer)
Solution:   Do not use the sg_name_u pointer when it is NULL.  Also simplify
	    use of the highlight group table.
Files:	    src/syntax.c

Patch 6.2.340
Problem:    ":reg" doesn't show the actual contents of the clipboard if it was
	    filled outside of Vim. (Stuart MacDonald)
Solution:   Obtain the clipboard contents before displaying it.
Files:	    src/ops.c

Patch 6.2.341 (extra)
Problem:    Win32: When the path to diff.exe contains a space and using the
	    vimrc generated by the install program, diff mode does not work.
Solution:   Put the first double quote just before the space instead of before
	    the path.
Files:	    src/dosinst.c

Patch 6.2.342 (extra)
Problem:    Win32: macros are not always used as expected.
Solution:   Define WINVER to 0x0400 instead of 0x400. (Alejandro
	    Lopez-Valencia)
Files:	    src/Make_bc5.mak, src/Make_cyg.mak, src/Make_mvc.mak

Patch 6.2.343
Problem:    Title doesn't work with some window managers.  X11: Setting the
	    text property for the window title is hard coded.
Solution:   Use STRING format when possible.  Use the UTF-8 function when
	    it's available and 'encoding' is utf-8. Use
	    XStringListToTextProperty().  Do the same for the icon name.
	    (David Harrison)
Files:	    src/os_unix.c

Patch 6.2.344 (extra, after 6.2.337)
Problem:    Cannot build gvimext.dll with MingW on Linux.
Solution:   Add support for cross compiling. (Ronald Hoellwarth)
Files:	    src/GvimExt/Make_ming.mak

Patch 6.2.345 (extra)
Problem:    Win32: Copy/paste between two Vims fails if 'encoding' is not set
	    properly or there are illegal bytes.
Solution:   Use a raw byte format.  Always set it when copying.  When pasting
	    use the raw format if 'encoding' is the same.
Files:	    src/os_mswin.c, src/os_win16.c, src/os_win32.c, src/vim.h

Patch 6.2.346
Problem:    Win32 console: After using "chcp" Vim does not detect the
	    different codepage.
Solution:   Use GetConsoleCP() and when it is different from GetACP() set
	    'termencoding'.
Files:	    src/option.c

Patch 6.2.347 (extra)
Problem:    Win32: XP theme support is missing.
Solution:   Add a manifest and refer to it from the resource file.  (Michael
	    Wookey)
Files:	    Makefile, src/gvim.exe.mnf, src/vim.rc

Patch 6.2.348
Problem:    Win32: "vim c:\dir\(test)" doesn't work, because the 'isfname'
	    default value doesn't contain parentheses.
Solution:   Temporarily add '(' and ')' to 'isfname' when expanding file name
	    arguments.
Files:	    src/main.c

Patch 6.2.349
Problem:    Finding a match using 'matchpairs' may cause a crash.
	    'matchpairs' is not used for 'showmatch'.
Solution:   Don't look past the NUL in 'matchpairs'.  Use 'matchpairs' for
	    'showmatch'. (Dave Olszewkski)
Files:	    src/misc1.c, src/normal.c, src/proto/search.pro, src/search.c

Patch 6.2.350
Problem:    Not enough info about startup timing.
Solution:   Add a few more TIME_MSG() calls.
Files:	    src/main.c

Patch 6.2.351
Problem:    Win32: $HOME may be set to %USERPROFILE%.
Solution:   Expand %VAR% at the start of $HOME.
Files:	    src/misc1.c

Patch 6.2.352 (after 6.2.335)
Problem:    ":sign texthl=||" does not work.
Solution:   Remove the check for a following command.  Give an error for extra
	    arguments after "buff=1".
Files:	    src/ex_cmds.c, src/ex_cmds.h

Patch 6.2.353 (extra)
Problem:    Win32: Supported server name length is limited. (Paul Bossi)
Solution:   Use MAX_PATH instead of 25.
Files:	    src/os_mswin.c

Patch 6.2.354 (extra)
Problem:    Win32: When the mouse pointer is on a tear-off menu it is hidden
	    when typing but is not redisplayed when moved. (Markx Hackmann)
Solution:   Handle the pointer move event for the tear-off menu window.
Files:	    src/gui_w32.c

Patch 6.2.355 (after 6.2.303)
Problem:    When 'encoding' is a double-byte encoding different from the
	    current locale, the width of characters is not correct.
	    Possible failure and memory leak when using iconv, Unicode
	    digraphs and 'encoding' is not "utf-8".
Solution:   Use iconv() to discover the actual width of characters.
	    Add the "vc_fail" field to vimconv_T.
	    When converting a digraph, init the conversion type to NONE and
	    cleanup afterwards.
Files:	    src/digraph.c, src/mbyte.c, src/structs.h

Patch 6.2.356
Problem:    When using a double-byte 'encoding' and 'selection' is
	    "exclusive", "vy" only yanks the first byte of a double-byte
	    character.  (Xiangjiang Ma)
Solution:   Correct the column in unadjust_for_sel() to position on the first
	    byte, always include the trailing byte of the selected text.
Files:	    src/normal.c

Patch 6.2.357 (after 6.2.321)
Problem:    Memory leak when resizing the Vim window.
Solution:   Free the LineWraps array.
Files:	    src/screen.c

Patch 6.2.358 (after 6.2.299)
Problem:    Memory leak when using ":help" and the language doesn't match.
Solution:   Free the array with matching tags.
Files:	    src/ex_cmds.c

Patch 6.2.359 (after 6.2.352)
Problem:    Compiler warning for long to int type cast.
Solution:   Add explicit type cast.
Files:	    src/ex_cmds.c

Patch 6.2.360
Problem:    "100|" in an empty line results in a ruler "1,0-100". (Pavol
	    Juhas)
Solution:   Recompute w_virtcol if the target column was not reached.
Files:	    src/misc2.c

Patch 6.2.361 (extra)
Problem:    Win32: Run gvim, ":set go-=m", use Alt-Tab, keep Alt pressed while
	    pressing Esc, then release Alt: Cursor disappears and typing a key
	    causes a beep. (Hari Krishna Dara)
Solution:   Don't ignore the WM_SYSKEYUP event when the menu is disabled.
Files:	    src/gui_w32.c

Patch 6.2.362 (extra, after 6.2.347)
Problem:    Win32: The manifest causes gvim not to work. (Dave Roberts)
Solution:   Change "x86" to "X86". (Serge Pirotte)
Files:	    src/gvim.exe.mnf

Patch 6.2.363
Problem:    In an empty file with 'showmode' off, "i" doesn't change the ruler
	    from "0-1" to "1".  Typing "x<BS>" does show "1", but then <Esc>
	    doesn't make it "0-1" again.  Same problem for ruler in
	    statusline.  (Andrew Pimlott)
Solution:   Remember the "empty line" flag with Insert mode and'ed to it.
Files:	    src/screen.c

Patch 6.2.364
Problem:    HTML version of the documentation doesn't mention the encoding,
	    which is a problem for mbyte.txt.
Solution:   Adjust the awk script. (Ilya Sher)
Files:	    runtime/doc/makehtml.awk

Patch 6.2.365
Problem:    The configure checks for Perl and Python may add compile and link
	    arguments that break building Vim.
Solution:   Do a sanity check: try building with the arguments.
Files:	    src/auto/configure, src/configure.in

Patch 6.2.366
Problem:    When the GUI can't start because no valid font is found, there is
	    no error message. (Ugen)
Solution:   Add an error message.
Files:	    src/gui.c

Patch 6.2.367
Problem:    Building the help tags file while installing may fail if there is
	    another Vim in $PATH.
Solution:   Specify the just installed Vim executable. (Gordon Prieur)
Files:	    src/Makefile

Patch 6.2.368
Problem:    When 'autochdir' is set, closing a window doesn't change to the
	    directory of the new current window. (Salman Halim)
Solution:   Handle 'autochdir' always when a window becomes the current one.
Files:	    src/window.c

Patch 6.2.369
Problem:    Various memory leaks: when using globpath(), when searching for
	    help tags files, when defining a function inside a function, when
	    giving an error message through an exception, for the final "."
	    line in ":append", in expression "cond ? a : b" that fails and for
	    missing ")" in an expression.  Using NULL pointer when adding
	    first user command and for pointer computations with regexp.
	    (tests by Dominique Pelle)
Solution:   Fix the leaks by freeing the allocated memory.  Don't use the
	    array of user commands when there are no entries.  Use a macro
	    instead of a function call for saving and restoring regexp states.
Files:	    src/eval.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c,
	    src/misc2.c, src/regexp.c, src/screen.c, src/tag.c

Patch 6.2.370 (extra, after6.2.341)
Problem:    Win32: When the path to diff.exe contains a space and using the
	    vimrc generated by the install program, diff mode may not work.
	    (Alejandro Lopez-Valencia)
Solution:   Do not use double quotes for arguments that do not have a space.
Files:	    src/dosinst.c

Patch 6.2.371
Problem:    When 'virtualedit' is set and there is a Tab before the next "x",
	    "dtx" does not delete the whole Tab. (Ken Hashishi)
Solution:   Move the cursor to the last position of the Tab.  Also for
	    "df<Tab>".
Files:	    src/normal.c

Patch 6.2.372
Problem:    When using balloon evaluation, no value is displayed for members
	    of structures and items of an array.
Solution:   Include "->", "." and "[*]" in the expression.
Files:	    src/gui_beval.c, src/normal.c, src/vim.h

Patch 6.2.373
Problem:    When 'winminheight' is zero and a window is reduced to zero
	    height, the ruler always says "Top" instead of the cursor
	    position. (Antoine J. Mechelynck)
Solution:   Don't recompute w_topline for a zero-height window.
Files:	    src/window.c

Patch 6.2.374
Problem:    ":echo "hello" | silent normal n" removes the "hello" message.
	    (Servatius Brandt)
Solution:   Don't echo the search string when ":silent" was used.  Also don't
	    show the mode.  In general: don't clear to the end of the screen.
Files:	    src/gui.c, src/message.c, src/os_unix.c, src/proto/message.pro,
	    src/screen.c, src/search.c, src/window.c

Patch 6.2.375
Problem:    When changing 'guioptions' the hit-enter prompt may be below the
	    end of the Vim window.
Solution:   Call screen_alloc() before showing the prompt.
Files:	    src/message.c

Patch 6.2.376
Problem:    Win32: Ruby interface cannot be dynamically linked with Ruby 1.6.
Solution:   Add #ifdefs around use of rb_w32_snprintf().  (Benoît Cerrina)
Files:	    src/if_ruby.c

Patch 6.2.377 (after 6.2.372)
Problem:    Compiler warnings for signed/unsigned compare. (Michael Wookey)
Solution:   Add type cast.
Files:	    src/normal.c

Patch 6.2.378 (extra, after 6.2.118)
Problem:    Mac: cannot build with Project Builder.
Solution:   Add remove_tail_with_ext() to locate and remove the "build"
	    directory from the runtime path.  Include os_unix.c when needed.
	    (Dany St Amant)
Files:	    src/misc1.c, src/os_macosx.c, src/vim.h

Patch 6.2.379
Problem:    Using ":mkvimrc" in the ":options" window sets 'bufhidden' to
	    "delete". (Michael Naumann)
Solution:   Do not add buffer-specific option values to a global vimrc file.
Files:	    src/option.c

Patch 6.2.380 (extra)
Problem:    DOS: "make test" fails when running it again.  Can't "make test"
	    with Borland C.
Solution:   Make sure ".out" files are deleted when they get in the way.  Add
	    a "test" target to the Borland C Makefile.
Files:	    src/Make_bc5.mak, src/testdir/Make_dos.mak

Patch 6.2.381
Problem:    Setting 'fileencoding' to a comma-separated list (confusing it
	    with 'fileencodings') does not result in an error message.
	    Setting 'fileencoding' in an empty file marks it as modified.
	    There is no "+" in the title after setting 'fileencoding'.
Solution:   Check for a comma in 'fileencoding'.  Only consider a non-empty
	    file modified by changing 'fileencoding'.  Update the title after
	    changing 'fileencoding'.
Files:	    src/option.c

Patch 6.2.382
Problem:    Running "make test" puts marks from test files in viminfo.
Solution:   Specify a different viminfo file to use.
Files:	    src/testdir/test15.in, src/testdir/test49.in

Patch 6.2.383
Problem:    ":hi foo term='bla" crashes Vim. (Antony Scriven)
Solution:   Check that the closing ' is there.
Files:	    src/syntax.c

Patch 6.2.384
Problem:    ":menu a.&b" ":unmenu a.b" only works if "&b" isn't translated.
Solution:   Also compare the names without '&' characters.
Files:	    src/menu.c

Patch 6.2.385  (extra)
Problem:    Win32: forward_slash() and trash_input_buf() are undefined when
	    compiling with small features. (Ajit Thakkar)
Solution:   Change the #ifdefs for forward_slash().  Don't call
	    trash_input_buf() if the input buffer isn't used.
Files:	    src/fileio.c, src/os_win32.c

Patch 6.2.386
Problem:    Wasting time trying to read marks from the viminfo file for a
	    buffer without a name.
Solution:   Skip reading marks when the buffer has no name.
Files:	    src/fileio.c

Patch 6.2.387
Problem:    There is no highlighting of translated items in help files.
Solution:   Search for a "help_ab.vim" syntax file when the help file is
	    called "*.abx".  Also improve the help highlighting a bit.
Files:	    runtime/syntax/help.vim

Patch 6.2.388
Problem:    GTK: When displaying some double-width characters they are drawn
	    as single-width, because of conversion to UTF-8.
Solution:   Check the width that GTK uses and add a space if it's one instead
	    of two.
Files:	    src/gui_gtk_x11.c

Patch 6.2.389
Problem:    When working over a slow connection, it's very annoying that the
	    last line is partly drawn and then cleared for every change.
Solution:   Don't redraw the bottom line if no rows were inserted or deleted.
	    Don't draw the line if we know "@" lines will be used.
Files:	    src/screen.c

Patch 6.2.390
Problem:    Using "r*" in Visual mode on multibyte characters only replaces
	    every other character. (Tyson Roberts)
Solution:   Correct the cursor position after replacing each character.
Files:	    src/ops.c

Patch 6.2.391 (extra)
Problem:    The ":highlight" command is not tested.
Solution:   Add a test script for ":highlight".
Files:	    src/testdir/Makefile, src/testdir/Make_amiga.mak,
	    src/testdir/Make_dos.mak, src/testdir/Make_os2.mak,
	    src/testdir/Make_vms.mms, src/testdir/test51.in,
	    src/testdir/test51.ok

Patch 6.2.392 (after 6.2.384)
Problem:    Unused variable.
Solution:   Remove "dlen".
Files:	    src/menu.c

Patch 6.2.393
Problem:    When using very long lines the viminfo file can become very big.
Solution:   Add the "s" flag to 'viminfo': skip registers with more than the
	    specified Kbyte of text.
Files:	    runtime/doc/options.txt, src/ops.c, src/option.c

Patch 6.2.394  (after 6.2.391)
Problem:    Test 51 fails on a terminal with 8 colors. (Tony Leneis)
Solution:   Use "DarkBlue" instead of "Blue" to avoid the "bold" attribute.
Files:	    src/testdir/test51.in

Patch 6.2.395
Problem:    When using ":tag" or ":pop" the previous matching tag is used.
	    But since the current file is different, the ordering of the tags
	    may change.
Solution:   Remember what the current buffer was for when re-using cur_match.
Files:	    src/edit.c, src/ex_cmds.c, src/proto/tag.pro, src/structs.h,
	    src/tag.c

Patch 6.2.396
Problem:    When CTRL-T jumps to another file and an autocommand moves the
	    cursor to the '" mark, don't end up on the right line.  (Michal
	    Malecki)
Solution:   Set the line number after loading the file.
Files:	    src/tag.c

Patch 6.2.397
Problem:    When using a double-byte 'encoding' mapping <M-x> doesn't work.
	    (Yasuhiro Matsumoto)
Solution:   Do not set the 8th bit of the character but use a modifier.
Files:	    src/gui_gtk_x11.c, src/gui_x11.c, src/misc2.c

Patch 6.2.398 (extra)
Problem:    Win32 console: no extra key modifiers are supported.
Solution:   Encode the modifiers into the input stream.  Also fix that special
	    keys are converted and stop working when 'tenc' is set.  Also fix
	    that when 'tenc' is initialized the input and output conversion is
	    not setup properly until 'enc' or 'tenc' is set.
Files:	    src/getchar.c, src/option.c, src/os_win32.c

Patch 6.2.399
Problem:    A ":set" command that fails still writes a message when it is
	    inside a try/catch block.
Solution:   Include all the text of the message in the error message.
Files:	    src/charset.c, src/option.c

Patch 6.2.400
Problem:    Can't compile if_xcmdsrv.c on HP-UX 11.0.
Solution:   Include header file poll.h. (Malte Neumann)
Files:	    src/if_xcmdsrv.c

Patch 6.2.401
Problem:    When opening a buffer that was previously opened, Vim does not
	    restore the cursor position if the first line starts with white
	    space.  (Gregory Margo)
Solution:   Don't skip restoring the cursor position if it is past the blanks
	    in the first line.
Files:	    src/buffer.c

Patch 6.2.402
Problem:    Mac: "make install" doesn't generate help tags. (Benji Fisher)
Solution:   Generate help tags before copying the runtime files.
Files:	    src/Makefile

Patch 6.2.403
Problem:    ":@y" checks stdin if there are more commands to execute.  This
	    fails if stdin is not connected, e.g., when starting the GUI from
	    KDE. (Ned Konz)
Solution:   Only check for a next command if there still is typeahead.
Files:	    src/ex_docmd.c

Patch 6.2.404
Problem:    Our own function to determine width of Unicode characters may get
	    outdated. (Markus Kuhn)
Solution:   Use wcwidth() when it is available.  Also use iswprint().
Files:	    src/auto/configure, src/configure.in, src/config.h.in, src/mbyte.c

Patch 6.2.405
Problem:    Cannot map zero without breaking the count before a command.
	    (Benji Fisher)
Solution:   Disable mapping zero when entering a count.
Files:	    src/getchar.c, src/globals.h, src/normal.c

Patch 6.2.406
Problem:    ":help \zs", ":help \@=" and similar don't find useful help.
Solution:   Prepend "/\" to the arguments to find the desired help tag.
Files:	    src/ex_cmds.c

Patch 6.2.407 (after 6.2.299)
Problem:    ":help \@<=" doesn't find help.
Solution:   Avoid that ":help \@<=" searches for the "<=" language.
Files:	    src/tag.c

Patch 6.2.408
Problem:    ":compiler" is not consistent: Sets local options and a global
	    variable. (Douglas Potts)  There is no error message when a
	    compiler is not supported.
Solution:   Use ":compiler!" to set a compiler globally, otherwise it's local
	    to the buffer and "b:current_compiler" is used.  Give an error
	    when no compiler script could be found.
	    Note: updated compiler plugins can be found at
	    ftp://ftp.vim.org/pub/vim/runtime/compiler/
Files:	    runtime/compiler/msvc.vim, runtime/doc/quickfix.txt, src/eval.c,
	    src/ex_cmds2.c

Patch 6.2.409
Problem:    The cursor ends up in the last column instead of after the line
	    when doing "i//<Esc>o" with 'indentexpr' set to "cindent(v:lnum)".
	    (Toby Allsopp)
Solution:   Adjust the cursor as if in Insert mode.
Files:	    src/misc1.c

Patch 6.2.410 (after 6.2.389)
Problem:    In diff mode, when there are more filler lines than fit in the
	    window, they are not drawn.
Solution:   Check for filler lines when skipping to draw a line that doesn't
	    fit.
Files:	    src/screen.c

Patch 6.2.411
Problem:    A "\n" inside a string is not seen as a line break by the regular
	    expression matching. (Hari Krishna Dara)
Solution:   Add the vim_regexec_nl() function for strings where "\n" is to be
	    matched with a line break.
Files:	    src/eval.c, src/ex_eval.c, src/proto/regexp.c, src/regexp.c

Patch 6.2.412
Problem:    Ruby: "ruby << EOF" inside a function doesn't always work.  Also
	    for ":python", ":tcl" and ":perl".
Solution:   Check for "<< marker" and skip until "marker" before checking for
	    "endfunction".
Files:	    src/eval.c

Patch 6.2.413 (after 6.2.411)
Problem:    Missing prototype for vim_regexec_nl(). (Marcel Svitalsky)
Solution:   Now really include the prototype.
Files:	    src/proto/regexp.pro

Patch 6.2.414
Problem:    The function used for custom completion of user commands cannot
	    have <SID> to make it local. (Hari Krishna Dara)
Solution:   Pass the SID of the script where the user command was defined on
	    to the completion.  Also clean up #ifdefs.
Files:	    src/ex_docmd.c, src/eval.c, src/ex_getln.c, src/structs.h

Patch 6.2.415
Problem:    Vim may crash after a sequence of events that change the window
	    size.  The window layout assumes a larger window than is actually
	    available. (Servatius Brandt)
Solution:   Invoke win_new_shellsize() from screenalloc() instead of from
	    set_shellsize().
Files:	    src/screen.c, src/term.c

Patch 6.2.416
Problem:    Compiler warning for incompatible pointer.
Solution:   Remove the "&" in the call to poll(). (Xavier de Gaye)
Files:	    src/os_unix.c

Patch 6.2.417 (after 6.2.393)
Problem:    Many people forget that the '"' item in 'viminfo' needs to be
	    preceded with a backslash,
Solution:   Add '<' as an alias for the '"' item.
Files:	    runtime/doc/options.txt, src/ops.c, src/option.c

Patch 6.2.418
Problem:    Using ":nnoremap <F12> :echo "cheese" and ":cabbr cheese xxx":
	    when pressing <F12> still uses the abbreviation. (Hari Krishna)
Solution:   Also apply "noremap" to abbreviations.
Files:	    src/getchar.c

Patch 6.2.419 (extra)
Problem:    Win32: Cannot open the Vim window inside another application.
Solution:   Add the "-P" argument to specify the window title of the
	    application to run inside. (Zibo Zhao)
Files:	    runtime/doc/starting.txt, src/main.c, src/gui_w32.c,
	    src/gui_w48.c, src/if_ole.cpp, src/os_mswin.c,
	    src/proto/gui_w32.pro

Patch 6.2.420
Problem:    Cannot specify a file to be edited in binary mode without setting
	    the global value of the 'binary' option.
Solution:   Support ":edit ++bin file".
Files:	    runtime/doc/editing.txt, src/buffer.c, src/eval.c, src/ex_cmds.h,
	    src/ex_docmd.c, src/fileio.c, src/misc2.c

Patch 6.2.421
Problem:    Cannot set the '[ and '] mark, which may be necessary when an
	    autocommand simulates reading a file.
Solution:   Allow using "m[" and "m]".
Files:	    runtime/doc/motion.txt, src/mark.c

Patch 6.2.422
Problem:    In CTRL-X completion messages the "/" makes them less readable.
Solution:   Remove the slashes. (Antony Scriven)
Files:	    src/edit.c

Patch 6.2.423
Problem:    ":vertical wincmd ]" does not split vertically.
Solution:   Add "postponed_split_flags".
Files:	    src/ex_docmd.c, src/globals.h, src/if_cscope.c, src/tag.c

Patch 6.2.424
Problem:    A BufEnter autocommand that sets an option stops 'mousefocus' from
	    working in Insert mode (Normal mode is OK). (Gregory Seidman)
Solution:   In the Insert mode loop invoke gui_mouse_correct() when needed.
Files:	    src/edit.c

Patch 6.2.425
Problem:    Vertical split and command line window: can only drag status line
	    above the cmdline window on the righthand side, not lefthand side.
Solution:   Check the status line row instead of the window pointer.
Files:	    src/ui.c

Patch 6.2.426
Problem:    A syntax region end match with a matchgroup that includes a line
	    break only highlights the last line with matchgroup. (Gary
	    Holloway)
Solution:   Also use the line number of the position where the region
	    highlighting ends.
Files:	    src/syntax.c

Patch 6.2.427 (extra)
Problem:    When pasting a lot of text in a multibyte encoding, conversion
	    from 'termencoding' to 'encoding' may fail for some characters.
	    (Kuang-che Wu)
Solution:   When there is an incomplete byte sequence at the end of the read
	    text keep it for the next time.
Files:	    src/mbyte.c, src/os_amiga.c, src/os_mswin.c, src/proto/mbyte.pro,
	    src/proto/os_mswin.pro, src/ui.c

Patch 6.2.428
Problem:    The X11 clipboard supports the Vim selection for char/line/block
	    mode, but since the encoding is not included  can't copy/paste
	    between two Vims with a different 'encoding'.
Solution:   Add a new selection format that includes the 'encoding'.  Perform
	    conversion when necessary.
Files:	    src/gui_gtk_x11.c, src/ui.c, src/vim.h

Patch 6.2.429
Problem:    Unix: glob() doesn't work for a directory with a single quote in
	    the name. (Nazri Ramliy)
Solution:   When using the shell to expand, only put double quotes around
	    spaces and single quotes, not the whole thing.
Files:	    src/os_unix.c

Patch 6.2.430
Problem:    BOM at start of a vim script file is not recognized and causes an
	    error message.
Solution:   Detect the BOM and skip over it.  Also fix that after using
	    ":scriptencoding" the iconv() file descriptor was not closed
	    (memory leak).
Files:	    src/ex_cmds2.c

Patch 6.2.431
Problem:    When using the horizontal scrollbar, the scrolling is limited to
	    the length of the cursor line.
Solution:   Make the scroll limit depend on the longest visible line.  The
	    cursor is moved when necessary.  Including the 'h' flag in
	    'guioptions' disables this.
Files:	    runtime/doc/gui.txt, runtime/doc/options.txt, src/gui.c,
	    src/misc2.c, src/option.h

Patch 6.2.432 (after 6.2.430 and 6.2.431)
Problem:    Lint warnings.
Solution:   Add type casts.
Files:	    src/ex_cmds2.c, src/gui.c

Patch 6.2.433
Problem:    Translating "VISUAL" and "BLOCK" separately doesn't give a good
	    result. (Alejandro Lopez Valencia)
Solution:   Use a string for each combination.
Files:	    src/screen.c

Patch 6.2.434 (after 6.2.431)
Problem:    Compiler warning. (Salman Halim)
Solution:   Add type casts.
Files:	    src/gui.c

Patch 6.2.435
Problem:    When there are vertically split windows the minimal Vim window
	    height is computed wrong.
Solution:   Use frame_minheight() to correctly compute the minimal height.
Files:	    src/window.c

Patch 6.2.436
Problem:    Running the tests changes the user's viminfo file.
Solution:   In test 49 tell the extra Vim to use the test viminfo file.
Files:	    src/testdir/test49.vim

Patch 6.2.437
Problem:    ":mksession" always puts "set nocompatible" in the session file.
	    This changes option settings. (Ron Aaron)
Solution:   Add an "if" to only change 'compatible' when needed.
Files:	    src/ex_docmd.c

Patch 6.2.438
Problem:    When the 'v' flag is present in 'cpoptions', backspacing and then
	    typing text again: one character too much is overtyped before
	    inserting is done again.
Solution:   Set "dollar_vcol" to the right column.
Files:	    src/edit.c

Patch 6.2.439
Problem:    GTK 2: Changing 'lines' may cause a mismatch between the window
	    layout and the size of the window.
Solution:   Disable the hack with force_shell_resize_idle().
Files:	    src/gui_gtk_x11.c

Patch 6.2.440
Problem:    When 'lazyredraw' is set the window title is still updated.
	    The size of the Visual area and the ruler are displayed too often.
Solution:   Postpone redrawing the window title.  Only show the Visual area
	    size when waiting for a character.  Don't draw the ruler
	    unnecessary.
Files:	    src/buffer.c, src/normal.c, src/screen.c

Patch 6.2.441
Problem:    ":unabbreviate foo " doesn't work, because of the trailing space,
	    while an abbreviation with a trailing space is not possible. (Paul
	    Jolly)
Solution:   Accept a match with the lhs of an abbreviation without the
	    trailing space.
Files:	    src/getchar.c

Patch 6.2.442
Problem:    Cannot manipulate the command line from a function.
Solution:   Add getcmdline(), getcmdpos() and setcmdpos() functions and the
	    CTRL-\ e command.
Files:	    runtime/doc/cmdline.txt, runtime/doc/eval.txt, src/eval.c
	    src/ex_getln.c, src/ops.c, src/proto/ex_getln.pro,
	    src/proto/ops.pro

Patch 6.2.443
Problem:    With ":silent! echoerr something" you don't get the position of
	    the error.  emsg() only writes the message itself and returns.
Solution:   Also redirect the position of the error.
Files:	    src/message.c

Patch 6.2.444
Problem:    When adding the 'c' flag to a ":substitute" command it may replace
	    more times than without the 'c' flag.  Happens for a  match that
	    starts with "\ze" (Marcel Svitalsky) and when using "\@<=" (Klaus
	    Bosau).
Solution:   Correct "prev_matchcol" when replacing the line.  Don't replace
	    the line when the pattern uses look-behind matching.
Files:	    src/ex_cmds.c, src/proto/regexp.pro, src/regexp.c

Patch 6.2.445
Problem:    Copying vimtutor to /tmp/something is not secure, a symlink may
	    cause trouble.
Solution:   Create a directory and create the file in it.  Use "umask" to
	    create the directory with mode 700.  (Stefan Nordhausen)
Files:	    src/vimtutor

Patch 6.2.446 (after 6.2.404)
Problem:    Using library functions wcwidth() and iswprint() results in
	    display problems for Hebrew characters. (Ron Aaron)
Solution:   Disable the code to use the library functions, use our own.
Files:	    src/mbyte.c

Patch 6.2.447 (after 6.2.440)
Problem:    Now that the title is only updated when redrawing, it is no longer
	    possible to show it while executing a function. (Madoka Machitani)
Solution:   Make ":redraw" also update the title.
Files:	    src/ex_docmd.c

Patch 6.2.448 (after 6.2.427)
Problem:    Mac: conversion done when 'termencoding' differs from 'encoding'
	    fails when pasting a longer text.
Solution:   Check for an incomplete sequence at the end of the chunk to be
	    converted. (Eckehard Berns)
Files:	    src/mbyte.c

Patch 6.2.449 (after 6.2.431)
Problem:    Get error messages when switching files.
Solution:   Check for a valid line number when calculating the width of the
	    horizontal scrollbar. (Helmut Stiegler)
Files:	    src/gui.c

Patch 6.2.450
Problem:    "  #include" and "  #define" are not recognized with the default
	    option values for 'include' and 'defined'. (RG Kiran)
Solution:   Adjust the default values to allow white space before the #.
Files:	    runtime/doc/options.txt, src/option.c

Patch 6.2.451
Problem:    GTK: when using XIM there are various problems, including setting
	    'modified' and breaking undo at the wrong moment.
Solution:   Add "xim_changed_while_preediting", "preedit_end_col" and
	    im_is_preediting(). (Yasuhiro Matsumoto)
Files:	    src/ex_getln.c, src/globals.h, src/gui_gtk.c, src/gui_gtk_x11.c,
	    src/mbyte.c, src/misc1.c, src/proto/mbyte.pro, src/screen.c,
	    src/undo.c

Patch 6.2.452
Problem:    In diff mode, when DiffAdd and DiffText highlight settings are
	    equal, an added line is highlighted with DiffChange. (Tom Schumm)
Solution:   Remember the diff highlight type instead of the attributes.
Files:	    src/screen.c

Patch 6.2.453
Problem:    ":s/foo\|\nbar/x/g" does not replace two times in "foo\nbar".
	    (Pavel Papushev)
Solution:   When the pattern can match a line break also try matching at the
	    NUL at the end of a line.
Files:	    src/ex_cmds.c, src/regexp.c

Patch 6.2.454
Problem:    ":let b:changedtick" doesn't work. (Alan Schmitt)  ":let
	    b:changedtick = 99" does not give an error message.
Solution:   Add code to recognize ":let b:changedtick".
Files:	    src/eval.c

Patch 6.2.455 (after 6.2.297)
Problem:    In Python commands the current locale changes how certain Python
	    functions work. (Eugene M. Minkovskii)
Solution:   Set the LC_NUMERIC locale to "C" while executing a Python command.
Files:	    src/if_python.c

Patch 6.2.456 (extra)
Problem:    Win32: Editing a file by its Unicode name (dropping it on Vim or
	    using the file selection dialog) doesn't work. (Yakov Lerner, Alex
	    Jakushev)
Solution:   Use wide character functions when file names are involved and
	    convert from/to 'encoding' where needed.
Files:	    src/gui_w48.c, src/macros.h, src/memfile.c, src/memline.c,
	    src/os_mswin.c, src/os_win32.c

Patch 6.2.457 (after 6.2.244)
Problem:    When 'encoding' is "utf-8" and writing text with chars above 0x80
	    in latin1, conversion is wrong every 8200 bytes. (Oyvind Holm)
Solution:   Correct the utf_ptr2len_check_len() function and fix the problem
	    of displaying 0xf7 in utfc_ptr2len_check_len().
Files:	    src/mbyte.c

Patch 6.2.458
Problem:    When 'virtualedit' is set "$" doesn't move to the end of an
	    unprintable character, causing "y$" not to include that character.
	    (Fred Ma)
Solution:   Set "coladd" to move the cursor to the end of the character.
Files:	    src/misc2.c

Patch 6.2.459 (after 6.2.454)
Problem:    Variable "b" cannot be written. (Salman Halim)
Solution:   Compare strings properly.
Files:	    src/eval.c

Patch 6.2.460 (extra, after 6.2.456)
Problem:    Compiler warnings for missing prototypes.
Solution:   Include the missing prototypes.
Files:	    src/proto/os_win32.pro

Patch 6.2.461
Problem:    After using a search command "x" starts putting single characters
	    in the numbered registers.
Solution:   Reset "use_reg_one" at the right moment.
Files:	    src/normal.c

Patch 6.2.462
Problem:    Finding a matching parenthesis does not correctly handle a
	    backslash in a trailing byte.
Solution:   Handle multibyte characters correctly. (Taro Muraoka)
Files:	    src/search.c

Patch 6.2.463 (extra)
Problem:    Win32: An NTFS file system may contain files with extra info
	    streams.  The current method to copy them creates one and then
	    deletes it again.  (Peter Toennies)  Also, only three streams with
	    hard coded names are copied.
Solution:   Use BackupRead() to check which info streams the original file
	    contains and only copy these streams.
Files:	    src/os_win32.c

Patch 6.2.464 (extra, after 6.2.427)
Problem:    Amiga: Compilation error with gcc. (Ali Akcaagac)
Solution:   Move the #ifdef outside of Read().
Files:	    src/os_amiga.c

Patch 6.2.465
Problem:    When resizing the GUI window the window manager sometimes moves it
	    left of or above the screen. (Michael McCarty)
Solution:   Check the window position after resizing it and move it onto the
	    screen when it isn't.
Files:	    src/gui.c

Patch 6.2.466 (extra, after 6.2.456)
Problem:    Win32: Compiling with Borland C fails, and an un/signed warning.
Solution:   Redefine wcsicmp() to wcscmpi() and add type casts. (Yasuhiro
	    Matsumoto)
Files:	    src/os_win32.c

Patch 6.2.467 (extra, after 6.2.463)
Problem:    Win32: can't compile without multibyte feature. (Ajit Thakkar)
Solution:   Add #ifdefs around the info stream code.
Files:	    src/os_win32.c

Patch 6.2.468
Problem:    Compiler warnings for shadowed variables. (Matthias Mohr)
Solution:   Delete superfluous variables and rename others.
Files:	    src/eval.c, src/ex_docmd.c, src/ex_eval.c, src/if_cscope.c,
	    src/fold.c, src/option.c, src/os_unix.c, src/quickfix.c,
	    src/regexp.c

Patch 6.2.469 (extra, after 6.2.456)
Problem:    Win32: Can't create swap file when 'encoding' differs from the
	    active code page. (Kriton Kyrimis)
Solution:   In enc_to_ucs2() terminate the converted string with a NUL
Files:	    src/os_mswin.c

Patch 6.2.470
Problem:    The name returned by tempname() may be equal to the file used for
	    shell output when ignoring case.
Solution:   Skip 'O' and 'I' in tempname().
Files:	    src/eval.c

Patch 6.2.471
Problem:    "-L/usr/lib" is used in the link command, even though it's
	    supposed to be filtered out. "-lw" and "-ldl" are not
	    automatically added when needed for "-lXmu". (Antonio Colombo)
Solution:   Check for a space after the argument instead of before.  Also
	    remove "-R/usr/lib" if it's there.  Check for "-lw" and "-ldl"
	    before trying "-lXmu".
Files:	    src/auto/configure, src/configure.in, src/link.sh

Patch 6.2.472
Problem:    When using a FileChangedShell autocommand that changes the current
	    buffer, a buffer exists that can't be wiped out.
	    Also, Vim sometimes crashes when executing an external command
	    that changes the buffer and a FileChangedShell autocommand is
	    used.  (Hari Krishna Dara)
	    Users are confused by the warning for a file being changed outside
	    of Vim.
Solution:   Avoid that the window counter for a buffer is incremented twice.
	    Avoid that buf_check_timestamp() is used recursively.
	    Add a hint to look in the help for more info.
Files:	    src/ex_cmds.c, src/fileio.c

Patch 6.2.473
Problem:    Using CTRL-] in a help buffer without a name causes a crash.
Solution:   Check for name to be present before using it. (Taro Muraoka)
Files:	    src/tag.c

Patch 6.2.474 (extra, after 6.2.456)
Problem:    When Vim is starting up conversion is done unnecessarily.  Failure
	    to find the runtime files on Windows 98. (Randall W. Morris)
Solution:   Init enc_codepage negative, only use it when not negative.
	    Don't use GetFileAttributesW() on Windows 98 or earlier.
Files:	    src/globals.h, src/gui_w32.c, src/gui_w48.c, src/os_mswin.c,
	    src/os_win32.c

Patch 6.2.475
Problem:    Commands after "perl <<EOF" are parsed as Vim commands when they
	    are not executed.
Solution:   Properly skip over the perl commands.
Files:	    src/ex_docmd.c, src/ex_getln.c, src/if_perl.xs, src/if_python.c,
	    src/if_ruby.c, src/if_tcl.c, src/misc2.c

Patch 6.2.476
Problem:    When reloading a hidden buffer changed outside of Vim and the
	    current buffer is read-only, the reloaded buffer becomes
	    read-only.  (Hari Krishna Dara)
Solution:   Save the 'readonly' flag of the reloaded buffer instead of the
	    current buffer.
Files:	    src/fileio.c

Patch 6.2.477
Problem:    Using remote_send(v:servername, "\<C-V>") causes Vim to hang.
	    (Yakov Lerner)
Solution:   When the resulting string is empty don't set received_from_client.
Files:	    src/main.c

Patch 6.2.478
Problem:    Win32: "--remote file" fails changing directory if the current
	    directory name starts with a single quote.  (Iestyn Walters)
Solution:   Add a backslash where it will be removed later.
Files:	    src/main.c, src/misc2.c, src/proto/misc2.pro

Patch 6.2.479
Problem:    The error message for errors during recovery goes unnoticed.
Solution:   Avoid that the hit-enter prompt overwrites the message.  Add a few
	    lines to make the error stand out.
Files:	    src/main.c, src/message.c, src/memline.c

Patch 6.2.480
Problem:    NetBeans: Using negative index in array.  backslash at end of
	    message may cause Vim to crash. (Xavier de Gaye)
Solution:   Initialize buf_list_used to zero. Check for trailing backslash.
Files:	    src/netbeans.c

Patch 6.2.481
Problem:    When writing a file it is not possible to specify that hard and/or
	    symlinks are to be broken instead of preserved.
Solution:   Add the "breaksymlink" and "breakhardlink" values to 'backupcopy'.
	    (Simon Ekstrand)
Files:	    runtime/doc/options.txt, src/fileio.c, src/option.c, src/option.h

Patch 6.2.482
Problem:    Repeating insert of CTRL-K 1 S doesn't work.  The superscript 1 is
	    considered to be a digit. (Juergen Kraemer)
Solution:   In vim_isdigit() only accept '0' to '9'.  Use VIM_ISDIGIT() for
	    speed where possible.  Also add vim_isxdigit().
Files:	    src/buffer.c, src/charset.c, src/diff.c, src/digraph.c,
	    src/edit.c, src/eval.c,, src/ex_cmds.c, src/ex_cmds2.c,
	    src/ex_docmd.c, src/ex_eval.c, src/ex_getln.c,
	    src/if_xcmdsrv.c, src/farsi.c, src/fileio.c, src/fold.c,
	    src/getchar.c, src/gui.c, src/if_cscope.c, src/macros.h,
	    src/main.c, src/mark.c, src/mbyte.c, src/menu.c, src/misc1.c,
	    src/misc2.c, src/normal.c, src/ops.c, src/option.c,
	    src/proto/charset.pro, src/regexp.c, src/screen.c, src/search.c,
	    src/syntax.c, src/tag.c, src/term.c, src/termlib.c

Patch 6.2.483 (extra, after 6.2.482)
Problem:    See 6.2.482.
Solution:   Extra part of patch 6.2.482.
Files:	    src/gui_photon.c, src/gui_w48.c, src/os_msdos.c, src/os_mswin.c

Patch 6.2.484
Problem:    MS-Windows: With the included diff.exe, differences after a CTRL-Z
	    are not recognized.  (Peter Keresztes)
Solution:   Write the files with unix fileformat and invoke diff with --binary
	    if possible.
Files:	    src/diff.c

Patch 6.2.485
Problem:    A BufWriteCmd autocommand cannot know if "!" was used or not.
	    (Hari Krishna Dara)
Solution:   Add the v:cmdbang variable.
Files:	    runtime/doc/eval.txt, src/eval.c, src/proto/eval.pro,
	    src/fileio.c, src/vim.h

Patch 6.2.486 (6.2.482)
Problem:    Diff for eval.c is missing.
Solution:   Addition to patch 6.2.482.
Files:	    src/eval.c

Patch 6.2.487 (extra, after 6.2.456)
Problem:    Compiler warnings for wrong prototype. (Alejandro Lopez Valencia)
Solution:   Delete the prototype for Handle_WM_Notify().
Files:	    src/proto/gui_w32.pro

Patch 6.2.488
Problem:    Missing ")" in *.ch filetype detection.
Solution:   Add the ")".  (Ciaran McCreesh)
Files:	    runtime/filetype.vim

Patch 6.2.489
Problem:    When accidentally opening a session in Vim which has already been
	    opened in another Vim there is a long row of ATTENTION prompts.
	    Need to quit each of them to get out. (Robert Webb)
Solution:   Add the "Abort" alternative to the dialog.
Files:	    src/memline.c

Patch 6.2.490
Problem:    With 'paragraph' it is not possible to use a single dot as a
	    paragraph boundary.  (Dorai Sitaram)
Solution:   Allow using "  " (two spaces) in 'paragraph' to match ".$" or
	    ". $"
Files:	    src/search.c

Patch 6.2.491
Problem:    Decrementing a position doesn't take care of multibyte chars.
Solution:   Adjust the column for multibyte characters.  Remove mb_dec().
	    (Yasuhiro Matsumoto)
Files:	    src/mbyte.c, src/misc2.c, src/proto/mbyte.pro

Patch 6.2.492
Problem:    When using ":redraw" while there is a message, the next ":echo"
	    still causes text to scroll. (Yasuhiro Matsumoto)
Solution:   Reset msg_didout and msg_col, so that after ":redraw" the next
	    message overwrites an existing one.
Files:	    src/ex_docmd.c

Patch 6.2.493
Problem:    "@x" doesn't work when 'insertmode' is set. (Benji Fisher)
Solution:   Put "restart_edit" in the typeahead buffer, so that it's used
	    after executing the register contents.
Files:	    src/ops.c

Patch 6.2.494
Problem:    Using diff mode with two windows, when moving horizontally in
	    inserted lines, a fold in the other window may open.
Solution:   Compute the line number in the other window correctly.
Files:	    src/diff.c

Patch 6.2.495 (extra, after 6.2.456)
Problem:    Win32: The file dialog doesn't work on Windows 95.
Solution:   Put the wide code of gui_mch_browse() in gui_mch_browseW() and use
	    it only on Windows NT/2000/XP.
Files:	    src/gui_w32.c, src/gui_w48.c

Patch 6.2.496
Problem:    FreeBSD 4.x: When compiled with the pthread library (Python) a
	    complicated pattern may cause Vim to crash.  Catching the signal
	    doesn't work.
Solution:   When compiled with threads, instead of using the normal stacksize
	    limit, use the size of the initial stack.
Files:	    src/auto/configure, src/config.h.in, src/configure.in,
	    src/os_unix.c

Patch 6.2.497 (extra)
Problem:    Russian messages are only available in one encoding.
Solution:   Convert the messages to MS-Windows codepages. (Vassily Ragosin)
Files:	    src/po/Makefile

Patch 6.2.498
Problem:    Non-latin1 help files are not properly supported.
Solution:   Support utf-8 help files and convert them to 'encoding' when
	    needed.
Files:	    src/fileio.c

Patch 6.2.499
Problem:    When writing a file and halting the system, the file might be lost
	    when using a journaling file system.
Solution:   Use fsync() to flush the file data to disk after writing a file.
	    (Radim Kolar)
Files:	    src/fileio.c

Patch 6.2.500 (extra)
Problem:    The DOS/MS-Windows the installer doesn't use the --binary flag for
	    diff.
Solution:   Add --binary to the diff argument in MyDiff(). (Alejandro Lopez-
	    Valencia)
Files:	    src/dosinst.c

Patch 6.2.501
Problem:    Vim does not compile with MorphOS.
Solution:   Add a Makefile and a few changes to make Vim work with MorphOS.
	    (Ali Akcaagac)
Files:	    runtime/doc/os_amiga.txt, src/INSTALLami.txt,
	    src/Make_morphos.mak, src/memfile.c, src/term.c

Patch 6.2.502
Problem:    Building fails for generating message files.
Solution:   Add dummy message files.
Files:	    src/po/ca.po, src/po/ru.po, src/po/sv.po

Patch 6.2.503
Problem:    Mac: Can't compile MacRoman conversions without the GUI.
Solution:   Also link with the Carbon framework for the terminal version, for
	    the MacRoman conversion functions. (Eckehard Berns)
	    Remove -ltermcap from the GUI link command, it is not needed.
Files:	    src/auto/configure, src/Makefile, src/configure.in

Patch 6.2.504
Problem:    Various problems with 'cindent', among which that a
	    list of variable declarations is not indented properly.
Solution:   Fix the wrong indenting.  Improve indenting of C++ methods.
	    Add the 'i', 'b' and 'W' options to 'cinoptions'. (mostly by
	    Helmut Stiegler)
	    Improve indenting of preprocessor-continuation lines.
Files:	    runtime/doc/indent.txt, src/misc1.c, src/testdir/test3.in,
	    src/testdir/test3.ok

Patch 6.2.505
Problem:    Help for -P argument is missing. (Ronald Hoellwarth)
Solution:   Add the patch that was missing in 6.2.419.
Files:	    runtime/doc/starting.txt

Patch 6.2.506 (extra)
Problem:    Win32: When 'encoding' is a codepage then reading a utf-8 file
	    only works when iconv is available.  Writing a file in another
	    codepage uses the wrong kind of conversion.
Solution:   Use internal conversion functions.  Enable reading and writing
	    files with 'fileencoding' different from 'encoding' for all valid
	    codepages and utf-8 without the need for iconv.
Files:	    src/fileio.c, src/testdir/Make_dos.mak, src/testdir/test52.in,
	    src/testdir/test52.ok

Patch 6.2.507
Problem:    The ownership of the file with the password for the NetBeans
	    connection is not checked.  "-nb={file}" doesn't work for GTK.
Solution:   Only accept the file when owned by the user and not accessible by
	    others.  Detect "-nb=" for GTK.
Files:	    src/netbeans.c, src/gui_gtk_x11.c

Patch 6.2.508
Problem:    Win32: "v:lang" does not show the current language for messages if
	    it differs from the other locale settings.
Solution:   Use the value of the $LC_MESSAGES environment variable.
Files:	    src/ex_cmds2.c

Patch 6.2.509 (after 6.2.508)
Problem:    Crash when $LANG is not set.
Solution:   Add check for NULL pointer. (Ron Aaron)
Files:	    src/ex_cmds2.c

Patch 6.2.510 (after 6.2.507)
Problem:    Warning for pointer conversion.
Solution:   Add a type cast.
Files:	    src/gui_gtk_x11.c

Patch 6.2.511
Problem:    Tags in Russian help files are in utf-8 encoding, which may be
	    different from 'encoding'.
Solution:   Use the "TAG_FILE_ENCODING" field in the tags file to specify the
	    encoding of the tags.  Convert help tags from 'encoding' to the
	    tag file encoding when searching for matches, do the reverse when
	    listing help tags.
Files:	    runtime/doc/tagsrch.txt, src/ex_cmds.c, src/tag.c

Patch 6.2.512
Problem:    Translating "\"\n" is useless. (Gerfried Fuchs)
Solution:   Remove the _() around it.
Files:	    src/main.c, src/memline.c

Patch 6.2.513 (after 6.2.507)
Problem:    NetBeans: the check for owning the connection info file can be
	    simplified. (Nikolay Molchanov)
Solution:   Only check if the access mode is right.
Files:	    src/netbeans.c

Patch 6.2.514
Problem:    When a highlight/syntax group name contains invalid characters
	    there is no warning.
Solution:   Add an error for unprintable characters and a warning for other
	    invalid characters.
Files:	    src/syntax.c

Patch 6.2.515
Problem:    When using the options window 'swapfile' is reset.
Solution:   Use ":setlocal" instead of ":set".
Files:	    runtime/optwin.vim

Patch 6.2.516
Problem:    The sign column cannot be seen, looks like there are two spaces
	    before the text. (Rob Retter)
Solution:   Add the SignColumn highlight group.
Files:	    runtime/doc/options.txt, runtime/doc/sign.txt, src/option.c,
	    src/screen.c, src/syntax.c, src/vim.h

Patch 6.2.517
Problem:    Using "r*" in Visual mode on multibyte characters replaces
	    too many characters.  In Visual Block mode replacing with a
	    multibyte character doesn't work.
Solution:   Adjust the operator end for the difference in byte length of the
	    original and the replaced character.  Insert all bytes of a
	    multibyte character, take care of double-wide characters.
Files:	    src/ops.c

Patch 6.2.518
Problem:    Last line of a window is not updated after using "J" and then "D".
	    (Adri Verhoef)
Solution:   When no line is found below a change that doesn't need updating,
	    update all lines below the change.
Files:	    src/screen.c

Patch 6.2.519
Problem:    Mac: cannot read/write files in MacRoman format.
Solution:   Do internal conversion from/to MacRoman to/from utf-8 and latin1.
	    (Eckehard Berns)
Files:	    src/fileio.c

Patch 6.2.520 (extra)
Problem:    The NSIS installer is outdated.
Solution:   Make it work with NSIS 2.0.  Also include console executables for
	    Win 95/98/ME and Win NT/2000/XP.  Use LZWA compression.  Use
	    "/oname" to avoid having to rename files before running NSIS.
Files:	    Makefile, nsis/gvim.nsi

Patch 6.2.521
Problem:    When using silent Ex mode the "changing a readonly file" warning
	    is omitted but the one second wait isn't. (Yakov Lerner)
Solution:   Skip the delay when "silent_mode" is set.
Files:	    src/misc1.c

Patch 6.2.522
Problem:    GUI: when changing 'cmdheight' in the gvimrc file the window
	    layout is messed up. (Keith Dart)
Solution:   Skip updating the window layout when changing 'cmdheight' while
	    still starting up.
Files:	    src/option.c

Patch 6.2.523
Problem:    When loading a session and aborting when a swap file already
	    exists, the user is left with useless windows. (Robert Webb)
Solution:   Load one file before creating the windows.
Files:	    src/ex_docmd.c

Patch 6.2.524 (extra, after 6.2.520)
Problem:    Win32: (un)installing gvimext.dll may fail if it was used.
	    The desktop and start menu links are created for the current user
	    instead of all users.
	    Using the home directory as working directory for the links is a
	    bad idea for multi-user systems.
	    Cannot use Vim from the "Open With..." menu.
Solution:   Force a reboot if necessary. (Alejandro Lopez-Valencia)  Also use
	    macros for the directory of the source and runtime files.  Use
	    "CSIDL_COMMON_*" instead of "CSIDL_*" when possible.
	    Do not specify a working directory in the links.
	    Add Vim to the "Open With..." menu. (Giuseppe Bilotta)
Files:	    nsis/gvim.nsi, src/dosinst.c, src/dosinst.h, src/uninstal.c

Patch 6.2.525
Problem:    When the history contains a very long line ":history" causes a
	    crash. (Volker Kiefel)
Solution:   Shorten the history entry to fit it in one line.
Files:	    src/ex_getln.c

Patch 6.2.526
Problem:    When s:lang is "ja" the Japanese menus are not used.
Solution:   Add 'encoding' to the language when there is no charset.
Files:	    runtime/menu.vim

Patch 6.2.527
Problem:    The 2html script uses ":wincmd p", which breaks when using some
	    autocommands.
Solution:   Remember the window numbers and jump to them with ":wincmd w".
	    Also add XHTML support. (Panagiotis Issaris)
Files:	    runtime/syntax/2html.vim

Patch 6.2.528
Problem:    NetBeans: Changes of the "~" command are not reported.
Solution:   Call netbeans_inserted() after performing "~". (Gordon Prieur)
	    Also change NetBeans debugging to append to the log file.
	    Also fix that "~" in Visual block mode changes too much if there
	    are multibyte characters.
Files:	    src/nbdebug.c, src/normal.c, src/ops.c

Patch 6.2.529 (extra)
Problem:    VisVim only works for Admin.  Doing it for one user doesn't work.
	    (Alexandre Gouraud)
Solution:   When registering the module fails, simply continue.
Files:	    src/VisVim/VisVim.cpp

Patch 6.2.530
Problem:    Warning for missing prototype on the Amiga.
Solution:   Include time.h
Files:	    src/version.c

Patch 6.2.531
Problem:    In silent ex mode no messages are given, which makes debugging
	    very difficult.
Solution:   Do output messages when 'verbose' is set.
Files:	    src/message.c, src/ui.c

Patch 6.2.532 (extra)
Problem:    Compiling for Win32s with VC 4.1 doesn't work.
Solution:   Don't use CP_UTF8 if it's not defined.  Don't use CSIDL_COMMON*
	    when not defined.
Files:	    src/dosinst.h, src/fileio.c

Win32 console: After patch 6.2.398 Ex mode did not work. (Yasuhiro Matsumoto)

Patch 6.3a.001
Problem:    Win32: if testing for the "--binary" option fails, diff isn't used
	    at all.
Solution:   Handle the "ok" flag properly. (Yasuhiro Matsumoto)
Files:	    src/diff.c

Patch 6.3a.002
Problem:    NetBeans: An insert command from NetBeans beyond the end of a
	    buffer crashes Vim. (Xavier de Gaye)
Solution:   Use a local pos_T structure for the position.
Files:	    src/netbeans.c

Patch 6.3a.003
Problem:    E315 error with auto-formatting comments. (Henry Van Roessel)
Solution:   Pass the line number to same_leader().
Files:	    src/ops.c

Patch 6.3a.004
Problem:    Test32 fails on Windows XP for the DJGPP version.  Renaming
	    test11.out fails.
Solution:   Don't try renaming, create new files to use for the test.
Files:	    src/testdir/test32.in, src/testdir/test32.ok

Patch 6.3a.005
Problem:    ":checkpath!" does not use 'includeexpr'.
Solution:   Use a file name that was found directly.  When a file was not
	    found and the located name is empty, use the rest of the line.
Files:	    src/search.c

Patch 6.3a.006
Problem:    "yip" moves the cursor to the first yanked line, but not to the
	    first column.  Looks like not all text was yanked. (Jens Paulus)
Solution:   Move the cursor to the first column.
Files:	    src/search.c

Patch 6.3a.007
Problem:    'cindent' recognizes "enum" but not "typedef enum".
Solution:   Skip over "typedef" before checking for "enum". (Helmut Stiegler)
	    Also avoid that searching for this item goes too far back.
Files:	    src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok

Patch 6.3a.008 (extra)
Problem:    Windows 98: Some of the wide functions are not implemented,
	    resulting in file I/O to fail.  This depends on what Unicode
	    support is installed.
Solution:   Handle the failure and fall back to non-wide functions.
Files:	    src/os_win32.c

Patch 6.3a.009
Problem:    Win32: Completion of filenames does not work properly when
	    'encoding' differs from the active code page.
Solution:   Use wide functions for expanding wildcards when appropriate.
Files:	    src/misc1.c

Patch 6.3a.010 (extra)
Problem:    Win32: Characters in the window title that do not appear in the
	    active codepage are replaced by a question mark.
Solution:   Use DefWindowProcW() instead of DefWindowProc() when possible.
Files:	    src/glbl_ime.cpp, src/globals.h, src/proto/gui_w16.pro,
	    src/proto/gui_w32.pro, src/gui_w16.c, src/gui_w32.c, src/gui_w48.c

Patch 6.3a.011
Problem:    Using the explorer plugin changes a local directory to the global
	    directory.
Solution:   Don't use ":chdir" to restore the current directory.  Make
	    "expand('%:p')" remove "/../" and "/./" items from the path.
Files:	    runtime/plugin/explorer.vim, src/eval.c, src/os_unix.c

Patch 6.3a.012 (extra)
Problem:    On Windows 98 the installer doesn't work, don't even get the "I
	    agree" button.  The check for the path ending in "vim" makes the
	    browse dialog hard to use.  The default path when no previous Vim
	    is installed is "c:\vim" instead of "c:\Program Files\Vim".
Solution:   Remove the background gradient command.  Change the
	    .onVerifyInstDir function to a leave function for the directory
	    page.  Don't let the install program default to c:\vim when no
	    path could be found.
Files:	    nsis/gvim.nsi, src/dosinst.c

Patch 6.3a.013 (extra)
Problem:    Win32: Characters in the menu that are not in the active codepage
	    are garbled.
Solution:   Convert menu strings from 'encoding' to the active codepage.
Files:	    src/gui_w32.c, src/gui_w48.c

Patch 6.3a.014
Problem:    Using multibyte text and highlighting in a statusline causes gaps
	    to appear. (Helmut Stiegler)
Solution:   Advance the column by text width instead of number of bytes.  Add
	    the vim_strnsize() function.
Files:	    src/charset.c, src/proto/charset.pro, src/screen.c

Patch 6.3a.015
Problem:    Using the "select all" menu item when 'insertmode' is set and
	    clicking the mouse button doesn't return to Insert mode.  The
	    Buffers/Delete menu doesn't offer a choice to abandon a changed
	    buffer.  (Jens Paulus)
Solution:   Don't use CTRL-\ CTRL-N.  Add ":confirm" for the Buffers menu
	    items.
Files:	    runtime/menu.vim

Patch 6.3a.016
Problem:    After cancelling the ":confirm" dialog the error message and
	    hit-enter prompt may not be displayed properly.
Solution:   Flush output after showing the dialog.
Files:	    src/message.c

Patch 6.3a.017
Problem:    servername() doesn't work when Vim was started with the "-X"
	    argument or when the "exclude" in 'clipboard' matches the terminal
	    name.  (Robert Nowotniak)
Solution:   Force connecting to the X server when using client-server
	    commands.
Files:	    src/eval.c, src/globals.h, src/os_unix.c

Patch 6.3a.018 (after 6.3a.017)
Problem:    Compiler warning for return value of make_connection().
Solution:   Use void return type.
Files:	    src/eval.c

Patch 6.3a.019 (extra)
Problem:    Win32: typing non-latin1 characters doesn't work.
Solution:   Invoke _OnChar() directly to avoid that the argument is truncated
	    to a byte.  Convert the UTF-16 character to bytes according to
	    'encoding' and ignore 'termencoding'.  Same for _OnSysChar().
Files:	    src/gui_w32.c, src/gui_w48.c

Patch 6.3a.020 (extra)
Problem:    Missing support for AROS (AmigaOS reimplementation).  Amiga GUI
	    doesn't work.
Solution:   Add AROS support.  (Adam Chodorowski)
	    Fix Amiga GUI problems. (Georg Steger, Ali Akcaagac)
Files:	    Makefile, src/Make_aros.mak, src/gui_amiga.c, src/gui_amiga.h,
	    src/memfile.c, src/os_amiga.c, src/term.c

Patch 6.3a.021 (after 6.3a.017)
Problem:    Can't compile with X11 but without GUI.
Solution:   Put use of "gui.in_use" inside an #ifdef.
Files:	    src/eval.c

Patch 6.3a.022
Problem:    When typing Tabs when 'softtabstop' is used and 'list' is set a
	    tab is counted for two spaces.
Solution:   Use the "L" flag in 'cpoptions' to tell whether a tab is counted
	    as two spaces or as 'tabstop'. (Antony Scriven)
Files:	    runtime/doc/options.txt, src/edit.c

Patch 6.3a.023
Problem:    Completion on the command line doesn't handle backslashes
	    properly.  Only the tail of matches is shown, even when not
	    completing filenames.
Solution:   When turning the string into a pattern double backslashes.  Don't
	    omit the path when not expanding files or directories.
Files:	    src/ex_getln.c

Patch 6.3a.024
Problem:    The "save all" toolbar item fails for buffers that don't have a
	    name.  When using ":wa" or closing the Vim window and there are
	    nameless buffers, browsing for a name may cause the name being
	    given to the wrong buffer or not stored properly.  ":browse" only
	    worked for one file.
Solution:   Use ":confirm browse" for "save all".
	    Pass buffer argument to setfname().  Restore "browse" flag and
	    "forceit" after doing the work for one file.
Files:	    runtime/menu.vim, src/buffer.c, src/ex_cmds.c, src/ex_cmds2.c,
	    src/ex_docmd.c, src/ex_getln.c, src/fileio.c, src/memline.c,
	    src/message.c, src/window.c, src/proto/buffer.pro,
	    src/proto/ex_cmds2.pro, src/proto/memline.pro

Patch 6.3a.025
Problem:    Setting 'virtualedit' moves the cursor. (Benji Fisher)
Solution:   Update the virtual column before using it.
Files:	    src/option.c

Patch 6.3a.026 (extra, after 6.3a.008)
Problem:    Editing files on Windows 98 doesn't work when 'encoding' is
	    "utf-8" (Antoine Mechelynck)
	    Warning for missing function prototype.
Solution:   For all wide functions check if it failed because it is not
	    implemented.  Use ANSI function declaration for char_to_string().
Files:	    src/gui_w48.c, src/os_mswin.c, src/os_win32.c

Patch 6.3a.027 (extra, after 6.3a.026)
Problem:    Compiler warning for function argument.
Solution:   Declare both char and WCHAR arrays.
Files:	    src/gui_w48.c

Patch 6.3a.028
Problem:    ":normal ." doesn't work inside a function, because redo is saved
	    and restored. (Benji Fisher)
Solution:   Make a copy of the redo buffer when executing a function.
Files:	    src/getchar.c

Patch 6.3b.001 (extra)
Problem:    Bcc 5: The generated auto/pathdef can't be compiled.
Solution:   Fix the way quotes and backslashes are escaped.
Files:	    src/Make_bc5.mak

Patch 6.3b.002
Problem:    Win32: conversion during file write fails when a double-byte
	    character is split over two writes.
Solution:   Fix the conversion retry without a trailing byte. (Taro Muraoka)
Files:	    src/fileio.c

Patch 6.3b.003 (extra)
Problem:    Win32: When compiling with Borland C 5.5 and 'encoding' is "utf-8"
	    then Vim can't open files under MS-Windows 98. (Antoine J.
	    Mechelynck)
Solution:   Don't use _wstat(), _wopen() and _wfopen() in this situation.
Files:	    src/os_mswin.c, src/os_win32.c

Patch 6.3b.004
Problem:    ":helpgrep" includes a trailing CR in the text line.
Solution:   Remove the CR.
Files:	    src/quickfix.c

Patch 6.3b.005
Problem:    ":echo &g:ai" results in the local option value. (Salman Halim)
Solution:   Pass the flags from find_option_end() to get_option_value().
Files:	    src/eval.c

Patch 6.3b.006
Problem:    When using "mswin.vim", CTRL-V in Insert mode leaves cursor before
	    last pasted character.  (Mathew Davis)
Solution:   Use the same Paste() function as in menu.vim.
Files:	    runtime/mswin.vim

Patch 6.3b.007
Problem:    Session file doesn't restore view on windows properly. (Robert
	    Webb)
Solution:   Restore window sizes both before and after restoring the view, so
	    that the view, cursor position and size are restored properly.
Files:	    src/ex_docmd.c

Patch 6.3b.008
Problem:    Using ":finally" in a user command doesn't always work. (Hari
	    Krishna Dara)
Solution:   Don't assume that using getexline() means the command was typed.
Files:	    src/ex_docmd.c

Patch 6.3b.009 (extra)
Problem:    Win32: When the -P argument is not found in a window title, there
	    is no error message.
Solution:   When the window can't be found give an error message and exit.
	    Also use try/except to catch failing to open the MDI window.
	    (Michael Wookey)
Files:	    src/gui_w32.c

Patch 6.3b.010
Problem:    Win32: Using the "-D" argument and expanding arguments may cause a
	    hang, because the terminal isn't initialized yet. (Vince Negri)
Solution:   Don't go into debug mode before the terminal is initialized.
Files:	    src/main.c

Patch 6.3b.011
Problem:    Using CTRL-\ e while obtaining an expression aborts the command
	    line. (Hari Krishna Dara)
Solution:   Insert the CTRL-\ e as typed.
Files:	    src/ex_getln.c

Patch 6.3b.012 (after 6.3b.010)
Problem:    Can't compile with tiny features. (Norbert Tretkowski)
Solution:   Add #ifdefs.
Files:	    src/main.c

Patch 6.3b.013
Problem:    Loading a session file results in editing the wrong file in the
	    first window when this is not the file at the current position in
	    the argument list. (Robert Webb)
Solution:   Check w_arg_idx_invalid to decide whether to edit a file.
Files:	    src/ex_docmd.c

Patch 6.3b.014
Problem:    ":runtime! foo*.vim" may using freed memory when a sourced script
	    changes the value of 'runtimepath'.
Solution:   Make a copy of 'runtimepath' when looping over the matches.
Files:	    src/ex_cmds2.c

Patch 6.3b.015
Problem:    Get lalloc(0) error when using "p" in Visual mode while
	    'clipboard' contains "autoselect,unnamed". (Mark Wagonner)
Solution:   Avoid allocating zero bytes.  Obtain the clipboard when necessary.
Files:	    src/ops.c

Patch 6.3b.016
Problem:    When 'virtualedit' is used "x" doesn't delete the last character
	    of a line that has as many characters as 'columns'. (Yakov Lerner)
Solution:   When the cursor isn't moved let oneright() return FAIL.
Files:	    src/edit.c

Patch 6.3b.017
Problem:    Win32: "vim --remote-wait" doesn't exit when the server finished
	    editing the file. (David Fishburn)
Solution:   In the rrhelper plugin change backslashes to forward slashes and
	    escape special characters.
Files:	    runtime/plugin/rrhelper.vim

Patch 6.3b.018
Problem:    The list of help files in the "local additions" table doesn't
	    recognize utf-8 encoding. (Yasuhiro Matsumoto)
Solution:   Recognize utf-8 characters.
Files:	    src/ex_cmds.c

Patch 6.3b.019
Problem:    When $VIMRUNTIME is not a full path name the "local additions"
	    table lists all the help files.
Solution:   Use fullpathcmp() instead of fnamecmp() to compare the directory
	    names.
Files:	    src/ex_cmds.c

Patch 6.3b.020
Problem:    When using CTRL-^ when entering a search string, the item in the
	    statusline that indicates the keymap is not updated. (Ilya
	    Dogolazky)
Solution:   Mark the statuslines for updating.
Files:	    src/ex_getln.c

Patch 6.3b.021
Problem:    The swapfile is not readable for others, the ATTENTION prompt does
	    not show all info when someone else is editing the same file.
	    (Marcel Svitalsky)
Solution:   Use the protection of original file for the swapfile and set it
	    after creating the swapfile.
Files:	    src/fileio.c

Patch 6.3b.022
Problem:    Using "4v" to select four times the old Visual area may put the
	    cursor beyond the end of the line. (Jens Paulus)
Solution:   Correct the cursor column.
Files:	    src/normal.c

Patch 6.3b.023
Problem:    When "3dip" starts in an empty line, white lines after the
	    non-white lines are not deleted. (Jens Paulus)
Solution:   Include the white lines.
Files:	    src/search.c

Patch 6.3b.024
Problem:    "2daw" does not delete leading white space like "daw" does.  (Jens
	    Paulus)
Solution:   Include the white space when a count is used.
Files:	    src/search.c

Patch 6.3b.025
Problem:    Percentage in ruler isn't updated when a line is deleted. (Jens
	    Paulus)
Solution:   Check for a change in line count when deciding to update the ruler.
Files:	    src/screen.c, src/structs.h

Patch 6.3b.026
Problem:    When selecting "abort" at the ATTENTION prompt for a file that is
	    already being edited Vim crashes.
Solution:   Don't abort creating a new buffer when we really need it.
Files:	    src/buffer.c, src/vim.h

Patch 6.3b.027
Problem:    Win32: When enabling the menu in a maximized window, Vim uses more
	    lines than what is room for. (Shizhu Pan)
Solution:   When deciding to call shell_resized(), also compare the text area
	    size with Rows and Columns, not just with screen_Rows and
	    screen_Columns.
Files:	    src/gui.c

Patch 6.3b.028
Problem:    When in diff mode, setting 'rightleft' causes a crash. (Eddine)
Solution:   Check for last column differently when 'rightleft' is set.
Files:	    src/screen.c

Patch 6.3b.029
Problem:    Win32: warning for uninitialized variable.
Solution:   Initialize to zero.
Files:	    src/misc1.c

Patch 6.3b.030
Problem:    After Visually selecting four characters, changing it to other
	    text, Visually selecting and yanking two characters: "." changes
	    four characters, another "." changes two characters. (Robert Webb)
Solution:   Don't store the size of the Visual area when redo is active.
Files:	    src/normal.c

==============================================================================
VERSION 6.4						*version-6.4*

This section is about improvements made between version 6.3 and 6.4.

This is a bug-fix release.  There are also a few new features.  The major
number of new items is in the runtime files and translations.

The big MS-Windows version now uses:
	Ruby version 1.8.3
	Perl version 5.8.7
	Python version 2.4.2


Changed							*changed-6.4*
-------

Removed runtime/tools/tcltags, Exuberant ctags does it better.


Added							*added-6.4*
-----

Alsaconf syntax file (Nikolai Weibull)
Eruby syntax, indent, compiler and ftplugin file (Doug Kearns)
Esterel syntax file (Maurizio Tranchero)
Mathematica indent file (Steve Layland)
Netrc syntax file (Nikolai Weibull)
PHP compiler file (Doug Kearns)
Pascal indent file (Neil Carter)
Prescribe syntax file (Klaus Muth)
Rubyunit compiler file (Doug Kearns)
SMTPrc syntax file (Kornel Kielczewski)
Sudoers syntax file (Nikolai Weibull)
TPP syntax file (Gerfried Fuchs)
VHDL ftplugin file (R. Shankar)
Verilog-AMS syntax file (S. Myles Prather)

Bulgarian keymap (Alberto Mardegan)
Canadian keymap (Eric Joanis)

Hungarian menu translations in UTF-8 (Kantra Gergely)
Ukrainian menu translations (Bohdan Vlasyuk)

Irish message translations (Kevin Patrick Scannell)

Configure also checks for tclsh8.4.


Fixed							*fixed-6.4*
-----

"dFxd;" deleted the character under the cursor, "d;" didn't remember the
exclusiveness of the motion.

When using "set laststatus=2 cmdheight=2" in the .gvimrc you may only get one
line for the cmdline. (Christian Robinson)  Invoke command_height() after the
GUI has started up.

Gcc would warn "dereferencing type-punned pointer will break strict -aliasing
rules".  Avoid using typecasts for variable pointers.

Gcc 3.x interprets the -MM argument differently.  Change "-I /path" to
"-isystem /path" for "make depend".


Patch 6.3.001
Problem:    ":browse split" gives the file selection dialog twice. (Gordon
	    Bazeley)  Same problem for ":browse diffpatch".
Solution:   Reset cmdmod.browse before calling do_ecmd().
Files:	    src/diff.c, src/ex_docmd.c

Patch 6.3.002
Problem:    When using translated help files with non-ASCII latin1 characters
	    in the first line the utf-8 detection is wrong.
Solution:   Properly detect utf-8 characters.  When a mix of encodings is
	    detected continue with the next language and avoid a "no matches"
	    error because of "got_int" being set.  Add the directory name to
	    the error message for a duplicate tag.
Files:	    src/ex_cmds.c

Patch 6.3.003
Problem:    Crash when using a console dialog and the first choice does not
	    have a default button. (Darin Ohashi)
Solution:   Allocate two more characters for the [] around the character for
	    the default choice.
Files:	    src/message.c

Patch 6.3.004
Problem:    When searching for a long string (140 chars in a 80 column
	    terminal) get three hit-enter prompts. (Robert Webb)
Solution:   Avoid the hit-enter prompt when giving the message for wrapping
	    around the end of the buffer.  Don't give that message again when
	    the string was not found.
Files:	    src/message.c, src/search.c

Patch 6.3.005
Problem:    Crash when searching for a pattern with a character offset and
	    starting in a closed fold. (Frank Butler)
Solution:   Check for the column to be past the end of the line.  Also fix
	    that a pattern with a character offset relative to the end isn't
	    read back from the viminfo properly.
Files:	    src/search.c

Patch 6.3.006
Problem:    ":breakadd file *foo" prepends the current directory to the file
	    pattern. (Hari Krishna Dara)
Solution:   Keep the pattern as-is.
Files:	    src/ex_cmds2.c

Patch 6.3.007
Problem:    When there is a buffer with 'buftype' set to "nofile" and using a
	    ":cd" command, the swap file is not deleted when exiting.
Solution:   Use the full path of the swap file also for "nofile" buffers.
Files:	    src/fileio.c

Patch 6.3.008
Problem:    Compiling fails under OS/2.
Solution:   Include "e_screenmode" also for OS/2. (David Sanders)
Files:	    src/globals.h

Patch 6.3.009 (after 6.3.006)
Problem:    ":breakadd file /path/foo.vim" does not match when a symbolic link
	    is involved.  (Servatius Brandt)
Solution:   Do expand the pattern when it does not start with "*".
Files:	    runtime/doc/repeat.txt, src/ex_cmds2.c

Patch 6.3.010
Problem:    When writing to a named pipe there is an error for fsync()
	    failing.
Solution:   Ignore the fsync() error for devices.
Files:	    src/fileio.c

Patch 6.3.011
Problem:    Crash when the completion function of a user-command uses a
	    "normal :cmd" command.  (Hari Krishna Dara)
Solution:   Save the command line when invoking the completion function.
Files:	    src/ex_getln.c

Patch 6.3.012
Problem:    Internal lalloc(0) error when using a complicated multi-line
	    pattern in a substitute command. (Luc Hermitte)
Solution:   Avoid going past the end of a line.
Files:	    src/ex_cmds.c

Patch 6.3.013
Problem:    Crash when editing a command line and typing CTRL-R = to evaluate
	    a function that uses "normal :cmd". (Hari Krishna Dara)
Solution:   Save and restore the command line when evaluating an expression
	    for CTRL-R =.
Files:	    src/ex_getln.c, src/ops.c, src/proto/ex_getln.pro,
	    src/proto/ops.pro

Patch 6.3.014
Problem:    When using Chinese or Taiwanese the default for 'helplang' is
	    wrong. (Simon Liang)
Solution:   Use the part of the locale name after "zh_".
Files:	    src/option.c

Patch 6.3.015
Problem:    The string that winrestcmd() returns may end in garbage.
Solution:   NUL-terminate the string. (Walter Briscoe)
Files:	    src/eval.c

Patch 6.3.016
Problem:    The default value for 'define' has "\s" before '#'.
Solution:   Add a star after "\s". (Herculano de Lima Einloft Neto)
Files:	    src/option.c

Patch 6.3.017
Problem:    "8zz" may leave the cursor beyond the end of the line. (Niko
	    Maatjes)
Solution:   Correct the cursor column after moving to another line.
Files:	    src/normal.c

Patch 6.3.018
Problem:    ":0argadd zero" added the argument after the first one, instead of
	    before it. (Adri Verhoef)
Solution:   Accept a zero range for ":argadd".
Files:	    src/ex_cmds.h

Patch 6.3.019
Problem:    Crash in startup for debug version. (David Rennals)
Solution:   Move the call to nbdebug_wait() to after allocating NameBuff.
Files:	    src/main.c

Patch 6.3.020
Problem:    When 'encoding' is "utf-8" and 'delcombine' is set, "dw" does not
	    delete a word but only a combining character of the first
	    character, if there is one. (Raphael Finkel)
Solution:   Correctly check that one character is being deleted.
Files:	    src/misc1.c

Patch 6.3.021
Problem:    When the last character of a file name is a multibyte character
	    and the last byte is a path separator, the file cannot be edited.
Solution:   Check for the last byte to be part of a multibyte character.
	    (Taro Muraoka)
Files:	    src/fileio.c

Patch 6.3.022 (extra)
Problem:    Win32: When the last character of a file name is a multibyte
	    character and the last byte is a path separator, the file cannot
	    be written.  A trail byte that is a space makes that a file cannot
	    be opened from the command line.
Solution:   Recognize double-byte characters when parsing the command line.
	    In mch_stat() check for the last byte to be part of a multibyte
	    character.  (Taro Muraoka)
Files:	    src/gui_w48.c, src/os_mswin.c

Patch 6.3.023
Problem:    When the "to" part of a mapping starts with its "from" part,
	    abbreviations for the same characters is not possible.  For
	    example, when <Space> is mapped to something that starts with a
	    space, typing <Space> does not expand abbreviations.
Solution:   Only disable expanding abbreviations when a mapping is not
	    remapped, don't disable it when the RHS of a mapping starts with
	    the LHS.
Files:	    src/getchar.c, src/vim.h

Patch 6.3.024
Problem:    In a few places a string in allocated memory is not terminated
	    with a NUL.
Solution:   Add ga_append(NUL) in script_get(), gui_do_findrepl() and
	    serverGetVimNames().
Files:	    src/ex_getln.c, src/gui.c, src/if_xcmdsrv.c, src/os_mswin.c

Patch 6.3.025 (extra)
Problem:    Missing NUL for list of server names.
Solution:   Add ga_append(NUL) in serverGetVimNames().
Files:	    src/os_mswin.c

Patch 6.3.026
Problem:    When ~/.vim/after/syntax/syncolor.vim contains a command that
	    reloads the colors an endless loop and/or a crash may occur.
Solution:   Only free the old value of an option when it was originally
	    allocated.  Limit recursiveness of init_highlight() to 5 levels.
Files:	    src/option.c, src/syntax.c

Patch 6.3.027
Problem:    VMS: Writing a file may insert extra CR characters.  Not all
	    terminals are recognized correctly.  Vt320 doesn't support colors.
	    Environment variables are not expanded correctly.
Solution:   Use another method to write files.  Add vt320 termcap codes for
	    colors.  (Zoltan Arpadffy)
Files:	    src/fileio.c, src/misc1.c, src/os_unix.c, src/structs.h,
	    src/term.c

Patch 6.3.028
Problem:    When appending to a file the BOM marker may be written.  (Alex
	    Jakushev)
Solution:   Do not write the BOM marker when appending.
Files:	    src/fileio.c

Patch 6.3.029
Problem:    Crash when inserting a line break. (Walter Briscoe)
Solution:   In the syntax highlighting code, don't use an old state after a
	    change was made, current_col may be past the end of the line.
Files:	    src/syntax.c

Patch 6.3.030
Problem:    GTK 2: Crash when sourcing a script that deletes the menus, sets
	    'encoding' to "utf-8" and loads the menus again.  GTK error
	    message when tooltip text is in a wrong encoding.
Solution:   Don't copy characters from the old screen to the new screen when
	    switching 'encoding' to utf-8, they may be invalid.  Only set the
	    tooltip when it is valid utf-8.
Files:	    src/gui_gtk.c, src/mbyte.c, src/proto/mbyte.pro, src/screen.c

Patch 6.3.031
Problem:    When entering a mapping and pressing Tab halfway the command line
	    isn't redrawn properly. (Adri Verhoef)
Solution:   Reposition the cursor after drawing over the "..." of the
	    completion attempt.
Files:	    src/ex_getln.c

Patch 6.3.032
Problem:    Using Python 2.3 with threads doesn't work properly.
Solution:   Release the lock after initialization.
Files:	    src/if_python.c

Patch 6.3.033
Problem:    When a mapping ends in a Normal mode command of more than one
	    character Vim doesn't return to Insert mode.
Solution:   Check that the mapping has ended after obtaining all characters of
	    the Normal mode command.
Files:	    src/normal.c

Patch 6.3.034
Problem:    VMS: crash when using ":help".
Solution:   Avoid using "tags-??", some Open VMS systems can't handle the "?"
	    wildcard.  (Zoltan Arpadffy)
Files:	    src/tag.c

Patch 6.3.035 (extra)
Problem:    RISC OS: Compile errors.
Solution:   Change e_screnmode to e_screenmode.  Change the way
	    __riscosify_control is set.  Improve the makefile.  (Andy Wingate)
Files:	    src/os_riscos.c, src/search.c, src/Make_ro.mak

Patch 6.3.036
Problem:    ml_get errors when the whole file is a fold, switching
	    'foldmethod' and doing "zj". (Christian J. Robinson) Was not
	    deleting the fold but creating a fold with zero lines.
Solution:   Delete the fold properly.
Files:	    src/fold.c

Patch 6.3.037 (after 6.3.032)
Problem:    Warning for unused variable.
Solution:   Change the #ifdefs for the saved thread stuff.
Files:	    src/if_python.c

Patch 6.3.038 (extra)
Problem:    Win32: When the "file changed" dialog pops up after a click that
	    gives gvim focus and not moving the mouse after that, the effect
	    of the click may occur when moving the mouse later. (Ken Clark)
	    Happened because the release event was missed.
Solution:   Clear the s_button_pending variable when any input is received.
Files:	    src/gui_w48.c

Patch 6.3.039
Problem:    When 'number' is set and inserting lines just above the first
	    displayed line (in another window on the same buffer), the line
	    numbers are not updated.  (Hitier Sylvain)
Solution:   When 'number' is set and lines are inserted/deleted redraw all
	    lines below the change.
Files:	    src/screen.c

Patch 6.3.040
Problem:    Error handling does not always work properly and may cause a
	    buffer to be marked as if it's viewed in a window while it isn't.
	    Also when selecting "Abort" at the attention prompt.
Solution:   Add enter_cleanup() and leave_cleanup() functions to move
	    saving/restoring things for error handling to one place.
	    Clear a buffer read error when it's unloaded.
Files:	    src/buffer.c, src/ex_docmd.c, src/ex_eval.c,
	    src/proto/ex_eval.pro, src/structs.h, src/vim.h

Patch 6.3.041 (extra)
Problem:    Win32: When the path to a file has Russian characters, ":cd %:p:h"
	    doesn't work. (Valery Kondakoff)
Solution:   Use a wide function to change directory.
Files:	    src/os_mswin.c

Patch 6.3.042
Problem:    When there is a closed fold at the top of the window, CTRL-X
	    CTRL-E in Insert mode reduces the size of the fold instead of
	    scrolling the text up. (Gautam)
Solution:   Scroll over the closed fold.
Files:	    src/move.c

Patch 6.3.043
Problem:    'hlsearch' highlighting sometimes disappears when inserting text
	    in PHP code with syntax highlighting. (Marcel Svitalsky)
Solution:   Don't use pointers to remember where a match was found, use an
	    index.  The pointers may become invalid when searching in other
	    lines.
Files:	    src/screen.c

Patch 6.3.044 (extra)
Problem:    Mac: When 'linespace' is non-zero the Insert mode cursor leaves
	    pixels behind. (Richard Sandilands)
Solution:   Erase the character cell before drawing the text when needed.
Files:	    src/gui_mac.c


Patch 6.3.045
Problem:    Unusual characters in an option value may cause unexpected
	    behavior, especially for a modeline. (Ciaran McCreesh)
Solution:   Don't allow setting termcap options or 'printdevice' in a
	    modeline.  Don't list options for "termcap" and "all" in a
	    modeline.  Don't allow unusual characters in 'filetype', 'syntax',
	    'backupext', 'keymap', 'patchmode' and 'langmenu'.
Files:	    src/option.c, runtime/doc/options.txt

Patch 6.3.046
Problem:    ":registers" doesn't show multibyte characters properly.
	    (Valery Kondakoff)
Solution:   Get the length of each character before displaying it.
Files:	    src/ops.c

Patch 6.3.047 (extra)
Problem:    Win32 with Borland C 5.5 on Windows XP: A new file is created with
	    read-only attributes. (Tony Mechelynck)
Solution:   Don't use the _wopen() function for Borland.
Files:	    src/os_win32.c

Patch 6.3.048 (extra)
Problem:    Build problems with VMS on IA64.
Solution:   Add dependencies to the build file. (Zoltan Arpadffy)
Files:	    src/Make_vms.mms

Patch 6.3.049 (after 6.3.045)
Problem:    Compiler warning for "char" vs "char_u" mixup. (Zoltan Arpadffy)
Solution:   Add a typecast.
Files:	    src/option.c

Patch 6.3.050
Problem:    When SIGHUP is received while busy exiting, non-reentrant
	    functions such as free() may cause a crash.
Solution:   Ignore SIGHUP when exiting because of an error. (Scott Anderson)
Files:	    src/misc1.c, src/main.c

Patch 6.3.051
Problem:    When 'wildmenu' is set and completed file names contain multibyte
	    characters Vim may crash.
Solution:   Reserve room for multibyte characters. (Yasuhiro Matsumoto)
Files:	    src/screen.c

Patch 6.3.052 (extra)
Problem:    Windows 98: typed keys that are not ASCII may not work properly.
	    For example with a Russian input method. (Jiri Jezdinsky)
Solution:   Assume that the characters arrive in the current codepage instead
	    of UCS-2.  Perform conversion based on that.
Files:	    src/gui_w48.c

Patch 6.3.053
Problem:    Win32: ":loadview" cannot find a file with non-ASCII characters.
	    (Valerie Kondakoff)
Solution:   Use mch_open() instead of open() to open the file.
Files:	    src/ex_cmds2.c

Patch 6.3.054
Problem:    When 'insertmode' is set <C-L>4ixxx<C-L> hangs Vim. (Jens Paulus)
	    Vim is actually still working but redraw is disabled.
Solution:   When stopping Insert mode with CTRL-L don't put an Esc in the redo
	    buffer but a CTRL-L.
Files:	    src/edit.c

Patch 6.3.055 (after 6.3.013)
Problem:    Can't use getcmdline(), getcmdpos() or setcmdpos() with <C-R>=
	    when editing a command line.  Using <C-\>e may crash Vim. (Peter
	    Winters)
Solution:   When moving ccline out of the way for recursive use, make it
	    available to the functions that need it.  Also save and restore
	    ccline when calling get_expr_line().  Make ccline.cmdbuf NULL at
	    the end of getcmdline().
Files:	    src/ex_getln.c

Patch 6.3.056
Problem:    The last characters of a multibyte file name may not be displayed
	    in the window title.
Solution:   Avoid to remove a multibyte character where the last byte looks
	    like a path separator character. (Yasuhiro Matsumoto)
Files:	    src/buffer.c, src/ex_getln.c

Patch 6.3.057
Problem:    When filtering lines folds are not updated. (Carl Osterwisch)
Solution:   Update folds for filtered lines.
Files:	    src/ex_cmds.c

Patch 6.3.058
Problem:    When 'foldcolumn' is equal to the window width and 'wrap' is on
	    Vim may crash.  Disabling the vertical split feature breaks
	    compiling.  (Peter Winters)
Solution:   Check for zero room for wrapped text.  Make compiling without
	    vertical splits possible.
Files:	    src/move.c, src/quickfix.c, src/screen.c, src/netbeans.c

Patch 6.3.059
Problem:    Crash when expanding an ":edit" command containing several spaces
	    with the shell. (Brian Hirt)
Solution:   Allocate enough space for the quotes.
Files:	    src/os_unix.c

Patch 6.3.060
Problem:    Using CTRL-R CTRL-O in Insert mode with an invalid register name
	    still causes something to be inserted.
Solution:   Check the register name for being valid.
Files:	    src/edit.c

Patch 6.3.061
Problem:    When editing a utf-8 file in an utf-8 xterm and there is a
	    multibyte character in the last column, displaying is messed up.
	    (Joël Rio)
Solution:   Check for a multibyte character, not a multi-column character.
Files:	    src/screen.c

Patch 6.3.062
Problem:    ":normal! gQ" hangs.
Solution:   Quit getcmdline() and do_exmode() when out of typeahead.
Files:	    src/ex_getln.c, src/ex_docmd.c

Patch 6.3.063
Problem:    When a CursorHold autocommand changes to another window
	    (temporarily) 'mousefocus' stops working.
Solution:   Call gui_mouse_correct() after triggering CursorHold.
Files:	    src/gui.c

Patch 6.3.064
Problem:    line2byte(line("$") + 1) sometimes returns the wrong number.
	    (Charles Campbell)
Solution:   Flush the cached line before counting the bytes.
Files:	    src/memline.c

Patch 6.3.065
Problem:    The euro digraph doesn't always work.
Solution:   Add an "e=" digraph for Unicode euro character and adjust the
	    help files.
Files:	    src/digraph.c, runtime/doc/digraph.txt

Patch 6.3.066
Problem:    Backup file may get wrong permissions.
Solution:   Use permissions of original file for backup file in more places.
Files:	    src/fileio.c

Patch 6.3.067 (after 6.3.066)
Problem:    Newly created file gets execute permission.
Solution:   Check for "perm" to be negative before using it.
Files:	    src/fileio.c

Patch 6.3.068
Problem:    When editing a compressed file xxx.gz which is a symbolic link to
	    the actual file a ":write" renames the link.
Solution:   Resolve the link, so that the actual file is renamed and
	    compressed.
Files:	    runtime/plugin/gzip.vim

Patch 6.3.069
Problem:    When converting text with illegal characters Vim may crash.
Solution:   Avoid that too much is subtracted from the length. (Da Woon Jung)
Files:	    src/mbyte.c

Patch 6.3.070
Problem:    After ":set number linebreak wrap" and a vertical split, moving
	    the vertical separator far left will crash Vim. (Georg Dahn)
Solution:   Avoid dividing by zero.
Files:	    src/charset.c

Patch 6.3.071
Problem:    The message for CTRL-X mode is still displayed after an error for
	    'thesaurus' or 'dictionary' being empty.
Solution:   Clear "edit_submode".
Files:	    src/edit.c

Patch 6.3.072
Problem:    Crash in giving substitute message when language is Chinese and
	    encoding is utf-8. (Yongwei)
Solution:   Make the msg_buf size larger when using multibyte.
Files:	    src/vim.h

Patch 6.3.073
Problem:    Win32 GUI: When the Vim window is partly above or below the
	    screen, scrolling causes display errors when the taskbar is not on
	    that side.
Solution:   Use the SW_INVALIDATE flag when the Vim window is partly below or
	    above the screen.
Files:	    src/gui_w48.c

Patch 6.3.074
Problem:    When mswin.vim is used and 'insertmode' is set, typing text in
	    Select mode and then using CTRL-V results in <SNR>99_Pastegi.
	    (Georg Dahn)
Solution:   When restart_edit is set use "d" instead of "c" to remove the
	    selected text to avoid calling edit() twice.
Files:	    src/normal.c

Patch 6.3.075
Problem:    After unloading another buffer, syntax highlighting in the current
	    buffer may be wrong when it uses "containedin". (Eric Arnold)
Solution:   Use "buf" instead of "curbuf" in syntax_clear().
Files:	    src/syntax.c

Patch 6.3.076
Problem:    Crash when using cscope and there is a parse error (e.g., line too
	    long). (Alexey I. Froloff)
Solution:   Pass the actual number of matches to cs_manage_matches() and
	    correctly handle the error situation.
Files:	    src/if_cscope.c

Patch 6.3.077 (extra)
Problem:    VMS: First character input after ESC was not recognized.
Solution:   Added TRM$M_TM_TIMED in vms_read().  (Zoltan Arpadffy)
Files:	    src/os_vms.c

Patch 6.3.078 (extra, after 6.3.077)
Problem:    VMS: Performance issue after patch 6.3.077
Solution:   Add a timeout in the itemlist.  (Zoltan Arpadffy)
Files:	    src/os_vms.c

Patch 6.3.079
Problem:    Crash when executing a command in the command line window while
	    syntax highlighting is enabled. (Pero Brbora)
Solution:   Don't use a pointer to a buffer that has been deleted.
Files:	    src/syntax.c

Patch 6.3.080 (extra)
Problem:    Win32: With 'encoding' set to utf-8 while the current codepage is
	    Chinese editing a file with some specific characters in the name
	    fails.
Solution:   Use _wfullpath() instead of _fullpath() when necessary.
Files:	    src/os_mswin.c

Patch 6.3.081
Problem:    Unix: glob() may execute a shell command when it's not wanted.
	    (Georgi Guninski)
Solution:   Verify the sandbox flag is not set.
Files:	    src/os_unix.c

Patch 6.3.082 (after 6.3.081)
Problem:    Unix: expand() may execute a shell command when it's not wanted.
	    (Georgi Guninski)
Solution:   A more generic solution than 6.3.081.
Files:	    src/os_unix.c

Patch 6.3.083
Problem:    VMS: The vt320 termcap entry is incomplete.
Solution:   Add missing function keys.  (Zoltan Arpadffy)
Files:	    src/term.c

Patch 6.3.084 (extra)
Problem:    Cygwin: compiling with DEBUG doesn't work.  Perl path was ignored.
	    Failure when $(OUTDIR) already exists.  "po" makefile is missing.
Solution:   Use changes tested in Vim 7. (Tony Mechelynck)
Files:	    src/Make_cyg.mak, src/po/Make_cyg.mak

Patch 6.3.085
Problem:    Crash in syntax highlighting code. (Marc Espie)
Solution:   Prevent current_col going past the end of the line.
Files:	    src/syntax.c

Patch 6.3.086 (extra)
Problem:    Can't produce message translation file with msgfmt that checks
	    printf strings.
Solution:   Fix the Russian translation.
Files:	    src/po/ru.po, src/po/ru.cp1251.po

Patch 6.3.087
Problem:    MS-DOS: Crash. (Jason Hood)
Solution:   Don't call fname_case() with a NULL pointer.
Files:	    src/ex_cmds.c

Patch 6.3.088
Problem:    Editing ".in" causes error E218. (Stefan Karlsson)
Solution:   Require some characters before ".in".  Same for ".orig" and others.
Files:	    runtime/filetype.vim

Patch 6.3.089
Problem:    A session file doesn't work when created while the current
	    directory contains a space or the directory of the session files
	    contains a space. (Paolo Giarrusso)
Solution:   Escape spaces with a backslash.
Files:	    src/ex_docmd.c

Patch 6.3.090
Problem:    A very big value for 'columns' or 'lines' may cause a crash.
Solution:   Limit the values to 10000 and 1000.
Files:	    src/option.c

Patch 6.4a.001
Problem:    The Unix Makefile contained too many dependencies and a few
	    uncommented lines.
Solution:   Run "make depend" with manual changes to avoid a gcc
	    incompatibility.  Comment a few lines.
Files:	    src/Makefile

Patch 6.4b.001
Problem:    Vim reports "Vim 6.4a" in the ":version" output.
Solution:   Change "a" to "b". (Tony Mechelynck)
Files:	    src/version.h

Patch 6.4b.002
Problem:    In Insert mode, pasting a multibyte character after the end of
	    the line leaves the cursor just before that character.
Solution:   Make sure "gP" leaves the cursor in the right place when
	    'virtualedit' is set.
Files:	    src/ops.c

Patch 6.4b.003 (after 6.4b.002)
Problem:    The problem still exists when 'encoding' is set to "cp936".
Solution:   Fix the problem in getvvcol(), compute the coladd field correctly.
Files:	    src/charset.c, src/ops.c

Patch 6.4b.004
Problem:    Selecting a {} block with "viB" includes the '}' when there is an
	    empty line before it.
Solution:   Don't advance the cursor to include a line break when it's already
	    at the line break.
Files:	    src/search.c


 vim:tw=78:ts=8:noet:ft=help:norl:
