369b6f5 Jan 17, 2017
14934 lines (12368 sloc) 550 KB
*version8.txt* For Vim version 8.0. Last change: 2017 Jan 15
*vim8* *vim-8* *version-8.0* *version8.0*
Welcome to Vim 8! A large number of bugs have been fixed and several nice
features have been added. This file mentions all the new items and changes to
existing features since Vim 7.4. The patches up to Vim 7.4 can be found here:
Use this command to see the full version and features information of the Vim
program you are using: >
Vim script enhancements |new-vim-script-8|
Various new items |new-items-8|
IMPROVEMENTS |improvements-8|
COMPILE TIME CHANGES |compile-changes-8|
PATCHES |patches-8|
See |vi_diff.txt| for an overview of differences between Vi and Vim 8.0.
See |version4.txt|, |version5.txt|, |version6.txt| and |version7.txt| for
differences between other versions.
First an overview of the more interesting new features. A comprehensive list
is below.
Asynchronous I/O support, channels ~
Vim can now exchange messages with other processes in the background. This
makes it possible to have servers do work and send back the results to Vim.
See |channel-demo| for an example, this shows communicating with a Python
Closely related to channels is JSON support. JSON is widely supported and can
easily be used for inter-process communication, allowing for writing a server
in any language. The functions to use are |json_encode()| and |json_decode()|.
This makes it possible to build very complex plugins, written in any language
and running in a separate process.
Jobs ~
Vim can now start a job, communicate with it and stop it. This is very useful
to run a process for completion, syntax checking, etc. Channels are used to
communicate with the job. Jobs can also read from or write to a buffer or a
file. See |job_start()|.
Timers ~
Also asynchronous are timers. They can fire once or repeatedly and invoke a
function to do any work. For example: >
let tempTimer = timer_start(4000, 'CheckTemp')
This will call the CheckTemp() function four seconds (4000 milli seconds)
later. See |timer_start()|.
Partials ~
Vim already had a Funcref, a reference to a function. A partial also refers
to a function, and additionally binds arguments and/or a dictionary. This is
especially useful for callbacks on channels and timers. E.g., for the timer
example above, to pass an argument to the function: >
let tempTimer = timer_start(4000, function('CheckTemp', ['out']))
This will call CheckTemp('out') four seconds later.
Lambda and Closure ~
A short way to create a function has been added: {args -> expr}. See |lambda|.
This is useful for functions such as `filter()` and `map()`, which now also
accept a function argument. Example: >
:call filter(mylist, {idx, val -> val > 20})
A lambda can use variables defined in the scope where the lambda is defined.
This is usually called a |closure|.
User defined functions can also be a closure by adding the "closure" argument
Packages ~
Plugins keep growing and more of them are available than ever before. To keep
the collection of plugins manageable package support has been added. This is
a convenient way to get one or more plugins, drop them in a directory and
possibly keep them updated. Vim will load them automatically, or only when
desired. See |packages|.
New style tests ~
This is for Vim developers. So far writing tests for Vim has not been easy.
Vim 8 adds assert functions and a framework to run tests. This makes it a lot
simpler to write tests and keep them updated. Also new are several functions
that are added specifically for testing. See |test-functions|.
Window IDs ~
Previously windows could only be accessed by their number. And every time a
window would open, close or move that number changes. Each window now has a
unique ID, so that they are easy to find. See |win_getid()| and |win_id2win()|.
Viminfo uses timestamps ~
Previously the information stored in viminfo was whatever the last Vim wrote
there. Now timestamps are used to always keep the most recent items.
See |viminfo-timestamp|.
Wrapping lines with indent ~
The 'breakindent' option has been added to be able to wrap lines without
changing the amount of indent.
Windows: DirectX support ~
This adds the 'renderoptions' option to allow for switching on DirectX
(DirectWrite) support on MS-Windows.
GTK+ 3 support ~
The GTK+ 3 GUI works just like GTK+ 2 except for hardly noticeable technical
differences between them. Configure still chooses GTK+ 2 if both 2 and 3 are
available. See src/Makefile for how to use GTK+ 3 instead. See
|gui-x11-compiling| for other details.
Vim script enhancements *new-vim-script-8*
In Vim script the following types have been added:
|Special| |v:false|, |v:true|, |v:none| and |v:null|
|Channel| connection to another process for asynchronous I/O
|Job| process control
Many functions and commands have been added to support the new types.
On some systems the numbers used in Vim script are now 64 bit. This can be
checked with the |+num64| feature.
Many items were added to support |new-style-testing|.
printf() now accepts any type of argument for %s. It is converted to a string
like with string().
Various new items *new-items-8*
Visual mode commands: ~
|v_CTRL-A| CTRL-A add N to number in highlighted text
|v_CTRL-X| CTRL-X subtract N from number in highlighted text
|v_g_CTRL-A| g CTRL-A add N to number in highlighted text
|v_g_CTRL-X| g CTRL-X subtract N from number in highlighted text
Insert mode commands: ~
|i_CTRL-G_U| CTRL-G U don't break undo with next cursor movement
Cmdline mode commands: ~
|/_CTRL-G| CTRL-G move to the next match in 'incsearch' mode
|/_CTRL-T| CTRL-T move to the previous match in 'incsearch' mode
Options: ~
'belloff' do not ring the bell for these reasons
'breakindent' wrapped line repeats indent
'breakindentopt' settings for 'breakindent'.
'emoji' emoji characters are considered full width
'fixendofline' make sure last line in file has <EOL>
'langremap' do apply 'langmap' to mapped characters
'luadll' name of the Lua dynamic library
'packpath' list of directories used for packages
'perldll' name of the Perl dynamic library
'pythondll' name of the Python 2 dynamic library
'pythonthreedll' name of the Python 3 dynamic library
'signcolumn' when to display the sign column
'renderoptions' options for text rendering on Windows
'rubydll' name of the Ruby dynamic library
'tagcase' how to handle case when searching in tags files
'tcldll' name of the Tcl dynamic library
'termguicolors' use GUI colors for the terminal
Ex commands: ~
|:cbottom| scroll to the bottom of the quickfix window
|:cdo| execute command in each valid error list entry
|:cfdo| execute command in each file in error list
|:chistory| display quickfix list stack
|:clearjumps| clear the jump list
|:filter| only output lines that (do not) match a pattern
|:helpclose| close one help window
|:lbottom| scroll to the bottom of the location window
|:ldo| execute command in valid location list entries
|:lfdo| execute command in each file in location list
|:lhistory| display location list stack
|:noswapfile| following commands don't create a swap file
|:packadd| add a plugin from 'packpath'
|:packloadall| load all packages under 'packpath'
|:smile| make the user happy
Ex command modifiers: ~
|:keeppatterns| following command keeps search pattern history
|<mods>| supply command modifiers to user defined commands
New and extended functions: ~
|arglistid()| get id of the argument list
|assert_equal()| assert that two expressions values are equal
|assert_exception()| assert that a command throws an exception
|assert_fails()| assert that a function call fails
|assert_false()| assert that an expression is false
|assert_inrange()| assert that an expression is inside a range
|assert_match()| assert that a pattern matches the value
|assert_notequal()| assert that two expressions values are not equal
|assert_notmatch()| assert that a pattern does not match the value
|assert_true()| assert that an expression is true
|bufwinid()| get the window ID of a specific buffer
|byteidxcomp()| like byteidx() but count composing characters
|ch_close()| close a channel
|ch_close_in()| close the in part of a channel
|ch_evalexpr()| evaluates an expression over channel
|ch_evalraw()| evaluates a raw string over channel
|ch_getbufnr()| get the buffer number of a channel
|ch_getjob()| get the job associated with a channel
|ch_info()| get channel information
|ch_log()| write a message in the channel log file
|ch_logfile()| set the channel log file
|ch_open()| open a channel
|ch_read()| read a message from a channel
|ch_readraw()| read a raw message from a channel
|ch_sendexpr()| send a JSON message over a channel
|ch_sendraw()| send a raw message over a channel
|ch_setoptions()| set the options for a channel
|ch_status()| get status of a channel
|execute()| execute an Ex command and get the output
|exepath()| full path of an executable program
|funcref()| return a reference to function {name}
|getbufinfo()| get a list with buffer information
|getcharsearch()| return character search information
|getcmdwintype()| return the current command-line window type
|getcompletion()| return a list of command-line completion matches
|getcurpos()| get position of the cursor
|gettabinfo()| get a list with tab page information
|getwininfo()| get a list with window information
|glob2regpat()| convert a glob pattern into a search pattern
|isnan()| check for not a number
|job_getchannel()| get the channel used by a job
|job_info()| get information about a job
|job_setoptions()| set options for a job
|job_start()| start a job
|job_status()| get the status of a job
|job_stop()| stop a job
|js_decode()| decode a JSON string to Vim types
|js_encode()| encode an expression to a JSON string
|json_decode()| decode a JSON string to Vim types
|json_encode()| encode an expression to a JSON string
|matchaddpos()| define a list of positions to highlight
|matchstrpos()| match and positions of a pattern in a string
|perleval()| evaluate Perl expression
|reltimefloat()| convert reltime() result to a Float
|setcharsearch()| set character search information
|setfperm()| set the permissions of a file
|strcharpart()| get part of a string using char index
|strgetchar()| get character from a string using char index
|systemlist()| get the result of a shell command as a list
|test_alloc_fail()| make memory allocation fail
|test_autochdir()| test 'autochdir' functionality
|test_disable_char_avail()| test without typeahead
|test_garbagecollect_now()| free memory right now
|test_null_channel()| return a null Channel
|test_null_dict()| return a null Dict
|test_null_job()| return a null Job
|test_null_list()| return a null List
|test_null_partial()| return a null Partial function
|test_null_string()| return a null String
|test_settime()| set the time Vim uses internally
|timer_info()| get information about timers
|timer_pause()| pause or unpause a timer
|timer_start()| create a timer
|timer_stop()| stop a timer
|timer_stopall()| stop all timers
|uniq()| remove copies of repeated adjacent items
|win_findbuf()| find windows containing a buffer
|win_getid()| get window ID of a window
|win_gotoid()| go to window with ID
|win_id2tabwin()| get tab and window nr from window ID
|win_id2win()| get window nr from window ID
|wordcount()| get byte/word/char count of buffer
New Vim variables: ~
|v:beval_winid| Window ID of the window where the mouse pointer is
|v:completed_item| complete items for the most recently completed word
|v:errors| errors found by assert functions
|v:false| a Number with value zero
|v:hlsearch| indicates whether search highlighting is on
|v:mouse_winid| Window ID for a mouse click obtained with |getchar()|
|v:none| an empty String, used for JSON
|v:null| an empty String, used for JSON
|v:option_new| new value of the option, used by |OptionSet|
|v:option_old| old value of the option, used by |OptionSet|
|v:option_type| scope of the set command, used by |OptionSet|
|v:progpath| the command with which Vim was invoked
|v:t_bool| value of Boolean type
|v:t_channel| value of Channel type
|v:t_dict| value of Dictionary type
|v:t_float| value of Float type
|v:t_func| value of Funcref type
|v:t_job| value of Job type
|v:t_list| value of List type
|v:t_none| value of None type
|v:t_number| value of Number type
|v:t_string| value of String type
|v:testing| must be set before using `test_garbagecollect_now()`
|v:true| a Number with value one
|v:vim_did_enter| set just before VimEnter autocommands are triggered
New autocommand events: ~
|CmdUndefined| a user command is used but it isn't defined
|OptionSet| after setting any option
|TabClosed| after closing a tab page
|TabNew| after creating a new tab page
|TextChangedI| after a change was made to the text in Insert mode
|TextChanged| after a change was made to the text in Normal mode
|WinNew| after creating a new window
New highlight groups: ~
EndOfBuffer filler lines (~) after the last line in the buffer.
New items in search patterns: ~
|/\%C| \%C match any composing characters
New Syntax/Indent/FTplugin files: ~
AVR Assembler (Avra) syntax
Arduino syntax
Bazel syntax and indent and ftplugin
Dockerfile syntax and ftplugin
Eiffel ftplugin
Euphoria 3 and 4 syntax
Go syntax and indent and ftplugin
Godoc syntax
Groovy ftplugin
HGcommit ftplugin
Hog indent and ftplugin
Innovation Data Processing syntax
J syntax and indent and ftplugin
Jproperties ftplugin
Json syntax and indent and ftplugin
Kivy syntax
Less syntax and indent
Mix syntax
Motorola S-Record syntax
R ftplugin
ReStructuredText syntax and indent and ftplugin
Registry ftplugin
Rhelp indent and ftplugin
Rmd (markdown with R code chunks) syntax and indent
Rmd ftplugin
Rnoweb ftplugin
Rnoweb indent
Scala syntax and indent and ftplugin
SystemVerilog syntax and indent and ftplugin
Systemd syntax and indent and ftplugin
Teraterm (TTL) syntax and indent
Text ftplugin
Vroom syntax and indent and ftplugin
New Keymaps: ~
Armenian eastern and western
Russian jcukenwintype
Vietnamese telex and vni
These changes are incompatible with previous releases. Check this list if you
run into a problem when upgrading from Vim 7.4 to 8.0.
Better defaults without a vimrc ~
When no vimrc file is found, the |defaults.vim| script is loaded to set more
useful default values for new users. That includes setting 'nocompatible'.
Thus Vim no longer starts up in Vi compatible mode. If you do want that,
either create a .vimrc file that does "set compatible" or start Vim with
"Vim -C".
Support removed ~
The support for MS-DOS has been removed. It hasn't been working for a while
(Vim doesn't fit in memory) and removing it cleans up the code quite a bit.
The support for Windows 16 bit (Windows 95 and older) has been removed.
The support for OS/2 has been removed. It probably hasn't been working for a
while since nobody uses it.
The SNiFF+ support has been removed.
Minor incompatibilities: ~
IMPROVEMENTS *improvements-8*
The existing blowfish encryption turned out to be much weaker than it was
supposed to be. The blowfish2 method has been added to fix that. Note that
this still isn't a state-of-the-art encryption, but good enough for most
usage. See 'cryptmethod'.
COMPILE TIME CHANGES *compile-changes-8*
The Vim repository was moved from Google code to github, since Google code
was shut down. It can now be found at
Functions now use ANSI-C declarations. At least a C-89 compatible compiler is
The +visual feature is now always included.
PATCHES *patches-8* *bug-fixes-8*
The list of patches that got included since 7.4.0. This includes all the new
features, but does not include runtime file changes (syntax, indent, help,
Patch 7.4.001
Problem: Character classes such as [a-z] do not react to 'ignorecase'.
Breaks man page highlighting. (Mario Grgic)
Solution: Add separate items for classes that react to 'ignorecase'. Clean
up logic handling character classes. Add more tests.
Files: src/regexp_nfa.c, src/testdir/, src/testdir/test64.ok
Patch 7.4.002
Problem: Pattern with two alternative look-behind matches does not match.
(Amadeus Demarzi)
Solution: When comparing PIMs also compare their state ID to see if they are
Files: src/regexp_nfa.c, src/testdir/, src/testdir/test64.ok
Patch 7.4.003
Problem: Memory access error in Ruby syntax highlighting. (Christopher Chow)
Solution: Refresh stale pointer. (James McCoy)
Files: src/regexp_nfa.c
Patch 7.4.004
Problem: When closing a window fails ":bwipe" may hang.
Solution: Let win_close() return FAIL and break out of the loop.
Files: src/window.c, src/proto/, src/buffer.c
Patch 7.4.005
Problem: Using "vaB" while 'virtualedit' is set selects the wrong area.
(Dimitar Dimitrov)
Solution: Reset coladd when finding a match.
Files: src/search.c
Patch 7.4.006
Problem: mkdir("foo/bar/", "p") gives an error message. (David Barnett)
Solution: Remove the trailing slash. (lcd)
Files: src/eval.c
Patch 7.4.007
Problem: Creating a preview window on startup leaves the screen layout in a
messed up state. (Marius Gedminas)
Solution: Don't change firstwin. (Christian Brabandt)
Files: src/main.c
Patch 7.4.008
Problem: New regexp engine can't be interrupted.
Solution: Check for CTRL-C pressed. (Yasuhiro Matsumoto)
Files: src/regexp_nfa.c, src/regexp.c
Patch 7.4.009
Problem: When a file was not decrypted (yet), writing it may destroy the
Solution: Mark the file as readonly until decryption was done. (Christian
Files: src/fileio.c
Patch 7.4.010 (after 7.4.006)
Problem: Crash with invalid argument to mkdir().
Solution: Check for empty string. (lcd47)
Files: src/eval.c
Patch 7.4.011
Problem: Cannot find out if "acl" and "xpm" features are supported.
Solution: Add "acl" and "xpm" to the list of features. (Ken Takata)
Files: src/eval.c, src/version.c
Patch 7.4.012
Problem: MS-Windows: resolving shortcut does not work properly with
multi-byte characters.
Solution: Use wide system functions. (Ken Takata)
Files: src/os_mswin.c
Patch 7.4.013
Problem: MS-Windows: File name buffer too small for utf-8.
Solution: Use character count instead of byte count. (Ken Takata)
Files: src/os_mswin.c
Patch 7.4.014
Problem: MS-Windows: check for writing to device does not work.
Solution: Fix #ifdefs. (Ken Takata)
Files: src/fileio.c
Patch 7.4.015
Problem: MS-Windows: Detecting node type does not work for multi-byte
Solution: Use wide character function when needed. (Ken Takata)
Files: src/os_win32.c
Patch 7.4.016
Problem: MS-Windows: File name case can be wrong.
Solution: Add fname_casew(). (Ken Takata)
Files: src/os_win32.c
Patch 7.4.017
Problem: ":help !!" does not find the "!!" tag in the help file. (Ben
Solution: When reading the start of the tags file do parse lines that are
not header lines.
Files: src/tag.c
Patch 7.4.018
Problem: When completing item becomes unselected. (Shougo Matsu)
Solution: Revert patch 7.3.1269.
Files: src/edit.c
Patch 7.4.019
Problem: MS-Windows: File name completion doesn't work properly with
Chinese characters. (Yue Wu)
Solution: Take care of multi-byte characters when looking for the start of
the file name. (Ken Takata)
Files: src/edit.c
Patch 7.4.020
Problem: NFA engine matches too much with \@>. (John McGowan)
Solution: When a whole pattern match is found stop searching.
Files: src/regexp_nfa.c, src/testdir/, src/testdir/test64.ok
Patch 7.4.021
Problem: NFA regexp: Using \ze in one branch which doesn't match may cause
end of another branch to be wrong. (William Fugh)
Solution: Set end position if it wasn't set yet.
Files: src/regexp_nfa.c, src/testdir/, src/testdir/test64.ok
Patch 7.4.022
Problem: Deadlock while exiting, because of allocating memory.
Solution: Do not use gettext() in deathtrap(). (James McCoy)
Files: src/os_unix.c, src/misc1.c
Patch 7.4.023
Problem: Compiler warning on 64 bit windows.
Solution: Add type cast. (Mike Williams)
Files: src/edit.c
Patch 7.4.024
Problem: When root edits a file the undo file is owned by root while the
edited file may be owned by another user, which is not allowed.
Solution: Accept an undo file owned by the current user.
Files: src/undo.c
Patch 7.4.025 (after 7.4.019)
Problem: Reading before start of a string.
Solution: Do not call mb_ptr_back() at start of a string. (Dominique Pelle)
Files: src/edit.c
Patch 7.4.026
Problem: Clang warning for int shift overflow.
Solution: Use unsigned and cast back to int. (Dominique Pelle)
Files: src/misc2.c
Patch 7.4.027 (after 7.4.025)
Problem: Another valgrind error when using CTRL-X CTRL-F at the start of
the line. (Dominique Pelle)
Solution: Don't call mb_ptr_back() at the start of the line. Add a test.
Files: src/edit.c, src/testdir/
Patch 7.4.028
Problem: Equivalence classes are not working for multi-byte characters.
Solution: Copy the rules from the old to the new regexp engine. Add a test
to check both engines.
Files: src/regexp_nfa.c, src/testdir/, src/testdir/,
src/testdir/test99.ok, src/testdir/Make_amiga.mak,
src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
Patch 7.4.029
Problem: An error in a pattern is reported twice.
Solution: Remove the retry with the backtracking engine, it won't work.
Files: src/regexp.c
Patch 7.4.030
Problem: The -mno-cygwin argument is no longer supported by Cygwin.
Solution: Remove the arguments. (Steve Hall)
Files: src/GvimExt/Make_cyg.mak, src/Make_cyg.mak, src/xxd/Make_cyg.mak
Patch 7.4.031
Problem: ":diffoff!" resets options even when 'diff' is not set. (Charles
Solution: Only resets related options in a window where 'diff' is set.
Files: src/diff.c
Patch 7.4.032
Problem: NFA engine does not match the NUL character. (Jonathon Merz)
Solution: Use 0x0a instead of NUL. (Christian Brabandt)
Files: src/regexp_nfa.c, src/testdir/, src/testdir/test64.ok
Patch 7.4.033
Problem: When the terminal has only 20 lines test 92 and 93 overwrite the
input file.
Solution: Explicitly write test.out. Check that the terminal is large enough
to run the tests. (Hirohito Higashi)
Files: src/testdir/, src/testdir/,
src/testdir/, src/testdir/Makefile
Patch 7.4.034
Problem: Using "p" in Visual block mode only changes the first line.
Solution: Repeat the put in all text in the block. (Christian Brabandt)
Files: runtime/doc/change.txt, src/ops.c, src/normal.c,
src/testdir/, src/testdir/test20.ok
Patch 7.4.035
Problem: MS-Windows: The mouse pointer flickers when going from command
line mode to Normal mode.
Solution: Check for WM_NCMOUSEMOVE. (Ken Takata)
Files: src/gui_w48.c
Patch 7.4.036
Problem: NFA engine does not capture group correctly when using \@>. (ZyX)
Solution: Copy submatches before doing the recursive match.
Files: src/regexp_nfa.c, src/testdir/, src/testdir/test64.ok
Patch 7.4.037
Problem: Using "\ze" in a sub-pattern does not result in the end of the
match to be set. (Axel Bender)
Solution: Copy the end of match position when a recursive match was
Files: src/regexp_nfa.c, src/testdir/, src/testdir/test64.ok
Patch 7.4.038
Problem: Using "zw" and "zg" when 'spell' is off give a confusing error
message. (Gary Johnson)
Solution: Ignore the error when locating the word. Explicitly mention what
word was added. (Christian Brabandt)
Files: src/normal.c, src/spell.c
Patch 7.4.039
Problem: MS-Windows: MSVC10 and earlier can't handle symlinks to a
directory properly.
Solution: Add stat_symlink_aware() and wstat_symlink_aware(). (Ken Takata)
Files: src/os_mswin.c, src/os_win32.c, src/os_win32.h
Patch 7.4.040
Problem: Valgrind error on exit when a script-local variable holds a
reference to the scope of another script.
Solution: First clear all variables, then free the scopes. (ZyX)
Files: src/eval.c
Patch 7.4.041 (after 7.4.034)
Problem: Visual selection does not remain after being copied over. (Axel
Solution: Move when VIsual_active is reset. (Christian Brabandt)
Files: src/ops.c
Patch 7.4.042
Problem: When using ":setlocal" for 'spell' and 'spelllang' then :spelldump
doesn't work. (Dimitar Dimitrov)
Solution: Copy the option variables to the new window used to show the dump.
(Christian Brabandt)
Files: src/spell.c
Patch 7.4.043
Problem: VMS can't handle long function names.
Solution: Shorten may_req_ambiguous_character_width. (Samuel Ferencik)
Files: src/main.c, src/term.c, src/proto/
Patch 7.4.044 (after 7.4.039)
Problem: Can't build with old MSVC. (Wang Shoulin)
Solution: Define OPEN_OH_ARGTYPE instead of using intptr_t directly.
Files: src/os_mswin.c
Patch 7.4.045
Problem: substitute() does not work properly when the pattern starts with
Solution: Detect an empty match. (Christian Brabandt)
Files: src/eval.c, src/testdir/, src/testdir/test80.ok
Patch 7.4.046
Problem: Can't use Tcl 8.6.
Solution: Change how Tcl_FindExecutable is called. (Jan Nijtmans)
Files: src/if_tcl.c
Patch 7.4.047
Problem: When using input() in a function invoked by a mapping it doesn't
Solution: Temporarily reset ex_normal_busy. (Yasuhiro Matsumoto)
Files: src/eval.c
Patch 7.4.048
Problem: Recent clang version complains about -fno-strength-reduce.
Solution: Add a configure check for the clang version. (Kazunobu Kuriyama)
Files: src/, src/auto/configure
Patch 7.4.049
Problem: In Ex mode, when line numbers are enabled the substitute prompt is
Solution: Adjust for the line number size. (Benoit Pierre)
Files: src/ex_cmds.c
Patch 7.4.050
Problem: "gn" selects too much for the pattern "\d" when there are two
lines with a single digit. (Ryan Carney)
Solution: Adjust the logic of is_one_char(). (Christian Brabandt)
Files: src/search.c, src/testdir/, src/testdir/test53.ok
Patch 7.4.051
Problem: Syntax highlighting a Yaml file causes a crash. (Blake Preston)
Solution: Copy the pim structure before calling addstate() to avoid it
becoming invalid when the state list is reallocated.
Files: src/regexp_nfa.c
Patch 7.4.052
Problem: With 'fo' set to "a2" inserting a space in the first column may
cause the cursor to jump to the previous line.
Solution: Handle the case when there is no comment leader properly. (Tor
Perkins) Also fix that cursor is in the wrong place when spaces
get replaced with a Tab.
Files: src/misc1.c, src/ops.c, src/testdir/,
Patch 7.4.053
Problem: Test75 has a wrong header. (ZyX)
Solution: Fix the text and remove leading ".
Files: src/testdir/
Patch 7.4.054
Problem: Reading past end of the 'stl' string.
Solution: Don't increment pointer when already at the NUL. (Christian
Files: src/buffer.c
Patch 7.4.055
Problem: Mac: Where availability macros are defined depends on the system.
Solution: Add a configure check. (Felix Bünemann)
Files: src/, src/, src/auto/configure,
Patch 7.4.056
Problem: Mac: Compilation problem with OS X 10.9 Mavericks.
Solution: Include AvailabilityMacros.h when available. (Kazunobu Kuriyama)
Files: src/os_unix.c
Patch 7.4.057
Problem: byteidx() does not work for composing characters.
Solution: Add byteidxcomp().
Files: src/eval.c, src/testdir/, src/testdir/test69.ok,
Patch 7.4.058
Problem: Warnings on 64 bit Windows.
Solution: Add type casts. (Mike Williams)
Files: src/ops.c
Patch 7.4.059
Problem: set_last_cursor() may encounter w_buffer being NULL. (Matt
Solution: Check for NULL.
Files: src/mark.c
Patch 7.4.060
Problem: Declaration has wrong return type for PyObject_SetAttrString().
Solution: Use int instead of PyObject. (Andreas Schwab)
Files: src/if_python.c, src/if_python3.c
Patch 7.4.061 (after 7.4.055 and 7.4.056)
Problem: Availability macros configure check in wrong place.
Solution: Also check when not using Darwin. Remove version check.
Files: src/, src/auto/configure, src/os_unix.c
Patch 7.4.062 (after 7.4.061)
Problem: Configure check for AvailabilityMacros.h is wrong.
Solution: Use AC_CHECK_HEADERS().
Files: src/, src/auto/configure
Patch 7.4.063
Problem: Crash when using invalid key in Python dictionary.
Solution: Check for object to be NULL. Add tests. (ZyX)
Files: src/if_py_both.h, src/testdir/, src/testdir/test86.ok,
src/testdir/, src/testdir/test87.ok
Patch 7.4.064
Problem: When replacing a character in Visual block mode, entering a CR
does not cause a repeated line break.
Solution: Recognize the situation and repeat the line break. (Christian
Files: src/normal.c, src/ops.c, src/testdir/,
Patch 7.4.065
Problem: When recording, the character typed at the hit-enter prompt is
recorded twice. (Urtica Dioica)
Solution: Avoid recording the character twice. (Christian Brabandt)
Files: src/message.c
Patch 7.4.066
Problem: MS-Windows: When there is a colon in the file name (sub-stream
feature) the swap file name is wrong.
Solution: Change the colon to "%". (Yasuhiro Matsumoto)
Files: src/fileio.c, src/memline.c, src/misc1.c, src/proto/
Patch 7.4.067
Problem: After inserting comment leader, CTRL-\ CTRL-O does move the
cursor. (Wiktor Ruben)
Solution: Avoid moving the cursor. (Christian Brabandt)
Files: src/edit.c
Patch 7.4.068
Problem: Cannot build Vim on Mac with non-Apple compilers.
Solution: Remove the -no-cpp-precomp flag. (Misty De Meo)
Files: src/, src/auto/configure, src/
Patch 7.4.069
Problem: Cannot right shift lines starting with #.
Solution: Allow the right shift when 'cino' contains #N with N > 0.
(Christian Brabandt)
Refactor parsing 'cino', store the values in the buffer.
Files: runtime/doc/indent.txt, src/buffer.c, src/edit.c, src/eval.c,
src/ex_getln.c, src/fold.c, src/misc1.c, src/ops.c,
src/proto/, src/proto/, src/structs.h,
Patch 7.4.070 (after 7.4.069)
Problem: Can't compile with tiny features. (Tony Mechelynck)
Solution: Add #ifdef.
Files: src/buffer.c
Patch 7.4.071 (after 7.4.069)
Problem: Passing limits around too often.
Solution: Use limits from buffer.
Files: src/edit.c, src/misc1.c, src/proto/
Patch 7.4.072
Problem: Crash when using Insert mode completion.
Solution: Avoid going past the end of pum_array. (idea by Francisco Lopes)
Files: src/popupmnu.c
Patch 7.4.073
Problem: Setting undolevels for one buffer changes undo in another.
Solution: Make 'undolevels' a global-local option. (Christian Brabandt)
Files: runtime/doc/options.txt, src/buffer.c, src/option.c, src/option.h
src/structs.h, src/undo.c
Patch 7.4.074
Problem: When undo'ing all changes and creating a new change the undo
structure is incorrect. (Christian Brabandt)
Solution: When deleting the branch starting at the old header, delete the
whole branch, not just the first entry.
Files: src/undo.c
Patch 7.4.075
Problem: Locally setting 'undolevels' is not tested.
Solution: Add a test. (Christian Brabandt)
Files: src/testdir/, src/testdir/test100.ok,
src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
src/testdir/Make_vms.mms, src/testdir/Makefile, src/Makefile
Patch 7.4.076
Problem: "cgn" does not wrap around the end of the file. (Dimitar Dimitrov)
Solution: Restore 'wrapscan' earlier. (Christian Brabandt)
Files: src/search.c
Patch 7.4.077
Problem: DOS installer creates shortcut without a path, resulting in the
current directory to be C:\Windows\system32.
Solution: Use environment variables.
Files: src/dosinst.c
Patch 7.4.078
Problem: MSVC 2013 is not supported.
Solution: Recognize and support MSVC 2013. (Ed Brown)
Files: src/Make_mvc.mak
Patch 7.4.079
Problem: A script cannot detect whether 'hlsearch' highlighting is actually
Solution: Add the "v:hlsearch" variable. (ZyX)
Files: src/eval.c, src/ex_docmd.c,
src/option.c, src/screen.c, src/search.c, src/tag.c, src/vim.h,
src/testdir/, src/testdir/test101.ok,
src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
src/testdir/Make_vms.mms, src/testdir/Makefile
Patch 7.4.080 (after 7.4.079)
Problem: Missing documentation for v:hlsearch.
Solution: Include the right file in the patch.
Files: runtime/doc/eval.txt
Patch 7.4.081 (after 7.4.078)
Problem: Wrong logic when ANALYZE is "yes".
Solution: Use or instead of and. (KF Leong)
Files: src/Make_mvc.mak
Patch 7.4.082
Problem: Using "gf" in a changed buffer suggests adding "!", which is not
possible. (Tim Chase)
Solution: Pass a flag to check_changed() whether adding ! make sense.
Files: src/vim.h, src/ex_cmds2.c, src/proto/, src/globals.h,
src/ex_cmds.c, src/ex_docmd.c
Patch 7.4.083
Problem: It's hard to avoid adding a used pattern to the search history.
Solution: Add the ":keeppatterns" modifier. (Christian Brabandt)
Files: runtime/doc/cmdline.txt, src/ex_cmds.h, src/ex_docmd.c,
src/ex_getln.c, src/structs.h
Patch 7.4.084
Problem: Python: interrupt not being properly discarded. (Yggdroot Chen)
Solution: Discard interrupt in VimTryEnd. (ZyX)
Files: src/if_py_both.h, src/testdir/, src/testdir/test86.ok,
src/testdir/, src/testdir/test87.ok
Patch 7.4.085
Problem: When inserting text in Visual block mode and moving the cursor the
wrong text gets repeated in other lines.
Solution: Use the '[ mark to find the start of the actually inserted text.
(Christian Brabandt)
Files: src/ops.c, src/testdir/, src/testdir/test39.ok
Patch 7.4.086
Problem: Skipping over an expression when not evaluating it does not work
properly for dict members.
Solution: Skip over unrecognized expression. (ZyX)
Files: src/eval.c, src/testdir/, src/testdir/test34.ok
Patch 7.4.087
Problem: Compiler warning on 64 bit Windows systems.
Solution: Fix type cast. (Mike Williams)
Files: src/ops.c
Patch 7.4.088
Problem: When spell checking is enabled Asian characters are always marked
as error.
Solution: When 'spelllang' contains "cjk" do not mark Asian characters as
error. (Ken Takata)
Files: runtime/doc/options.txt, runtime/doc/spell.txt, src/mbyte.c,
src/option.c, src/spell.c, src/structs.h
Patch 7.4.089
Problem: When editing a file in a directory mounted through sshfs Vim
doesn't set the security context on a renamed file.
Solution: Add mch_copy_sec() to vim_rename(). (Peter Backes)
Files: src/fileio.c
Patch 7.4.090
Problem: Win32: When a directory name contains an exclamation mark,
completion doesn't complete the contents of the directory.
Solution: Escape the exclamation mark. (Jan Stocker)
Files: src/ex_getln.c, src/testdir/, src/testdir/test102.ok,
src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
src/testdir/Make_vms.mms, src/testdir/Makefile
Patch 7.4.091 (after 7.4.089)
Problem: Missing semicolon.
Solution: Add the semicolon.
Files: src/fileio.c
Patch 7.4.092 (after 7.4.088)
Problem: Can't build small version.
Solution: Add #ifdef where the b_cjk flag is used. (Ken Takata)
Files: src/spell.c
Patch 7.4.093
Problem: Configure can't use LuaJIT on ubuntu 12.04.
Solution: Adjust the configure regexp that locates the version number.
(Charles Strahan)
Files: src/, src/auto/configure
Patch 7.4.094
Problem: Configure may not find that -lint is needed for gettext().
Solution: Check for gettext() with empty $LIBS. (Thomas De Schampheleire)
Files: src/, src/auto/configure
Patch 7.4.095 (after 7.4.093)
Problem: Regexp for LuaJIT version doesn't work on BSD.
Solution: Use "*" instead of "\+" and "\?". (Ozaki Kiichi)
Files: src/, src/auto/configure
Patch 7.4.096
Problem: Can't change directory to an UNC path.
Solution: Use win32_getattrs() in mch_getperm(). (Christian Brabandt)
Files: src/os_win32.c
Patch 7.4.097 (after 7.4.034)
Problem: Unexpected behavior change related to 'virtualedit'. (Ingo Karkat)
Solution: Update the valid cursor position. (Christian Brabandt)
Files: src/ops.c
Patch 7.4.098
Problem: When using ":'<,'>del" errors may be given for the visual line
numbers being out of range.
Solution: Reset Visual mode in ":del". (Lech Lorens)
Files: src/ex_docmd.c, src/testdir/, src/testdir/test103.ok,
src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
src/testdir/Make_vms.mms, src/testdir/Makefile
Patch 7.4.099
Problem: Append in blockwise Visual mode with "$" is wrong.
Solution: After "$" don't use the code that checks if the cursor was moved.
(Hirohito Higashi, Ken Takata)
Files: src/ops.c, src/testdir/, src/testdir/test39.ok
Patch 7.4.100
Problem: NFA regexp doesn't handle backreference correctly. (Ryuichi
Hayashida, Urtica Dioica)
Solution: Always add NFA_SKIP, also when it already exists at the start
Files: src/regexp_nfa.c, src/testdir/, src/testdir/test64.ok
Patch 7.4.101
Problem: Using \1 in pattern goes one line too far. (Bohr Shaw, John Little)
Solution: Only advance the match end for the matched characters in the last
Files: src/regexp.c, src/testdir/, src/testdir/test64.ok
Patch 7.4.102
Problem: Crash when interrupting "z=".
Solution: Add safety check for word length. (Christian Brabandt, Dominique
Files: src/spell.c
Patch 7.4.103
Problem: Dos installer uses an old way to escape spaces in the diff
Solution: Adjust the quoting to the new default shellxquote. (Ben Fritz)
Files: src/dosinst.c
Patch 7.4.104
Problem: ":help s/\_" reports an internal error. (John Beckett)
Solution: Check for NUL and invalid character classes.
Files: src/regexp_nfa.c
Patch 7.4.105
Problem: Completing a tag pattern may give an error for invalid pattern.
Solution: Suppress the error, just return no matches.
Files: src/tag.c
Patch 7.4.106
Problem: Can't build with Ruby using Cygwin.
Solution: Fix library name in makefile. (Steve Hall)
Files: src/Make_cyg.mak
Patch 7.4.107
Problem: Python: When vim.eval() encounters a Vim error, a try/catch in the
Python code doesn't catch it. (Yggdroot Chen)
Solution: Throw exceptions on errors in vim.eval(). (ZyX)
Files: src/ex_eval.c, src/if_py_both.h, src/proto/,
src/testdir/, src/testdir/test86.ok,
src/testdir/, src/testdir/test87.ok
Patch 7.4.108
Problem: "zG" and "zW" leave temp files around on MS-Windows.
Solution: Delete the temp files when exiting. (Ken Takata)
Files: src/memline.c, src/proto/, src/spell.c
Patch 7.4.109
Problem: ColorScheme autocommand matches with the current buffer name.
Solution: Match with the colorscheme name. (Christian Brabandt)
Files: runtime/doc/autocmd.txt, src/fileio.c, src/syntax.c
Patch 7.4.110
Problem: "gUgn" cannot be repeated. (Dimitar Dimitrov)
Solution: Don't put "gn" in a different order in the redo buffer. Restore
'wrapscan' when the pattern isn't found. (Christian Wellenbrock)
Files: src/normal.c, src/search.c, src/, src/test53.ok
Patch 7.4.111
Problem: Memory leak in Python OptionsAssItem. (Ken Takata)
Solution: Call Py_XDECREF() where needed. (ZyX)
Files: src/if_py_both.h
Patch 7.4.112
Problem: The defaults for 'directory' and 'backupdir' on MS-Windows do not
include a directory that exists.
Solution: Use $TEMP.
Files: src/os_dos.h
Patch 7.4.113
Problem: MSVC static analysis gives warnings.
Solution: Avoid the warnings and avoid possible bugs. (Ken Takata)
Files: src/os_win32.c
Patch 7.4.114
Problem: New GNU make outputs messages about changing directory in another
Solution: Recognize the new format.
Files: src/option.h
Patch 7.4.115
Problem: When using Zsh expanding ~abc doesn't work when the result
contains a space.
Solution: Off-by-one error in detecting the NUL. (Pavol Juhas)
Files: src/os_unix.c
Patch 7.4.116
Problem: When a mapping starts with a space, the typed space does not show
up for 'showcmd'.
Solution: Show "<20>". (Brook Hong)
Files: src/normal.c
Patch 7.4.117
Problem: Can't build with Cygwin/MingW and Perl 5.18.
Solution: Add a linker argument for the Perl library. (Cesar Romani)
Adjust CFLAGS and LIB. (Cesar Romani)
Move including inline.h further down. (Ken Takata)
Files: src/Make_cyg.mak, src/Make_ming.mak, src/if_perl.xs
Patch 7.4.118
Problem: It's possible that redrawing the status lines causes
win_redr_custom() to be called recursively.
Solution: Protect against recursiveness. (Yasuhiro Matsumoto)
Files: src/screen.c
Patch 7.4.119
Problem: Vim doesn't work well on OpenVMS.
Solution: Fix various problems. (Samuel Ferencik)
Files: src/os_unix.c, src/os_unix.h, src/os_vms.c
Patch 7.4.120 (after 7.4.117)
Problem: Can't build with Perl 5.18 on Linux. (Lcd 47)
Solution: Add #ifdef. (Ken Takata)
Files: src/if_perl.xs
Patch 7.4.121
Problem: Completion doesn't work for ":py3d" and ":py3f". (Bohr Shaw)
Solution: Skip over letters after ":py3".
Files: src/ex_docmd.c
Patch 7.4.122
Problem: Win32: When 'encoding' is set to "utf-8" and the active codepage
is cp932 then ":grep" and other commands don't work for multi-byte
Solution: (Yasuhiro Matsumoto)
Files: src/os_win32.c
Patch 7.4.123
Problem: Win32: Getting user name does not use wide function.
Solution: Use GetUserNameW() if possible. (Ken Takata)
Files: src/os_win32.c
Patch 7.4.124
Problem: Win32: Getting host name does not use wide function.
Solution: Use GetComputerNameW() if possible. (Ken Takata)
Files: src/os_win32.c
Patch 7.4.125
Problem: Win32: Dealing with messages may not work for multi-byte chars.
Solution: Use pDispatchMessage(). (Ken Takata)
Files: src/os_win32.c
Patch 7.4.126
Problem: Compiler warnings for "const" and incompatible types.
Solution: Remove "const", add type cast. (Ken Takata)
Files: src/os_win32.c
Patch 7.4.127
Problem: Perl 5.18 on Unix doesn't work.
Solution: Move workaround to after including vim.h. (Ken Takata)
Files: src/if_perl.xs
Patch 7.4.128
Problem: Perl 5.18 for MSVC doesn't work.
Solution: Add check in makefile and define __inline. (Ken Takata)
Files: src/Make_mvc.mak, src/if_perl.xs
Patch 7.4.129
Problem: getline(-1) returns zero. (mvxxc)
Solution: Return an empty string.
Files: src/eval.c
Patch 7.4.130
Problem: Relative line numbers mix up windows when using folds.
Solution: Use hasFoldingWin() instead of hasFolding(). (Lech Lorens)
Files: src/misc2.c
Patch 7.4.131
Problem: Syncbind causes E315 errors in some situations. (Liang Li)
Solution: Set and restore curbuf in ex_syncbind(). (Christian Brabandt)
Files: src/ex_docmd.c, src/testdir/test37.ok
Patch 7.4.132 (after 7.4.122)
Problem: Win32: flags and inherit_handles arguments mixed up.
Solution: Swap the argument. (cs86661)
Files: src/os_win32.c
Patch 7.4.133
Problem: Clang warns for using NUL.
Solution: Change NUL to NULL. (Dominique Pelle)
Files: src/eval.c, src/misc2.c
Patch 7.4.134
Problem: Spurious space in MingW Makefile.
Solution: Remove the space. (Michael Soyka)
Files: src/Make_ming.mak
Patch 7.4.135
Problem: Missing dot in MingW test Makefile.
Solution: Add the dot. (Michael Soyka)
Files: src/testdir/Make_ming.mak
Patch 7.4.136 (after 7.4.096)
Problem: MS-Windows: When saving a file with a UNC path the file becomes
Solution: Don't mix up Win32 attributes and Unix attributes. (Ken Takata)
Files: src/os_mswin.c, src/os_win32.c
Patch 7.4.137
Problem: Cannot use IME with Windows 8 console.
Solution: Change the user of ReadConsoleInput() and PeekConsoleInput().
(Nobuhiro Takasaki)
Files: src/os_win32.c
Patch 7.4.138 (after 7.4.114)
Problem: Directory change messages are not recognized.
Solution: Fix using a character range literally. (Lech Lorens)
Files: src/option.h
Patch 7.4.139
Problem: Crash when using :cd in autocommand. (François Ingelrest)
Solution: Set w_localdir to NULL after freeing it. (Dominique Pelle)
Files: src/ex_docmd.c, src/window.c
Patch 7.4.140
Problem: Crash when wiping out buffer triggers autocommand that wipes out
only other buffer.
Solution: Do not delete the last buffer, make it empty. (Hirohito Higashi)
Files: src/buffer.c
Patch 7.4.141
Problem: Problems when building with Borland: st_mode is signed short;
can't build with Python; temp files not ignored by Mercurial;
building with DEBUG doesn't define _DEBUG.
Solution: Fix the problems. (Ken Takata)
Files: src/Make_bc5.mak, src/if_py_both.h, src/os_win32.c
Patch 7.4.142 (after 7.4.137)
Problem: On MS-Windows 8 IME input doesn't work correctly.
Solution: Work around the problem. (Nobuhiro Takasaki)
Files: src/os_win32.c
Patch 7.4.143
Problem: TextChangedI is not triggered.
Solution: Reverse check for "ready". (lilydjwg)
Files: src/edit.c
Patch 7.4.144
Problem: MingW also supports intptr_t for OPEN_OH_ARGTYPE.
Solution: Adjust #ifdef. (Ken Takata)
Files: src/os_mswin.c
Patch 7.4.145
Problem: getregtype() does not return zero for unknown register.
Solution: Adjust documentation: return empty string for unknown register.
Check the register name to be valid. (Yukihiro Nakadaira)
Files: runtime/doc/eval.txt, src/ops.c
Patch 7.4.146
Problem: When starting Vim with "-u NONE" v:oldfiles is NULL.
Solution: Set v:oldfiles to an empty list. (Yasuhiro Matsumoto)
Files: src/main.c
Patch 7.4.147
Problem: Cursor moves to wrong position when using "gj" after "$" and
virtual editing is active.
Solution: Make "gj" behave differently when virtual editing is active.
(Hirohito Higashi)
Files: src/normal.c, src/testdir/, src/testdir/test39.ok
Patch 7.4.148
Problem: Cannot build with Cygwin and X11.
Solution: Include Xwindows.h instead of windows.h. (Lech Lorens)
Files: src/mbyte.c
Patch 7.4.149
Problem: Get E685 error when assigning a function to an autoload variable.
(Yukihiro Nakadaira)
Solution: Instead of having a global no_autoload variable, pass an autoload
flag down to where it is used. (ZyX)
Files: src/eval.c, src/testdir/, src/testdir/test55.ok,
src/testdir/, src/testdir/test60.ok,
Patch 7.4.150
Problem: :keeppatterns is not respected for :s.
Solution: Check the keeppatterns flag. (Yasuhiro Matsumoto)
Files: src/search.c, src/testdir/, src/testdir/test14.ok
Patch 7.4.151
Problem: Python: slices with steps are not supported.
Solution: Support slices in Python vim.List. (ZyX)
Files: src/eval.c, src/if_py_both.h, src/if_python3.c, src/if_python.c,
src/proto/, src/testdir/, src/testdir/test86.ok,
src/testdir/, src/testdir/test87.ok
Patch 7.4.152
Problem: Python: Cannot iterate over options.
Solution: Add options iterator. (ZyX)
Files: src/if_py_both.h, src/option.c, src/proto/,
src/testdir/, src/testdir/test86.ok,
src/testdir/, src/testdir/test87.ok, src/vim.h
Patch 7.4.153
Problem: Compiler warning for pointer type.
Solution: Add type cast.
Files: src/if_py_both.h, src/if_python.c, src/if_python3.c
Patch 7.4.154 (after 7.4.149)
Problem: Still a problem with auto-loading.
Solution: Pass no_autoload to deref_func_name(). (Yukihiro Nakadaira)
Files: src/eval.c
Patch 7.4.155
Problem: ":keeppatterns /pat" does not keep search pattern offset.
Solution: Restore the offset after doing the search.
Files: src/search.c, src/testdir/, src/testdir/test14.ok
Patch 7.4.156
Problem: Test file missing from distribution.
Solution: Add new directory to file list.
Files: Filelist
Patch 7.4.157
Problem: Error number used twice. (Yukihiro Nakadaira)
Solution: Change the one not referred in the docs.
Files: src/undo.c
Patch 7.4.158 (after 7.4.045)
Problem: Pattern containing \zs is not handled correctly by substitute().
Solution: Change how an empty match is skipped. (Yukihiro Nakadaira)
Files: src/eval.c, src/testdir/, src/testdir/test80.ok
Patch 7.4.159
Problem: Completion hangs when scanning the current buffer after doing
keywords. (Christian Brabandt)
Solution: Set the first match position when starting to scan the current
Files: src/edit.c
Patch 7.4.160
Problem: Win32: Crash when executing external command.
Solution: Only close the handle when it was created. (Yasuhiro Matsumoto)
Files: src/os_win32.c
Patch 7.4.161
Problem: Crash in Python exception handling.
Solution: Only use exception variables if did_throw is set. (ZyX)
Files: if_py_both.h
Patch 7.4.162
Problem: Running tests in shadow dir doesn't work.
Solution: Add testdir/sautest to the shadow target. (James McCoy)
Files: src/Makefile
Patch 7.4.163 (after 7.4.142)
Problem: MS-Windows input doesn't work properly on Windows 7 and earlier.
Solution: Add a check for Windows 8. (Yasuhiro Matsumoto)
Files: src/os_win32.c
Patch 7.4.164 (after 7.4.163)
Problem: Problem with event handling on Windows 8.
Solution: Ignore duplicate WINDOW_BUFFER_SIZE_EVENTs. (Nobuhiro Takasaki)
Files: src/os_win32.c
Patch 7.4.165
Problem: By default, after closing a buffer changes can't be undone.
Solution: In the example vimrc file set 'undofile'.
Files: runtime/vimrc_example.vim
Patch 7.4.166
Problem: Auto-loading a function for code that won't be executed.
Solution: Do not auto-load when evaluation is off. (Yasuhiro Matsumoto)
Files: src/eval.c
Patch 7.4.167 (after 7.4.149)
Problem: Fixes are not tested.
Solution: Add a test for not autoloading on assignment. (Yukihiro Nakadaira)
Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
src/testdir/Make_vms.mms, src/testdir/Makefile,
src/testdir/sautest/autoload/Test104.vim, src/testdir/,
Patch 7.4.168
Problem: Can't compile with Ruby 2.1.0.
Solution: Add support for new GC. (Kohei Suzuki)
Files: src/if_ruby.c
Patch 7.4.169
Problem: ":sleep" puts cursor in the wrong column. (Liang Li)
Solution: Add the window offset. (Christian Brabandt)
Files: src/ex_docmd.c
Patch 7.4.170
Problem: Some help tags don't work with ":help". (Tim Chase)
Solution: Add exceptions.
Files: src/ex_cmds.c
Patch 7.4.171
Problem: Redo does not set v:count and v:count1.
Solution: Use a separate buffer for redo, so that we can set the counts when
performing redo.
Files: src/getchar.c, src/globals.h, src/normal.c, src/proto/,
Patch 7.4.172
Problem: The blowfish code mentions output feedback, but the code is
actually doing cipher feedback.
Solution: Adjust names and comments.
Files: src/blowfish.c, src/fileio.c, src/proto/,
Patch 7.4.173
Problem: When using scrollbind the cursor can end up below the last line.
Solution: Reset w_botfill when scrolling up. (Christian Brabandt)
Files: src/move.c
Patch 7.4.174
Problem: Compiler warnings for Python interface. (Tony Mechelynck)
Solution: Add type casts, initialize variable.
Files: src/if_py_both.h
Patch 7.4.175
Problem: When a wide library function fails, falling back to the non-wide
function may do the wrong thing.
Solution: Check the platform, when the wide function is supported don't fall
back to the non-wide function. (Ken Takata)
Files: src/os_mswin.c, src/os_win32.c
Patch 7.4.176
Problem: Dictionary.update() throws an error when used without arguments.
Python programmers don't expect that.
Solution: Make Dictionary.update() without arguments do nothing. (ZyX)
Files: src/if_py_both.h, src/testdir/, src/testdir/
Patch 7.4.177
Problem: Compiler warning for unused variable. (Tony Mechelynck)
Solution: Add #ifdef.
Files: src/move.c
Patch 7.4.178
Problem: The J command does not update '[ and '] marks. (William Gardner)
Solution: Set the marks. (Christian Brabandt)
Files: src/ops.c
Patch 7.4.179
Problem: Warning for type-punned pointer. (Tony Mechelynck)
Solution: Use intermediate variable.
Files: src/if_py_both.h
Patch 7.4.180 (after 7.4.174)
Problem: Older Python versions don't support %ld.
Solution: Use %d instead. (ZyX)
Files: src/if_py_both.h
Patch 7.4.181
Problem: When using 'pastetoggle' the status lines are not updated. (Samuel
Ferencik, Jan Christoph Ebersbach)
Solution: Update the status lines. (Nobuhiro Takasaki)
Files: src/getchar.c
Patch 7.4.182
Problem: Building with mzscheme and racket does not work. (David Chimay)
Solution: Adjust autoconf. (Sergey Khorev)
Files: src/, src/auto/configure
Patch 7.4.183
Problem: MSVC Visual Studio update not supported.
Solution: Add version number. (Mike Williams)
Files: src/Make_mvc.mak
Patch 7.4.184
Problem: match() does not work properly with a {count} argument.
Solution: Compute the length once and update it. Quit the loop when at the
end. (Hirohito Higashi)
Files: src/eval.c, src/testdir/, src/testdir/test53.ok
Patch 7.4.185
Problem: Clang gives warnings.
Solution: Adjust how bigness is set. (Dominique Pelle)
Files: src/ex_cmds.c
Patch 7.4.186 (after 7.4.085)
Problem: Insert in Visual mode sometimes gives incorrect results.
(Dominique Pelle)
Solution: Remember the original insert start position. (Christian Brabandt,
Dominique Pelle)
Files: src/edit.c, src/globals.h, src/ops.c, src/structs.h
Patch 7.4.187
Problem: Delete that crosses line break splits multi-byte character.
Solution: Advance a character instead of a byte. (Cade Foster)
Files: src/normal.c, src/testdir/, src/testdir/test69.ok
Patch 7.4.188
Problem: SIZEOF_LONG clashes with similar defines in header files.
Solution: Rename to a name starting with VIM_. Also for SIZEOF_INT.
Files: src/if_ruby.c, src/vim.h, src/, src/auto/configure,
src/, src/fileio.c, src/if_python.c, src/message.c,
src/spell.c, src/feature.h, src/os_os2_cfg.h, src/os_vms_conf.h,
src/os_win16.h, src/structs.h
Patch 7.4.189
Problem: Compiler warning for unused argument.
Solution: Add UNUSED.
Files: src/eval.c
Patch 7.4.190
Problem: Compiler warning for using %lld for off_t.
Solution: Add type cast.
Files: src/fileio.c
Patch 7.4.191
Problem: Escaping a file name for shell commands can't be done without a
Solution: Add the :S file name modifier.
Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
src/testdir/Make_vms.mms, src/testdir/Makefile,
src/testdir/, src/testdir/test105.ok,
runtime/doc/cmdline.txt, runtime/doc/eval.txt,
runtime/doc/map.txt, runtime/doc/options.txt,
runtime/doc/quickfix.txt, runtime/doc/usr_30.txt,
runtime/doc/usr_40.txt, runtime/doc/usr_42.txt,
runtime/doc/vi_diff.txt, src/eval.c, src/misc2.c, src/normal.c,
Patch 7.4.192
Problem: Memory leak when giving E853.
Solution: Free the argument. (Dominique Pelle)
Files: src/eval.c
Patch 7.4.193
Problem: Typos in messages.
Solution: "then" -> "than". (Dominique Pelle)
Files: src/if_py_both.h, src/spell.c
Patch 7.4.194
Problem: Can't build for Android.
Solution: Add #if condition. (Fredrik Fornwall)
Files: src/mbyte.c
Patch 7.4.195 (after 7.4.193)
Problem: Python tests fail.
Solution: Change "then" to "than" in more places. (Dominique Pelle, Taro
Files: src/testdir/, src/testdir/test86.ok,
src/testdir/, src/testdir/test87.ok
Patch 7.4.196
Problem: Tests fail on Solaris 9 and 10.
Solution: Use "test -f" instead of "test -e". (Laurent Blume)
Files: src/testdir/Makefile
Patch 7.4.197
Problem: Various problems on VMS.
Solution: Fix several VMS problems. (Zoltan Arpadffy)
Files: runtime/doc/os_vms.txt, src/Make_vms.mms, src/fileio.c,
src/os_unix.c, src/os_unix.h, src/os_vms.c, src/os_vms_conf.h,
src/proto/, src/testdir/Make_vms.mms,
src/testdir/, src/testdir/,
src/testdir/, src/testdir/test77a.ok src/undo.c
Patch 7.4.198
Problem: Can't build Vim with Perl when -Dusethreads is not specified for
building Perl, and building Vim with --enable-perlinterp=dynamic.
Solution: Adjust #ifdefs. (Yasuhiro Matsumoto)
Files: src/if_perl.xs
Patch 7.4.199
Problem: (issue 197) ]P doesn't paste over Visual selection.
Solution: Handle Visual mode specifically. (Christian Brabandt)
Files: src/normal.c
Patch 7.4.200
Problem: Too many #ifdefs in the code.
Solution: Enable FEAT_VISUAL always, await any complaints
Files: src/feature.h
Patch 7.4.201
Problem: 'lispwords' is a global option.
Solution: Make 'lispwords' global-local. (Sung Pae)
Files: runtime/doc/options.txt, runtime/optwin.vim, src/buffer.c,
src/misc1.c, src/option.c, src/option.h, src/structs.h,
src/testdir/, src/testdir/test100.ok
Patch 7.4.202
Problem: MS-Windows: non-ASCII font names don't work.
Solution: Convert between the current code page and 'encoding'. (Ken Takata)
Files: src/gui_w48.c, src/os_mswin.c, src/proto/,
Patch 7.4.203
Problem: Parsing 'errorformat' is not correct.
Solution: Reset "multiignore" at the start of a multi-line message. (Lcd)
Files: src/quickfix.c, src/testdir/Make_amiga.mak,
src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
src/testdir/Makefile, src/testdir/,
Patch 7.4.204
Problem: A mapping where the second byte is 0x80 doesn't work.
Solution: Unescape before checking for incomplete multi-byte char. (Nobuhiro
Files: src/getchar.c, src/testdir/, src/testdir/test75.ok
Patch 7.4.205
Problem: ":mksession" writes command to move to second argument while it
does not exist. When it does exist the order might be wrong.
Solution: Use ":argadd" for each argument instead of using ":args" with a
list of names. (Nobuhiro Takasaki)
Files: src/ex_docmd.c
Patch 7.4.206
Problem: Compiler warnings on 64 bit Windows.
Solution: Add type casts. (Mike Williams)
Files: src/gui_w48.c, src/os_mswin.c
Patch 7.4.207
Problem: The cursor report sequence is sometimes not recognized and results
in entering replace mode.
Solution: Also check for the cursor report when not asked for.
Files: src/term.c
Patch 7.4.208
Problem: Mercurial picks up some files that are not distributed.
Solution: Add patterns to the ignore list. (Cade Forester)
Files: .hgignore
Patch 7.4.209
Problem: When repeating a filter command "%" and "#" are expanded.
Solution: Escape the command when storing for redo. (Christian Brabandt)
Files: src/ex_cmds.c
Patch 7.4.210
Problem: Visual block mode plus virtual edit doesn't work well with tabs.
(Liang Li)
Solution: Take coladd into account. (Christian Brabandt)
Files: src/ops.c, src/testdir/, src/testdir/test39.ok
Patch 7.4.211
Problem: ":lu" is an abbreviation for ":lua", but it should be ":lunmap".
Solution: Move "lunmap" to above "lua".
Files: src/ex_cmds.h
Patch 7.4.212 (after 7.4.200)
Problem: Now that the +visual feature is always enabled the #ifdefs for it
are not useful.
Solution: Remove the checks for FEAT_VISUAL.
Files: src/buffer.c, src/charset.c, src/edit.c, src/eval.c,
src/ex_cmds.c, src/ex_docmd.c, src/fold.c, src/getchar.c,
src/gui.c, src/gui_mac.c, src/gui_w48.c, src/main.c, src/mark.c,
src/menu.c, src/misc2.c, src/move.c, src/netbeans.c, src/normal.c,
src/ops.c, src/option.c, src/os_msdos.c, src/os_qnx.c,
src/quickfix.c, src/regexp.c, src/regexp_nfa.c, src/screen.c,
src/search.c, src/spell.c, src/syntax.c, src/term.c, src/ui.c,
src/undo.c, src/version.c, src/window.c, src/feature.h,
src/globals.h, src/option.h, src/os_win32.h, src/structs.h
Patch 7.4.213
Problem: It's not possible to open a new buffer without creating a swap
Solution: Add the ":noswapfile" modifier. (Christian Brabandt)
Files: runtime/doc/recover.txt, src/ex_cmds.h, src/ex_docmd.c,
src/memline.c, src/structs.h
Patch 7.4.214
Problem: Compilation problems on HP_nonStop (Tandem).
Solution: Add #defines. (Joachim Schmitz)
Files: src/vim.h
Patch 7.4.215
Problem: Inconsistency: ":sp foo" does not reload "foo", unless "foo" is
the current buffer. (Liang Li)
Solution: Do not reload the current buffer on a split command.
Files: runtime/doc/windows.txt, src/ex_docmd.c
Patch 7.4.216
Problem: Compiler warnings. (Tony Mechelynck)
Solution: Initialize variables, add #ifdef.
Files: src/term.c, src/os_unix.h
Patch 7.4.217
Problem: When src/auto/configure was updated, "make clean" would run
configure pointlessly.
Solution: Do not run configure for "make clean" and "make distclean" when
the make program supports $MAKECMDGOALS. (Ken Takata)
Files: src/Makefile
Patch 7.4.218
Problem: It's not easy to remove duplicates from a list.
Solution: Add the uniq() function. (Lcd)
Files: runtime/doc/change.txt, runtime/doc/eval.txt,
runtime/doc/usr_41.txt, runtime/doc/version7.txt, src/eval.c,
src/testdir/, src/testdir/test55.ok
Patch 7.4.219
Problem: When 'relativenumber' or 'cursorline' are set the window is
redrawn much to often. (Patrick Hemmer, Dominique Pelle)
Solution: Check the VALID_CROW flag instead of VALID_WROW.
Files: src/move.c
Patch 7.4.220
Problem: Test 105 does not work in a shadow dir. (James McCoy)
Solution: Omit "src/" from the checked path.
Files: src/testdir/, src/testdir/test105.ok
Patch 7.4.221
Problem: Quickfix doesn't resize on ":copen 20". (issue 199)
Solution: Resize the window when requested. (Christian Brabandt)
Files: src/quickfix.c
Patch 7.4.222
Problem: The Ruby directory is constructed from parts.
Solution: Use 'rubyarchhdrdir' if it exists. (James McCoy)
Files: src/, src/auto/configure
Patch 7.4.223
Problem: Still using an older autoconf version.
Solution: Switch to autoconf 2.69.
Files: src/Makefile, src/, src/auto/configure
Patch 7.4.224
Problem: /usr/bin/grep on Solaris does not support -F.
Solution: Add configure check to find a good grep. (Danek Duvall)
Files: src/, src/auto/configure
Patch 7.4.225
Problem: Dynamic Ruby doesn't work on Solaris.
Solution: Always use the stubs. (Danek Duvall, Yukihiro Nakadaira)
Files: src/if_ruby.c
Patch 7.4.226 (after 7.4.219)
Problem: Cursurline highlighting not redrawn when scrolling. (John
Solution: Check for required redraw in two places.
Files: src/move.c
Patch 7.4.227 (after 7.4.225)
Problem: Can't build with Ruby 1.8.
Solution: Do include a check for the Ruby version. (Ken Takata)
Files: src/if_ruby.c
Patch 7.4.228
Problem: Compiler warnings when building with Python 3.2.
Solution: Make type cast depend on Python version. (Ken Takata)
Files: src/if_py_both.h, src/if_python.c, src/if_python3.c
Patch 7.4.229
Problem: Using ":let" for listing variables and the second one is a curly
braces expression may fail.
Solution: Check for an "=" in a better way. (ZyX)
Files: src/eval.c, src/testdir/, src/testdir/test104.ok
Patch 7.4.230
Problem: Error when using ":options".
Solution: Fix the entry for 'lispwords'. (Kenichi Ito)
Files: runtime/optwin.vim
Patch 7.4.231
Problem: An error in ":options" is not caught by the tests.
Solution: Add a test for ":options". Set $VIMRUNTIME for the tests so that
it uses the current runtime files instead of the installed ones.
Files: src/Makefile, src/testdir/Makefile, src/testdir/,
src/testdir/test_options.ok, src/testdir/Make_amiga.mak,
src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
src/testdir/Make_os2.mak, src/testdir/Make_vms.mms
Patch 7.4.232
Problem: ":%s/\n//" uses a lot of memory. (Aidan Marlin)
Solution: Turn this into a join command. (Christian Brabandt)
Files: src/ex_cmds.c, src/ex_docmd.c, src/proto/
Patch 7.4.233
Problem: Escaping special characters for using "%" with a shell command is
inconsistent, parentheses are escaped but spaces are not.
Solution: Only escape "!". (Gary Johnson)
Files: src/ex_docmd.c
Patch 7.4.234
Problem: Can't get the command that was used to start Vim.
Solution: Add v:progpath. (Viktor Kojouharov)
Files: runtime/doc/eval.txt, src/eval.c, src/main.c, src/vim.h
Patch 7.4.235
Problem: It is not easy to get the full path of a command.
Solution: Add the exepath() function.
Files: src/eval.c, src/misc1.c, src/os_amiga.c, src/os_msdos.c,
src/os_unix.c, src/os_vms.c, src/os_win32.c,
src/proto/, src/proto/,
src/proto/, src/proto/,
Patch 7.4.236
Problem: It's not that easy to check the Vim patch version.
Solution: Make has("patch-7.4.123") work. (partly by Marc Weber)
Files: runtime/doc/eval.txt, src/eval.c, src/testdir/,
Patch 7.4.237 (after 7.4.236)
Problem: When some patches was not included has("patch-7.4.123") may return
true falsely.
Solution: Check for the specific patch number.
Files: runtime/doc/eval.txt, src/eval.c
Patch 7.4.238
Problem: Vim does not support the smack library.
Solution: Add smack support (Jose Bollo)
Files: src/, src/, src/fileio.c, src/memfile.c,
src/os_unix.c, src/undo.c, src/auto/configure
Patch 7.4.239
Problem: ":e +" does not position cursor at end of the file.
Solution: Check for "+" being the last character (ZyX)
Files: src/ex_docmd.c
Patch 7.4.240
Problem: ":tjump" shows "\n" as "\\n".
Solution: Skip over "\" that escapes a backslash. (Gary Johnson)
Files: src/tag.c
Patch 7.4.241
Problem: The string returned by submatch() does not distinguish between a
NL from a line break and a NL that stands for a NUL character.
Solution: Add a second argument to return a list. (ZyX)
Files: runtime/doc/eval.txt, src/eval.c, src/proto/,
src/regexp.c, src/testdir/, src/testdir/test79.ok,
src/testdir/, src/testdir/test80.ok
Patch 7.4.242
Problem: getreg() does not distinguish between a NL used for a line break
and a NL used for a NUL character.
Solution: Add another argument to return a list. (ZyX)
Files: runtime/doc/eval.txt, src/eval.c src/ops.c, src/proto/,
src/vim.h, src/Makefile, src/testdir/,
src/testdir/test_eval.ok, src/testdir/Make_amiga.mak,
src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
src/testdir/Make_os2.mak, src/testdir/Make_vms.mms
Patch 7.4.243
Problem: Cannot use setreg() to add text that includes a NUL.
Solution: Make setreg() accept a list.
Files: runtime/doc/eval.txt, src/eval.c, src/ops.c, src/proto/,
src/testdir/, src/testdir/test_eval.ok
Patch 7.4.244 (after 7.4.238)
Problem: The smack feature causes stray error messages.
Solution: Remove the error messages.
Files: src/os_unix.c
Patch 7.4.245
Problem: Crash for "vim -u NONE -N -c '&&'".
Solution: Check for the pattern to be NULL. (Dominique Pelle)
Files: src/ex_cmds.c
Patch 7.4.246
Problem: Configure message for detecting smack are out of sequence.
Solution: Put the messages in the right place. (Kazunobu Kuriyama)
Files: src/, src/auto/configure
Patch 7.4.247
Problem: When passing input to system() there is no way to keep NUL and
NL characters separate.
Solution: Optionally use a list for the system() input. (ZyX)
Files: runtime/doc/eval.txt, src/eval.c
Patch 7.4.248
Problem: Cannot distinguish between NL and NUL in output of system().
Solution: Add systemlist(). (ZyX)
Files: runtime/doc/eval.txt, src/eval.c, src/ex_cmds2.c, src/misc1.c,
Patch 7.4.249
Problem: Using setreg() with a list of numbers does not work.
Solution: Use a separate buffer for numbers. (ZyX)
Files: src/eval.c, src/testdir/, src/testdir/test_eval.ok
Patch 7.4.250
Problem: Some test files missing from distribution.
Solution: Add pattern for newly added tests.
Files: Filelist
Patch 7.4.251
Problem: Crash when BufAdd autocommand wipes out the buffer.
Solution: Check for buffer to still be valid. Postpone freeing the buffer
structure. (Hirohito Higashi)
Files: src/buffer.c, src/ex_cmds.c, src/fileio.c, src/globals.h
Patch 7.4.252
Problem: Critical error in GTK, removing timer twice.
Solution: Clear the timer after removing it. (James McCoy)
Files: src/gui_gtk_x11.c
Patch 7.4.253
Problem: Crash when using cpp syntax file with pattern using external
match. (Havard Garnes)
Solution: Discard match when end column is before start column.
Files: src/regexp.c, src/regexp_nfa.c
Patch 7.4.254
Problem: Smack support detection is incomplete.
Solution: Check for attr/xattr.h and specific macro.
Files: src/, src/auto/configure
Patch 7.4.255
Problem: Configure check for smack doesn't work with all shells. (David
Solution: Remove spaces in set command.
Files: src/, src/auto/configure
Patch 7.4.256 (after 7.4.248)
Problem: Using systemlist() may cause a crash and does not handle NUL
characters properly.
Solution: Increase the reference count, allocate memory by length. (Yasuhiro
Files: src/eval.c
Patch 7.4.257
Problem: Compiler warning, possibly for mismatch in parameter name.
Solution: Rename the parameter in the declaration.
Files: src/ops.c
Patch 7.4.258
Problem: Configure fails if $CC contains options.
Solution: Remove quotes around $CC. (Paul Barker)
Files: src/, src/auto/configure
Patch 7.4.259
Problem: Warning for misplaced "const".
Solution: Move the "const". (Yukihiro Nakadaira)
Files: src/os_unix.c
Patch 7.4.260
Problem: It is possible to define a function with a colon in the name. It
is possible to define a function with a lower case character if a
"#" appears after the name.
Solution: Disallow using a colon other than with "s:". Ignore "#" after the
Files: runtime/doc/eval.txt, src/eval.c, src/testdir/,
Patch 7.4.261
Problem: When updating the window involves a regexp pattern, an interactive
substitute to replace a "\n" with a line break fails. (Ingo
Solution: Set reg_line_lbr in vim_regsub() and vim_regsub_multi().
Files: src/regexp.c, src/testdir/, src/testdir/test79.ok
Patch 7.4.262
Problem: Duplicate code in regexec().
Solution: Add line_lbr flag to regexec_nl().
Files: src/regexp.c, src/regexp_nfa.c, src/regexp.h
Patch 7.4.263
Problem: GCC 4.8 compiler warning for hiding a declaration (François Gannaz)
Solution: Remove the second declaration.
Files: src/eval.c
Patch 7.4.264 (after 7.4.260)
Problem: Can't define a function starting with "g:". Can't assign a
funcref to a buffer-local variable.
Solution: Skip "g:" at the start of a function name. Don't check for colons
when assigning to a variable.
Files: src/eval.c, src/testdir/, src/testdir/test_eval.ok
Patch 7.4.265 (after 7.4.260)
Problem: Can't call a global function with "g:" in an expression.
Solution: Skip the "g:" when looking up the function.
Files: src/eval.c, src/testdir/, src/testdir/test_eval.ok
Patch 7.4.266
Problem: Test 62 fails.
Solution: Set the language to C. (Christian Brabandt)
Files: src/testdir/
Patch 7.4.267 (after 7.4.178)
Problem: The '[ mark is in the wrong position after "gq". (Ingo Karkat)
Solution: Add the setmark argument to do_join(). (Christian Brabandt)
Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
src/testdir/Make_vms.mms, src/testdir/Makefile,
src/testdir/test_autoformat_join.ok, src/Makefile, src/edit.c,
src/ex_cmds.c, src/ex_docmd.c, src/normal.c, src/ops.c,
Patch 7.4.268
Problem: Using exists() on a funcref for a script-local function does not
Solution: Translate <SNR> to the special byte sequence. Add a test.
Files: src/eval.c, src/testdir/, src/testdir/test_eval.ok,
src/testdir/test_eval_func.vim, Filelist
Patch 7.4.269
Problem: CTRL-U in Insert mode does not work after using a cursor key.
(Pine Wu)
Solution: Use the original insert start position. (Christian Brabandt)
Files: src/edit.c, src/testdir/, src/testdir/test29.ok
Patch 7.4.270
Problem: Comparing pointers instead of the string they point to.
Solution: Use strcmp(). (Ken Takata)
Files: src/gui_gtk_x11.c
Patch 7.4.271
Problem: Compiler warning on 64 bit windows.
Solution: Add type cast. (Mike Williams)
Files: src/ops.c
Patch 7.4.272
Problem: Using just "$" does not cause an error message.
Solution: Check for empty environment variable name. (Christian Brabandt)
Files: src/eval.c, src/testdir/, src/testdir/test_eval.ok
Patch 7.4.273
Problem: "make autoconf" and "make reconfig" may first run configure and
then remove the output.
Solution: Add these targets to the exceptions. (Ken Takata)
Files: src/Makefile
Patch 7.4.274
Problem: When doing ":update" just before running an external command that
changes the file, the timestamp may be unchanged and the file
is not reloaded.
Solution: Also check the file size.
Files: src/fileio.c
Patch 7.4.275
Problem: When changing the type of a sign that hasn't been placed there is
no error message.
Solution: Add an error message. (Christian Brabandt)
Files: src/ex_cmds.c
Patch 7.4.276
Problem: The fish shell is not supported.
Solution: Use begin/end instead of () for fish. (Andy Russell)
Files: src/ex_cmds.c, src/misc1.c, src/option.c, src/proto/
Patch 7.4.277
Problem: Using ":sign unplace *" may leave the cursor in the wrong position
(Christian Brabandt)
Solution: Update the cursor position when removing all signs.
Files: src/buffer.c
Patch 7.4.278
Problem: list_remove() conflicts with function defined in Sun header file.
Solution: Rename the function. (Richard Palo)
Files: src/eval.c, src/if_lua.c, src/if_py_both.h, src/proto/
Patch 7.4.279
Problem: globpath() returns a string, making it difficult to get a list of
matches. (Greg Novack)
Solution: Add an optional argument like with glob(). (Adnan Zafar)
Files: runtime/doc/eval.txt, src/eval.c, src/ex_getln.c, src/misc1.c,
src/misc2.c, src/proto/, src/proto/,
src/testdir/, src/testdir/test97.ok
Patch 7.4.280
Problem: When using a session file the relative position of the cursor is
not restored if there is another tab. (Nobuhiro Takasaki)
Solution: Update w_wrow before calculating the fraction.
Files: src/window.c
Patch 7.4.281
Problem: When a session file has more than one tabpage and 'showtabline' is
one the positions may be slightly off.
Solution: Set 'showtabline' to two while positioning windows.
Files: src/ex_docmd.c
Patch 7.4.282 (after 7.4.279)
Problem: Test 97 fails on Mac.
Solution: Do not ignore case in file names. (Jun Takimoto)
Files: src/testdir/
Patch 7.4.283 (after 7.4.276)
Problem: Compiler warning about unused variable. (Charles Cooper)
Solution: Move the variable inside the #if block.
Files: src/ex_cmds.c
Patch 7.4.284
Problem: Setting 'langmap' in the modeline can cause trouble. E.g. mapping
":" breaks many commands. (Jens-Wolfhard Schicke-Uffmann)
Solution: Disallow setting 'langmap' from the modeline.
Files: src/option.c
Patch 7.4.285
Problem: When 'relativenumber' is set and deleting lines or undoing that,
line numbers are not always updated. (Robert Arkwright)
Solution: (Christian Brabandt)
Files: src/misc1.c
Patch 7.4.286
Problem: Error messages are inconsistent. (ZyX)
Solution: Change "Lists" to "list".
Files: src/eval.c
Patch 7.4.287
Problem: Patches for .hgignore don't work, since the file is not in the
Solution: Add .hgignore to the distribution. Will be effective with the
next version.
Files: Filelist
Patch 7.4.288
Problem: When 'spellfile' is set the screen is not redrawn.
Solution: Redraw when updating the spelling info. (Christian Brabandt)
Files: src/spell.c
Patch 7.4.289
Problem: Pattern with repeated backreference does not match with new regexp
engine. (Urtica Dioica)
Solution: Also check the end of a submatch when deciding to put a state in
the state list.
Files: src/testdir/, src/testdir/test64.ok, src/regexp_nfa.c
Patch 7.4.290
Problem: A non-greedy match followed by a branch is too greedy. (Ingo
Solution: Add NFA_MATCH when it is already in the state list if the position
Files: src/testdir/, src/testdir/test64.ok, src/regexp_nfa.c
Patch 7.4.291
Problem: Compiler warning for int to pointer of different size when DEBUG
is defined.
Solution: use smsg() instead of EMSG3().
Files: src/regexp.c
Patch 7.4.292
Problem: Searching for "a" does not match accented "a" with new regexp
engine, does match with old engine. (David Bürgin)
"ca" does not match "ca" with accented "a" with either engine.
Solution: Change the old engine, check for following composing character
also for single-byte patterns.
Files: src/regexp.c, src/testdir/, src/testdir/test95.ok
Patch 7.4.293
Problem: It is not possible to ignore composing characters at a specific
point in a pattern.
Solution: Add the %C item.
Files: src/regexp.c, src/regexp_nfa.c, src/testdir/,
src/testdir/test95.ok, runtime/doc/pattern.txt
Patch 7.4.294 (7.4.293)
Problem: Test files missing from patch.
Solution: Patch the test files.
Files: src/testdir/, src/testdir/test95.ok
Patch 7.4.295
Problem: Various typos, bad white space and unclear comments.
Solution: Fix typos. Improve white space. Update comments.
Files: src/testdir/, src/macros.h, src/screen.c, src/structs.h,
src/gui_gtk_x11.c, src/os_unix.c
Patch 7.4.296
Problem: Can't run tests on Solaris.
Solution: Change the way VIMRUNTIME is set. (Laurent Blume)
Files: src/testdir/Makefile
Patch 7.4.297
Problem: Memory leak from result of get_isolated_shell_name().
Solution: Free the memory. (Dominique Pelle)
Files: src/ex_cmds.c, src/misc1.c
Patch 7.4.298
Problem: Can't have a funcref start with "t:".
Solution: Add "t" to the list of accepted names. (Yukihiro Nakadaira)
Files: src/eval.c
Patch 7.4.299
Problem: When running configure twice DYNAMIC_PYTHON_DLL may become empty.
Solution: Use AC_CACHE_VAL. (Ken Takata)
Files: src/, src/auto/configure
Patch 7.4.300
Problem: The way config.cache is removed doesn't always work.
Solution: Always remove config.cache. (Ken Takata)
Files: src/Makefile
Patch 7.4.301 (after 7.4.280)
Problem: Still a scrolling problem when loading a session file.
Solution: Fix off-by-one mistake. (Nobuhiro Takasaki)
Files: src/window.c
Patch 7.4.302
Problem: Signs placed with 'foldcolumn' set don't show up after filler
Solution: Take filler lines into account. (Olaf Dabrunz)
Files: src/screen.c
Patch 7.4.303
Problem: When using double-width characters the text displayed on the
command line is sometimes truncated.
Solution: Reset the string length. (Nobuhiro Takasaki)
Files: src/screen.c
Patch 7.4.304
Problem: Cannot always use Python with Vim.
Solution: Add the manifest to the executable. (Jacques Germishuys)
Files: src/Make_mvc.mak
Patch 7.4.305
Problem: Making 'ttymouse' empty after the xterm version was requested
causes problems. (Elijah Griffin)
Solution: Do not check for DEC mouse sequences when the xterm version was
requested. Also don't request the xterm version when DEC mouse
was enabled.
Files: src/term.c, src/os_unix.c, src/proto/, src/globals.h
Patch 7.4.306
Problem: getchar(0) does not return Esc.
Solution: Do not wait for an Esc sequence to be complete. (Yasuhiro
Files: src/eval.c, src/getchar.c
Patch 7.4.307 (after 7.4.305)
Problem: Can't build without the +termresponse feature.
Solution: Add proper #ifdefs.
Files: src/os_unix.c, src/term.c
Patch 7.4.308
Problem: When using ":diffsplit" on an empty file the cursor is displayed
on the command line.
Solution: Limit the value of w_topfill.
Files: src/diff.c
Patch 7.4.309
Problem: When increasing the size of the lower window, the upper window
jumps back to the top. (Ron Aaron)
Solution: Change setting the topline. (Nobuhiro Takasaki)
Files: src/window.c
Patch 7.4.310
Problem: getpos()/setpos() don't include curswant.
Solution: Add a fifth number when getting/setting the cursor.
Files: src/eval.c, src/testdir/, src/testdir/test_eval.ok,
Patch 7.4.311
Problem: Can't use winrestview to only restore part of the view.
Solution: Handle missing items in the dict. (Christian Brabandt)
Files: src/eval.c, runtime/doc/eval.txt
Patch 7.4.312
Problem: Cannot figure out what argument list is being used for a window.
Solution: Add the arglistid() function. (Marcin Szamotulski)
Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/eval.c,
src/ex_docmd.c, src/globals.h, src/structs.h, src/main.c
Patch 7.4.313 (after 7.4.310)
Problem: Changing the return value of getpos() causes an error. (Jie Zhu)
Solution: Revert getpos() and add getcurpos().
Files: src/eval.c, src/testdir/, src/testdir/test_eval.ok,
Patch 7.4.314
Problem: Completion messages can get in the way of a plugin.
Solution: Add 'c' flag to 'shortmess' option. (Shougo Matsu)
Files: runtime/doc/options.txt, src/edit.c, src/option.h, src/screen.c
Patch 7.4.315 (after 7.4.309)
Problem: Fixes for computation of topline not tested.
Solution: Add test. (Hirohito Higashi)
Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
src/testdir/Make_vms.mms, src/testdir/Makefile,
src/testdir/, src/testdir/test107.ok
Patch 7.4.316
Problem: Warning from 64-bit compiler.
Solution: Add type cast. (Mike Williams)
Files: src/ex_getln.c
Patch 7.4.317
Problem: Crash when starting gvim. Issue 230.
Solution: Check for a pointer to be NULL. (Christian Brabandt)
Files: src/window.c
Patch 7.4.318
Problem: Check for whether a highlight group has settings ignores fg and bg
color settings.
Solution: Also check cterm and GUI color settings. (Christian Brabandt)
Files: src/syntax.c
Patch 7.4.319
Problem: Crash when putting zero bytes on the clipboard.
Solution: Do not support the utf8_atom target when not using a Unicode
encoding. (Naofumi Honda)
Files: src/ui.c
Patch 7.4.320
Problem: Possible crash when an BufLeave autocommand deletes the buffer.
Solution: Check for the window pointer being valid. Postpone freeing the
window until autocommands are done. (Yasuhiro Matsumoto)
Files: src/buffer.c, src/fileio.c, src/globals.h, src/window.c
Patch 7.4.321
Problem: Can't build with strawberry perl 5.20 + mingw-w64-4.9.0.
Solution: Define save_strlen. (Ken Takata)
Files: src/if_perl.xs
Patch 7.4.322
Problem: Using "msgfmt" is hard coded, cannot use "gmsgfmt".
Solution: Use the msgfmt command found by configure. (Danek Duvall)
Files: src/, src/po/Makefile
Patch 7.4.323
Problem: Substitute() with zero width pattern breaks multi-byte character.
Solution: Take multi-byte character size into account. (Yukihiro Nakadaira)
Files: src/eval.c src/testdir/, src/testdir/test69.ok
Patch 7.4.324
Problem: In Ex mode, cyrillic characters are not handled. (Stas Malavin)
Solution: Support multi-byte characters in Ex mode. (Yukihiro Nakadaira)
Files: src/ex_getln.c
Patch 7.4.325
Problem: When starting the gui and changing the window size the status line
may not be drawn correctly.
Solution: Catch new_win_height() being called recursively. (Christian
Files: src/window.c
Patch 7.4.326
Problem: Can't build Tiny version. (Elimar Riesebieter)
Solution: Add #ifdef.
Files: src/window.c
Patch 7.4.327
Problem: When 'verbose' is set to display the return value of a function,
may get E724 repeatedly.
Solution: Do not give an error for verbose messages. Abort conversion to
string after an error.
Files: src/eval.c
Patch 7.4.328
Problem: Selection of inner block is inconsistent.
Solution: Skip indent not only for '}' but all parens. (Tom McDonald)
Files: src/search.c
Patch 7.4.329
Problem: When moving the cursor and then switching to another window the
previous window isn't scrolled. (Yukihiro Nakadaira)
Solution: Call update_topline() before leaving the window. (Christian
Files: src/window.c
Patch 7.4.330
Problem: Using a regexp pattern to highlight a specific position can be
Solution: Add matchaddpos() to highlight specific positions efficiently.
(Alexey Radkov)
Files: runtime/doc/eval.txt, runtime/doc/usr_41.txt,
runtime/plugin/matchparen.vim, src/eval.c, src/ex_docmd.c,
src/proto/, src/screen.c, src/structs.h,
src/testdir/, src/testdir/test63.ok, src/window.c
Patch 7.4.331
Problem: Relative numbering not updated after a linewise yank. Issue 235.
Solution: Redraw after the yank. (Christian Brabandt)
Files: src/ops.c
Patch 7.4.332
Problem: GTK: When a sign icon doesn't fit exactly there can be ugly gaps.
Solution: Scale the sign to fit when the aspect ratio is not too far off.
(Christian Brabandt)
Files: src/gui_gtk_x11.c
Patch 7.4.333
Problem: Compiler warning for unused function.
Solution: Put the function inside the #ifdef.
Files: src/screen.c
Patch 7.4.334 (after 7.4.330)
Problem: Uninitialized variables, causing some problems.
Solution: Initialize the variables. (Dominique Pelle)
Files: src/screen.c, src/window.c
Patch 7.4.335
Problem: No digraph for the new rouble sign.
Solution: Add the digraphs =R and =P.
Files: src/digraph.c, runtime/doc/digraph.txt
Patch 7.4.336
Problem: Setting 'history' to a big value causes out-of-memory errors.
Solution: Limit the value to 10000. (Hirohito Higashi)
Files: runtime/doc/options.txt, src/option.c
Patch 7.4.337
Problem: When there is an error preparing to edit the command line, the
command won't be executed. (Hirohito Higashi)
Solution: Reset did_emsg before editing.
Files: src/ex_getln.c
Patch 7.4.338
Problem: Cannot wrap lines taking indent into account.
Solution: Add the 'breakindent' option. (many authors, final improvements by
Christian Brabandt)
Files: runtime/doc/eval.txt, runtime/doc/options.txt, runtime/optwin.vim,
src/buffer.c, src/charset.c, src/edit.c, src/ex_getln.c,
src/getchar.c, src/misc1.c, src/misc2.c, src/ops.c, src/option.c,
src/option.h, src/proto/, src/proto/,
src/proto/, src/screen.c, src/structs.h,
src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
src/testdir/Make_vms.mms, src/testdir/Makefile,
src/testdir/, src/testdir/test_breakindent.ok,
src/ui.c, src/version.c
Patch 7.4.339
Problem: Local function is available globally.
Solution: Add "static".
Files: src/option.c, src/proto/
Patch 7.4.340
Problem: Error from sed about illegal bytes when installing Vim.
Solution: Prepend LC_ALL=C. (Itchyny)
Files: src/
Patch 7.4.341
Problem: sort() doesn't handle numbers well.
Solution: Add an argument to specify sorting on numbers. (Christian Brabandt)
Files: runtime/doc/eval.txt, src/eval.c, src/testdir/,
Patch 7.4.342
Problem: Clang gives warnings.
Solution: Add an else block. (Dominique Pelle)
Files: src/gui_beval.c
Patch 7.4.343
Problem: matchdelete() does not always update the right lines.
Solution: Fix off-by-one error. (Ozaki Kiichi)
Files: src/window.c
Patch 7.4.344
Problem: Unnecessary initializations and other things related to
Solution: Code cleanup. (Alexey Radkov)
Files: runtime/doc/eval.txt, src/screen.c, src/window.c
Patch 7.4.345 (after 7.4.338)
Problem: Indent is not updated when deleting indent.
Solution: Remember changedtick.
Files: src/misc1.c
Patch 7.4.346 (after 7.4.338)
Problem: Indent is not updated when changing 'breakindentopt'. (itchyny)
Solution: Do not cache "brishift". (Christian Brabandt)
Files: src/misc1.c
Patch 7.4.347
Problem: test55 fails on some systems.
Solution: Remove the elements that all result in zero and can end up in an
arbitrary position.
Files: src/testdir/, src/testdir/test55.ok
Patch 7.4.348
Problem: When using "J1" in 'cinoptions' a line below a continuation line
gets too much indent.
Solution: Fix parentheses in condition.
Files: src/misc1.c
Patch 7.4.349
Problem: When there are matches to highlight the whole window is redrawn,
which is slow.
Solution: Only redraw everything when lines were inserted or deleted.
Reset b_mod_xlines when needed. (Alexey Radkov)
Files: src/screen.c, src/window.c
Patch 7.4.350
Problem: Using C indenting for Javascript does not work well for a {} block
inside parentheses.
Solution: When looking for a matching paren ignore one that is before the
start of a {} block.
Files: src/misc1.c, src/testdir/, src/testdir/test3.ok
Patch 7.4.351
Problem: sort() is not stable.
Solution: When the items are identical, compare the pointers.
Files: src/eval.c, src/testdir/, src/testdir/test55.ok
Patch 7.4.352
Problem: With 'linebreak' a tab causes a missing line break.
Solution: Count a tab for what it's worth also for shorter lines.
(Christian Brabandt)
Files: src/charset.c
Patch 7.4.353
Problem: 'linebreak' doesn't work with the 'list' option.
Solution: Make it work. (Christian Brabandt)
Files: runtime/doc/options.txt, src/charset.c, src/screen.c,
src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
src/testdir/Make_vms.mms, src/testdir/Makefile,
src/testdir/, src/testdir/test_listlbr.ok
Patch 7.4.354
Problem: Compiler warning.
Solution: Change NUL to NULL. (Ken Takata)
Files: src/screen.c
Patch 7.4.355
Problem: Several problems with Javascript indenting.
Solution: Improve Javascript indenting.
Files: src/misc1.c, src/testdir/, src/testdir/test3.ok
Patch 7.4.356
Problem: Mercurial does not ignore memfile_test. (Daniel Hahler)
Solution: Add memfile_test to ignored files, remove trailing spaces.
Files: .hgignore
Patch 7.4.357
Problem: After completion some characters are not redrawn.
Solution: Clear the command line unconditionally. (Jacob Niehus)
Files: src/edit.c
Patch 7.4.358 (after 7.4.351)
Problem: Sort is not always stable.
Solution: Add an index instead of relying on the pointer to remain the same.
Idea by Jun Takimoto.
Files: src/eval.c
Patch 7.4.359
Problem: When 'ttymouse' is set to 'uxterm' the xterm version is not
requested. (Tomas Janousek)
Solution: Do not mark uxterm as a conflict mouse and add
Files: src/term.c, src/os_unix.c, src/proto/
Patch 7.4.360
Problem: In a regexp pattern a "$" followed by \v or \V is not seen as the
Solution: Handle the situation. (Ozaki Kiichi)
Files: src/regexp.c
Patch 7.4.361
Problem: Lots of flickering when filling the preview window for 'omnifunc'.
Solution: Disable redrawing. (Hirohito Higashi)
Files: src/popupmnu.c
Patch 7.4.362
Problem: When matchaddpos() uses a length smaller than the number of bytes
in the (last) character the highlight continues until the end of
the line.
Solution: Change condition from equal to larger-or-equal.
Files: src/screen.c
Patch 7.4.363
Problem: In Windows console typing 0xCE does not work.
Solution: Convert 0xCE to K_NUL 3. (Nobuhiro Takasaki et al.)
Files: src/os_win32.c, src/term.c
Patch 7.4.364
Problem: When the viminfo file can't be renamed there is no error message.
(Vladimir Berezhnoy)
Solution: Check for the rename to fail.
Files: src/ex_cmds.c
Patch 7.4.365
Problem: Crash when using ":botright split" when there isn't much space.
Solution: Add a check for the minimum width/height. (Yukihiro Nakadaira)
Files: src/window.c
Patch 7.4.366
Problem: Can't run the linebreak test on MS-Windows.
Solution: Fix the output file name. (Taro Muraoka)
Files: src/testdir/Make_dos.mak
Patch 7.4.367 (after 7.4.357)
Problem: Other solution for redrawing after completion.
Solution: Schedule a window redraw instead of just clearing the command
line. (Jacob Niehus)
Files: src/edit.c
Patch 7.4.368
Problem: Restoring the window sizes after closing the command line window
doesn't work properly if there are nested splits.
Solution: Restore the sizes twice. (Hirohito Higashi)
Files: src/window.c
Patch 7.4.369
Problem: Using freed memory when exiting while compiled with EXITFREE.
Solution: Set curwin to NULL and check for that. (Dominique Pelle)
Files: src/buffer.c, src/window.c
Patch 7.4.370
Problem: Linebreak test fails when encoding is not utf-8. (Danek Duvall)
Solution: Split the test in a single byte one and a utf-8 one. (Christian
Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
src/testdir/Make_vms.mms, src/testdir/Makefile,
src/testdir/, src/testdir/test_listlbr.ok,
src/testdir/, src/testdir/test_listlbr_utf8.ok
Patch 7.4.371
Problem: When 'linebreak' is set control characters are not correctly
displayed. (Kimmy Lindvall)
Solution: Set n_extra. (Christian Brabandt)
Files: src/screen.c
Patch 7.4.372
Problem: When 'winminheight' is zero there might not be one line for the
current window.
Solution: Change the size computations. (Yukihiro Nakadaira)
Files: src/window.c
Patch 7.4.373
Problem: Compiler warning for unused argument and unused variable.
Solution: Add UNUSED. Move variable inside #ifdef.
Files: src/charset.c, src/window.c
Patch 7.4.374
Problem: Character after "fb" command not mapped if it might be a composing
Solution: Don't disable mapping when looking for a composing character.
(Jacob Niehus)
Files: src/normal.c
Patch 7.4.375
Problem: Test 63 fails when run with GUI-only Vim.
Solution: Add guibg attributes. (suggested by Mike Soyka)
Files: src/testdir/
Patch 7.4.376 (after 7.4.367)
Problem: Popup menu flickers too much.
Solution: Remove the forced redraw. (Hirohito Higashi)
Files: src/edit.c
Patch 7.4.377
Problem: When 'equalalways' is set a split may report "no room" even though
there is plenty of room.
Solution: Compute the available room properly. (Yukihiro Nakadaira)
Files: src/window.c
Patch 7.4.378
Problem: Title of quickfix list is not kept for setqflist(list, 'r').
Solution: Keep the title. Add a test. (Lcd)
Files: src/quickfix.c, src/testdir/Make_amiga.mak,
src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
src/testdir/Makefile, src/testdir/,
Patch 7.4.379
Problem: Accessing freed memory after using setqflist(list, 'r'). (Lcd)
Solution: Reset qf_index.
Files: src/quickfix.c
Patch 7.4.380
Problem: Loading python may cause Vim to exit.
Solution: Avoid loading the "site" module. (Taro Muraoka)
Files: src/if_python.c
Patch 7.4.381
Problem: Get u_undo error when backspacing in Insert mode deletes more than
one line break. (Ayberk Ozgur)
Solution: Also decrement Insstart.lnum.
Files: src/edit.c
Patch 7.4.382
Problem: Mapping characters may not work after typing Esc in Insert mode.
Solution: Fix the noremap flags for inserted characters. (Jacob Niehus)
Files: src/getchar.c
Patch 7.4.383
Problem: Bad interaction between preview window and omnifunc.
Solution: Avoid redrawing the status line. (Hirohito Higashi)
Files: src/popupmnu.c
Patch 7.4.384
Problem: Test 102 fails when compiled with small features.
Solution: Source small.vim. (Jacob Niehus)
Files: src/testdir/
Patch 7.4.385
Problem: When building with tiny or small features building the .mo files
Solution: In autoconf do not setup for building the .mo files when it would
Files: src/, src/auto/configure
Patch 7.4.386
Problem: When splitting a window the changelist position is wrong.
Solution: Copy the changelist position. (Jacob Niehus)
Files: src/window.c, src/testdir/Make_amiga.mak,
src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
src/testdir/Makefile, src/testdir/,
Patch 7.4.387
Problem: "4gro" replaces one character then executes "ooo". (Urtica Dioica)
Solution: Write the ESC in the second stuff buffer.
Files: src/getchar.c, src/proto/, src/edit.c,
src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
src/testdir/Make_vms.mms, src/testdir/Makefile,
src/testdir/, src/testdir/test_insertcount.ok
Patch 7.4.388
Problem: With 'linebreak' set and 'list' unset a Tab is not counted
properly. (Kent Sibilev)
Solution: Check the 'list' option. (Christian Brabandt)
Files: src/screen.c, src/testdir/,
Patch 7.4.389
Problem: Still sometimes Vim enters Replace mode when starting up.
Solution: Use a different solution in detecting the termresponse and
location response. (Hayaki Saito)
Files: src/globals.h, src/os_unix.c, src/term.c, src/proto/
Patch 7.4.390
Problem: Advancing pointer over end of a string.
Solution: Init quote character to -1 instead of zero. (Dominique Pelle)
Files: src/misc1.c
Patch 7.4.391
Problem: No 'cursorline' highlighting when the cursor is on a line with
diff highlighting. (Benjamin Fritz)
Solution: Combine the highlight attributes. (Christian Brabandt)
Files: src/screen.c
Patch 7.4.392
Problem: Not easy to detect type of command line window.
Solution: Add the getcmdwintype() function. (Jacob Niehus)
Files: src/eval.c
Patch 7.4.393
Problem: Text drawing on newer MS-Windows systems is suboptimal. Some
multi-byte characters are not displayed, even though the same font
in Notepad can display them. (Srinath Avadhanula)
Solution: Add the 'renderoptions' option to enable DirectX drawing. (Taro
Files: runtime/doc/eval.txt, runtime/doc/options.txt,
runtime/doc/various.txt, src/Make_cyg.mak, src/Make_ming.mak,
src/Make_mvc.mak, src/eval.c, src/gui_dwrite.cpp,
src/gui_dwrite.h, src/gui_w32.c, src/gui_w48.c, src/option.c,
src/option.h, src/version.c, src/vim.h, src/proto/
Patch 7.4.394 (after 7.4.393)
Problem: When using DirectX last italic character is incomplete.
Solution: Add one to the number of cells. (Ken Takata)
Files: src/gui_w32.c
Patch 7.4.395 (after 7.4.355)
Problem: C indent is wrong below an if with wrapped condition followed by
curly braces. (Trevor Powell)
Solution: Make a copy of tryposBrace.
Files: src/misc1.c, src/testdir/, src/testdir/test3.ok
Patch 7.4.396
Problem: When 'clipboard' is "unnamed", :g/pat/d is very slow. (Praful)
Solution: Only set the clipboard after the last delete. (Christian Brabandt)
Files: src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c, src/globals.h,
src/ops.c, src/proto/, src/ui.c
Patch 7.4.397
Problem: Matchparen only uses the topmost syntax item.
Solution: Go through the syntax stack to find items. (James McCoy)
Also use getcurpos() when possible.
Files: runtime/plugin/matchparen.vim
Patch 7.4.398 (after 7.4.393)
Problem: Gcc error for the argument of InterlockedIncrement() and
InterlockedDecrement(). (Axel Bender)
Solution: Remove "unsigned" from the cRefCount_ declaration.
Files: src/gui_dwrite.cpp
Patch 7.4.399
Problem: Encryption implementation is messy. Blowfish encryption has a
Solution: Refactor the encryption, store the state in an allocated struct
instead of using a save/restore mechanism. Introduce the
"blowfish2" method, which does not have the weakness and encrypts
the whole undo file. (largely by David Leadbeater)
Files: runtime/doc/editing.txt, runtime/doc/options.txt, src/Makefile,
src/blowfish.c, src/crypt.c, src/crypt_zip.c, src/ex_docmd.c,
src/fileio.c, src/globals.h, src/main.c, src/memline.c,
src/misc2.c, src/option.c, src/proto.h, src/proto/,
src/proto/, src/proto/,
src/proto/, src/proto/, src/structs.h,
src/undo.c, src/testdir/, src/testdir/test71.ok,
src/testdir/, src/testdir/,
Patch 7.4.400
Problem: List of distributed files is incomplete.
Solution: Add recently added files.
Files: Filelist
Patch 7.4.401 (after 7.4.399)
Problem: Can't build on MS-Windows.
Solution: Include the new files in all the Makefiles.
Files: src/Make_bc3.mak, src/Make_bc5.mak, src/Make_cyg.mak,
src/Make_dice.mak, src/Make_djg.mak, src/Make_ivc.mak,
src/Make_manx.mak, src/Make_ming.mak, src/Make_morph.mak,
src/Make_mvc.mak, src/Make_os2.mak, src/Make_sas.mak,
Patch 7.4.402
Problem: Test 72 crashes under certain conditions. (Kazunobu Kuriyama)
Solution: Clear the whole bufinfo_T early.
Files: src/undo.c
Patch 7.4.403
Problem: Valgrind reports errors when running test 72. (Dominique Pelle)
Solution: Reset the local 'cryptmethod' option before storing the seed.
Set the seed in the memfile even when there is no block0 yet.
Files: src/fileio.c, src/option.c, src/memline.c
Patch 7.4.404
Problem: Windows 64 bit compiler warnings.
Solution: Add type casts. (Mike Williams)
Files: src/crypt.c, src/undo.c
Patch 7.4.405
Problem: Screen updating is slow when using matches.
Solution: Do not use the ">=" as in patch 7.4.362, check the lnum.
Files: src/screen.c, src/testdir/, src/testdir/test63.ok
Patch 7.4.406
Problem: Test 72 and 100 fail on MS-Windows.
Solution: Set fileformat to unix in the tests. (Taro Muraoka)
Files: src/testdir/, src/testdir/
Patch 7.4.407
Problem: Inserting text for Visual block mode, with cursor movement,
repeats the wrong text. (Aleksandar Ivanov)
Solution: Reset the update_Insstart_orig flag. (Christian Brabandt)
Files: src/edit.c, src/testdir/, src/testdir/test39.ok
Patch 7.4.408
Problem: Visual block insert breaks a multi-byte character.
Solution: Calculate the position properly. (Yasuhiro Matsumoto)
Files: src/ops.c, src/testdir/, src/testdir/test_utf8.ok,
src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
src/testdir/Make_vms.mms, src/testdir/Makefile
Patch 7.4.409
Problem: Can't build with Perl on Fedora 20.
Solution: Find xsubpp in another directory. (Michael Henry)
Files: src/Makefile, src/, src/,
Patch 7.4.410
Problem: Fold does not open after search when there is a CmdwinLeave
Solution: Restore KeyTyped. (Jacob Niehus)
Files: src/ex_getln.c
Patch 7.4.411
Problem: "foo bar" sorts before "foo" with sort(). (John Little)
Solution: Avoid putting quotes around strings before comparing them.
Files: src/eval.c
Patch 7.4.412
Problem: Can't build on Windows XP with MSVC.
Solution: Add SUBSYSTEM_VER to the Makefile. (Yongwei Wu)
Files: src/Make_mvc.mak, src/INSTALLpc.txt
Patch 7.4.413
Problem: MS-Windows: Using US international keyboard layout, inserting dead
key by pressing space does not always work. Issue 250.
Solution: Let MS-Windows translate the message. (John Wellesz)
Files: src/gui_w48.c
Patch 7.4.414
Problem: Cannot define a command only when it's used.
Solution: Add the CmdUndefined autocommand event. (partly by Yasuhiro
Files: runtime/doc/autocmd.txt, src/ex_docmd.c, src/fileio.c,
Patch 7.4.415 (after 7.4.414)
Problem: Cannot build. Warning for shadowed variable. (John Little)
Solution: Add missing change. Remove declaration.
Files: src/vim.h, src/ex_docmd.c
Patch 7.4.416
Problem: Problem with breakindent/showbreak and tabs.
Solution: Handle tabs differently. (Christian Brabandt)
Files: src/testdir/, src/testdir/test_breakindent.ok,
Patch 7.4.417
Problem: After splitting a window and setting 'breakindent' the default
minimum with is not respected.
Solution: Call briopt_check() when copying options to a new window.
Files: src/option.c, src/proto/,
Patch 7.4.418
Problem: When leaving ":append" the cursor shape is like in Insert mode.
(Jacob Niehus)
Solution: Do not have State set to INSERT when calling getline().
Files: src/ex_cmds.c
Patch 7.4.419
Problem: When part of a list is locked it's possible to make changes.
Solution: Check if any of the list items is locked before make a change.
Files: src/eval.c, src/testdir/, src/testdir/test55.ok
Patch 7.4.420
Problem: It's not obvious how to add a new test.
Solution: Add a README file. (Christian Brabandt)
Files: src/testdir/README.txt
Patch 7.4.421
Problem: Crash when searching for "\ze*". (Urtica Dioica)
Solution: Disallow a multi after \ze and \zs.
Files: src/regexp_nfa.c, src/testdir/, src/testdir/test64.ok
Patch 7.4.422
Problem: When using conceal with linebreak some text is not displayed
correctly. (Grüner Gimpel)
Solution: Check for conceal mode when using linebreak. (Christian Brabandt)
Files: src/screen.c, src/testdir/,
Patch 7.4.423
Problem: expand("$shell") does not work as documented.
Solution: Do not escape the $ when expanding environment variables.
Files: src/os_unix.c, src/misc1.c, src/vim.h
Patch 7.4.424
Problem: Get ml_get error when using Python to delete lines in a buffer
that is not in a window. issue 248.
Solution: Do not try adjusting the cursor for a different buffer.
Files: src/if_py_both.h
Patch 7.4.425
Problem: When 'showbreak' is used "gj" may move to the wrong position.
(Nazri Ramliy)
Solution: Adjust virtcol when 'showbreak' is set. (Christian Brabandt)
Files: src/normal.c
Patch 7.4.426
Problem: README File missing from list of files.
Solution: Update the list of files.
Files: Filelist
Patch 7.4.427
Problem: When an InsertCharPre autocommand executes system() typeahead may
be echoed and messes up the display. (Jacob Niehus)
Solution: Do not set cooked mode when invoked from ":silent".
Files: src/eval.c, runtime/doc/eval.txt
Patch 7.4.428
Problem: executable() may return a wrong result on MS-Windows.
Solution: Change the way SearchPath() is called. (Yasuhiro Matsumoto, Ken
Files: src/os_win32.c
Patch 7.4.429
Problem: Build fails with fewer features. (Elimar Riesebieter)
Solution: Add #ifdef.
Files: src/normal.c
Patch 7.4.430
Problem: test_listlbr fails when compiled with normal features.
Solution: Check for the +conceal feature.
Files: src/testdir/
Patch 7.4.431
Problem: Compiler warning.
Solution: Add type cast. (Mike Williams)
Files: src/ex_docmd.c
Patch 7.4.432
Problem: When the startup code expands command line arguments, setting
'encoding' will not properly convert the arguments.
Solution: Call get_cmd_argsW() early in main(). (Yasuhiro Matsumoto)
Files: src/os_win32.c, src/main.c, src/os_mswin.c
Patch 7.4.433
Problem: Test 75 fails on MS-Windows.
Solution: Use ":normal" instead of feedkeys(). (Michael Soyka)
Files: src/testdir/
Patch 7.4.434
Problem: gettabvar() is not consistent with getwinvar() and getbufvar().
Solution: Return a dict with all variables when the varname is empty.
(Yasuhiro Matsumoto)
Files: src/eval.c, runtime/doc/eval.txt, src/testdir/,
Patch 7.4.435
Problem: Line formatting behaves differently when 'linebreak' is set.
Solution: Disable 'linebreak' temporarily. (Christian Brabandt)
Files: src/edit.c
Patch 7.4.436
Problem: ml_get error for autocommand that moves the cursor of the current
Solution: Check the cursor position after switching back to the current
buffer. (Christian Brabandt)
Files: src/fileio.c
Patch 7.4.437
Problem: New and old regexp engine are not consistent.
Solution: Also give an error for "\ze*" for the old regexp engine.
Files: src/regexp.c, src/regexp_nfa.c
Patch 7.4.438
Problem: Cached values for 'cino' not reset for ":set all&".
Solution: Call parse_cino(). (Yukihiro Nakadaira)
Files: src/option.c
Patch 7.4.439
Problem: Duplicate message in message history. Some quickfix messages
appear twice. (Gary Johnson)
Solution: Do not reset keep_msg too early. (Hirohito Higashi)
Files: src/main.c
Patch 7.4.440
Problem: Omni complete popup drawn incorrectly.
Solution: Call validate_cursor() instead of check_cursor(). (Hirohito
Files: src/edit.c
Patch 7.4.441
Problem: Endless loop and other problems when 'cedit' is set to CTRL-C.
Solution: Do not call ex_window() when ex_normal_busy or got_int was set.
(Yasuhiro Matsumoto)
Files: src/ex_getln.c
Patch 7.4.442 (after 7.4.434)
Problem: Using uninitialized variable.
Solution: Pass the first window of the tabpage.
Files: src/eval.c
Patch 7.4.443
Problem: Error reported by ubsan when running test 72.
Solution: Add type cast to unsigned. (Dominique Pelle)
Files: src/undo.c
Patch 7.4.444
Problem: Reversed question mark not recognized as punctuation. (Issue 258)
Solution: Add the Supplemental Punctuation range.
Files: src/mbyte.c
Patch 7.4.445
Problem: Clipboard may be cleared on startup.
Solution: Set clip_did_set_selection to -1 during startup. (Christian
Files: src/main.c, src/ui.c
Patch 7.4.446
Problem: In some situations, when setting up an environment to trigger an
autocommand, the environment is not properly restored.
Solution: Check the return value of switch_win() and call restore_win()
always. (Daniel Hahler)
Files: src/eval.c, src/misc2.c, src/window.c
Patch 7.4.447
Problem: Spell files from Hunspell may generate a lot of errors.
Solution: Add the IGNOREEXTRA flag.
Files: src/spell.c, runtime/doc/spell.txt
Patch 7.4.448
Problem: Using ETO_IGNORELANGUAGE causes problems.
Solution: Remove this flag. (Paul Moore)
Files: src/gui_w32.c
Patch 7.4.449
Problem: Can't easily close the help window. (Chris Gaal)
Solution: Add ":helpclose". (Christian Brabandt)
Files: runtime/doc/helphelp.txt, runtime/doc/index.txt, src/ex_cmds.c,
src/ex_cmds.h, src/proto/
Patch 7.4.450
Problem: Not all commands that edit another buffer support the +cmd
Solution: Add the +cmd argument to relevant commands. (Marcin Szamotulski)
Files: runtime/doc/windows.txt, src/ex_cmds.h, src/ex_docmd.c
Patch 7.4.451
Problem: Calling system() with empty input gives an error for writing the
temp file.
Solution: Do not try writing if the string length is zero. (Olaf Dabrunz)
Files: src/eval.c
Patch 7.4.452
Problem: Can't build with tiny features. (Tony Mechelynck)
Solution: Use "return" instead of "break".
Files: src/ex_cmds.c
Patch 7.4.453
Problem: Still can't build with tiny features.
Solution: Add #ifdef.
Files: src/ex_cmds.c
Patch 7.4.454
Problem: When using a Visual selection of multiple words and doing CTRL-W_]
it jumps to the tag matching the word under the cursor, not the
selected text. (Patrick hemmer)
Solution: Do not reset Visual mode. (idea by Christian Brabandt)
Files: src/window.c
Patch 7.4.455
Problem: Completion for :buf does not use 'wildignorecase'. (Akshay H)
Solution: Pass the 'wildignorecase' flag around.
Files: src/buffer.c
Patch 7.4.456
Problem: 'backupcopy' is global, cannot write only some files in a
different way.
Solution: Make 'backupcopy' global-local. (Christian Brabandt)
Files: runtime/doc/options.txt, src/buffer.c, src/fileio.c, src/option.c,
src/option.h, src/proto/, src/structs.h
Patch 7.4.457
Problem: Using getchar() in an expression mapping may result in
K_CURSORHOLD, which can't be recognized.
Solution: Add the <CursorHold> key. (Hirohito Higashi)
Files: src/misc2.c
Patch 7.4.458
Problem: Issue 252: Cursor moves in a zero-height window.
Solution: Check for zero height. (idea by Christian Brabandt)
Files: src/move.c
Patch 7.4.459
Problem: Can't change the icon after building Vim.
Solution: Load the icon from a file on startup. (Yasuhiro Matsumoto)
Files: src/gui_w32.c, src/os_mswin.c, src/os_win32.c,
Patch 7.4.460 (after 7.4.454)
Problem: Can't build without the quickfix feature. (Erik Falor)
Solution: Add a #ifdef.
Files: src/window.c
Patch 7.4.461
Problem: MS-Windows: When collate is on the number of copies is too high.
Solution: Only set the collated/uncollated count when collate is on.
(Yasuhiro Matsumoto)
Files: src/os_mswin.c
Patch 7.4.462
Problem: Setting the local value of 'backupcopy' empty gives an error.
(Peter Mattern)
Solution: When using an empty value set the flags to zero. (Hirohito
Files: src/option.c
Patch 7.4.463
Problem: Test 86 and 87 may hang on MS-Windows.
Solution: Call inputrestore() after inputsave(). (Ken Takata)
Files: src/testdir/, src/testdir/
Patch 7.4.464 (after 7.4.459)
Problem: Compiler warning.
Solution: Add type cast. (Ken Takata)
Files: src/gui_w32.c
Patch 7.4.465 (after 7.4.016)
Problem: Crash when expanding a very long string.
Solution: Use wcsncpy() instead of wcscpy(). (Ken Takata)
Files: src/os_win32.c
Patch 7.4.466 (after 7.4.460)
Problem: CTRL-W } does not open preview window. (Erik Falor)
Solution: Don't set g_do_tagpreview for CTRL-W }.
Files: src/window.c
Patch 7.4.467
Problem: 'linebreak' does not work well together with Visual mode.
Solution: Disable 'linebreak' while applying an operator. Fix the test.
(Christian Brabandt)
Files: src/normal.c, src/screen.c, src/testdir/,
Patch 7.4.468
Problem: Issue 26: CTRL-C does not interrupt after it was mapped and then
Solution: Reset mapped_ctrl_c. (Christian Brabandt)
Files: src/getchar.c
Patch 7.4.469 (after 7.4.467)
Problem: Can't build with MSVC. (Ken Takata)
Solution: Move the assignment after the declarations.
Files: src/normal.c
Patch 7.4.470
Problem: Test 11 and 100 do not work properly on Windows.
Solution: Avoid using feedkeys(). (Ken Takata)
Files: src/testdir/Make_dos.mak, src/testdir/,
Patch 7.4.471
Problem: MS-Windows: When printer name contains multi-byte, the name is
displayed as ???.
Solution: Convert the printer name from the active codepage to 'encoding'.
(Yasuhiro Matsumoto)
Files: src/os_mswin.c
Patch 7.4.472
Problem: The "precedes" entry in 'listchar' will be drawn when 'showbreak'
is set and 'list' is not.
Solution: Only draw this character when 'list' is on. (Christian Brabandt)
Files: src/screen.c
Patch 7.4.473
Problem: Cursor movement is incorrect when there is a number/sign/fold
column and 'sbr' is displayed.
Solution: Adjust the column for 'sbr'. (Christian Brabandt)
Files: src/charset.c
Patch 7.4.474
Problem: AIX compiler can't handle // comment. Issue 265.
Solution: Remove that line.
Files: src/regexp_nfa.c
Patch 7.4.475
Problem: Can't compile on a system where Xutf8SetWMProperties() is not in
the X11 library. Issue 265.
Solution: Add a configure check.
Files: src/, src/auto/configure, src/,
Patch 7.4.476
Problem: MingW: compiling with "XPM=no" doesn't work.
Solution: Check for the "no" value. (KF Leong) Also for Cygwin. (Ken
Files: src/Make_ming.mak, src/Make_cyg.mak
Patch 7.4.477
Problem: When using ":%diffput" and the other file is empty an extra empty
line remains.
Solution: Set the buf_empty flag.
Files: src/diff.c
Patch 7.4.478
Problem: Using byte length instead of character length for 'showbreak'.
Solution: Compute the character length. (Marco Hinz)
Files: src/charset.c
Patch 7.4.479
Problem: MS-Windows: The console title can be wrong.
Solution: Take the encoding into account. When restoring the title use the
right function. (Yasuhiro Matsumoto)
Files: src/os_mswin.c, src/os_win32.c
Patch 7.4.480 (after 7.4.479)
Problem: MS-Windows: Can't build.
Solution: Remove goto, use a flag instead.
Files: src/os_win32.c
Patch 7.4.481 (after 7.4.471)
Problem: Compiler warning on MS-Windows.
Solution: Add type casts. (Ken Takata)
Files: src/os_mswin.c
Patch 7.4.482
Problem: When 'balloonexpr' results in a list, the text has a trailing
newline. (Lcd)
Solution: Remove one trailing newline.
Files: src/gui_beval.c
Patch 7.4.483
Problem: A 0x80 byte is not handled correctly in abbreviations.
Solution: Unescape special characters. Add a test. (Christian Brabandt)
Files: src/getchar.c, src/testdir/Make_amiga.mak,
src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
src/testdir/Makefile, src/testdir/,
Patch 7.4.484 (after 7.4.483)
Problem: Compiler warning on MS-Windows. (Ken Takata)
Solution: Add type cast.
Files: src/getchar.c
Patch 7.4.485 (after 7.4.484)
Problem: Abbreviations don't work. (Toothpik)
Solution: Move the length computation inside the for loop. Compare against
the unescaped key.
Files: src/getchar.c
Patch 7.4.486
Problem: Check for writing to a yank register is wrong.
Solution: Negate the check. (Zyx). Also clean up the #ifdefs.
Files: src/ex_docmd.c, src/ex_cmds.h
Patch 7.4.487
Problem: ":sign jump" may use another window even though the file is
already edited in the current window.
Solution: First check if the file is in the current window. (James McCoy)
Files: src/window.c, src/testdir/Make_amiga.mak,
src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
src/testdir/Makefile, src/testdir/,
Patch 7.4.488
Problem: test_mapping fails for some people.
Solution: Set the 'encoding' option. (Ken Takata)
Files: src/testdir/
Patch 7.4.489
Problem: Cursor movement still wrong when 'lbr' is set and there is a
number column. (Hirohito Higashi)
Solution: Add correction for number column. (Hiroyuki Takagi)
Files: src/charset.c
Patch 7.4.490
Problem: Cannot specify the buffer to use for "do" and "dp", making them
useless for three-way diff.
Solution: Use the count as the buffer number. (James McCoy)
Files: runtime/doc/diff.txt, src/diff.c, src/normal.c, src/proto/
Patch 7.4.491
Problem: When winrestview() has a negative "topline" value there are
display errors.
Solution: Correct a negative value to 1. (Hirohito Higashi)
Files: src/eval.c
Patch 7.4.492
Problem: In Insert mode, after inserting a newline that inserts a comment
leader, CTRL-O moves to the right. (ZyX) Issue 57.
Solution: Correct the condition for moving the cursor back to the NUL.
(Christian Brabandt)
Files: src/edit.c, src/testdir/, src/testdir/test4.ok
Patch 7.4.493
Problem: A TextChanged autocommand is triggered when saving a file.
(William Gardner)
Solution: Update last_changedtick after calling unchanged(). (Christian
Files: src/fileio.c
Patch 7.4.494
Problem: Cursor shape is wrong after a CompleteDone autocommand.
Solution: Update the cursor and mouse shape after ":normal" restores the
state. (Jacob Niehus)
Files: src/ex_docmd.c
Patch 7.4.495
Problem: XPM isn't used correctly in the Cygwin Makefile.
Solution: Include the rules like in Make_ming.mak. (Ken Takata)
Files: src/Make_cyg.mak
Patch 7.4.496
Problem: Many lines are both in Make_cyg.mak and Make_ming.mak
Solution: Move the common parts to one file. (Ken Takata)
Files: src/INSTALLpc.txt, src/Make_cyg.mak, src/Make_cyg_ming.mak,
src/Make_ming.mak, src/Make_mvc.mak, Filelist
Patch 7.4.497
Problem: With some regexp patterns the NFA engine uses many states and
becomes very slow. To the user it looks like Vim freezes.
Solution: When the number of states reaches a limit fall back to the old
engine. (Christian Brabandt)
Files: runtime/doc/options.txt, src/Makefile, src/regexp.c, src/regexp.h,
src/regexp_nfa.c, src/testdir/Make_dos.mak,
src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
src/testdir/Makefile, src/testdir/samples/re.freeze.txt,
src/testdir/, src/testdir/bench_re_freeze.vim,
Patch 7.4.498 (after 7.4.497)
Problem: Typo in DOS makefile.
Solution: Change exists to exist. (Ken Takata)
Files: src/testdirMake_dos.mak
Patch 7.4.499
Problem: substitute() can be slow with long strings.
Solution: Store a pointer to the end, instead of calling strlen() every
time. (Ozaki Kiichi)
Files: src/eval.c
Patch 7.4.500
Problem: Test 72 still fails once in a while.
Solution: Don't set 'fileformat' to unix, reset it. (Ken Takata)
Files: src/testdir/
Patch 7.4.501 (after 7.4.497)
Problem: Typo in file pattern.
Solution: Insert a slash and remove a dot.
Files: Filelist
Patch 7.4.502
Problem: Language mapping also applies to mapped characters.
Solution: Add the 'langnoremap' option, when on 'langmap' does not apply to
mapped characters. (Christian Brabandt)
Files: runtime/doc/options.txt, runtime/vimrc_example.vim, src/macros.h,
src/option.c, src/option.h
Patch 7.4.503
Problem: Cannot append a list of lines to a file.
Solution: Add the append option to writefile(). (Yasuhiro Matsumoto)
Files: runtime/doc/eval.txt, src/Makefile, src/eval.c,
src/testdir/, src/testdir/test_writefile.ok
Patch 7.4.504
Problem: Restriction of the MS-Windows installer that the path must end in
"Vim" prevents installing more than one version.
Solution: Remove the restriction. (Tim Lebedkov)
Files: nsis/gvim.nsi
Patch 7.4.505
Problem: On MS-Windows when 'encoding' is a double-byte encoding a file
name longer than MAX_PATH bytes but shorter than that in
characters causes problems.
Solution: Fail on file names longer than MAX_PATH bytes. (Ken Takata)
Files: src/os_win32.c
Patch 7.4.506
Problem: MS-Windows: Cannot open a file with 259 characters.
Solution: Fix off-by-one error. (Ken Takata)
Files: src/os_mswin.c
Patch 7.4.507 (after 7.4.496)
Problem: Building with MingW and Perl.
Solution: Remove quotes. (Ken Takata)
Files: src/Make_cyg_ming.mak
Patch 7.4.508
Problem: When generating ja.sjis.po the header is not correctly adjusted.
Solution: Check for the right header string. (Ken Takata)
Files: src/po/sjiscorr.c
Patch 7.4.509
Problem: Users are not aware their encryption is weak.
Solution: Give a warning when prompting for the key.
Files: src/crypt.c, src/ex_docmd.c, src/fileio.c, src/main.c,
Patch 7.4.510
Problem: "-fwrapv" argument breaks use of cproto.
Solution: Remove the alphabetic arguments in a drastic way.
Files: src/Makefile
Patch 7.4.511
Problem: Generating proto for if_ruby.c uses type not defined elsewhere.
Solution: Do not generate a prototype for
Files: src/if_ruby.c
Patch 7.4.512
Problem: Cannot generate prototypes for Win32 files and VMS.
Solution: Add typedefs and #ifdef
Files: src/os_win32.c, src/gui_w32.c, src/os_vms.c
Patch 7.4.513
Problem: Crash because reference count is wrong for list returned by
Solution: Increment the reference count. (Kimmy Lindvall)
Files: src/eval.c
Patch 7.4.514 (after 7.4.492)
Problem: Memory access error. (Dominique Pelle)
Solution: Update tpos. (Christian Brabandt)
Files: src/edit.c
Patch 7.4.515
Problem: In a help buffer the global 'foldmethod' is used. (Paul Marshall)
Solution: Reset 'foldmethod' when starting to edit a help file. Move the
code to a separate function.
Files: src/ex_cmds.c
Patch 7.4.516
Problem: Completing a function name containing a # does not work. Issue
Solution: Recognize the # character. (Christian Brabandt)
Files: src/eval.c
Patch 7.4.517
Problem: With a wrapping line the cursor may not end up in the right place.
(Nazri Ramliy)
Solution: Adjust n_extra for a Tab that wraps. (Christian Brabandt)
Files: src/screen.c
Patch 7.4.518
Problem: Using status line height in width computations.
Solution: Use one instead. (Hirohito Higashi)
Files: src/window.c
Patch 7.4.519 (after 7.4.497)
Problem: Crash when using syntax highlighting.
Solution: When regprog is freed and replaced, store the result.
Files: src/buffer.c, src/regexp.c, src/syntax.c, src/spell.c,
src/ex_cmds2.c, src/fileio.c, src/proto/,
src/proto/, src/os_unix.c
Patch 7.4.520
Problem: Sun PCK locale is not recognized.
Solution: Add PCK in the table. (Keiichi Oono)
Files: src/mbyte.c
Patch 7.4.521
Problem: When using "vep" a mark is moved to the next line. (Maxi Padulo,
Issue 283)
Solution: Decrement the line number. (Christian Brabandt)
Files: src/ops.c
Patch 7.4.522
Problem: Specifying wrong buffer size for GetLongPathName().
Solution: Use the actual size. (Ken Takata)
Files: src/eval.c
Patch 7.4.523
Problem: When the X11 server is stopped and restarted, while Vim is kept in
the background, copy/paste no longer works. (Issue 203)
Solution: Setup the clipboard again. (Christian Brabandt)
Files: src/os_unix.c
Patch 7.4.524
Problem: When using ":ownsyntax" spell checking is messed up. (Issue 78)
Solution: Use the window-local option values. (Christian Brabandt)
Files: src/option.c, src/syntax.c
Patch 7.4.525
Problem: map() leaks memory when there is an error in the expression.
Solution: Call clear_tv(). (Christian Brabandt)
Files: src/eval.c
Patch 7.4.526
Problem: matchstr() fails on long text. (Daniel Hahler)
Solution: Return NFA_TOO_EXPENSIVE from regexec_nl(). (Christian Brabandt)
Files: src/regexp.c
Patch 7.4.527
Problem: Still confusing regexp failure and NFA_TOO_EXPENSIVE.
Solution: NFA changes equivalent of 7.4.526.
Files: src/regexp_nfa.c
Patch 7.4.528
Problem: Crash when using matchadd() (Yasuhiro Matsumoto)
Solution: Copy the match regprog.
Files: src/screen.c
Patch 7.4.529
Problem: No test for what 7.4.517 fixes.
Solution: Adjust the tests for breakindent. (Christian Brabandt)
Files: src/testdir/, src/testdir/test_breakindent.ok
Patch 7.4.530
Problem: Many commands take a count or range that is not using line
Solution: For each command specify what kind of count it uses. For windows,
buffers and arguments have "$" and "." have a relevant meaning.
(Marcin Szamotulski)
Files: runtime/doc/editing.txt, runtime/doc/tabpage.txt,
runtime/doc/windows.txt, src/Makefile, src/ex_cmds.h,
src/ex_docmd.c, src/testdir/Make_amiga.mak
src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
src/testdir/Makefile, src/testdir/,
src/testdir/, src/testdir/test_close_count.ok,
Patch 7.4.531
Problem: Comments about parsing an Ex command are wrong.
Solution: Correct the step numbers.
Files: src/ex_docmd.c
Patch 7.4.532
Problem: When using 'incsearch' "2/pattern/e" highlights the first match.
Solution: Move the code to set extra_col inside the loop for count. (Ozaki
Files: src/search.c
Patch 7.4.533
Problem: ":hardcopy" leaks memory in case of errors.
Solution: Free memory in all code paths. (Christian Brabandt)
Files: src/hardcopy.c
Patch 7.4.534
Problem: Warnings when compiling if_ruby.c.
Solution: Avoid the warnings. (Ken Takata)
Files: src/if_ruby.c
Patch 7.4.535 (after 7.4.530)
Problem: Can't build with tiny features.
Solution: Add #ifdefs and skip a test.
Files: src/ex_docmd.c, src/testdir/
Patch 7.4.536
Problem: Test 63 fails when using a black&white terminal.
Solution: Add attributes for a non-color terminal. (Christian Brabandt)
Files: src/testdir/
Patch 7.4.537
Problem: Value of v:hlsearch reflects an internal variable.
Solution: Make the value reflect whether search highlighting is actually
displayed. (Christian Brabandt)
Files: runtime/doc/eval.txt, src/testdir/,
src/testdir/test101.ok, src/vim.h
Patch 7.4.538
Problem: Tests fail with small features plus Python.
Solution: Disallow weird combination of options. Do not set "fdm" when
folding is disabled.
Files: src/option.c, src/ex_cmds.c, src/, src/auto/configure,
Patch 7.4.539 (after 7.4.530)
Problem: Crash when computing buffer count. Problem with range for user
commands. Line range wrong in Visual area.
Solution: Avoid segfault in compute_buffer_local_count(). Check for
CMD_USER when checking type of range. (Marcin Szamotulski)
Files: runtime/doc/windows.txt, src/ex_docmd.c
Patch 7.4.540 (after 7.4.539)
Problem: Cannot build with tiny and small features. (Taro Muraoka)
Solution: Add #ifdef around CMD_USER.
Files: src/ex_docmd.c
Patch 7.4.541
Problem: Crash when doing a range assign.
Solution: Check for NULL pointer. (Yukihiro Nakadaira)
Files: src/eval.c, src/testdir/, src/testdir/test55.ok
Patch 7.4.542
Problem: Using a range for window and buffer commands has a few problems.
Cannot specify the type of range for a user command.
Solution: Add the -addr argument for user commands. Fix problems. (Marcin
Files: src/testdir/,
src/testdir/test_command_count.ok src/testdir/Make_amiga.mak
src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
src/testdir/Makefile, runtime/doc/map.txt, src/Makefile,
src/ex_cmds.h, src/ex_docmd.c, src/ex_getln.c,
src/proto/, src/vim.h,
Patch 7.4.543
Problem: Since patch 7.4.232 "1,3s/\n//" joins two lines instead of three.
(Eliseo Martínez) Issue 287
Solution: Correct the line count. (Christian Brabandt)
Also set the last used search pattern.
Files: src/ex_cmds.c, src/search.c, src/proto/
Patch 7.4.544
Problem: Warnings for unused arguments when compiling with a combination of
Solution: Add "UNUSED".
Files: src/if_cscope.c
Patch 7.4.545
Problem: Highlighting for multi-line matches is not correct.
Solution: Stop highlight at the end of the match. (Hirohito Higashi)
Files: src/screen.c
Patch 7.4.546
Problem: Repeated use of vim_snprintf() with a number.
Solution: Move these vim_snprintf() calls into a function.
Files: src/window.c
Patch 7.4.547
Problem: Using "vit" does not select a multi-byte character at the end
Solution: Advance the cursor over the multi-byte character. (Christian
Files: src/search.c
Patch 7.4.548
Problem: Compilation fails with native version of MinGW-w64, because
it doesn't have x86_64-w64-mingw32-windres.exe.
Solution: Use windres instead. (Ken Takata)
Files: src/Make_cyg_ming.mak
Patch 7.4.549
Problem: Function name not recognized correctly when inside a function.
Solution: Don't check for an alpha character. (Ozaki Kiichi)
Files: src/eval.c, src/testdir/,
src/testdir/test_nested_function.ok, src/testdir/Make_amiga.mak,
src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
Patch 7.4.550
Problem: curs_rows() function is always called with the second argument
Solution: Remove the argument. (Christian Brabandt)
validate_botline_win() can then also be removed.
Files: src/move.c
Patch 7.4.551
Problem: "ygn" may yank too much. (Fritzophrenic) Issue 295.
Solution: Check the width of the next match. (Christian Brabandt)
Files: src/search.c, src/testdir/, src/testdir/test53.ok
Patch 7.4.552
Problem: Langmap applies to Insert mode expression mappings.
Solution: Check for Insert mode. (Daniel Hahler)
Files: src/getchar.c, src/testdir/,
Patch 7.4.553
Problem: Various small issues.
Solution: Fix those issues.
Files: src/ex_cmds.h, src/gui.h, src/message.c, src/testdir/,
src/proto/, src/proto/, src/proto/,
src/proto/, src/proto/ src/os_unix.c,
src/Make_vms.mms, src/proto/, src/INSTALL
Patch 7.4.554
Problem: Missing part of patch 7.4.519.
Solution: Copy back regprog after calling vim_regexec.
Files: src/quickfix.c
Patch 7.4.555
Problem: test_close_count may fail for some combination of features.
Solution: Require normal features.
Files: src/testdir/
Patch 7.4.556
Problem: Failed commands in Python interface not handled correctly.
Solution: Restore window and buffer on failure.
Files: src/if_py_both.h
Patch 7.4.557
Problem: One more small issue.
Solution: Update function proto.
Files: src/proto/
Patch 7.4.558
Problem: When the X server restarts Vim may get stuck.
Solution: Destroy the application context and create it again. (Issue 203)
Files: src/os_unix.c
Patch 7.4.559
Problem: Appending a block in the middle of a tab does not work correctly
when virtualedit is set.
Solution: Decrement spaces and count, don't reset them. (James McCoy)
Files: src/ops.c, src/testdir/, src/testdir/test39.ok
Patch 7.4.560
Problem: Memory leak using :wviminfo. Issue 296.
Solution: Free memory when needed. (idea by Christian Brabandt)
Files: src/ops.c
Patch 7.4.561
Problem: Ex range handling is wrong for buffer-local user commands.
Solution: Check for CMD_USER_BUF. (Marcin Szamotulski)
Files: src/ex_docmd.c, src/testdir/,
Patch 7.4.562
Problem: Segfault with wide screen and error in 'rulerformat'. (Ingo Karkat)
Solution: Check there is enough space. (Christian Brabandt)
Files: src/buffer.c, src/screen.c
Patch 7.4.563
Problem: No test for replacing on a tab in Virtual replace mode.
Solution: Add a test. (Elias Diem)
Files: src/testdir/, src/testdir/test48.ok
Patch 7.4.564
Problem: FEAT_OSFILETYPE is used even though it's never defined.
Solution: Remove the code. (Christian Brabandt)
Files: src/fileio.c
Patch 7.4.565
Problem: Ranges for arguments, buffers, tabs, etc. are not checked to be
valid but limited to the maximum. This can cause the wrong thing
to happen.
Solution: Give an error for an invalid value. (Marcin Szamotulski)
Use windows range for ":wincmd".
Files: src/ex_docmd.c, src/ex_cmds.h, src/testdir/,
Patch 7.4.566
Problem: :argdo, :bufdo, :windo and :tabdo don't take a range.
Solution: Support the range. (Marcin Szamotulski)
Files: runtime/doc/editing.txt, runtime/doc/tabpage.txt,
runtime/doc/windows.txt, src/ex_cmds.h, src/ex_cmds2.c,
Patch 7.4.567
Problem: Non-ascii vertical separator characters are always redrawn.
Solution: Compare only the one byte that's stored. (Thiago Padilha)
Files: src/screen.c
Patch 7.4.568
Problem: Giving an error for ":0wincmd w" is a problem for some plugins.
Solution: Allow the zero in the range. (Marcin Szamotulski)
Files: src/ex_docmd.c, src/testdir/test_command_count.ok
Patch 7.4.569 (after 7.4.468)
Problem: Having CTRL-C interrupt or not does not check the mode of the
mapping. (Ingo Karkat)
Solution: Use a bitmask with the map mode. (Christian Brabandt)
Files: src/getchar.c, src/structs.h, src/testdir/,
src/testdir/test_mapping.ok, src/ui.c, src/globals.h
Patch 7.4.570
Problem: Building with dynamic library does not work for Ruby 2.2.0
Solution: Change #ifdefs and #defines. (Ken Takata)
Files: src/if_ruby.c
Patch 7.4.571 (after 7.4.569)
Problem: Can't build with tiny features. (Ike Devolder)
Solution: Add #ifdef.
Files: src/getchar.c
Patch 7.4.572
Problem: Address type of :wincmd depends on the argument.
Solution: Check the argument.
Files: src/ex_docmd.c, src/window.c, src/proto/
Patch 7.4.573 (after 7.4.569)
Problem: Mapping CTRL-C in Visual mode doesn't work. (Ingo Karkat)
Solution: Call get_real_state() instead of using State directly.
Files: src/ui.c, src/testdir/, src/testdir/test_mapping.ok
Patch 7.4.574
Problem: No error for eval('$').
Solution: Check for empty name. (Yasuhiro Matsumoto)
Files: src/eval.c
Patch 7.4.575
Problem: Unicode character properties are outdated.
Solution: Update the tables with the latest version.
Files: src/mbyte.c
Patch 7.4.576
Problem: Redrawing problem with 'relativenumber' and 'linebreak'.
Solution: Temporarily reset 'linebreak' and restore it in more places.
(Christian Brabandt)
Files: src/normal.c
Patch 7.4.577
Problem: Matching with a virtual column has a lot of overhead on very long
lines. (Issue 310)
Solution: Bail out early if there can't be a match. (Christian Brabandt)
Also check for CTRL-C at every position.
Files: src/regexp_nfa.c
Patch 7.4.578
Problem: Using getcurpos() after "$" in an empty line returns a negative
Solution: Don't add one when this would overflow. (Hirohito Higashi)
Files: src/eval.c
Patch 7.4.579
Problem: Wrong cursor positioning when 'linebreak' is set and lines wrap.
Solution: Fix it. (Christian Brabandt)
Files: src/charset.c, src/screen.c
Patch 7.4.580
Problem: ":52wincmd v" still gives an invalid range error. (Charles
Solution: Skip over white space.
Files: src/ex_docmd.c
Patch 7.4.581
Problem: Compiler warnings for uninitialized variables. (John Little)
Solution: Initialize the variables.
Files: src/ops.c
Patch 7.4.582 (after 7.4.577)
Problem: Can't match "%>80v" properly. (Axel Bender)
Solution: Correctly handle ">". (Christian Brabandt)
Files: src/regexp_nfa.c, src/testdir/, src/testdir/test64.ok
Patch 7.4.583
Problem: With tiny features test 16 may fail.
Solution: Source small.vim. (Christian Brabandt)
Files: src/testdir/
Patch 7.4.584
Problem: With tiny features test_command_count may fail.
Solution: Source small.vim. (Christian Brabandt)
Files: src/testdir/
Patch 7.4.585
Problem: Range for :bdelete does not work. (Ronald Schild)
Solution: Also allow unloaded buffers.
Files: src/ex_cmds.h, src/testdir/,
Patch 7.4.586
Problem: Parallel building of the documentation html files is not reliable.
Solution: Remove a cyclic dependency. (Reiner Herrmann)
Files: runtime/doc/Makefile
Patch 7.4.587
Problem: Conceal does not work properly with 'linebreak'. (cs86661)
Solution: Save and restore boguscols. (Christian Brabandt)
Files: src/screen.c, src/testdir/,
Patch 7.4.588
Problem: ":0argedit foo" puts the new argument in the second place instead
of the first.
Solution: Adjust the range type. (Ingo Karkat)
Files: src/ex_cmds.h, src/testdir/Make_amiga.mak,
src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
src/testdir/Makefile, src/testdir/,
Patch 7.4.589
Problem: In the MS-Windows console Vim can't handle greek characters when
encoding is utf-8.
Solution: Escape K_NUL. (Yasuhiro Matsumoto)
Files: src/os_win32.c
Patch 7.4.590
Problem: Using ctrl_x_mode as if it contains flags.
Solution: Don't use AND with CTRL_X_OMNI. (Hirohito Higashi)
Files: src/edit.c
Patch 7.4.591 (after 7.4.587)
Problem: test_listlbr_utf8 fails when the conceal feature is not available.
Solution: Check for the conceal feature. (Kazunobu Kuriyama)
Files: src/testdir/
Patch 7.4.592
Problem: When doing ":e foobar" when already editing "foobar" and 'buftype'
is "nofile" the buffer is cleared. (Xavier de Gaye)
Solution: Do no clear the buffer.
Files: src/ex_cmds.c
Patch 7.4.593
Problem: Crash when searching for "x\{0,90000}". (Dominique Pelle)
Solution: Bail out from the NFA engine when the max limit is much higher
than the min limit.
Files: src/regexp_nfa.c, src/regexp.c, src/vim.h
Patch 7.4.594
Problem: Using a block delete while 'breakindent' is set does not work
Solution: Use "line" instead of "prev_pend" as the first argument to
lbr_chartabsize_adv(). (Hirohito Higashi)
Files: src/ops.c, src/testdir/,
Patch 7.4.595
Problem: The test_command_count test fails when using Japanese.
Solution: Force the language to C. (Hirohito Higashi)
Files: src/testdir/
Patch 7.4.596 (after 7.4.592)
Problem: Tiny build doesn't compile. (Ike Devolder)
Solution: Add #ifdef.
Files: src/ex_cmds.c
Patch 7.4.597
Problem: Cannot change the result of systemlist().
Solution: Initialize v_lock. (Yukihiro Nakadaira)
Files: src/eval.c
Patch 7.4.598
Problem: ":tabdo windo echo 'hi'" causes "* register not to be changed.
(Salman Halim)
Solution: Change how clip_did_set_selection is used and add
clipboard_needs_update and global_change_count. (Christian
Files: src/main.c, src/ui.c, src/testdir/,
Patch 7.4.599
Problem: Out-of-memory error.
Solution: Avoid trying to allocate a negative amount of memory, use size_t
instead of int. (Dominique Pelle)
Files: src/regexp_nfa.c
Patch 7.4.600
Problem: Memory wasted in struct because of aligning.
Solution: Split pos in lnum and col. (Dominique Pelle)
Files: src/regexp_nfa.c
Patch 7.4.601
Problem: It is not possible to have feedkeys() insert characters.
Solution: Add the 'i' flag.
Files: src/eval.c, runtime/doc/eval.txt
Patch 7.4.602
Problem: ":set" does not accept hex numbers as documented.
Solution: Use vim_str2nr(). (ZyX)
Files: src/option.c, runtime/doc/options.txt
Patch 7.4.603
Problem: 'foldcolumn' may be set such that it fills the whole window, not
leaving space for text.
Solution: Reduce the foldcolumn width when there is not sufficient room.
(idea by Christian Brabandt)
Files: src/screen.c
Patch 7.4.604
Problem: Running tests changes viminfo.
Solution: Disable viminfo.
Files: src/testdir/
Patch 7.4.605
Problem: The # register is not writable, it cannot be restored after
jumping around.
Solution: Make the # register writable. (Marcin Szamotulski)
Files: runtime/doc/change.txt, src/ops.c, src/buffer.c, src/globals.h
Patch 7.4.606
Problem: May crash when using a small window.
Solution: Avoid dividing by zero. (Christian Brabandt)
Files: src/normal.c
Patch 7.4.607 (after 7.4.598)
Problem: Compiler warnings for unused variables.
Solution: Move them inside #ifdef. (Kazunobu Kuriyama)
Files: src/ui.c
Patch 7.4.608 (after 7.4.598)
Problem: test_eval fails when the clipboard feature is missing.
Solution: Skip part of the test. Reduce the text used.
Files: src/testdir/, src/testdir/test_eval.ok
Patch 7.4.609
Problem: For complicated list and dict use the garbage collector can run
out of stack space.
Solution: Use a stack of dicts and lists to be marked, thus making it
iterative instead of recursive. (Ben Fritz)
Files: src/eval.c, src/if_lua.c, src/if_py_both.h, src/if_python.c,
src/if_python3.c, src/proto/, src/proto/,
src/proto/, src/proto/, src/structs.h
Patch 7.4.610
Problem: Some function headers may be missing from generated .pro files.
Solution: Add PROTO to the #ifdef.
Files: src/option.c, src/syntax.c
Patch 7.4.611 (after 7.4.609)
Problem: Syntax error.
Solution: Change statement to return.
Files: src/if_python3.c
Patch 7.4.612
Problem: test_eval fails on Mac.
Solution: Use the * register instead of the + register. (Jun Takimoto)
Files: src/testdir/, src/testdir/test_eval.ok
Patch 7.4.613
Problem: The NFA engine does not implement the 'redrawtime' time limit.
Solution: Implement the time limit.
Files: src/regexp_nfa.c
Patch 7.4.614
Problem: There is no test for what patch 7.4.601 fixes.
Solution: Add a test. (Christian Brabandt)
Files: src/testdir/, src/testdir/test_mapping.ok
Patch 7.4.615
Problem: Vim hangs when freeing a lot of objects.
Solution: Do not go back to the start of the list every time. (Yasuhiro
Matsumoto and Ariya Mizutani)
Files: src/eval.c
Patch 7.4.616
Problem: Cannot insert a tab in front of a block.
Solution: Correctly compute aop->start. (Christian Brabandt)
Files: src/ops.c, src/testdir/, src/testdir/test39.ok
Patch 7.4.617
Problem: Wrong ":argdo" range does not cause an error.
Solution: Reset "cmd" to NULL. (Marcin Szamotulski, Ingo Karkat)
Files: src/ex_docmd.c
Patch 7.4.618 (after 7.4.609)
Problem: luaV_setref() is missing a return statement. (Ozaki Kiichi)
Solution: Put the return statement back.
Files: src/if_lua.c
Patch 7.4.619 (after 7.4.618)
Problem: luaV_setref() not returning the correct value.
Solution: Return one.
Files: src/if_lua.c
Patch 7.4.620
Problem: Compiler warning for uninitialized variable. (Tony Mechelynck)
Solution: Initialize "did_free". (Ben Fritz)
Files: src/eval.c
Patch 7.4.621 (after 7.4.619)
Problem: Returning 1 in the wrong function. (Raymond Ko)
Solution: Return 1 in the right function (hopefully).
Files: src/if_lua.c
Patch 7.4.622
Problem: Compiler warning for unused argument.
Solution: Add UNUSED.
Files: src/regexp_nfa.c
Patch 7.4.623
Problem: Crash with pattern: \(\)\{80000} (Dominique Pelle)
Solution: When the max limit is large fall back to the old engine.
Files: src/regexp_nfa.c
Patch 7.4.624
Problem: May leak memory or crash when vim_realloc() returns NULL.
Solution: Handle a NULL value properly. (Mike Williams)
Files: src/if_cscope.c, src/memline.c, src/misc1.c, src/netbeans.c
Patch 7.4.625
Problem: Possible NULL pointer dereference.
Solution: Check for NULL before using it. (Mike Williams)
Files: src/if_py_both.h
Patch 7.4.626
Problem: MSVC with W4 gives useless warnings.
Solution: Disable more warnings. (Mike Williams)
Files: src/vim.h
Patch 7.4.627
Problem: The last screen cell is not updated.
Solution: Respect the "tn" termcap feature. (Hayaki Saito)
Files: runtime/doc/term.txt, src/option.c, src/screen.c, src/term.c,
Patch 7.4.628
Problem: Compiler warning for variable might be clobbered by longjmp.
Solution: Add volatile. (Michael Jarvis)
Files: src/main.c
Patch 7.4.629
Problem: Coverity warning for Out-of-bounds read.
Solution: Increase MAXWLEN to 254. (Eliseo Martínez)
Files: src/spell.c
Patch 7.4.630
Problem: When using Insert mode completion combined with autocommands the
redo command may not work.
Solution: Do not save the redo buffer when executing autocommands. (Yasuhiro
Files: src/fileio.c
Patch 7.4.631
Problem: The default conceal character is documented to be a space but it's
initially a dash. (Christian Brabandt)
Solution: Make the initial value a space.
Files: src/globals.h
Patch 7.4.632 (after 7.4.592)
Problem: 7.4.592 breaks the netrw plugin, because the autocommands are
Solution: Roll back the change.
Files: src/ex_cmds.c
Patch 7.4.633
Problem: After 7.4.630 the problem persists.
Solution: Also skip redo when calling a user function.
Files: src/eval.c
Patch 7.4.634
Problem: Marks are not restored after redo + undo.
Solution: Fix the way marks are restored. (Olaf Dabrunz)
Files: src/undo.c, src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
src/testdir/Make_vms.mms, src/testdir/Makefile,
src/testdir/, src/testdir/test_marks.ok
Patch 7.4.635
Problem: If no NL or CR is found in the first block of a file then the
'fileformat' may be set to "mac". (Issue 77)
Solution: Check if a CR was found. (eswald)
Files: src/fileio.c
Patch 7.4.636
Problem: A search with end offset gets stuck at end of file. (Gary Johnson)
Solution: When a search doesn't move the cursor repeat it with a higher
count. (Christian Brabandt)
Files: src/normal.c, src/testdir/, src/testdir/test44.ok
Patch 7.4.637
Problem: Incorrectly read the number of buffer for which an autocommand
should be registered.
Solution: Reverse check for "<buffer=abuf>". (Lech Lorens)
Files: src/fileio.c
Patch 7.4.638
Problem: Can't build with Lua 5.3 on Windows.
Solution: use luaL_optinteger() instead of LuaL_optlong(). (Ken Takata)
Files: src/if_lua.c
Patch 7.4.639
Problem: Combination of linebreak and conceal doesn't work well.
Solution: Fix the display problems. (Christian Brabandt)
Files: src/screen.c, src/testdir/, src/testdir/test88.ok,
src/testdir/, src/testdir/test_listlbr_utf8.ok
Patch 7.4.640
Problem: After deleting characters in Insert mode such that lines are
joined undo does not work properly. (issue 324)
Solution: Use Insstart instead of Insstart_orig. (Christian Brabandt)
Files: src/edit.c
Patch 7.4.641
Problem: The tabline menu was using ":999tabnew" which is now invalid.
Solution: Use ":$tabnew" instead. (Florian Degner)
Files: src/normal.c
Patch 7.4.642
Problem: When using "gf" escaped spaces are not handled.
Solution: Recognize escaped spaces.
Files: src/vim.h, src/normal.h, src/window.c, src/misc2.c
Patch 7.4.643
Problem: Using the default file format for Mac files. (Issue 77)
Solution: Reset the try_mac counter in the right place. (Oswald)
Files: src/fileio.c, src/testdir/, src/testdir/test30.ok
Patch 7.4.644
Problem: Stratus VOS doesn't have sync().
Solution: Use fflush(). (Karli Aurelia)
Files: src/memfile.c
Patch 7.4.645
Problem: When splitting the window in a BufAdd autocommand while still in
the first, empty buffer the window count is wrong.
Solution: Do not reset b_nwindows to zero and don't increment it.
Files: src/buffer.c, src/ex_cmds.c
Patch 7.4.646
Problem: ":bufdo" may start at a deleted buffer.
Solution: Find the first not deleted buffer. (Shane Harper)
Files: src/ex_cmds2.c, src/testdir/,
Patch 7.4.647
Problem: After running the tests on MS-Windows many files differ from their
originals as they were checked out.
Solution: Use a temp directory for executing the tests. (Ken Takata, Taro
Files: src/testdir/Make_dos.mak
Patch 7.4.648 (after 7.4.647)
Problem: Tests broken on MS-Windows.
Solution: Delete wrong copy line. (Ken Takata)
Files: src/testdir/Make_dos.mak
Patch 7.4.649
Problem: Compiler complains about ignoring return value of fwrite().
(Michael Jarvis)
Solution: Add (void).
Files: src/misc2.c
Patch 7.4.650
Problem: Configure check may fail because the dl library is not used.
Solution: Put "-ldl" in LIBS rather than LDFLAGS. (Ozaki Kiichi)
Files: src/, src/auto/configure
Patch 7.4.651 (after 7.4.582)
Problem: Can't match "%>80v" properly for multi-byte characters.
Solution: Multiply the character number by the maximum number of bytes in a
character. (Yasuhiro Matsumoto)
Files: src/regexp_nfa.c
Patch 7.4.652
Problem: Xxd lacks a few features.
Solution: Use 8 characters for the file position. Add the -e and -o
arguments. (Vadim Vygonets)
Files: src/xxd/xxd.c, runtime/doc/xxd.1
Patch 7.4.653
Problem: Insert mode completion with complete() may have CTRL-L work like
Solution: Handle completion with complete() differently. (Yasuhiro
Matsumoto, Christian Brabandt, Hirohito Higashi)
Files: src/edit.c
Patch 7.4.654
Problem: glob() and globpath() cannot include links to non-existing files.