diff options
Diffstat (limited to '')
-rw-r--r-- | runtime/doc/version7.txt | 18312 |
1 files changed, 18312 insertions, 0 deletions
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt new file mode 100644 index 0000000..c7248c2 --- /dev/null +++ b/runtime/doc/version7.txt @@ -0,0 +1,18312 @@ +*version7.txt* For Vim version 9.0. Last change: 2021 May 17 + + + VIM REFERENCE MANUAL by Bram Moolenaar + + *vim7* *version-7.0* *version7.0* +Welcome to Vim 7! A large number of features has been added. This file +mentions all the new items, changes to existing features and bug fixes +since Vim 6.x. Use this command to see the version you are using: > + :version + +See |vi_diff.txt| for an overview of differences between Vi and Vim 7.0. +See |version4.txt| for differences between Vim 3.x and Vim 4.x. +See |version5.txt| for differences between Vim 4.x and Vim 5.x. +See |version6.txt| for differences between Vim 5.x and Vim 6.x. + +INCOMPATIBLE CHANGES |incompatible-7| + +NEW FEATURES |new-7| + +Vim script enhancements |new-vim-script| +Spell checking |new-spell| +Omni completion |new-omni-completion| +MzScheme interface |new-MzScheme| +Printing multibyte text |new-print-multibyte| +Tab pages |new-tab-pages| +Undo branches |new-undo-branches| +Extended Unicode support |new-more-unicode| +More highlighting |new-more-highlighting| +Translated manual pages |new-manpage-trans| +Internal grep |new-vimgrep| +Scroll back in messages |new-scroll-back| +Cursor past end of the line |new-onemore| +POSIX compatibility |new-posix| +Debugger support |new-debug-support| +Remote file explorer |new-netrw-explore| +Define an operator |new-define-operator| +Mapping to an expression |new-map-expression| +Visual and Select mode mappings |new-map-select| +Location list |new-location-list| +Various new items |new-items-7| + +IMPROVEMENTS |improvements-7| + +COMPILE TIME CHANGES |compile-changes-7| + +BUG FIXES |bug-fixes-7| + +VERSION 7.1 |version-7.1| +Changed |changed-7.1| +Added |added-7.1| +Fixed |fixed-7.1| + +VERSION 7.2 |version-7.2| +Changed |changed-7.2| +Added |added-7.2| +Fixed |fixed-7.2| + +VERSION 7.3 |version-7.3| + +Persistent undo |new-persistent-undo| +More encryption |new-more-encryption| +Conceal text |new-conceal| +Lua interface |new-lua| +Python3 interface |new-python3| + +Changed |changed-7.3| +Added |added-7.3| +Fixed |fixed-7.3| + +VERSION 7.4 |version-7.4| +New regexp engine |new-regexp-engine| +Better Python interface |better-python-interface| +Changed |changed-7.4| +Added |added-7.4| +Fixed |fixed-7.4| + + +============================================================================== +INCOMPATIBLE CHANGES *incompatible-7* + +These changes are incompatible with previous releases. Check this list if you +run into a problem when upgrading from Vim 6.x to 7.0. + +A ":write file" command no longer resets the 'modified' flag of the buffer, +unless the '+' flag is in 'cpoptions' |cpo-+|. This was illogical, since the +buffer is still modified compared to the original file. And when undoing +all changes the file would actually be marked modified. It does mean that +":quit" fails now. + +":helpgrep" now uses a help window to display a match. + +In an argument list double quotes could be used to include spaces in a file +name. This caused a difference between ":edit" and ":next" for escaping +double quotes and it is incompatible with some versions of Vi. + Command Vim 6.x file name Vim 7.x file name ~ + :edit foo\"888 foo"888 foo"888 + :next foo\"888 foo888 foo"888 + :next a\"b c\"d ab cd a"b and c"d + +In a |literal-string| a single quote can be doubled to get one. +":echo 'a''b'" would result in "a b", but now that two quotes stand for one it +results in "a'b". + +When overwriting a file with ":w! fname" there was no warning for when "fname" +was being edited by another Vim. Vim now gives an error message |E768|. + +The support for Mac OS 9 has been removed. + +Files ending in .tex now have 'filetype' set to "context", "plaintex", or +"tex". |ft-tex-plugin| + + +Minor incompatibilities: + +For filetype detection: For many types, use */.dir/filename instead of +~/.dir/filename, so that it also works for other user's files. + +For quite a few filetypes the indent settings have been moved from the +filetype plugin to the indent plugin. If you used: > + :filetype plugin on +Then some indent settings may be missing. You need to use: > + :filetype plugin indent on + +":0verbose" now sets 'verbose' to zero instead of one. + +Removed the old and incomplete "VimBuddy" code. + +Buffers without a name report "No Name" instead of "No File". It was +confusing for buffers with a name and 'buftype' set to "nofile". + +When ":file xxx" is used in a buffer without a name, the alternate file name +isn't set. This avoids creating buffers without a name, they are not useful. + +The "2html.vim" script now converts closed folds to HTML. This means the HTML +looks like it's displayed, with the same folds open and closed. Use "zR", or +"let html_ignore_folding=1", if no folds should appear in the HTML. (partly by +Carl Osterwisch) +Diff mode is now also converted to HTML as it is displayed. + +Win32: The effect of the <F10> key depended on 'winaltkeys'. Now it depends +on whether <F10> has been mapped or not. This allows mapping <F10> without +changing 'winaltkeys'. + +When 'octal' is in 'nrformats' and using CTRL-A on "08" it became "018", which +is illogical. Now it becomes "9". The leading zero(s) is(are) removed to +avoid the number becoming octal after incrementing "009" to "010". + +When 'encoding' is set to a Unicode encoding, the value for 'fileencodings' +now includes "default" before "latin1". This means that for files with 8-bit +encodings the default is to use the encoding specified by the environment, if +possible. Previously latin1 would always be used, which is wrong in a +non-latin1 environment, such as Russian. + +Previously Vim would exit when there are two windows, both of them displaying +a help file, and using ":quit". Now only the window is closed. + +"-w {scriptout}" only works when {scriptout} doesn't start with a digit. +Otherwise it's used to set the 'window' option. + +Previously <Home> and <xHome> could be mapped separately. This had the +disadvantage that all mappings (with modifiers) had to be duplicated, since +you can't be sure what the keyboard generates. Now all <xHome> are internally +translated to <Home>, both for the keys and for mappings. Also for <xEnd>, +<xF1>, etc. + +":put" now leaves the cursor on the last inserted line. + +When a .gvimrc file exists then 'compatible' is off, just like when a ".vimrc" +file exists. + +When making a string upper-case with "vlllU" or similar then the German sharp +s is replaced with "SS". This does not happen with "~" to avoid backwards +compatibility problems and because "SS" can't be changed back to a sharp s. + +"gd" previously found the very first occurrence of a variable in a function, +that could be the function argument without type. Now it finds the position +where the type is given. + +The line continuation in functions was not taken into account, line numbers in +errors were logical lines, not lines in the sourced file. That made it +difficult to locate errors. Now the line number in the sourced file is +reported, relative to the function start. This also means that line numbers +for ":breakadd func" are different. + +When defining a user command with |:command| the special items could be +abbreviated. This caused unexpected behavior, such as <li> being recognized +as <line1>. The items can no longer be abbreviated. + +When executing a FileChangedRO autocommand it is no longer allowed to switch +to another buffer or edit another file. This is to prevent crashes (the event +is triggered deep down in the code where changing buffers is not anticipated). +It is still possible to reload the buffer. + +At the |more-prompt| and the |hit-enter-prompt|, when the 'more' option is +set, the 'k', 'u', 'g' and 'b' keys are now used to scroll back to previous +messages. Thus they are no longer used as typeahead. + +============================================================================== +NEW FEATURES *new-7* + +Vim script enhancements *new-vim-script* +----------------------- + +In Vim scripts the following types have been added: + + |List| ordered list of items + |Dictionary| associative array of items + |Funcref| reference to a function + +Many functions and commands have been added to support the new types. + +The |string()| function can be used to get a string representation of a +variable. Works for Numbers, Strings and composites of them. Then |eval()| +can be used to turn the string back into the variable value. + +The |:let| command can now use "+=", "-=" and ".=": > + :let var += expr " works like :let var = var + expr + :let var -= expr " works like :let var = var - expr + :let var .= string " works like :let var = var . string + +With the |:profile| command you can find out where your function or script +is wasting time. + +In the Python interface vim.eval() also handles Dictionaries and Lists. +|python-eval| (G. Sumner Hayes) + +The |getscript| plugin was added as a convenient way to update scripts from +www.vim.org automatically. (Charles Campbell) + +The |vimball| plugin was added as a convenient way to distribute a set of +files for a plugin (plugin file, autoload script, documentation). (Charles +Campbell) + + +Spell checking *new-spell* +-------------- + +Spell checking has been integrated in Vim. There were a few implementations +with scripts, but they were slow and/or required an external program. + +The 'spell' option is used to switch spell checking on or off +The 'spelllang' option is used to specify the accepted language(s) +The 'spellfile' option specifies where new words are added +The 'spellsuggest' option specifies the methods used for making suggestions + +The |]s| and |[s| commands can be used to move to the next or previous error +The |zg| and |zw| commands can be used to add good and wrong words +The |z=| command can be used to list suggestions and correct the word +The |:mkspell| command is used to generate a Vim spell file from word lists + +The "undercurl" highlighting attribute was added to nicely point out spelling +mistakes in the GUI (based on patch from Marcin Dalecki). +The "guisp" color can be used to give it a color different from foreground and +background. +The number of possible different highlight attributes was raised from about +220 to over 30000. This allows for the attributes of spelling to be combined +with syntax highlighting attributes. This is also used for syntax +highlighting and marking the Visual area. + +Much more info here: |spell|. + + +Omni completion *new-omni-completion* +--------------- + +This could also be called "intellisense", but that is a trademark. It is a +smart kind of completion. The text in front of the cursor is inspected to +figure out what could be following. This may suggest struct and class +members, system functions, etc. + +Use CTRL-X CTRL-O in Insert mode to start the completion. |i_CTRL-X_CTRL-O| + +The 'omnifunc' option is set by filetype plugins to define the function that +figures out the completion. + +Currently supported languages: + C |ft-c-omni| + (X)HTML with CSS |ft-html-omni| + JavaScript |ft-javascript-omni| + PHP |ft-php-omni| + Python + Ruby |ft-ruby-omni| + SQL |ft-sql-omni| + XML |ft-xml-omni| + any language with syntax highlighting |ft-syntax-omni| + +You can add your own omni completion scripts. + +When the 'completeopt' option contains "menu" then matches for Insert mode +completion are displayed in a (rather primitive) popup menu. + + +MzScheme interface *new-MzScheme* +------------------ + +The MzScheme interpreter is supported. |MzScheme| + +The |:mzscheme| command can be used to execute MzScheme commands +The |:mzfile| command can be used to execute an MzScheme script file + +This depends on Vim being compiled with the |+mzscheme| feature. + + +Printing multibyte text *new-print-multibyte* +------------------------ + +The |:hardcopy| command now supports printing multibyte characters when using +PostScript. + +The 'printmbcharset' and 'printmbfont' options are used for this. +Also see |postscript-cjk-printing|. (Mike Williams) + + +Tab pages *new-tab-pages* +--------- + +A tab page is a page with one or more windows with a label (aka tab) at the top. +By clicking on the label you can quickly switch between the tab pages. And +with the keyboard, using the |gt| (Goto Tab) command. This is a convenient +way to work with many windows. + +To start Vim with each file argument in a separate tab page use the |-p| +argument. The maximum number of pages can be set with 'tabpagemax'. + +The line with tab labels is either made with plain text and highlighting or +with a GUI mechanism. The GUI labels look better but are only available on a +few systems. The line can be customized with 'tabline', 'guitablabel' and +'guitabtooltip'. Whether it is displayed is set with 'showtabline'. Whether +to use the GUI labels is set with the "e" flag in 'guioptions'. + +The |:tab| command modifier can be used to have most commands that open a new +window open a new tab page instead. + +The |--remote-tab| argument can be used to edit a file in a new tab page in an +already running Vim server. + +Variables starting with "t:" are local to a tab page. + +More info here: |tabpage| +Most of the GUI stuff was implemented by Yegappan Lakshmanan. + + +Undo branches *new-undo-branches* +------------- + +Previously there was only one line of undo-redo. If, after undoing a number +of changes, a new change was made all the undone changes were lost. This +could lead to accidentally losing work. + +Vim now makes an undo branch in this situation. Thus you can go back to the +text after any change, even if they were undone. So long as you do not run +into 'undolevels', when undo information is freed up to limit the memory used. + +To be able to navigate the undo branches each change is numbered sequentially. +The commands |g-| and |:earlier| go back in time, to older changes. The +commands |g+| and |:later| go forward in time, to newer changes. + +The changes are also timestamped. Use ":earlier 10m" to go to the text as it +was about ten minutes earlier. + +The |:undolist| command can be used to get an idea of which undo branches +exist. The |:undo| command now takes an argument to directly jump to a +specific position in this list. The |changenr()| function can be used to +obtain the change number. + +There is no graphical display of the tree with changes, navigation can be +quite confusing. + + +Extended Unicode support *new-more-unicode* +------------------------ + +Previously only two combining characters were displayed. The limit is now +raised to 6. This can be set with the 'maxcombine' option. The default is +still 2. + +|ga| now shows all combining characters, not just the first two. + +Previously only 16 bit Unicode characters were supported for displaying. Now +the full 32 bit character set can be used. Unless manually disabled at +compile time to save a bit of memory. + +For pattern matching it is now possible to search for individual composing +characters. |patterns-composing| + +The |8g8| command searches for an illegal UTF-8 byte sequence. + + +More highlighting *new-more-highlighting* +----------------- + +Highlighting matching parens: + +When moving the cursor through the text and it is on a paren, then the +matching paren can be highlighted. This uses the new |CursorMoved| +autocommand event. + +This means some commands are executed every time you move the cursor. If this +slows you down too much switch it off with: > + :NoMatchParen + +See |matchparen| for more information. + +The plugin uses the |:match| command. It now supports three match patterns. +The plugin uses the third one. The first one is for the user and the second +one can be used by another plugin. + +Highlighting the cursor line and column: + +The 'cursorline' and 'cursorcolumn' options have been added. These highlight +the screen line and screen column of the cursor. This makes the cursor +position easier to spot. 'cursorcolumn' is also useful to align text. This +may make screen updating quite slow. The CursorColumn and CursorLine +highlight groups allow changing the colors used. |hl-CursorColumn| +|hl-CursorLine| + +The number of possible different highlight attributes was raised from about +220 to over 30000. This allows for the attributes of spelling to be combined +with syntax highlighting attributes. This is also used for syntax +highlighting, marking the Visual area, CursorColumn, etc. + + +Translated manual pages *new-manpage-trans* +----------------------- + +The manual page of Vim and associated programs is now also available in +several other languages. + +French - translated by David Blanchet +Italian - translated by Antonio Colombo +Russian - translated by Vassily Ragosin +Polish - translated by Mikolaj Machowski + +The Unix Makefile installs the Italian manual pages in .../man/it/man1/, +.../man/it.ISO8859-1/man1/ and .../man/it.UTF-8/man1/. There appears to be no +standard for what encoding goes in the "it" directory, the 8-bit encoded file +is used there as a best guess. +Other languages are installed in similar places. +The translated pages are not automatically installed when Vim was configured +with "--disable-nls", but "make install-languages install-tool-languages" will +do it anyway. + + +Internal grep *new-vimgrep* +------------- + +The ":vimgrep" command can be used to search for a pattern in a list of files. +This is like the ":grep" command, but no external program is used. Besides +better portability, handling of different file encodings and using multi-line +patterns, this also allows grepping in compressed and remote files. +|:vimgrep|. + +If you want to use the search results in a script you can use the +|getqflist()| function. + +To grep files in various directories the "**" pattern can be used. It expands +into an arbitrary depth of directories. "**" can be used in all places where +file names are expanded, thus also with |:next| and |:args|. + + +Scroll back in messages *new-scroll-back* +----------------------- + +When displaying messages, at the |more-prompt| and the |hit-enter-prompt|, The +'k', 'u', 'g' and 'b' keys can be used to scroll back to previous messages. +This is especially useful for commands such as ":syntax", ":autocommand" and +":highlight". This is implemented in a generic way thus it works for all +commands and highlighting is kept. Only works when the 'more' option is set. +Previously it only partly worked for ":clist". + +The |g<| command can be used to see the last page of messages after you have +hit <Enter> at the |hit-enter-prompt|. Then you can scroll further back. + + +Cursor past end of the line *new-onemore* +--------------------------- + +When the 'virtualedit' option contains "onemore" the cursor can move just past +the end of the line. As if it's on top of the line break. + +This makes some commands more consistent. Previously the cursor was always +past the end of the line if the line was empty. But it is far from Vi +compatible. It may also break some plugins or Vim scripts. Use with care! + +The patch was provided by Mattias Flodin. + + +POSIX compatibility *new-posix* +------------------- + +The POSIX test suite was used to verify POSIX compatibility. A number of +problems have been fixed to make Vim more POSIX compatible. Some of them +conflict with traditional Vi or expected behavior. The $VIM_POSIX environment +variable can be set to get POSIX compatibility. See |posix|. + +Items that were fixed for both Vi and POSIX compatibility: +- repeating "R" with a count only overwrites text once; added the 'X' flag to + 'cpoptions' |cpo-X| +- a vertical movement command that moves to a non-existing line fails; added + the '-' flag to 'cpoptions' |cpo--| +- when preserving a file and doing ":q!" the file can be recovered; added the + '&' flag to 'cpoptions' |cpo-&| +- The 'window' option is partly implemented. It specifies how much CTRL-F and + CTRL-B scroll when there is one window. The "-w {number}" argument is now + accepted. "-w {scriptout}" only works when {scriptout} doesn't start with a + digit. +- Allow "-c{command}" argument, no space between "-c" and {command}. +- When writing a file with ":w!" don't reset 'readonly' when 'Z' is present in + 'cpoptions'. +- Allow 'l' and '#' flags for ":list", ":print" and ":number". +- Added the '.' flag to 'cpoptions': ":cd" fails when the buffer is modified. +- In Ex mode with an empty buffer ":read file" doesn't keep an empty line + above or below the new lines. +- Remove a backslash before a NL for the ":global" command. +- When ":append", ":insert" or ":change" is used with ":global", get the + inserted lines from the command. Can use backslash-NL to separate lines. +- Can use ":global /pat/ visual" to execute Normal mode commands at each + matched line. Use "Q" to continue and go to the next line. +- The |:open| command has been partially implemented. It stops Ex mode, but + redraws the whole screen, not just one line as open mode is supposed to do. +- Support using a pipe to read the output from and write input to an external + command. Added the 'shelltemp' option and has("filterpipe"). +- In ex silent mode the ":set" command output is displayed. +- The ":@@" and ":**" give an error message when no register was used before. +- The search pattern "[]-`]" matches ']', '^', '_' and '`'. +- Autoindent for ":insert" is using the line below the insert. +- Autoindent for ":change" is using the first changed line. +- Editing Ex command lines is not done in cooked mode, because CTRL-D and + CTRL-T cannot be handled then. +- In Ex mode, "1,3" prints three lines. "%" prints all lines. +- In Ex mode "undo" would undo all changes since Ex mode was started. +- Implemented the 'prompt' option. + + +Debugger support *new-debug-support* +---------------- + +The 'balloonexpr' option has been added. This is a generic way to implement +balloon functionality. You can use it to show info for the word under the +mouse pointer. + + +Remote file explorer *new-netrw-explore* +-------------------- + +The netrw plugin now also supports viewing a directory, when "scp://" is used. +Deleting and renaming files is possible. + +To avoid duplicating a lot of code, the previous file explorer plugin has been +integrated in the netrw plugin. This means browsing local and remote files +works the same way. + +":browse edit" and ":browse split" use the netrw plugin when it's available +and a GUI dialog is not possible. + +The netrw plugin is maintained by Charles Campbell. + + +Define an operator *new-define-operator* +------------------ + +Previously it was not possible to define your own operator; a command that is +followed by a {motion}. Vim 7 introduces the 'operatorfunc' option and the +|g@| operator. This makes it possible to define a mapping that works like an +operator. The actual work is then done by a function, which is invoked +through the |g@| operator. + +See |:map-operator| for the explanation and an example. + + +Mapping to an expression *new-map-expression* +------------------------ + +The {rhs} argument of a mapping can be an expression. That means the +resulting characters can depend on the context. Example: > + :inoremap <expr> . InsertDot() +Here the dot will be mapped to whatever InsertDot() returns. + +This also works for abbreviations. See |:map-<expr>| for the details. + + +Visual and Select mode mappings *new-map-select* +------------------------------- + +Previously Visual mode mappings applied both to Visual and Select mode. With +a trick to have the mappings work in Select mode like they would in Visual +mode. + +Commands have been added to define mappings for Visual and Select mode +separately: |:xmap| and |:smap|. With the associated "noremap" and "unmap" +commands. + +The same is done for menus: |:xmenu|, |:smenu|, etc. + + +Location list *new-location-list* +------------- + +The support for a per-window quickfix list (location list) is added. The +location list can be displayed in a location window (similar to the quickfix +window). You can open more than one location list window. A set of commands +similar to the quickfix commands are added to browse the location list. +(Yegappan Lakshmanan) + + +Various new items *new-items-7* +----------------- + +Normal mode commands: ~ + +a", a' and a` New text objects to select quoted strings. |a'| +i", i' and i` (Taro Muraoka) + +CTRL-W <Enter> In the quickfix window: opens a new window to show the + location of the error under the cursor. + +|at| and |it| text objects select a block of text between HTML or XML tags. + +<A-LeftMouse> ('mousemodel' "popup" or "popup-setpos") +<A-RightMouse> ('mousemodel' "extend") + Make a blockwise selection. |<A-LeftMouse>| + +gF Start editing the filename under the cursor and jump + to the line number following the file name. + (Yegappan Lakshmanan) + +CTRL-W F Start editing the filename under the cursor in a new + window and jump to the line number following the file + name. (Yegappan Lakshmanan) + +Insert mode commands: ~ + +CTRL-\ CTRL-O Execute a Normal mode command. Like CTRL-O but + without moving the cursor. |i_CTRL-\_CTRL-O| + +Options: ~ + +'balloonexpr' expression for text to show in evaluation balloon +'completefunc' The name of the function used for user-specified + Insert mode completion. CTRL-X CTRL-U can be used in + Insert mode to do any kind of completion. (Taro + Muraoka) +'completeopt' Enable popup menu and other settings for Insert mode + completion. +'cursorcolumn' highlight column of the cursor +'cursorline' highlight line of the cursor +'formatexpr' expression for formatting text with |gq| and when text + goes over 'textwidth' in Insert mode. +'formatlistpat' pattern to recognize a numbered list for formatting. + (idea by Hugo Haas) +'fsync' Whether fsync() is called after writing a file. + (Ciaran McCreesh) +'guitablabel' expression for text to display in GUI tab page label +'guitabtooltip' expression for text to display in GUI tab page tooltip +'macatsui' Mac: use ATSUI text display functions +'maxcombine' maximum number of combining characters displayed +'maxmempattern' maximum amount of memory to use for pattern matching +'mkspellmem' parameters for |:mkspell| memory use +'mzquantum' Time in msec to schedule MzScheme threads. +'numberwidth' Minimal width of the space used for the 'number' and + 'relativenumber' option. (Emmanuel Renieris) +'omnifunc' The name of the function used for omni completion. +'operatorfunc' function to be called for |g@| operator +'printmbcharset' CJK character set to be used for :hardcopy +'printmbfont' font names to be used for CJK output of :hardcopy +'pumheight' maximum number of items to show in the popup menu +'quoteescape' Characters used to escape quotes inside a string. + Used for the a", a' and a` text objects. |a'| +'shelltemp' whether to use a temp file or pipes for shell commands +'showtabline' whether to show the tab pages line +'spell' switch spell checking on/off +'spellcapcheck' pattern to locate the end of a sentence +'spellfile' file where good and wrong words are added +'spelllang' languages to check spelling for +'spellsuggest' methods for spell suggestions +'synmaxcol' maximum column to look for syntax items; avoids very + slow redrawing when there are very long lines +'tabline' expression for text to display in the tab pages line +'tabpagemax' maximum number of tab pages to open for |-p| +'verbosefile' Log messages in a file. +'wildoptions' "tagfile" value enables listing the file name of + matching tags for CTRL-D command line completion. + (based on an idea from Yegappan Lakshmanan) +'winfixwidth' window with fixed width, similar to 'winfixheight' + + +Ex commands: ~ + +Win32: The ":winpos" command now also works in the console. (Vipin Aravind) + +|:startreplace| Start Replace mode. (Charles Campbell) +|:startgreplace| Start Virtual Replace mode. + +|:0file| Removes the name of the buffer. (Charles Campbell) + +|:diffoff| Switch off diff mode in the current window or in all + windows. + +|:delmarks| Delete marks. + +|:exusage| Help for Ex commands (Nvi command). +|:viusage| Help for Vi commands (Nvi command). + +|:sort| Sort lines in the buffer without depending on an + external command. (partly by Bryce Wagner) + +|:vimgrep| Internal grep command, search for a pattern in files. +|:vimgrepadd| Like |:vimgrep| but don't make a new list. + +|:caddfile| Add error messages to an existing quickfix list + (Yegappan Lakshmanan). +|:cbuffer| Read error lines from a buffer. (partly by Yegappan + Lakshmanan) +|:cgetbuffer| Create a quickfix list from a buffer but don't jump to + the first error. +|:caddbuffer| Add errors from the current buffer to the quickfix + list. +|:cexpr| Read error messages from a Vim expression (Yegappan + Lakshmanan). +|:caddexpr| Add error messages from a Vim expression to an + existing quickfix list. (Yegappan Lakshmanan). +|:cgetexpr| Create a quickfix list from a Vim expression, but + don't jump to the first error. (Yegappan Lakshmanan). + +|:lfile| Like |:cfile| but use the location list. +|:lgetfile| Like |:cgetfile| but use the location list. +|:laddfile| Like |:caddfile| but use the location list. +|:lbuffer| Like |:cbuffer| but use the location list. +|:lgetbuffer| Like |:cgetbuffer| but use the location list. +|:laddbuffer| Like |:caddbuffer| but use the location list. +|:lexpr| Like |:cexpr| but use the location list. +|:lgetexpr| Like |:cgetexpr| but use the location list. +|:laddexpr| Like |:caddexpr| but use the location list. +|:ll| Like |:cc| but use the location list. +|:llist| Like |:clist| but use the location list. +|:lnext| Like |:cnext| but use the location list. +|:lprevious| Like |:cprevious| but use the location list. +|:lNext| Like |:cNext| but use the location list. +|:lfirst| Like |:cfirst| but use the location list. +|:lrewind| Like |:crewind| but use the location list. +|:llast| Like |:clast| but use the location list. +|:lnfile| Like |:cnfile| but use the location list. +|:lpfile| Like |:cpfile| but use the location list. +|:lNfile| Like |:cNfile| but use the location list. +|:lolder| Like |:colder| but use the location list. +|:lnewer| Like |:cnewer| but use the location list. +|:lwindow| Like |:cwindow| but use the location list. +|:lopen| Like |:copen| but use the location list. +|:lclose| Like |:cclose| but use the location list. +|:lmake| Like |:make| but use the location list. +|:lgrep| Like |:grep| but use the location list. +|:lgrepadd| Like |:grepadd| but use the location list. +|:lvimgrep| Like |:vimgrep| but use the location list. +|:lvimgrepadd| Like |:vimgrepadd| but use the location list. +|:lhelpgrep| Like |:helpgrep| but use the location list. +|:lcscope| Like |:cscope| but use the location list. +|:ltag| Jump to a tag and add matching tags to a location list. + +|:undojoin| Join a change with the previous undo block. +|:undolist| List the leafs of the undo tree. + +|:earlier| Go back in time for changes in the text. +|:later| Go forward in time for changes in the text. + +|:for| Loop over a |List|. +|:endfor| + +|:lockvar| Lock a variable, prevents it from being changed. +|:unlockvar| Unlock a locked variable. + +|:mkspell| Create a Vim spell file. +|:spellgood| Add a word to the list of good words. +|:spellwrong| Add a word to the list of bad words +|:spelldump| Dump list of good words. +|:spellinfo| Show information about the spell files used. +|:spellrepall| Repeat a spelling correction for the whole buffer. +|:spellundo| Remove a word from list of good and bad words. + +|:mzscheme| Execute MzScheme commands. +|:mzfile| Execute an MzScheme script file. + +|:nbkey| Pass a key to NetBeans for processing. + +|:profile| Commands for Vim script profiling. +|:profdel| Stop profiling for specified items. + +|:smap| Select mode mapping. +|:smapclear| +|:snoremap| +|:sunmap| + +|:xmap| Visual mode mapping, not used for Select mode. +|:xmapclear| +|:xnoremap| +|:xunmap| + +|:smenu| Select mode menu. +|:snoremenu| +|:sunmenu| + +|:xmenu| Visual mode menu, not used for Select mode. +|:xnoremenu| +|:xunmenu| + +|:tabclose| Close the current tab page. +|:tabdo| Perform a command in every tab page. +|:tabedit| Edit a file in a new tab page. +|:tabnew| Open a new tab page. +|:tabfind| Search for a file and open it in a new tab page. +|:tabnext| Go to the next tab page. +|:tabprevious| Go to the previous tab page. +|:tabNext| Go to the previous tab page. +|:tabfirst| Go to the first tab page. +|:tabrewind| Go to the first tab page. +|:tablast| Go to the last tab page. +|:tabmove| Move the current tab page elsewhere. +|:tabonly| Close all other tab pages. +|:tabs| List the tab pages and the windows they contain. + +Ex command modifiers: ~ + +|:keepalt| Do not change the alternate file. + +|:noautocmd| Do not trigger autocommand events. + +|:sandbox| Execute a command in the sandbox. + +|:tab| When opening a new window create a new tab page. + + +Ex command arguments: ~ + +|++bad| Specify what happens with characters that can't be + converted and illegal bytes. (code example by Yasuhiro + Matsumoto) + Also, when a conversion error occurs or illegal bytes + are found include the line number in the error + message. + + +New and extended functions: ~ + +|add()| append an item to a List +|append()| append List of lines to the buffer +|argv()| without an argument return the whole argument list +|browsedir()| dialog to select a directory +|bufnr()| takes an extra argument: create buffer +|byteidx()| index of a character (Ilya Sher) +|call()| call a function with List as arguments +|changenr()| number of current change +|complete()| set matches for Insert mode completion +|complete_add()| add match for 'completefunc' +|complete_check()| check for key pressed, for 'completefunc' +|copy()| make a shallow copy of a List or Dictionary +|count()| count nr of times a value is in a List or Dictionary +|cursor()| also accepts an offset for 'virtualedit', and + the first argument can be a list: [lnum, col, off] +|deepcopy()| make a full copy of a List or Dictionary +|diff_filler()| returns number of filler lines above line {lnum}. +|diff_hlID()| returns the highlight ID for diff mode +|empty()| check if List or Dictionary is empty +|eval()| evaluate {string} and return the result +|extend()| append one List to another or add items from one + Dictionary to another +|feedkeys()| put characters in the typeahead buffer +|filter()| remove selected items from a List or Dictionary +|finddir()| find a directory in 'path' +|findfile()| find a file in 'path' (Johannes Zellner) +|foldtextresult()| the text displayed for a closed fold at line "lnum" +|function()| make a Funcref out of a function name +|garbagecollect()| cleanup unused |Lists| and |Dictionaries| with circular + references +|get()| get an item from a List or Dictionary +|getbufline()| get a list of lines from a specified buffer + (Yegappan Lakshmanan) +|getcmdtype()| return the current command-line type + (Yegappan Lakshmanan) +|getfontname()| get actual font name being used +|getfperm()| get file permission string (Nikolai Weibull) +|getftype()| get type of file (Nikolai Weibull) +|getline()| with second argument: get List with buffer lines +|getloclist()| list of location list items (Yegappan Lakshmanan) +|getpos()| return a list with the position of cursor, mark, etc. +|getqflist()| list of quickfix errors (Yegappan Lakshmanan) +|getreg()| get contents of a register +|gettabwinvar()| get variable from window in specified tab page. +|has_key()| check whether a key appears in a Dictionary +|haslocaldir()| check if current window used |:lcd| +|hasmapto()| check for a mapping to a string +|index()| index of item in List +|inputlist()| prompt the user to make a selection from a list +|insert()| insert an item somewhere in a List +|islocked()| check if a variable is locked +|items()| get List of Dictionary key-value pairs +|join()| join List items into a String +|keys()| get List of Dictionary keys +|len()| number of items in a List or Dictionary +|map()| change each List or Dictionary item +|maparg()| extra argument: use abbreviation +|mapcheck()| extra argument: use abbreviation +|match()| extra argument: count +|matcharg()| return arguments of |:match| command +|matchend()| extra argument: count +|matchlist()| list with match and submatches of a pattern in a string +|matchstr()| extra argument: count +|max()| maximum value in a List or Dictionary +|min()| minimum value in a List or Dictionary +|mkdir()| create a directory +|pathshorten()| reduce directory names to a single character +|printf()| format text +|pumvisible()| check whether the popup menu is displayed +|range()| generate a List with numbers +|readfile()| read a file into a list of lines +|reltime()| get time value, possibly relative +|reltimestr()| turn a time value into a string +|remove()| remove one or more items from a List or Dictionary +|repeat()| repeat "expr" "count" times (Christophe Poucet) +|reverse()| reverse the order of a List +|search()| extra argument: +|searchdecl()| search for declaration of variable +|searchpair()| extra argument: line to stop searching +|searchpairpos()| return a List with the position of the match +|searchpos()| return a List with the position of the match +|setloclist()| modify a location list (Yegappan Lakshmanan) +|setpos()| set cursor or mark to a position +|setqflist()| modify a quickfix list (Yegappan Lakshmanan) +|settabwinvar()| set variable in window of specified tab page +|sort()| sort a List +|soundfold()| get the sound-a-like equivalent of a word +|spellbadword()| get a badly spelled word +|spellsuggest()| get suggestions for correct spelling +|split()| split a String into a List +|str2nr()| convert a string to a number, base 2, 8, 10 or 16 +|stridx()| extra argument: start position +|strridx()| extra argument: start position +|string()| string representation of a List or Dictionary +|system()| extra argument: filters {input} through a shell command +|tabpagebuflist()| List of buffers in a tab page +|tabpagenr()| number of current or last tab page +|tabpagewinnr()| window number in a tab page +|tagfiles()| List with tags file names +|taglist()| get list of matching tags (Yegappan Lakshmanan) +|tr()| translate characters (Ron Aaron) +|uniq()| remove copies of repeated adjacent list items +|values()| get List of Dictionary values +|winnr()| takes an argument: what window to use +|winrestview()| restore the view of the current window +|winsaveview()| save the view of the current window +|writefile()| write a list of lines into a file + +User defined functions can now be loaded automatically from the "autoload" +directory in 'runtimepath'. See |autoload-functions|. + + +New Vim variables: ~ + +|v:insertmode| used for |InsertEnter| and |InsertChange| autocommands +|v:val| item value in a |map()| or |filter()| function +|v:key| item key in a |map()| or |filter()| function +|v:profiling| non-zero after a ":profile start" command +|v:fcs_reason| the reason why |FileChangedShell| was triggered +|v:fcs_choice| what should happen after |FileChangedShell| +|v:beval_bufnr| buffer number for 'balloonexpr' +|v:beval_winnr| window number for 'balloonexpr' +|v:beval_lnum| line number for 'balloonexpr' +|v:beval_col| column number for 'balloonexpr' +|v:beval_text| text under the mouse pointer for 'balloonexpr' +|v:scrollstart| what caused the screen to be scrolled up +|v:swapname| name of the swap file for the |SwapExists| event +|v:swapchoice| what to do for an existing swap file +|v:swapcommand| command to be executed after handling |SwapExists| +|v:char| argument for evaluating 'formatexpr' + + +New autocommand events: ~ + +|ColorScheme| after loading a color scheme + +|CursorHoldI| the user doesn't press a key for a while in Insert mode +|CursorMoved| the cursor was moved in Normal mode +|CursorMovedI| the cursor was moved in Insert mode + +|FileChangedShellPost| after handling a file changed outside of Vim + +|InsertEnter| starting Insert or Replace mode +|InsertChange| going from Insert to Replace mode or back +|InsertLeave| leaving Insert or Replace mode + +|MenuPopup| just before showing popup menu + +|QuickFixCmdPre| before :make, :grep et al. (Ciaran McCreesh) +|QuickFixCmdPost| after :make, :grep et al. (Ciaran McCreesh) + +|SessionLoadPost| after loading a session file. (Yegappan Lakshmanan) + +|ShellCmdPost| after executing a shell command +|ShellFilterPost| after filtering with a shell command + +|SourcePre| before sourcing a Vim script + +|SpellFileMissing| when a spell file can't be found + +|SwapExists| found existing swap file when editing a file + +|TabEnter| just after entering a tab page +|TabLeave| just before leaving a tab page + +|VimResized| after the Vim window size changed (Yakov Lerner) + + +New highlight groups: ~ + +Pmenu Popup menu: normal item |hl-Pmenu| +PmenuSel Popup menu: selected item |hl-PmenuSel| +PmenuThumb Popup menu: scrollbar |hl-PmenuThumb| +PmenuSbar Popup menu: Thumb of the scrollbar |hl-PmenuSbar| + +TabLine tab pages line, inactive label |hl-TabLine| +TabLineSel tab pages line, selected label |hl-TabLineSel| +TabLineFill tab pages line, filler |hl-TabLineFill| + +SpellBad badly spelled word |hl-SpellBad| +SpellCap word with wrong caps |hl-SpellCap| +SpellRare rare word |hl-SpellRare| +SpellLocal word only exists in other region |hl-SpellLocal| + +CursorColumn 'cursorcolumn' |hl-CursorColumn| +CursorLine 'cursorline' |hl-CursorLine| + +MatchParen matching parens |pi_paren.txt| |hl-MatchParen| + + +New items in search patterns: ~ +|/\%d| \%d123 search for character with decimal number +|/\]| [\d123] idem, in a collection +|/\%o| \%o103 search for character with octal number +|/\]| [\o1o3] idem, in a collection +|/\%x| \%x1a search for character with 2 pos. hex number +|/\]| [\x1a] idem, in a collection +|/\%u| \%u12ab search for character with 4 pos. hex number +|/\]| [\u12ab] idem, in a collection +|/\%U| \%U1234abcd search for character with 8 pos. hex number +|/\]| [\U1234abcd] idem, in a collection + (The above partly by Ciaran McCreesh) + +|/[[=| [[=a=]] an equivalence class (only for latin1 characters) +|/[[.| [[.a.]] a collation element (only works with single char) + +|/\%'m| \%'m match at mark m +|/\%<'m| \%<'m match before mark m +|/\%>'m| \%>'m match after mark m +|/\%V| \%V match in Visual area + +Nesting |/multi| items no longer is an error when an empty match is possible. + +It is now possible to use \{0}, it matches the preceding atom zero times. Not +useful, just for compatibility. + + +New Syntax/Indent/FTplugin files: ~ + +Moved all the indent settings from the filetype plugin to the indent file. +Implemented b:undo_indent to undo indent settings when setting 'filetype' to a +different value. + +a2ps syntax and ftplugin file. (Nikolai Weibull) +ABAB/4 syntax file. (Marius van Wyk) +alsaconf ftplugin file. (Nikolai Weibull) +AppendMatchGroup ftplugin file. (Dave Silvia) +arch ftplugin file. (Nikolai Weibull) +asterisk and asteriskvm syntax file. (Tilghman Lesher) +BDF ftplugin file. (Nikolai Weibull) +BibTeX indent file. (Dorai Sitaram) +BibTeX Bibliography Style syntax file. (Tim Pope) +BTM ftplugin file. (Bram Moolenaar) +calendar ftplugin file. (Nikolai Weibull) +Changelog indent file. (Nikolai Weibull) +ChordPro syntax file. (Niels Bo Andersen) +Cmake indent and syntax file. (Andy Cedilnik) +conf ftplugin file. (Nikolai Weibull) +context syntax and ftplugin file. (Nikolai Weibull) +CRM114 ftplugin file. (Nikolai Weibull) +cvs RC ftplugin file. (Nikolai Weibull) +D indent file. (Jason Mills) +Debian Sources.list syntax file. (Matthijs Mohlmann) +dictconf and dictdconf syntax, indent and ftplugin files. (Nikolai Weibull) +diff ftplugin file. (Bram Moolenaar) +dircolors ftplugin file. (Nikolai Weibull) +django and htmldjango syntax file. (Dave Hodder) +doxygen syntax file. (Michael Geddes) +elinks ftplugin file. (Nikolai Weibull) +eterm ftplugin file. (Nikolai Weibull) +eviews syntax file. (Vaidotas Zemlys) +fetchmail RC ftplugin file. (Nikolai Weibull) +FlexWiki syntax and ftplugin file. (George Reilly) +Generic indent file. (Dave Silvia) +gpg ftplugin file. (Nikolai Weibull) +gretl syntax file. (Vaidotas Zemlys) +groovy syntax file. (Alessio Pace) +group syntax and ftplugin file. (Nikolai Weibull) +grub ftplugin file. (Nikolai Weibull) +Haskell ftplugin file. (Nikolai Weibull) +help ftplugin file. (Nikolai Weibull) +indent ftplugin file. (Nikolai Weibull) +Javascript ftplugin file. (Bram Moolenaar) +Kconfig ftplugin and syntax file. (Nikolai Weibull) +ld syntax, indent and ftplugin file. (Nikolai Weibull) +lftp ftplugin file. (Nikolai Weibull) +libao config ftplugin file. (Nikolai Weibull) +limits syntax and ftplugin file. (Nikolai Weibull) +Lisp indent file. (Sergey Khorev) +loginaccess and logindefs syntax and ftplugin file. (Nikolai Weibull) +m4 ftplugin file. (Nikolai Weibull) +mailaliases syntax file. (Nikolai Weibull) +mailcap ftplugin file. (Nikolai Weibull) +manconf syntax and ftplugin file. (Nikolai Weibull) +matlab ftplugin file. (Jake Wasserman) +Maxima syntax file. (Robert Dodier) +MGL syntax file. (Gero Kuhlmann) +modconf ftplugin file. (Nikolai Weibull) +mplayer config ftplugin file. (Nikolai Weibull) +Mrxvtrc syntax and ftplugin file. (Gautam Iyer) +MuPAD source syntax, indent and ftplugin. (Dave Silvia) +mutt RC ftplugin file. (Nikolai Weibull) +nanorc syntax and ftplugin file. (Nikolai Weibull) +netrc ftplugin file. (Nikolai Weibull) +pamconf syntax and ftplugin file. (Nikolai Weibull) +Pascal indent file. (Neil Carter) +passwd syntax and ftplugin file. (Nikolai Weibull) +PHP compiler plugin. (Doug Kearns) +pinfo ftplugin file. (Nikolai Weibull) +plaintex syntax and ftplugin files. (Nikolai Weibull, Benji Fisher) +procmail ftplugin file. (Nikolai Weibull) +prolog ftplugin file. (Nikolai Weibull) +protocols syntax and ftplugin file. (Nikolai Weibull) +quake ftplugin file. (Nikolai Weibull) +racc syntax and ftplugin file. (Nikolai Weibull) +readline ftplugin file. (Nikolai Weibull) +rhelp syntax file. (Johannes Ranke) +rnoweb syntax file. (Johannes Ranke) +Relax NG compact ftplugin file. (Nikolai Weibull) +Scheme indent file. (Sergey Khorev) +screen ftplugin file. (Nikolai Weibull) +sensors syntax and ftplugin file. (Nikolai Weibull) +services syntax and ftplugin file. (Nikolai Weibull) +setserial syntax and ftplugin file. (Nikolai Weibull) +sieve syntax and ftplugin file. (Nikolai Weibull) +SiSU syntax file (Ralph Amissah) +Sive syntax file. (Nikolai Weibull) +slp config, reg and spi syntax and ftplugin files. (Nikolai Weibull) +SML indent file. (Saikat Guha) +SQL anywhere syntax and indent file. (David Fishburn) +SQL indent file. +SQL-Informix syntax file. (Dean L Hill) +SQL: Handling of various variants. (David Fishburn) +sshconfig ftplugin file. (Nikolai Weibull) +Stata and SMCL syntax files. (Jeff Pitblado) +sudoers ftplugin file. (Nikolai Weibull) +sysctl syntax and ftplugin file. (Nikolai Weibull) +terminfo ftplugin file. (Nikolai Weibull) +trustees syntax file. (Nima Talebi) +Vera syntax file. (David Eggum) +udev config, permissions and rules syntax and ftplugin files. (Nikolai Weibull) +updatedb syntax and ftplugin file. (Nikolai Weibull) +VHDL indent file (Gerald Lai) +WSML syntax file. (Thomas Haselwanter) +Xdefaults ftplugin file. (Nikolai Weibull) +XFree86 config ftplugin file. (Nikolai Weibull) +xinetd syntax, indent and ftplugin file. (Nikolai Weibull) +xmodmap ftplugin file. (Nikolai Weibull) +Xquery syntax file. (Jean-Marc Vanel) +xsd (XML schema) indent file. +YAML ftplugin file. (Nikolai Weibull) +Zsh ftplugin file. (Nikolai Weibull) + + +New Keymaps: ~ + +Sinhala (Sri Lanka) (Harshula Jayasuriya) +Tamil in TSCII encoding (Yegappan Lakshmanan) +Greek in cp737 (Panagiotis Louridas) +Polish-slash (HS6_06) +Ukrainian-jcuken (Anatoli Sakhnik) +Kana (Edward L. Fox) + + +New message translations: ~ + +The Ukrainian messages are now also available in cp1251. +Vietnamese message translations and menu. (Phan Vinh Thinh) + + +Others: ~ + +The |:read| command has the |++edit| argument. This means it will use the +detected 'fileformat', 'fileencoding' and other options for the buffer. This +also fixes the problem that editing a compressed file didn't set these +options. + +The Netbeans interface was updated for Sun Studio 10. The protocol number +goes from 2.2 to 2.3. (Gordon Prieur) + +Mac: When starting up Vim will load the $VIMRUNTIME/macmap.vim script to +define default command-key mappings. (mostly by Benji Fisher) + +Mac: Add the selection type to the clipboard, so that Block, line and +character selections can be used between two Vims. (Eckehard Berns) +Also fixes the problem that setting 'clipboard' to "unnamed" breaks using +"yyp". + +Mac: GUI font selector. (Peter Cucka) + +Mac: support for multibyte characters. (Da Woon Jung) +This doesn't always work properly. If you see text drawing problems try +switching the 'macatsui' option off. + +Mac: Support the xterm mouse in the non-GUI version. + +Mac: better integration with Xcode. Post a fake mouse-up event after the odoc +event and the drag receive handler to work around a stall after Vim loads a +file. Fixed an off-by-one line number error. (Da Woon Jung) + +Mac: When started from Finder change directory to the file being edited or the +user home directory. + +Added the t_SI and t_EI escape sequences for starting and ending Insert mode. +To be used to set the cursor shape to a bar or a block. No default values, +they are not supported by termcap/terminfo. + +GUI font selector for Motif. (Marcin Dalecki) + +Nicer toolbar buttons for Motif. (Marcin Dalecki) + +Mnemonics for the Motif find/replace dialog. (Marcin Dalecki) + +Included a few improvements for Motif from Marcin Dalecki. Draw label +contents ourselves to make them handle fonts in a way configurable by Vim and +a bit less dependent on the X11 font management. + +Autocommands can be defined local to a buffer. This means they will also work +when the buffer does not have a name or no specific name. See +|autocmd-buflocal|. (Yakov Lerner) + +For xterm most combinations of modifiers with function keys are recognized. +|xterm-modifier-keys| + +When 'verbose' is set the output of ":highlight" will show where a highlight +item was last set. +When 'verbose' is set the output of the ":map", ":abbreviate", ":command", +":function" and ":autocmd" commands will show where it was last defined. +(Yegappan Lakshmanan) + +":function /pattern" lists functions matching the pattern. + +"1gd" can be used like "gd" but ignores matches in a {} block that ends before +the cursor position. Likewise for "1gD" and "gD". + +'scrolljump' can be set to a negative number to scroll a percentage of the +window height. + +The |v:scrollstart| variable has been added to help find the location in +your script that causes the hit-enter prompt. + +To make it possible to handle the situation that a file is being edited that +is already being edited by another Vim instance, the |SwapExists| event has +been added. The |v:swapname|, |v:swapchoice| and |v:swapcommand| variables +can be used, for example to use the |client-server| functionality to bring the +other Vim to the foreground. +When starting Vim with a "-t tag" argument, there is an existing swapfile and +the user selects "quit" or "abort" then exit Vim. + +Undo now also restores the '< and '> marks. "gv" selects the same area as +before the change and undo. + +When editing a search pattern for a "/" or "?" command and 'incsearch' is set +CTRL-L can be used to add a character from the current match. CTRL-R CTRL-W +will add a word, but exclude the part of the word that was already typed. + +Ruby interface: add line number methods. (Ryan Paul) + +The $MYVIMRC environment variable is set to the first found vimrc file. +The $MYGVIMRC environment variable is set to the first found gvimrc file. + +============================================================================== +IMPROVEMENTS *improvements-7* + +":helpgrep" accepts a language specifier after the pattern: "pat@it". + +Moved the help for printing to a separate help file. It's quite a lot now. + +When doing completion for ":!cmd", ":r !cmd" or ":w !cmd" executable files are +found in $PATH instead of looking for ordinary files in the current directory. + +When ":silent" is used and a backwards range is given for an Ex command the +range is swapped automatically instead of asking if that is OK. + +The pattern matching code was changed from a recursive function to an +iterative mechanism. This avoids out-of-stack errors. State is stored in +allocated memory, running out of memory can always be detected. Allows +matching more complex things, but Vim may seem to hang while doing that. + +Previously some options were always evaluated in the |sandbox|. Now that only +happens when the option was set from a modeline or in secure mode. Applies to +'balloonexpr', 'foldexpr', 'foldtext' and 'includeexpr'. (Sumner Hayes) + +Some commands and expressions could have nasty side effects, such as using +CTRL-R = while editing a search pattern and the expression invokes a function +that jumps to another window. The |textlock| has been added to prevent this +from happening. + +":breakadd here" and ":breakdel here" can be used to set or delete a +breakpoint at the cursor. + +It is now possible to define a function with: > + :exe "func Test()\n ...\n endfunc" + +The tutor was updated to make it simpler to use and text was added to explain +a few more important commands. Used ideas from Gabriel Zachmann. + +Unix: When libcall() fails obtain an error message with dlerror() and display +it. (Johannes Zellner) + +Mac and Cygwin: When editing an existing file make the file name the same case +of the edited file. Thus when typing ":e os_UNIX.c" the file name becomes +"os_unix.c". + +Added "nbsp" in 'listchars'. (David Blanchet) + +Added the "acwrite" value for the 'buftype' option. This is for a buffer that +does not have a name that refers to a file and is written with BufWriteCmd +autocommands. + +For lisp indenting and matching parenthesis: (Sergey Khorev) +- square brackets are recognized properly +- #\(, #\), #\[ and #\] are recognized as character literals +- Lisp line comments (delimited by semicolon) are recognized + +Added the "count" argument to match(), matchend() and matchstr(). (Ilya Sher) + +winnr() takes an optional "$" or "#" argument. (Nikolai Weibull, Yegappan +Lakshmanan) + +Added 's' flag to search(): set ' mark if cursor moved. (Yegappan Lakshmanan) +Added 'n' flag to search(): don't move the cursor. (Nikolai Weibull) +Added 'c' flag to search(): accept match at the cursor. +Added 'e' flag to search(): move to end of the match. (Benji Fisher) +Added 'p' flag to search(): return number of sub-pattern. (Benji Fisher) +These also apply to searchpos(), searchpair() and searchpairpos(). + +The search() and searchpair() functions have an extra argument to specify +where to stop searching. Speeds up searches that should not continue too far. + +When uncompressing fails in the gzip plugin, give an error message but don't +delete the raw text. Helps if the file has a .gz extension but is not +actually compressed. (Andrew Pimlott) + +When C, C++ or IDL syntax is used, may additionally load doxygen syntax. +(Michael Geddes) + +Support setting 'filetype' and 'syntax' to "aaa.bbb" for "aaa" plus "bbb" +filetype or syntax. + +The ":registers" command now displays multibyte characters properly. + +VMS: In the usage message mention that a slash can be used to make a flag +upper case. Add color support to the builtin vt320 terminal codes. +(Zoltan Arpadffy) + +For the '%' item in 'viminfo', allow a number to set a maximum for the number +of buffers. + +For recognizing the file type: When a file looks like a shell script, check +for an "exec" command that starts the tcl interpreter. (suggested by Alexios +Zavras) + +Support conversion between utf-8 and latin9 (iso-8859-15) internally, so that +digraphs still work when iconv is not available. + +When a session file is loaded while editing an unnamed, empty buffer that +buffer is wiped out. Avoids that there is an unused buffer in the buffer +list. + +Win32: When libintl.dll supports bind_textdomain_codeset(), use it. +(NAKADAIRA Yukihiro) + +Win32: Vim was not aware of hard links on NTFS file systems. These are +detected now for when 'backupcopy' is "auto". Also fixed a bogus "file has +been changed since reading it" error for links. + +When foldtext() finds no text after removing the comment leader, use the +second line of the fold. Helps for C-style /* */ comments where the first +line is just "/*". + +When editing the same file from two systems (e.g., Unix and MS-Windows) there +mostly was no warning for an existing swap file, because the name of the +edited file differs (e.g., y:\dir\file vs /home/me/dir/file). Added a flag to +the swap file to indicate it is in the same directory as the edited file. The +used path then doesn't matter and the check for editing the same file is much +more reliable. + +Unix: When editing a file through a symlink the swap file would use the name +of the symlink. Now use the name of the actual file, so that editing the same +file twice is detected. (suggestions by Stefano Zacchiroli and James Vega) + +Client-server communication now supports 'encoding'. When setting 'encoding' +in a Vim server to "utf-8", and using "vim --remote fname" in a console, +"fname" is converted from the console encoding to utf-8. Also allows Vims +with different 'encoding' settings to exchange messages. + +Internal: Changed ga_room into ga_maxlen, so that it doesn't need to be +incremented/decremented each time. + +When a register is empty it is not stored in the viminfo file. + +Removed the tcltags script, it's obsolete. + +":redir @*>>" and ":redir @+>>" append to the clipboard. Better check for +invalid characters after the register name. |:redir| + +":redir => variable" and ":redir =>> variable" write or append to a variable. +(Yegappan Lakshmanan) |:redir| + +":redir @{a-z}>>" appends to register a to z. (Yegappan Lakshmanan) + +The 'verbosefile' option can be used to log messages in a file. Verbose +messages are not displayed then. The "-V{filename}" argument can be used to +log startup messages. + +":let g:" lists global variables. +":let b:" lists buffer-local variables. +":let w:" lists window-local variables. +":let v:" lists Vim variables. + +The stridx() and strridx() functions take a third argument, where to start +searching. (Yegappan Lakshmanan) + +The getreg() function takes an extra argument to be able to get the expression +for the '=' register instead of the result of evaluating it. + +The setline() function can take a List argument to set multiple lines. When +the line number is just below the last line the line is appended. + +g CTRL-G also shows the number of characters if it differs from the number of +bytes. + +Completion for ":debug" and entering an expression for the '=' register. Skip +":" between range and command name. (Peter Winters) + +CTRL-Q in Insert mode now works like CTRL-V by default. Previously it was +ignored. + +When "beep" is included in 'debug' a function or script that causes a beep +will result in a message with the source of the error. + +When completing buffer names, match with "\(^\|[\/]\)" instead of "^", so that +":buf stor<Tab>" finds both "include/storage.h" and "storage/main.c". + +To count items (pattern matches) without changing the buffer the 'n' flag has +been added to |:substitute|. See |count-items|. + +In a |:substitute| command the \u, \U, \l and \L items now also work for +multibyte characters. + +The "screen.linux" $TERM name is recognized to set the default for +'background' to "dark". (Ciaran McCreesh) Also for "cygwin" and "putty". + +The |FileChangedShell| autocommand event can now use the |v:fcs_reason| +variable that specifies what triggered the event. |v:fcs_choice| can be used +to reload the buffer or ask the user what to do. + +Not all modifiers were recognized for xterm function keys. Added the +possibility in term codes to end in ";*X" or "O*X", where X is any character +and the * stands for the modifier code. +Added the <xUp>, <xDown>, <xLeft> and <xRight> keys, to be able to recognize +the two forms that xterm can send their codes in and still handle all possible +modifiers. + +getwinvar() now also works to obtain a buffer-local option from the specified +window. + +Added the "%s" item to 'errorformat'. (Yegappan Lakshmanan) +Added the "%>" item to 'errorformat'. + +For 'errorformat' it was not possible to have a file name that contains the +character that follows after "%f". For example, in "%f:%l:%m" the file name +could not contain ":". Now include the first ":" where the rest of the +pattern matches. In the example a ":" not followed by a line number is +included in the file name. (suggested by Emanuele Giaquinta) + +GTK GUI: use the GTK file dialog when it's available. Mix from patches by +Grahame Bowland and Evan Webb. + +Added ":scriptnames" to bugreport.vim, so that we can see what plugins were +used. + +Win32: If the user changes the setting for the number of lines a scroll wheel +click scrolls it is now used immediately. Previously Vim would need to be +restarted. + +When using @= in an expression the value is expression @= contains. ":let @= += value" can be used to set the register contents. + +A ! can be added to ":popup" to have the popup menu appear at the mouse +pointer position instead of the text cursor. + +The table with encodings has been expanded with many MS-Windows codepages, +such as cp1250 and cp737, so that these can also be used on Unix without +prepending "8bit-". +When an encoding name starts with "microsoft-cp" ignore the "microsoft-" part. + +Added the "customlist" completion argument to a user-defined command. The +user-defined completion function should return the completion candidates as a +Vim List and the returned results are not filtered by Vim. (Yegappan +Lakshmanan) + +Win32: Balloons can have multiple lines if common controls supports it. +(Sergey Khorev) + +For command-line completion the matches for various types of arguments are now +sorted: user commands, variables, syntax names, etc. + +When no locale is set, thus using the "C" locale, Vim will work with latin1 +characters, using its own isupper()/toupper()/etc. functions. + +When using an rxvt terminal emulator guess the value of 'background' using the +COLORFGBG environment variable. (Ciaran McCreesh) + +Also support t_SI and t_EI on Unix with normal features. (Ciaran McCreesh) + +When 'foldcolumn' is one then put as much info in it as possible. This allows +closing a fold with the mouse by clicking on the '-'. + +input() takes an optional completion argument to specify the type of +completion supported for the input. (Yegappan Lakshmanan) + +"dp" works with more than two buffers in diff mode if there is only one where +'modifiable' is set. + +The 'diffopt' option has three new values: "horizontal", "vertical" and +"foldcolumn". + +When the 'include' option contains \zs the file name found is what is being +matched from \zs to the end or \ze. Useful to pass more to 'includeexpr'. + +Loading plugins on startup now supports subdirectories in the plugin +directory. |load-plugins| + +In the foldcolumn always show the '+' for a closed fold, so that it can be +opened easily. It may overwrite another character, esp. if 'foldcolumn' is 1. + +It is now possible to get the W10 message again by setting 'readonly'. Useful +in the FileChangedRO autocommand when checking out the file fails. + +Unix: When open() returns EFBIG give an appropriate message. + +":mksession" sets the SessionLoad variable to notify plugins. A modeline is +added to the session file to set 'filetype' to "vim". + +In the ATTENTION prompt put the "Delete it" choice before "Quit" to make it +more logical. (Robert Webb) + +When appending to a file while the buffer has no name the name of the appended +file would be used for the current buffer. But the buffer contents is +actually different from the file content. Don't set the file name, unless the +'P' flag is present in 'cpoptions'. + +When starting to edit a new file and the directory for the file doesn't exist +then Vim will report "[New DIRECTORY]" instead of "[New File] to give the user +a hint that something might be wrong. + +Win32: Preserve the hidden attribute of the viminfo file. + +In Insert mode CTRL-A didn't keep the last inserted text when using CTRL-O and +then a cursor key. Now keep the previously inserted text if nothing is +inserted after the CTRL-O. Allows using CTRL-O commands to move the cursor +without losing the last inserted text. + +The exists() function now supports checking for autocmd group definition +and for supported autocommand events. (Yegappan Lakshmanan) + +Allow using ":global" in the sandbox, it doesn't do anything harmful by +itself. + +":saveas asdf.c" will set 'filetype' to c when it's empty. Also for ":w +asdf.c" when it sets the filename for the buffer. + +Insert mode completion for whole lines now also searches unloaded buffers. + +The colortest.vim script can now be invoked directly with ":source" or +":runtime syntax/colortest.vim". + +The 'statusline' option can be local to the window, so that each window can +have a different value. (partly by Yegappan Lakshmanan) + +The 'statusline' option and other options that support the same format can now +use these new features: +- When it starts with "%!" the value is first evaluated as an expression + before parsing the value. +- "%#HLname#" can be used to start highlighting with HLname. + +When 'statusline' is set to something that causes an error message then it is +made empty to avoid an endless redraw loop. Also for other options, such at +'tabline' and 'titlestring'. ":verbose set statusline" will mention that it +was set in an error handler. + +When there are several matching tags, the ":tag <name>" and CTRL-] commands +jump to the [count] matching tag. (Yegappan Lakshmanan) + +Win32: In the batch files generated by the install program, use $VIMRUNTIME or +$VIM if it's set. Example provided by Mathias Michaelis. +Also create a vimtutor.bat batch file. + +The 'balloonexpr' option is now |global-local|. + +The system() function now runs in cooked mode, thus can be interrupted by +CTRL-C. + +============================================================================== +COMPILE TIME CHANGES *compile-changes-7* + +Dropped the support for the BeOS and Amiga GUI. They were not maintained and +probably didn't work. If you want to work on this: get the Vim 6.x version +and merge it back in. + +When running the tests and one of them fails to produce "test.out" the +following tests are still executed. This helps when running out of memory. + +When compiling with EXITFREE defined and the ccmalloc library, it is possible +to detect memory leaks. Some memory will always be reported as leaked, such +as allocated by X11 library functions and the memory allocated in +alloc_cmdbuff() to store the ":quit" command. + +Moved the code for printing to src/hardcopy.c. + +Moved some code from main() to separate functions to make it easier to see +what is being done. Using a structure to avoid a lot of arguments to the +functions. + +Moved unix_expandpath() to misc1.c, so that it can also be used by os_mac.c +without copying the code. + +--- Mac --- + +"make" now creates the Vim.app directory and "make install" copies it to its +final destination. (Raf) + +Put the runtime directory not directly in Vim.app but in +Vim.app/Contents/Resources/vim, so that it's according to Mac specs. + +Made it possible to compile with Motif, Athena or GTK without tricks and still +being able to use the MacRoman conversion. Added the os_mac_conv.c file. + +When running "make install" the runtime files are installed as for Unix. +Avoids that too many files are copied. When running "make" a link to the +runtime files is created to avoid a recursive copy that takes much time. + +Configure will attempt to build Vim for both Intel and PowerPC. The +--with-mac-arch configure argument can change it. + +--- Win32 --- + +The Make_mvc.mak file was adjusted to work with the latest MS compilers, +including the free version of Visual Studio 2005. (George Reilly) + +INSTALLpc.txt was updated for the recent changes. (George Reilly) + +The distributed executable is now produced with the free Visual C++ Toolkit +2003 and other free SDK chunks. msvcsetup.bat was added to support this. + +Also generate the .pdb file that can be used to generate a useful crash report +on MS-Windows. (George Reilly) + +============================================================================== +BUG FIXES *bug-fixes-7* + +When using PostScript printing on MS-DOS the default 'printexpr' used "lpr" +instead of "copy". When 'printdevice' was empty the copy command did not +work. Use "LPT1" then. + +The GTK font dialog uses a font size zero when the font name doesn't include a +size. Use a default size of 10. + +This example in the documentation didn't work: > + :e `=foo . ".c"` +Skip over the expression in `=expr` when looking for comments, |, % and #. + +When ":helpgrep" doesn't find anything there is no error message. + +"L" and "H" did not take closed folds into account. + +Win32: The "-P title" argument stopped at the first title that matched, even +when it doesn't support MDI. + +Mac GUI: CTRL-^ and CTRL-@ did not work. + +"2daw" on "word." at the end of a line didn't include the preceding white +space. + +Win32: Using FindExecutable() doesn't work to find a program. Use +SearchPath() instead. For executable() use $PATHEXT when the program searched +for doesn't have an extension. + +When 'virtualedit' is set, moving the cursor up after appending a character +may move it to a different column. Was caused by auto-formatting moving the +cursor and not putting it back where it was. + +When indent was added automatically and then moving the cursor, the indent was +not deleted (like when pressing ESC). The "I" flag in 'cpoptions' can be used +to make it work the old way. + +When opening a command-line window, 'textwidth' gets set to 78 by the Vim +filetype plugin. Reset 'textwidth' to 0 to avoid lines are broken. + +After using cursor(line, col) moving up/down doesn't keep the same column. + +Win32: Borland C before 5.5 requires using ".u." for LowPart and HighPart +fields. (Walter Briscoe) + +On Sinix SYS_NMLN isn't always defined. Define it ourselves. (Cristiano De +Michele) + +Printing with PostScript may keep the printer waiting for more. Append a +CTRL-D to the printer output. (Mike Williams) + +When converting a string with a hex or octal number the leading '-' was +ignored. ":echo '-05' + 0" resulted in 5 instead of -5. + +Using "@:" to repeat a command line didn't work when it contains control +characters. Also remove "'<,'>" when in Visual mode to avoid that it appears +twice. + +When using file completion for a user command, it would not expand environment +variables like for a regular command with a file argument. + +'cindent': When the argument of a #define looks like a C++ class the next line +is indented too much. + +When 'comments' includes multibyte characters inserting the middle part and +alignment may go wrong. 'cindent' also suffers from this for right-aligned +items. + +Win32: when 'encoding' is set to "utf-8" getenv() still returns strings in the +active codepage. Convert to utf-8. Also for $HOME. + +The default for 'helplang' was "zh" for both "zh_cn" and "zh_tw". Now use +"cn" or "tw" as intended. + +When 'bin' is set and 'eol' is not set then line2byte() added the line break +after the last line while it's not there. + +Using foldlevel() in a WinEnter autocommand may not work. Noticed when +resizing the GUI shell upon startup. + +Python: Using buffer.append(f.readlines()) didn't work. Allow appending a +string with a trailing newline. The newline is ignored. + +When using the ":saveas f2" command for buffer "f1", the Buffers menu would +contain "f2" twice, one of them leading to "f1". Also trigger the BufFilePre +and BufFilePost events for the alternate buffer that gets the old name. + +strridx() did not work well when the needle is empty. (Ciaran McCreesh) + +GTK: Avoid a potential hang in gui_mch_wait_for_chars() when input arrives +just before it is invoked + +VMS: Occasionally CR characters were inserted in the file. Expansion of +environment variables was not correct. (Zoltan Arpadffy) + +UTF-8: When 'delcombine' is set "dw" only deleted the last combining character +from the first character of the word. + +When using ":sball" in an autocommand only the filetype in one buffer was +detected. Reset did_filetype in enter_buffer(). + +When using ":argdo" and the window already was at the first argument index, +but not actually editing it, the current buffer would be used instead. + +When ":next dir/*" includes many matches, adding the names to the argument +list may take an awful lot of time and can't be interrupted. Allow +interrupting this. + +When editing a file that was already loaded in a buffer, modelines were not +used. Now window-local options in the modeline are set. Buffer-local options +and global options remain unmodified. + +Win32: When 'encoding' is set to "utf-8" in the vimrc file, files from the +command line with non-ASCII characters are not used correctly. Recode the +file names when 'encoding' is set, using the Unicode command line. + +Win32 console: When the default for 'encoding' ends up to be "latin1", the +default value of 'isprint' was wrong. + +When an error message is given while waiting for a character (e.g., when an +xterm reports the number of colors), the hit-enter prompt overwrote the last +line. Don't reset msg_didout in normal_cmd() for K_IGNORE. + +Mac GUI: Shift-Tab didn't work. + +When defining tooltip text, don't translate terminal codes, since it's not +going to be used like a command. + +GTK 2: Check the tooltip text for valid utf-8 characters to avoid getting a +GTK error. Invalid characters may appear when 'encoding' is changed. + +GTK 2: Add a safety check for invalid utf-8 sequences, they can crash pango. + +Win32: When 'encoding' is changed while starting up, use the Unicode command +line to convert the file arguments to 'encoding'. Both for the GUI and the +console version. + +Win32 GUI: latin9 text (iso-8859-15) was not displayed correctly, because +there is no codepage for latin9. Do our own conversion from latin9 to UCS2. + +When two versions of GTK+ 2 are installed it was possible to use the header +files from one and the library from the other. Use GTK_LIBDIR to put the +directory for the library early in the link flags. + +With the GUI find/replace dialog a replace only worked if the pattern was +literal text. Now it works for any pattern. + +When 'equalalways' is set and 'eadirection' is "hor", ":quit" would still +cause equalizing window heights in the vertical direction. + +When ":emenu" is used in a startup script the command was put in the typeahead +buffer, causing a prompt for the crypt key to be messed up. + +Mac OS/X: The default for 'isprint' included characters 128-160, causes +problems for Terminal.app. + +When a syntax item with "containedin" is used, it may match in the start or +end of a region with a matchgroup, while this doesn't happen for a "contains" +argument. + +When a transparent syntax items matches in another item where the highlighting +has already stopped (because of a he= argument), the highlighting would come +back. + +When cscope is used to set the quickfix error list, it didn't get set if there +was only one match. (Sergey Khorev) + +When 'confirm' is set and using ":bdel" in a modified buffer, then selecting +"cancel", would still give an error message. + +The PopUp menu items that started Visual mode didn't work when not in Normal +mode. Switching between selecting a word and a line was not possible. + +Win32: The keypad decimal point always resulted in a '.', while on some +keyboards it's a ','. Use MapVirtualKey(VK_DECIMAL, 2). + +Removed unused function DisplayCompStringOpaque() from gui_w32.c + +In Visual mode there is not always an indication whether the line break is +selected or not. Highlight the character after the line when the line break +is included, e.g., after "v$o". + +GTK: The <F10> key can't be mapped, it selects the menu. Disable that with a +GTK setting and do select the menu when <F10> isn't mapped. (David Necas) + +After "Y" '[ and '] were not at start/end of the yanked text. + +When a telnet connection is dropped Vim preserves files and exits. While +doing that a SIGHUP may arrive and disturb us, thus ignore it. (Scott +Anderson) Also postpone SIGHUP, SIGQUIT and SIGTERM until it's safe to +handle. Added handle_signal(). + +When completing a file name on the command line backslashes are required for +white space. Was only done for a space, not for a Tab. + +When configure could not find a terminal library, compiling continued for a +long time before reporting the problem. Added a configure check for tgetent() +being found in a library. + +When the cursor is on the first char of the last line a ":g/pat/s///" command +may cause the cursor to be displayed below the text. + +Win32: Editing a file with non-ASCII characters doesn't work when 'encoding' +is "utf-8". use _wfullpath() instead of _fullpath(). (Yu-sung Moon) + +When recovering the 'fileformat' and 'fileencoding' were taken from the +original file instead of from the swapfile. When the file didn't exist, was +empty or the option was changed (e.g., with ":e ++fenc=cp123 file") it could +be wrong. Now store 'fileformat' and 'fileencoding' in the swapfile and use +the values when recovering. + +":bufdo g/something/p" overwrites each last printed text line with the file +message for the next buffer. Temporarily clear 'shortmess' to avoid that. + +Win32: Cannot edit a file starting with # with --remote. Do escape % and # +when building the ":drop" command. + +A comment or | just after an expression-backtick argument was not recognized. +E.g. in :e `="foo"`"comment. + +"(" does not stop at an empty sentence (single dot and white space) while ")" +does. Also breaks "das" on that dot. + +When doing "yy" with the cursor on a TAB the ruler could be wrong and "k" +moved the cursor to another column. + +When 'commentstring' is '"%s' and there is a double quote in the line a double +quote before the fold marker isn't removed in the text displayed for a closed +fold. + +In Visual mode, when 'bin' and 'eol' set, g CTRL-G counted the last line +break, resulting in "selected 202 of 201 bytes". + +Motif: fonts were not used for dialog components. (Marcin Dalecki) + +Motif: After using a toolbar button the keyboard focus would be on the toolbar +(Lesstif problem). (Marcin Dalecki) + +When using "y<C-V>`x" where mark x is in the first column, the last line was +not included. + +Not all test scripts work properly on MS-Windows when checked out from CVS. +Use a Vim command to fix all fileformats to dos before executing the tests. + +When using ":new" and the file fits in the window, lines could still be above +the window. Now remove empty lines instead of keeping the relative position. + +Cmdline completion didn't work after ":let var1 var<Tab>". + +When using ":startinsert" or ":startreplace" when already in Insert mode +(possible when using CTRL-R =), pressing Esc would directly restart Insert +mode. (Peter Winters) + +"2daw" didn't work at end of file if the last word is a single character. + +Completion for ":next a'<Tab>" put a backslash before single quote, but it was +not removed when editing a file. Now halve backslashes in save_patterns(). +Also fix expanding a file name with the shell that contains "\'". + +When doing "1,6d|put" only "fewer lines" was reported. Now a following "more +lines" overwrites the message. + +Configure could not handle "-Dfoo=long\ long" in the TCL config output. + +When searching backwards, using a pattern that matches a newline and uses \zs +after that, didn't find a match. Could also get a hang or end up in the right +column in the wrong line. + +When $LANG is "sl" for slovenian, the slovak menu was used, since "slovak" +starts with "sl". + +When 'paste' is set in the GUI the Paste toolbar button doesn't work. Clear +'paste' when starting the GUI. + +A message about a wrong viminfo line included the trailing NL. + +When 'paste' is set in the GUI the toolbar button doesn't work in Insert mode. +Use ":exe" in menu.vim to avoid duplicating the commands, instead of using a +mapping. + +Treat "mlterm" as an xterm-like terminal. (Seiichi Sato) + +":z.4" and ":z=4" didn't work Vi compatible. + +When sourcing a file, editing it and sourcing it again, it could appear twice +in ":scriptnames" and get a new <SID>, because the inode has changed. + +When $SHELL is set but empty the 'shell' option would be empty. Don't use an +empty $SHELL value. + +A command "w! file" in .vimrc or $EXINIT didn't work. Now it writes an empty +file. + +When a CTRL-F command at the end of the file failed, the cursor was still +moved to the start of the line. Now it remains where it is. + +When using ":s" or "&" to repeat the last substitute and "$" was used to put +the cursor in the last column, put the cursor in the last column again. This +is Vi compatible. + +Vim is not fully POSIX compliant but sticks with traditional Vi behavior. +Added a few flags in 'cpoptions' to behave the POSIX way when wanted. The +$VIM_POSIX environment variable is checked to set the default. + +Appending to a register didn't insert a line break like Vi. Added the '>' +flag to 'cpoptions' for this. + +Using "I" in a line with only blanks appended to the line. This is not Vi +compatible. Added the 'H' flag in 'cpoptions' for this. + +When joining multiple lines the cursor would be at the last joint, but Vi +leaves it at the position where "J" would put it. Added the 'q' flag in +'cpoptions' for this. + +Autoindent didn't work for ":insert" and ":append". + +Using ":append" in an empty buffer kept the dummy line. Now it's deleted to +be Vi compatible. + +When reading commands from a file and stdout goes to a terminal, would still +request the xterm version. Vim can't read it, thus the output went to the +shell and caused trouble there. + +When redirecting to a register with an invalid name the redirection would +still be done (after an error message). Now reset "redir_reg". (Yegappan +Lakshmanan) + +It was not possible to use a NL after a backslash in Ex mode. This is +sometimes used to feed multiple lines to a shell command. + +When 'cmdheight' is set to 2 in .vimrc and the GUI uses the number of lines +from the terminal we actually get 3 lines for the cmdline in gvim. + +When setting $HOME allocated memory would leak. + +Win32: bold characters may sometimes write in another character cell. Use +unicodepdy[] as for UTF-8. (Taro Muraoka) + +":w fname" didn't work for files with 'buftype' set to "nofile". + +The method used to locate user commands for completion differed from when they +are executed. Ambiguous command names were not completed properly. + +Incremental search may cause a crash when there is a custom statusline that +indirectly invokes ":normal". + +Diff mode failed when $DIFF_OPTIONS was set in the environment. Unset it +before invoking "diff". + +Completion didn't work after ":argdo", ":windo" and ":bufdo". Also for ":set +&l:opt" and ":set &g:opt". (Peter Winters) + +When setting 'ttymouse' to "dec" in an xterm that supports the DEC mouse +locator it doesn't work. Now switch off the mouse before selecting another +mouse model. + +When the CursorHold event is triggered and the commands peek for typed +characters the typeahead buffer may be messed up, e.g., when a mouse-up event +is received. Avoid invoking the autocommands from the function waiting for a +character, let it put K_CURSORHOLD in the input buffer. + +Removed the "COUNT" flag from ":argadd", to avoid ":argadd 1*" to be used like +":1argadd *". Same for ":argdelete" and ":argedit". + +Avoid that $LANG is used for the menus when LC_MESSAGES is "en_US". + +Added backslashes before dashes in the vim.1 manual page to make them appear +as real dashes. (Pierre Habouzit) + +Where "gq" left the cursor depended on the value of 'formatprg'. Now "gq" +always leaves the cursor at the last line of the formatted text. + +When editing a compressed file, such as "changelog.Debian.gz" file, filetype +detection may try to check the contents of the file while it's still +compressed. Skip setting 'filetype' for compressed files until they have been +decompressed. Required for patterns that end in a "*". + +Starting with an argument "+cmd" or "-S script" causes the cursor to be moved +to the first line. That breaks a BufReadPost autocommand that uses g`". +Don't move the cursor if it's somewhere past the first line. + +"gg=G" while 'modifiable' is off was uninterruptible. + +When 'encoding' is "sjis" inserting CTRL-V u d800 a few times causes a crash. +Don't insert a DBCS character with a NUL second byte. + +In Insert mode CTRL-O <Home> didn't move the cursor. Made "ins_at_eol" global +and reset it in nv_home(). + +Wildcard expansion failed: ":w /tmp/$$.`echo test`". Don't put quotes around +spaces inside backticks. + +After this sequence of commands: Y V p gv: the wrong line is selected. Now +let "gv" select the text that was put, since the original text is deleted. +This should be the most useful thing to do. + +":sleep 100u" sleeps for 100 seconds, not 100 usec as one might expect. Give +an error message when the argument isn't recognized. + +In gui_mch_draw_string() in gui_w32.c "unibuflen" wasn't static, resulting in +reallocating the buffer every time. (Alexei Alexandrov) + +When using a Python "atexit" function it was not invoked when Vim exits. Now +call Py_Finalize() for that. (Ugo Di Girolamo) +This breaks the thread stuff though, fixed by Ugo. + +GTK GUI: using a .vimrc with "set cmdheight=2 lines=43" and ":split" right +after startup, the window layout is messed up. (Michael Schaap) Added +win_new_shellsize() call in gui_init() to fix the topframe size. + +Trick to get ...MOUSE_NM not used when there are vertical splits. Now pass +column -1 for the left most window and add MOUSE_COLOFF for others. Limits +mouse column to 10000. + +searchpair() may hang when the end pattern has "\zs" at the end. Check that +we find the same position again and advance one character. + +When in diff mode and making a change that causes the "changed" highlighting +to disappear or reappear, it was still highlighted in another window. + +When a ":next" command fails because the user selects "Abort" at the ATTENTION +prompt the argument index was advanced anyway. + +When "~" is in 'iskeyword' the "gd" doesn't work, it's used for the previous +substitute pattern. Put "\V" in the pattern to avoid that. + +Use of sprintf() sometimes didn't check properly for buffer overflow. Also +when using smsg(). Included code for snprintf() to avoid having to do size +checks where invoking them + +":help \=<Tab>" didn't find "sub-replace-\=". Wild menu for help tags didn't +show backslashes. ":he :s\=" didn't work. + +When reading an errorfile "~/" in a file name was not expanded. + +GTK GUI: When adding a scrollbar (e.g. when using ":vsplit") in a script or +removing it the window size may change. GTK sends us resize events when we +change the window size ourselves, but they may come at an unexpected moment. +Peek for a character to get any window resize events and fix 'columns' and +'lines' to undo this. + +When using the GTK plug mechanism, resizing and focus was not working +properly. (Neil Bird) + +After deleting files from the argument list a session file generated with +":mksession" may contain invalid ":next" commands. + +When 'shortmess' is empty and 'keymap' set to accents, in Insert mode CTRL-N +may cause the hit-enter prompt. Typing 'a then didn't result in the accented +character. Put the character typed at the prompt back in the typeahead buffer +so that mapping is done in the right mode. + +setbufvar() and setwinvar() did not give error messages. + +It was possible to set a variable with an illegal name, e.g. with setbufvar(). +It was possible to define a function with illegal name, e.t. ":func F{-1}()" + +CTRL-W F and "gf" didn't use the same method to get the file name. + +When reporting a conversion error the line number of the last error could be +given. Now report the first encountered error. + +When using ":e ++enc=name file" and iconv() was used for conversion an error +caused a fall-back to no conversion. Now replace a character with '?' and +continue. + +When opening a new buffer the local value of 'bomb' was not initialized from +the global value. + +Win32: When using the "Edit with Vim" entry the file name was limited to about +200 characters. + +When using command line completion for ":e *foo" and the file "+foo" exists +the resulting command ":e +foo" doesn't work. Now insert a backslash: ":e +\+foo". + +When the translation of "-- More --" was not 10 characters long the following +message would be in the wrong position. + +At the more-prompt the last character in the last line wasn't drawn. + +When deleting non-existing text while 'virtualedit' is set the '[ and '] marks +were not set. + +Win32: Could not use "**/" in 'path', it had to be "**\". + +The search pattern "\n" did not match at the end of the last line. + +Searching for a pattern backwards, starting on the NUL at the end of the line +and 'encoding' is "utf-8" would match the pattern just before it incorrectly. +Affected searchpair('/\*', '', '\*/'). + +For the Find/Replace dialog it was possible that not finding the text resulted +in an error message while redrawing, which cleared the syntax highlighting +while it was being used, resulting in a crash. Now don't clear syntax +highlighting, disable it with b_syn_error. + +Win32: Combining UTF-8 characters were drawn on the previous character. +Could be noticed with a Thai font. + +Output of ":function" could leave some of the typed text behind. (Yegappan +Lakshmanan) + +When the command line history has only a few lines the command line window +would be opened with these lines above the first window line. + +When using a command line window for search strings ":qa" would result in +searching for "qa" instead of quitting all windows. + +GUI: When scrolling with the scrollbar and there is a line that doesn't fit +redrawing may fail. Make sure w_skipcol is valid before redrawing. + +Limit the values of 'columns' and 'lines' to avoid an overflow in Rows * +Columns. Fixed bad effects when running out of memory (command line would be +reversed, ":qa!" resulted in ":!aq"). + +Motif: "gvim -iconic" opened the window anyway. (David Harrison) + +There is a tiny chance that a symlink gets created between checking for an +existing file and creating a file. Use the O_NOFOLLOW for open() if it's +available. + +In an empty line "ix<CTRL-O>0" moved the cursor to after the line instead of +sticking to the first column. + +When using ":wq" and a BufWriteCmd autocmd uses inputsecret() the text was +echoed anyway. Set terminal to raw mode in getcmdline(). + +Unix: ":w a;b~c" caused an error in expanding wildcards. + +When appending to a file with ":w >>fname" in a buffer without a name, causing +the buffer to use "fname", the modified flag was reset. + +When appending to the current file the "not edited" flag would be reset. +":w" would overwrite the file accidentally. + +Unix: When filtering text with an external command Vim would still read input, +causing text typed for the command (e.g., a password) to be eaten and echoed. +Don't read input when the terminal is in cooked mode. + +The Cygwin version of xxd used CR/LF line separators. (Corinna Vinschen) + +Unix: When filtering text through a shell command some resulting text may be +dropped. Now after detecting that the child has exited try reading some more +of its output. + +When inside input(), using "CTRL-R =" and the expression throws an exception +the command line was not abandoned but it wasn't used either. Now abandon +typing the command line. + +'delcombine' was also used in Visual and Select mode and for commands like +"cl". That was illogical and has been disabled. + +When recording while a CursorHold autocommand was defined special keys would +appear in the register. Now the CursorHold event is not triggered while +recording. + +Unix: the src/configure script used ${srcdir-.}, not all shells understand +that. Use ${srcdir:-.} instead. + +When editing file "a" which is a symlink to file "b" that doesn't exist, +writing file "a" to create "b" and then ":split b" resulted in two buffers on +the same file with two different swapfile names. Now set the inode in the +buffer when creating a new file. + +When 'esckeys' is not set don't send the xterm code to request the version +string, because it may cause trouble in Insert mode. + +When evaluating an expression for CTRL-R = on the command line it was possible +to call a function that opens a new window, resulting in errors for +incremental search, and many other nasty things were possible. Now use the +|textlock| to disallow changing the buffer or jumping to another window +to protect from unexpected behavior. Same for CTRL-\ e. + +"d(" deleted the character under the cursor, while the documentation specified +an exclusive motion. Vi also doesn't delete the character under the cursor. + +Shift-Insert in Insert mode could put the cursor before the last character +when it just fits in the window. In coladvance() don't stop at the window +edge when filling with spaces and when in Insert mode. In mswin.vim avoid +getting a beep from the "l" command. + +Win32 GUI: When Alt-F4 is used to close the window and Cancel is selected in +the dialog then Vim would insert <M-F4> in the text. Now it's ignored. + +When ":silent! {cmd}" caused the swap file dialog, which isn't displayed, +there would still be a hit-enter prompt. + +Requesting the termresponse (|t_RV|) early may cause problems with "-c" +arguments that invoke an external command or even "-c quit". Postpone it +until after executing "-c" arguments. + +When typing in Insert mode so that a new line is started, using CTRL-G u to +break undo and start a new change, then joining the lines with <BS> caused +undo info to be missing. Now reset the insertion start point. + +Syntax HL: When a region start match has a matchgroup and an offset that +happens to be after the end of the line then it continued in the next line and +stopped at the region end match, making the region continue after that. +Now check for the column being past the end of the line in syn_add_end_off(). + +When changing a file, setting 'swapfile' off and then on again, making another +change and killing Vim, then some blocks may be missing from the swapfile. +When 'swapfile' is switched back on mark all blocks in the swapfile as dirty. +Added mf_set_dirty(). + +Expanding wildcards in a command like ":e aap;<>!" didn't work. Put +backslashes before characters that are special to the shell. (Adri Verhoef) + +A CursorHold autocommand would cause a message to be cleared. Don't show the +special key for the event for 'showcmd'. + +When expanding a file name for a shell command, as in "!cmd foo<Tab>" or ":r +!cmd foo<Tab>" also escape characters that are special for the shell: +"!;&()<>". + +When the name of the buffer was set by a ":r fname" command |cpo-f| no +autocommands were triggered to notify about the change in the buffer list. + +In the quickfix buffer 'bufhidden' was set to "delete", which caused closing +the quickfix window to leave an unlisted "No Name" buffer behind every time. + +Win32: when using two screens of different size, setting 'lines' to a large +value didn't fill the whole screen. (SungHyun Nam) + +Win32 installer: The generated _vimrc contained an absolute path to diff.exe. +After upgrading it becomes invalid. Now use $VIMRUNTIME instead. + +The command line was cleared too often when 'showmode' was set and ":silent +normal vy" was used. Don't clear the command line unless the mode was +actually displayed. Added the "mode_displayed" variable. + +The "load session" toolbar item could not handle a space or other special +characters in v:this_session. + +":set sta ts=8 sw=4 sts=2" deleted 4 spaces halfway a line instead of 2. + +In a multibyte file the foldmarker could be recognized in the trail byte. +(Taro Muraoka) + +Pasting with CTRL-V and menu didn't work properly when some commands are +mapped. Use ":normal!" instead of ":normal". (Tony Apuzzo) + +Crashed when expanding a file name argument in backticks. + +In some situations the menu and scrollbar didn't work, when the value contains +a CSI byte. (Yukihiro Nakadaira) + +GTK GUI: When drawing the balloon focus changes and we might get a key release +event that removed the balloon again. Ignore the key release event. + +'titleold' was included in ":mkexrc" and ":mksession" files. + +":set background&" didn't use the same logic as was used when starting up. + +When "umask" is set such that nothing is writable then the viminfo file would +be written without write permission. (Julian Bridle) + +Motif: In diff mode dragging one scrollbar didn't update the scrollbar of the +other diff'ed window. + +When editing in an xterm with a different number of colors than expected the +screen would be cleared and redrawn, causing the message about the edited file +to be cleared. Now set "keep_msg" to redraw the last message. + +For a color terminal: When the Normal HL uses bold, possibly to make the color +lighter, and another HL group specifies a color it might become light as well. +Now reset bold if a HL group doesn't specify bold itself. + +When using 256 color xterm the color 255 would show up as color 0. Use a +short instead of a char to store the color number. + +ml_get errors when searching for "\n\zs" in an empty file. + +When selecting a block and using "$" to select until the end of every line and +not highlighting the character under the cursor the first character of the +block could be unhighlighted. + +When counting words for the Visual block area and using "$" to select until +the end of every line only up to the length of the last line was counted. + +"dip" in trailing empty lines left one empty line behind. + +The script ID was only remembered globally for each option. When a buffer- or +window-local option was set the same "last set" location was changed for all +buffers and windows. Now remember the script ID for each local option +separately. + +GUI: The "Replace All" button didn't handle backslashes in the replacement in +the same way as "Replace". Escape backslashes so that they are taken +literally. + +When using Select mode from Insert mode and typing a key, causing lines to be +deleted and a message displayed, delayed the effect of inserting the key. +Now overwrite the message without delay. + +When 'whichwrap' includes "l" then "dl" and "yl" on a single letter line +worked differently. Now recognize all operators when using "l" at the end of +a line. + +GTK GUI: when the font selector returned a font name with a comma in it then +it would be handled like two font names. Now put a backslash before the +comma. + +MS-DOS, Win32: When 'encoding' defaults to "latin1" then the value for +'iskeyword' was still for CPxxx. And when 'nocompatible' was set 'isprint' +would also be the wrong value. + +When a command was defined not to take arguments and no '|' no warning message +would be given for using a '|'. Also with ":loadkeymap". + +Motif: When using a fontset and 'encoding' is "utf-8" and sizeof(wchar_t) != +sizeof(XChar2b) then display was wrong. (Yukihiro Nakadaira) + +":all" always set the current window to the first window, even when it +contains a buffer that is not in the argument list (can't be closed because it +is modified). Now go to the window that has the first item of the argument +list. + +GUI: To avoid left-over pixels from bold text all characters after a character +with special attributes were redrawn. Now only do this for characters that +actually are bold. Speeds up displaying considerably. + +When only highlighting changes and the text is scrolled at the same time +everything is redrawn instead of using a scroll and updating the changed text. +E.g., when using ":match" to highlight a paren that the cursor landed on. +Added SOME_VALID: Redraw the whole window but also try to scroll to minimize +redrawing. + +Win32: When using Korean IME making it active didn't work properly. (Moon, +Yu-sung, 2005 March 21) + +Ruby interface: when inserting/deleting lines display wasn't updated. (Ryan +Paul) + +--- fixes since Vim 7.0b --- + +Getting the GCC version in configure didn't work with Solaris sed. First +strip any "darwin." and then get the version number. + +The "autoload" directory was missing from the self-installing executable for +MS-Windows. + +The MS-Windows install program would find "vimtutor.bat" in the install +directory. After changing to "c:" also change to "\" to avoid looking in the +install directory. + +To make the 16 bit DOS version compile exclude not used highlight +initializations and build a tiny instead of small version. + +finddir() and findfile() accept a negative count and return a List then. + +The Python indent file contained a few debugging statements, removed. + +Expanding {} for a function name, resulting in a name starting with "s:" was +not handled correctly. + +Spelling: renamed COMPOUNDMAX to COMPOUNDWORDMAX. Added several items to be +able to handle the new Hungarian dictionary. + +Mac: Default to building for the current platform only, that is much faster +than building a universal binary. Also, using Perl/Python/etc. only works for +the current platform. + +The time on undo messages disappeared for someone. Using %T for strftime() +apparently doesn't work everywhere. Use %H:%M:%S instead. + +Typing BS at the "z=" prompt removed the prompt. + +--- fixes and changes since Vim 7.0c --- + +When jumping to another tab page the Vim window size was always set, even when +nothing in the layout changed. + +Win32 GUI tab pages line wasn't always enabled. Do a proper check for the +compiler version. + +Win32: When switching between tab pages the Vim window was moved when part of +it was outside of the screen. Now only do that in the direction of a size +change. + +Win32: added menu to GUI tab pages line. (Yegappan Lakshmanan) + +Mac: Added document icons. (Benji Fisher) + +Insert mode completion: Using Enter to accept the current match causes +confusion. Use CTRL-Y instead. Also, use CTRL-E to go back to the typed +text. + +GUI: When there are left and right scrollbars, ":tabedit" kept them instead of +using the one that isn't needed. + +Using "gP" to replace al the text could leave the cursor below the last line, +causing ml_get errors. + +When 'cursorline' is set don't use the highlighting when Visual mode is +active, otherwise it's difficult to see the selected area. + +The matchparen plugin restricts the search to 100 lines, to avoid a long delay +when there are closed folds. + +Sometimes using CTRL-X s to list spelling suggestions used text from another +line. + +Win32: Set the default for 'isprint' back to the wrong default "@,~-255", +because many people use Windows-1252 while 'encoding' is "latin1". + +GTK: Added a workaround for gvim crashing when used over an untrusted ssh +link, caused by GTK doing something nasty. (Ed Catmur) + +Win32: The font used for the tab page labels is too big. Use the system menu +font. (George Reilly) + +Win32: Adjusting the window position and size to keep it on the screen didn't +work properly when the taskbar is on the left or top of the screen. + +The installman.sh and installml.sh scripts use ${10}, that didn't work with +old shells. And use "test -f" instead of "test -e". + +Win32: When 'encoding' was set in the vimrc then a directory argument for diff +mode didn't work. + +GUI: at the inputlist() prompt the cursorshape was adjusted as if the windows +were still at their old position. + +The parenmatch plugin didn't remember the highlighting per window. + +Using ":bd" for a buffer that's the current window in another tab page caused +a crash. + +For a new tab page the 'scroll' option wasn't set to a good default. + +Using an end offset for a search "/pat/e" didn't work properly for multibyte +text. (Yukihiro Nakadaira) + +":s/\n/,/" doubled the text when used on the last line. + +When "search" is in 'foldopen' "[s" and "]s" now open folds. + +When using a numbered function "dict" can be omitted, but "self" didn't work +then. Always add FC_DICT to the function flags when it's part of a +dictionary. + +When "--remote-tab" executes locally it left an empty tab page. + +"gvim -u NONE", ":set cursorcolumn", "C" in the second line didn't update +text. Do update further lines even though the "$" is displayed. + +VMS: Support GTK better, also enable +clientserver. (Zoltan Arpadffy) + +When highlighting of statusline or tabline is changed there was no redraw to +show the effect. + +Mac: Added "CFBundleIdentifier" to infplist.xml. + +Added tabpage-local variables t:var. + +Win32: Added double-click in tab pages line creates new tab. (Yegappan +Lakshmanan) + +Motif: Added GUI tab pages line. (Yegappan Lakshmanan) + +Fixed crash when 'lines' was set to 1000 in a modeline. + +When init_spellfile() finds a writable directory in 'runtimepath' but it +doesn't contain a "spell" directory, create one. + +Win32: executable() also finds "xxd" in the directory where Vim was started, +but "!xxd" doesn't work. Append the Vim starting directory to $PATH. + +The tab page labels are shortened, directory names are reduced to a single +letter by default. Added the pathshorten() function to allow a user to do the +same. + +":saveas" now resets 'readonly' if the file was successfully written. + +Set $MYVIMRC file to the first found .vimrc file. +Set $MYGVIMRC file to the first found .gvimrc file. +Added menu item "Startup Settings" that edits the $MYVIMRC file + +Added matcharg(). + +Error message E745 appeared twice. Renamed one to E786. + +Fixed crash when using "au BufRead * Sexplore" and doing ":help". Was wiping +out a buffer that's still in a window. + +":hardcopy" resulted in an error message when 'encoding' is "utf-8" and +'printencoding' is empty. Now it assumes latin1. (Mike Williams) + +The check for the toolbar feature for Motif, depending on certain included +files, wasn't detailed enough, causing building to fail in gui_xmebw.c. + +Using CTRL-E in Insert mode completion after CTRL-P inserted the first match +instead of the original text. + +When displaying a UTF-8 character with a zero lower byte Vim might think the +previous character is double-wide. + +The "nbsp" item of 'listchars' didn't work when 'encoding' was utf-8. + +Motif: when Xm/xpm.h is missing gui_xmebw.c would not compile. +HAVE_XM_UNHIGHLIGHTT_H was missing a T. + +Mac: Moved the .icns files into src/os_mac_rsrc, so that they can all be +copied at once. Adjusted the Info.plist file for three icons. + +When Visual mode is active while switching to another tabpage could get ml_get +errors. + +When 'list' is set, 'nowrap' the $ in the first column caused 'cursorcolumn' +to move to the right. + +When a line wraps, 'cursorcolumn' was never displayed past the end of the +line. + +'autochdir' was only available when compiled with NetBeans and GUI. Now it's +a separate feature, also available in the "big" version. + +Added CTRL-W gf: open file under cursor in new tab page. + +When using the menu in the tab pages line, "New Tab" opens the new tab before +where the click was. Beyond the labels the new tab appears at the end instead +of after the current tab page. + +Inside a mapping with an expression getchar() could not be used. + +When vgetc is used recursively vgetc_busy protects it from being used +recursively. But after a ":normal" command the protection was reset. + +":s/a/b/n" didn't work when 'modifiable' was off. + +When $VIMRUNTIME includes a multibyte character then rgb.txt could not be +found. (Yukihiro Nakadaira) + +":mkspell" didn't work correctly for non-ASCII affix flags when conversion is +needed on the spell file. + +glob('/dir/\$ABC/*') didn't work. + +When using several tab pages and changing 'cmdheight' the display could become +messed up. Now store the value of 'cmdheight' separately for each tab page. + +The user of the Enter key while the popup menu is visible was still confusing. +Now use Enter to select the match after using a cursor key. + +Added "usetab" to 'switchbuf'. + + +--- fixes and changes since Vim 7.0d --- + +Added CTRL-W T: move a window to a new tab page. + +Using CTRL-X s in Insert mode to complete spelling suggestions and using BS +deleted characters before the bad word. + +A few small fixes for the VMS makefile. (Zoltan Arpadffy) + +With a window of 91 lines 45 cols, ":vsp" scrolled the window. Copy w_wrow +when splitting a window and skip setting the height when it's already at the +right value. + +Using <silent> in a mapping with a shell command and the GUI caused redraw +to use wrong attributes. + +Win32: Using MSVC 4.1 for install.exe resulted in the start menu items to be +created in the administrator directory instead of "All Users". Define the +CSIDL_ items if they are missing. + +Motif: The GUI tabline did not use the space above the right scrollbar. Work +around a bug in the Motif library. (Yegappan Lakshmanan) + +The extra files for XML Omni completion are now also installed. +|xml-omni-datafile| + +GTK GUI: when 'm' is missing from 'guioptions' during startup and pressing +<F10> GTK produced error messages. Now do create the menu but disable it just +after the first gui_mch_update(). + +":mkspell" doesn't work well with the Hungarian dictionary from the Hunspell +project. Back to the Myspell dictionary. + +In help files hide the | used around tags. + +Renamed pycomplete to pythoncomplete. + +Added "tabpages" to 'sessionoptions'. + +When 'guitablabel' is set the effect wasn't visible right away. + +Fixed a few 'cindent' errors. + +When completing menu names, e.g., after ":emenu", don't sort the entries but +keep them in the original order. + +Fixed a crash when editing a directory in diff mode. Don't trigger +autocommands when executing the diff command. + +Getting a keystroke could get stuck if 'encoding' is a multibyte encoding and +typing a special key. + +When 'foldignore' is set the folds were not updated right away. + +When a list is indexed with [a : b] and b was greater than the length an error +message was given. Now silently truncate the result. + +When using BS during Insert mode completion go back to the original text, so +that CTRL-N selects the first matching entry. + +Added the 'M' flag to 'cinoptions'. + +Win32: Make the "gvim --help" window appear in the middle of the screen +instead of at an arbitrary position. (Randall W. Morris) + +Added gettabwinvar() and settabwinvar(). + +Command line completion: pressing <Tab> after ":e /usr/*" expands the whole +tree, because it becomes ":e /usr/**". Don't add a star if there already is +one. + +Added grey10 to grey90 to all GUIs, so that they can all be used for +initializing highlighting. Use grey40 for CursorColumn and CursorLine when +'background' is "dark". + +When reading a file and using iconv for conversion, an incomplete byte +sequence at the end caused problems. (Yukihiro Nakadaira) + + +--- fixes and changes since Vim 7.0e --- + +Default color for MatchParen when 'background' is "dark" is now DarkCyan. + +":syn off" had to be used twice in a file that sets 'syntax' in a modeline. +(Michael Geddes) + +When using ":vsp" or ":sp" the available space wasn't used equally between +windows. (Servatius Brandt) + +Expanding <cWORD> on a trailing blank resulted in the first word in the line +if 'encoding' is a multibyte encoding. + +Spell checking: spellbadword() didn't see a missing capital in the first word +of a line. Popup menu now only suggest the capitalized word when appropriate. + +When using whole line completion CTRL-L moves through the matches but it +didn't work when at the original text. + +When completion finds the longest match, don't go to the first match but stick +at the original text, so that CTRL-N selects the first one. + +Recognize "zsh-beta" like "zsh" for setting the 'shellpipe' default. (James +Vega) + +When using ":map <expr>" and the expression results in something with a +special byte (NUL or CSI) then it didn't work properly. Now escape special +bytes. + +The default Visual highlighting for a color xterm with 8 colors was a magenta +background, which made magenta text disappear. Now use reverse in this +specific situation. + +After completing the longest match "." didn't insert the same text. Repeating +also didn't work correctly for multibyte text. + +When using Insert mode completion and BS the whole word that was completed +would result in all possible matches. Now stop completion. Also fixes that +for spell completion the previous word was deleted. + +GTK: When 'encoding' is "latin1" and using non-ASCII characters in a file name +the tab page label was wrong and an error message would be given. + +The taglist() function could hang on a tags line with a non-ASCII character. + +Win32: When 'encoding' differs from the system encoding tab page labels with +non-ASCII characters looked wrong. (Yegappan Lakshmanan) + +Motif: building failed when Xm/Notebook.h doesn't exist. Added a configure +check, disable GUI tabline when it's missing. + +Mac: When compiled without multibyte feature the clipboard didn't work. + +It was possible to switch to another tab page when the cmdline window is open. + +Completion could hang when 'lines' is 6 and a preview window was opened. + +Added CTRL-W gF: open file under cursor in new tab page and jump to the line +number following the file name. +Added 'guitabtooltip'. Implemented for Win32 (Yegappan Lakshmanan). + +Added "throw" to 'debug' option: throw an exception for error messages even +when they would otherwise be ignored. + +When 'keymap' is set and a line contains an invalid entry could get a "No +mapping found" warning instead of a proper error message. + +Motif: default to using XpmAttributes instead of XpmAttributes_21. + +A few more changes for 64 bit MS-Windows. (George Reilly) + +Got ml_get errors when doing "o" and selecting in other window where there are +less lines shorter than the cursor position in the other window. ins_mouse() +was using position in wrong window. + +Win32 GUI: Crash when giving a lot of messages during startup. Allocate twice +as much memory for the dialog template. + +Fixed a few leaks and wrong pointer use reported by coverity. + +When showing menus the mode character was sometimes wrong. + +Added feedkeys(). (Yakov Lerner) + +Made matchlist() always return all submatches. + +Moved triggering QuickFixCmdPost to before jumping to the first location. + +Mac: Added the 'macatsui' option as a temporary work around for text drawing +problems. + +Line completion on "/**" gave error messages when scanning an unloaded buffer. + +--- fixes and changes since Vim 7.0f --- + +Win32: The height of the tab page labels is now adjusted to the font height. +(Yegappan Lakshmanan) + +Win32: selecting the tab label was off by one. (Yegappan Lakshmanan) + +Added tooltips for Motif and GTK tab page labels. (Yegappan Lakshmanan) + +When 'encoding' is "utf-8" then ":help spell" would report an illegal byte and +the file was not converted from latin1 to utf-8. Now retry with latin1 if +reading the file as utf-8 results in illegal bytes. + +Escape the argument of feedkeys() before putting it in the typeahead buffer. +(Yukihiro Nakadaira) + +Added the v:char variable for evaluating 'formatexpr'. (Yukihiro Nakadaira) + +With 8 colors Search highlighting combined with Statement highlighted text +made the text disappear. + +VMS: avoid warnings for redefining MAX and MIN. (Zoltan Arpadffy) + +When 'virtualedit' includes "onemore", stopping Visual selection would still +move the cursor left. + +Prevent that using CTRL-R = in Insert mode can start Visual mode. + +Fixed a crash that occurred when in Insert mode with completion active and a +mapping caused edit() to be called recursively. + +When using CTRL-O in Insert mode just after the last character while +'virtualedit' is "all", then typing CR moved the last character to the next +line. Call coladvance() before starting the new line. + +When using |:shell| ignore clicks on the tab page labels. Also when using the +command line window. + +When 'eventignore' is "all" then adding more to ignoring some events, e.g., +for ":vimgrep", would actually trigger more events. + +Win32: When a running Vim uses server name GVIM1 then "gvim --remote fname" +didn't find it. When looking for a server name that doesn't end in a digit +and it is not found then use another server with that name and a number (just +like on Unix). + +When using "double" in 'spellsuggest' when the language doesn't support sound +folding resulted in too many suggestions. + +Win32: Dropping a shortcut on the Vim icon didn't edit the referred file like +editing it in another way would. Use fname_expand() in buf_set_name() instead +of simply make the file name a full path. + +Using feedkeys() could cause Vim to hang. + +When closing another tab page from the tabline menu in Insert mode the tabline +was not updated right away. + +The syntax menu didn't work in compatible mode. + +After using ":tag id" twice with the same "id", ":ts" and then ":pop" a ":ts" +reported no matching tag. Clear the cached tag name. + +In Insert mode the matchparen plugin highlighted the wrong paren when there is +a string just next to a paren. + +GTK: After opening a new tab page the text was sometimes not drawn correctly. +Flush output and catch up with events when updating the tab page labels. + +In the GUI, using CTRL-W q to close the last window of a tab page could cause +a crash. + +GTK: The tab pages line menu was not converted from 'encoding' to utf-8. + +Typing a multibyte character or a special key at the hit-enter prompt did not +work. + +When 'virtualedit' contains "onemore" CTRL-O in Insert mode still moved the +cursor left when it was after the end of the line, even though it's allowed to +be there. + +Added test for using tab pages. + +towupper() and towlower() were not used, because of checking for +__STDC__ISO_10646__ instead of __STDC_ISO_10646__. (sertacyildiz) + +For ":map <expr>" forbid changing the text, jumping to another buffer and +using ":normal" to avoid nasty side effects. + +--- fixes and changes since Vim 7.0g --- + +Compilation error on HP-UX, use of "dlerr" must be inside a #ifdef. +(Gary Johnson) + +Report +reltime feature in ":version" output. + +The tar and zip plugins detect failure to get the contents of the archive and +edit the file as-is. + +When the result of 'guitablabel' is empty fall back to the default label. + +Fixed crash when using ":insert" in a while loop and missing "endwhile". + +"gt" and other commands could move to another window when |textlock| active +and when the command line window was open. + +Spell checking a file with syntax highlighting and a bad word at the end of +the line is ignored could make "]s" hang. + +Mac: inputdialog() didn't work when compiled with big features. + +Interrupting ":vimgrep" while it is busy loading a file left a modified and +hidden buffer behind. Use enter_cleanup() and leave_cleanup() around +wipe_buffer(). + +When making 'keymap' empty the b:keymap_name variable wasn't deleted. + +Using CTRL-N that searches a long time, pressing space to interrupt the +searching and accept the first match, the popup menu was still displayed +briefly. + +When setting the Vim window height with -geometry the 'window' option could be +at a value that makes CTRL-F behave differently. + +When opening a quickfix window in two tabs they used different buffers, +causing redrawing problems later. Now use the same buffer for all quickfix +windows. (Yegappan Lakshmanan) + +When 'mousefocus' is set moving the mouse to the text tab pages line would +move focus to the first window. Also, the mouse pointer would jump to the +active window. + +In a session file, when an empty buffer is wiped out, do this silently. + +When one window has the cursor on the last line and another window is resized +to make that window smaller, the cursor line could go below the displayed +lines. In win_new_height() subtract one from the available space. +Also avoid that using "~" lines makes the window scroll down. + +Mac: When sourcing the "macmap.vim" script and then finding a .vimrc file the +'cpo' option isn't set properly, because it was already set and restored. +Added the <special> argument to ":map", so that 'cpo' doesn't need to be +changed to be able to use <> notation. Also do this for ":menu" for +consistency. + +When using "/encoding=abc" in a spell word list, only "bc" was used. + +When 'encoding' and 'printencoding' were both "utf-8" then ":hardcopy" didn't +work. (Mike Williams) + +Mac: When building with "--disable-gui" the install directory would still be +"/Applications" and Vim.app would be installed. Now install in /usr/local as +usual for a console application. + +GUI: when doing completion and there is one match and still searching for +another, the cursor was displayed at the end of the line instead of after the +match. Now show the cursor after the match while still searching for matches. + +GUI: The mouse shape changed on the statusline even when 'mouse' was empty and +they can't be dragged. + +GTK2: Selecting a button in the confirm() dialog with Tab or cursor keys and +hitting Enter didn't select that button. Removed GTK 1 specific code. (Neil +Bird) + +When evaluating 'balloonexpr' takes a long time it could be called +recursively, which could cause a crash. + +exists() could not be used to detect whether ":2match" is supported. Added a +check for it specifically. + +GTK1: Tab page labels didn't work. (Yegappan Lakshmanan) + +Insert mode completion: When finding matches use 'ignorecase', but when adding +matches to the list don't use it, so that all words with different case are +added, "word", "Word" and "WORD". + +When 'cursorline' and 'hlsearch' are set and the search pattern is "x\n" +the rest of the line was highlighted as a match. + +Cursor moved while evaluating 'balloonexpr' that invokes ":isearch" and +redirects the output. Don't move the cursor to the command line if msg_silent +is set. + +exists() ignored text after a function name and option name, which could +result in false positives. + +exists() ignored characters after the recognized word, which can be wrong when +using a name with non-keyword characters. Specifically, these calls no longer +allow characters after the name: exists('*funcname') exists('*funcname(...') +exists('&option') exists(':cmd') exists('g:name') exists('g:name[n]') +exists('g:name.n') + +Trigger the TabEnter autocommand only after entering the current window of the +tab page, otherwise the commands are executed with an invalid current window. + +Win32: When using two monitors and Vim is on the second monitor, changing the +width of the Vim window could make it jump to the first monitor. + +When scrolling back at the more prompt and the quitting a line of text would +be left behind when 'cmdheight' is 2 or more. + +Fixed a few things for Insert mode completion, especially when typing BS, +CTRL-N or a printable character while still searching for matches. + + +============================================================================== +VERSION 7.1 *version-7.1* *version7.1* + +This section is about improvements made between version 7.0 and 7.1. + +This is a bug-fix release, there are no fancy new features. + + +Changed *changed-7.1* +------- + +Added setting 'mouse' in vimrc_example.vim. + +When building with MZscheme also look for include files in the "plt" +subdirectory. That's where they are for FreeBSD. + +The Ruby interface module is now called "Vim" instead of "VIM". But "VIM" is +an alias, so it's backwards compatible. (Tim Pope) + + +Added *added-7.1* +----- + +New syntax files: + /var/log/messages (Yakov Lerner) + Autohotkey (Nikolai Weibull) + AutoIt v3 (Jared Breland) + Bazaar commit file "bzr". (Dmitry Vasiliev) + Cdrdao TOC (Nikolai Weibull) + Cmusrc (Nikolai Weibull) + Conary recipe (rPath Inc) + Framescript (Nikolai Weibull) + FreeBasic (Mark Manning) + Hamster (David Fishburn) + IBasic (Mark Manning) + Initng (Elan Ruusamae) + Ldapconf (Nikolai Weibull) + Litestep (Nikolai Weibull) + Privoxy actions file (Doug Kearns) + Streaming Descriptors "sd" (Puria Nafisi Azizi) + +New tutor files: + Czech (Lubos Turek) + Hungarian (Arpad Horvath) + Turkish (Serkan kkk) + utf-8 version of Greek tutor. + utf-8 version of Russian tutor. + utf-8 version of Slowak tutor. + +New filetype plugins: + Bst (Tim Pope) + Cobol (Tim Pope) + Fvwm (Gautam Iyer) + Hamster (David Fishburn) + Django HTML template (Dave Hodder) + +New indent files: + Bst (Tim Pope) + Cobol (Tim Pope) + Hamster (David Fishburn) + Django HTML template (Dave Hodder) + Javascript + JSP (David Fishburn) + +New keymap files: + Bulgarian (Boyko Bantchev) + Mongolian (Natsagdorj Shagdar) + Thaana (Ibrahim Fayaz) + Vietnamese (Samuel Thibault) + +Other new runtime files: + Ada support files. (Neil Bird, Martin Krischik) + Slovenian menu translations (Mojca Miklavec) + Mono C# compiler plugin (Jarek Sobiecki) + + +Fixed *fixed-7.1* +----- + +Could not build the Win32s version. Added a few structure definitions in +src/gui_w32.c + + +Patch 7.0.001 +Problem: ":set spellsuggest+=10" does not work. (Suresh Govindachar) +Solution: Add P_COMMA to the 'spellsuggest' flags. +Files: src/option.c + +Patch 7.0.002 +Problem: C omni completion has a problem with tags files with a path + containing "#" or "%". +Solution: Escape these characters. (Sebastian Baberowski) +Files: runtime/autoload/ccomplete.vim + +Patch 7.0.003 +Problem: GUI: clicking in the lower part of a label in the tab pages line + while 'mousefocus' is set may warp the mouse pointer. (Robert + Webb) +Solution: Check for a negative mouse position. +Files: src/gui.c + +Patch 7.0.004 +Problem: Compiler warning for debug_saved used before set. (Todd Blumer) +Solution: Remove the "else" for calling save_dbg_stuff(). +Files: src/ex_docmd.c + +Patch 7.0.005 (extra) +Problem: Win32: The installer doesn't remove the "autoload" and "spell" + directories. (David Fishburn) +Solution: Add the directories to the list to be removed. +Files: nsis/gvim.nsi + +Patch 7.0.006 +Problem: Mac: "make shadow" doesn't make a link for infplist.xml. (Axel + Kielhorn) +Solution: Make the link. +Files: src/Makefile + +Patch 7.0.007 +Problem: AIX: compiling fails for message.c. (Ruediger Hornig) +Solution: Move the #if outside of memchr(). +Files: src/message.c + +Patch 7.0.008 +Problem: Can't call a function that uses both <SID> and {expr}. (Thomas) +Solution: Check both the expanded and unexpanded name for <SID>. +Files: src/eval.c + +Patch 7.0.009 +Problem: ml_get errors with both 'sidescroll' and 'spell' set. +Solution: Use ml_get_buf() instead of ml_get(), get the line from the right + buffer, not the current one. +Files: src/spell.c + +Patch 7.0.010 +Problem: The spellfile plugin required typing login name and password. +Solution: Use "anonymous" and "vim7user" by default. No need to setup a + .netrc file. +Files: runtime/autoload/spellfile.vim + +Patch 7.0.011 +Problem: Can't compile without the folding and with the eval feature. +Solution: Add an #ifdef. (Vallimar) +Files: src/option.c + +Patch 7.0.012 +Problem: Using the matchparen plugin, moving the cursor in Insert mode to a + shorter line that ends in a brace, changes the preferred column +Solution: Use winsaveview()/winrestview() instead of getpos()/setpos(). +Files: runtime/plugin/matchparen.vim + +Patch 7.0.013 +Problem: Insert mode completion: using CTRL-L to add an extra character + also deselects the current match, making it impossible to use + CTRL-L a second time. +Solution: Keep the current match. Also make CTRL-L work at the original + text, using the first displayed match. +Files: src/edit.c + +Patch 7.0.014 +Problem: Compiling gui_xmebw.c fails on Dec Alpha Tru64. (Rolfe) +Solution: Disable some code for Motif 1.2 and older. +Files: src/gui_xmebw.c + +Patch 7.0.015 +Problem: Athena: compilation problems with modern compiler. +Solution: Avoid type casts for lvalue. (Alexey Froloff) +Files: src/gui_at_fs.c + +Patch 7.0.016 +Problem: Printing doesn't work for "dec-mcs" encoding. +Solution: Add "dec-mcs", "mac-roman" and "hp-roman8" to the list of + recognized 8-bit encodings. (Mike Williams) +Files: src/mbyte.c + +Patch 7.0.017 (after 7.0.014) +Problem: Linking gui_xmebw.c fails on Dec Alpha Tru64. (Rolfe) +Solution: Adjust defines for Motif 1.2 and older. +Files: src/gui_xmebw.c + +Patch 7.0.018 +Problem: VMS: plugins are not loaded on startup. +Solution: Remove "**" from the path. (Zoltan Arpadffy) +Files: src/main.c + +Patch 7.0.019 +Problem: Repeating "VjA789" may cause a crash. (James Vega) +Solution: Check the cursor column after moving it to another line. +Files: src/ops.c + +Patch 7.0.020 +Problem: Crash when using 'mousefocus'. (William Fulton) +Solution: Make buffer for mouse coordinates 2 bytes longer. (Juergen Weigert) +Files: src/gui.c + +Patch 7.0.021 +Problem: Crash when using "\\[" and "\\]" in 'errorformat'. (Marc Weber) +Solution: Check for valid submatches after matching the pattern. +Files: src/quickfix.c + +Patch 7.0.022 +Problem: Using buffer.append() in Ruby may append the line to the wrong + buffer. (Alex Norman) +Solution: Properly switch to the buffer to do the appending. Also for + buffer.delete() and setting a buffer line. +Files: src/if_ruby.c + +Patch 7.0.023 +Problem: Crash when doing spell completion in an empty line and pressing + CTRL-E. +Solution: Check for a zero pointer. (James Vega) + Also handle a situation without a matching pattern better, report + "No matches" instead of remaining in undefined CTRL-X mode. And + get out of CTRL-X mode when typing a letter. +Files: src/edit.c + +Patch 7.0.024 +Problem: It is possible to set arbitrary "v:" variables. +Solution: Disallow setting "v:" variables that are not predefined. +Files: src/eval.c + +Patch 7.0.025 +Problem: Crash when removing an element of a:000. (Nikolai Weibull) +Solution: Mark the a:000 list with VAR_FIXED. +Files: src/eval.c + +Patch 7.0.026 +Problem: Using libcall() may show an old error. +Solution: Invoke dlerror() to clear a previous error. (Yukihiro Nakadaira) +Files: src/os_unix.c + +Patch 7.0.027 (extra) +Problem: Win32: When compiled with SNIFF gvim may hang on exit. +Solution: Translate and dispatch the WM_USER message. (Mathias Michaelis) +Files: src/gui_w48.c + +Patch 7.0.028 (extra) +Problem: OS/2: Vim doesn't compile with gcc 3.2.1. +Solution: Add argument to after_pathsep(), don't define vim_handle_signal(), + define HAVE_STDARG_H. (David Sanders) +Files: src/os_unix.c, src/vim.h, src/os_os2_cfg.h + +Patch 7.0.029 +Problem: getchar() may not position the cursor after a space. +Solution: Position the cursor explicitly. +Files: src/eval.c + +Patch 7.0.030 +Problem: The ":compiler" command can't be used in a FileChangedRO event. + (Hari Krishna Dara) +Solution: Add the CMDWIN flag to the ":compiler" command. +Files: src/ex_cmds.h + +Patch 7.0.031 +Problem: When deleting a buffer the buffer-local mappings for Select mode + remain. +Solution: Add the Select mode bit to MAP_ALL_MODES. (Edwin Steiner) +Files: src/vim.h + +Patch 7.0.032 (extra, after 7.0.027) +Problem: Missing semicolon. +Solution: Add the semicolon. +Files: src/gui_w48.c + +Patch 7.0.033 +Problem: When pasting text, with the menu or CTRL-V, autoindent is removed. +Solution: Use "x<BS>" to avoid indent to be removed. (Benji Fisher) +Files: runtime/autoload/paste.vim + +Patch 7.0.034 +Problem: After doing completion and typing more characters or using BS + repeating with "." didn't work properly. (Martin Stubenschrott) +Solution: Don't put BS and other characters in the redo buffer right away, + do this when finishing completion. +Files: src/edit.c + +Patch 7.0.035 +Problem: Insert mode completion works when typed but not when replayed from + a register. (Hari Krishna Dara) + Also: Mappings for Insert mode completion don't always work. +Solution: When finding a non-completion key in the input don't interrupt + completion when it wasn't typed. + Do use mappings when checking for typeahead while still finding + completions. Avoids that completion is interrupted too soon. + Use "compl_pending" in a different way. +Files: src/edit.c + +Patch 7.0.036 +Problem: Can't compile with small features and syntax highlighting or the + diff feature. +Solution: Define LINE_ATTR whenever syntax highlighting or the diff feature + is enabled. +Files: src/screen.c + +Patch 7.0.037 +Problem: Crash when resizing the GUI window vertically when there is a line + that doesn't fit. +Solution: Don't redraw while the screen data is invalid. +Files: src/screen.c + +Patch 7.0.038 +Problem: When calling complete() from an Insert mode expression mapping + text could be inserted in an improper way. +Solution: Make undo_allowed() global and use it in complete(). +Files: src/undo.c, src/proto/undo.pro, src/eval.c + +Patch 7.0.039 +Problem: Calling inputdialog() with a third argument in the console doesn't + work. +Solution: Make a separate function for input() and inputdialog(). (Yegappan + Lakshmanan) +Files: src/eval.c + +Patch 7.0.040 +Problem: When 'cmdheight' is larger than 1 using inputlist() or selecting + a spell suggestion with the mouse gets the wrong entry. +Solution: Start listing the first alternative on the last line of the screen. +Files: src/eval.c, src/spell.c + +Patch 7.0.041 +Problem: cursor([1, 1]) doesn't work. (Peter Hodge) +Solution: Allow leaving out the third item of the list and use zero for the + virtual column offset. +Files: src/eval.c + +Patch 7.0.042 +Problem: When pasting a block of text in Insert mode Vim hangs or crashes. + (Noam Halevy) +Solution: Avoid that the cursor is positioned past the NUL of a line. +Files: src/ops.c + +Patch 7.0.043 +Problem: Using "%!" at the start of 'statusline' doesn't work. +Solution: Recognize the special item when the option is being set. +Files: src/option.c + +Patch 7.0.044 +Problem: Perl: setting a buffer line in another buffer may result in + changing the current buffer. +Solution: Properly change to the buffer to be changed. +Files: src/if_perl.xs + +Patch 7.0.045 (extra) +Problem: Win32: Warnings when compiling OLE version with MSVC 2005. +Solution: Move including vim.h to before windows.h. (Ilya Bobir) +Files: src/if_ole.cpp + +Patch 7.0.046 +Problem: The matchparen plugin ignores parens in strings, but not in single + quotes, often marked with "character". +Solution: Also ignore parens in syntax items matching "character". +Files: runtime/plugin/matchparen.vim + +Patch 7.0.047 +Problem: When running configure the exit status is wrong. +Solution: Handle the exit status properly. (Matthew Woehlke) +Files: configure, src/configure + +Patch 7.0.048 +Problem: Writing a compressed file fails when there are parens in the name. + (Wang Jian) +Solution: Put quotes around the temp file name. +Files: runtime/autoload/gzip.vim + +Patch 7.0.049 +Problem: Some TCL scripts are not recognized. (Steven Atkinson) +Solution: Check for "exec wish" in the file. +Files: runtime/scripts.vim + +Patch 7.0.050 +Problem: After using the netbeans interface close command a stale pointer + may be used. +Solution: Clear the pointer to the closed buffer. (Xavier de Gaye) +Files: src/netbeans.c + +Patch 7.0.051 (after 7.0.44) +Problem: The Perl interface doesn't compile or doesn't work properly. +Solution: Remove the spaces before #ifdef and avoid an empty line above it. +Files: src/if_perl.xs + +Patch 7.0.052 +Problem: The user may not be aware that the Vim server allows others more + functionality than desired. +Solution: When running Vim as root don't become a Vim server without an + explicit --servername argument. +Files: src/main.c + +Patch 7.0.053 +Problem: Shortening a directory name may fail when there are multibyte + characters. +Solution: Copy the correct bytes. (Titov Anatoly) +Files: src/misc1.c + +Patch 7.0.054 +Problem: Mac: Using a menu name that only has a mnemonic or accelerator + causes a crash. (Elliot Shank) +Solution: Check for an empty menu name. Also delete empty submenus that + were created before detecting the error. +Files: src/menu.c + +Patch 7.0.055 +Problem: ":startinsert" in a CmdwinEnter autocommand doesn't take immediate + effect. (Bradley White) +Solution: Put a NOP key in the typeahead buffer. Also avoid that using + CTRL-C to go back to the command line moves the cursor left. +Files: src/edit.c, src/ex_getln.c + +Patch 7.0.056 +Problem: "#!something" gives an error message. +Solution: Ignore this line, so that it can be used in an executable Vim + script. +Files: src/ex_docmd.c + +Patch 7.0.057 (extra, after 7.0.45) +Problem: Win32: Compilation problem with Borland C 5.5. +Solution: Include vim.h as before. (Mark S. Williams) +Files: src/if_ole.cpp + +Patch 7.0.058 +Problem: The gbk and gb18030 encodings are not recognized. +Solution: Add aliases to cp936. (Edward L. Fox) +Files: src/mbyte.c + +Patch 7.0.059 +Problem: The Perl interface doesn't compile with ActiveState Perl 5.8.8. +Solution: Remove the __attribute__() items. (Liu Yubao) +Files: src/if_perl.xs + +Patch 7.0.060 (after 7.0.51) +Problem: Code for temporarily switching to another buffer is duplicated in + quite a few places. +Solution: Use aucmd_prepbuf() and aucmd_restbuf() also when FEAT_AUTOCMD is + not defined. +Files: src/buffer.c, src/eval.c, src/fileio.c, src/if_ruby.c, + src/if_perl.xs, src/quickfix.c, src/structs.h + +Patch 7.0.061 +Problem: Insert mode completion for Vim commands may crash if there is + nothing to complete. +Solution: Instead of freeing the pattern make it empty, so that a "not + found" error is given. (Yukihiro Nakadaira) +Files: src/edit.c + +Patch 7.0.062 +Problem: Mac: Crash when using the popup menu for spell correction. The + popup menu appears twice when letting go of the right mouse button + early. +Solution: Don't show the popup menu on the release of the right mouse + button. Also check that a menu pointer is actually valid. +Files: src/proto/menu.pro, src/menu.c, src/normal.c, src/term.c + +Patch 7.0.063 +Problem: Tiny chance for a memory leak. (coverity) +Solution: Free pointer when next memory allocation fails. +Files: src/eval.c + +Patch 7.0.064 +Problem: Using uninitialized variable. (Tony Mechelynck) +Solution: When not used set "temp" to zero. Also avoid a warning for + "files" in ins_compl_dictionaries(). +Files: src/edit.c + +Patch 7.0.065 (extra) +Problem: Mac: left-right movement of the scrollwheel causes up-down + scrolling. +Solution: Ignore mouse wheel events that are not up-down. (Nicolas Weber) +Files: src/gui_mac.c + +Patch 7.0.066 +Problem: After the popup menu for Insert mode completion overlaps the tab + pages line it is not completely removed. +Solution: Redraw the tab pages line after removing the popup menu. (Ori + Avtalion) +Files: src/popupmnu.c + +Patch 7.0.067 +Problem: Undo doesn't always work properly when using "scim" input method. + Undo is split up when using preediting. +Solution: Reset xim_has_preediting also when preedit_start_col is not + MAXCOL. Don't split undo when <Left> is used while preediting. + (Yukihiro Nakadaira) +Files: src/edit.c, src/mbyte.c + +Patch 7.0.068 +Problem: When 'ignorecase' is set and using Insert mode completion, + typing characters to change the list of matches, case is not + ignored. (Hugo Ahlenius) +Solution: Store the 'ignorecase' flag with the matches where needed. +Files: src/edit.c, src/search.c, src/spell.c + +Patch 7.0.069 +Problem: Setting 'guitablabel' to %!expand(\%) causes Vim to free an + invalid pointer. (Kim Schulz) +Solution: Don't try freeing a constant string pointer. +Files: src/buffer.c + +Patch 7.0.070 +Problem: Compiler warnings for shadowed variables and uninitialized + variables. +Solution: Rename variables such as "index", "msg" and "dup". Initialize + variables. +Files: src/edit.c, src/eval.c, src/ex_cmds.c, src/ex_cmds2.c, + src/ex_docmd.c, src/gui_beval.c, src/gui_gtk.c, src/gui_gtk_x11.c, + src/hardcopy.c, src/if_cscope.c, src/main.c, src/mbyte.c, + src/memline.c, src/netbeans.c, src/normal.c, src/option.c, + src/os_unix.c, src/quickfix.c, src/regexp.c, src/screen.c, + src/search.c, src/spell.c, src/ui.c, src/undo.c, src/window.c, + src/version.c + +Patch 7.0.071 +Problem: Using an empty search pattern may cause a crash. +Solution: Avoid using a NULL pointer. +Files: src/search.c + +Patch 7.0.072 +Problem: When starting the GUI fails there is no way to adjust settings or + do something else. +Solution: Add the GUIFailed autocommand event. +Files: src/fileio.c, src/gui.c, src/vim.h + +Patch 7.0.073 +Problem: Insert mode completion: Typing <CR> sometimes selects the original + text instead of keeping what was typed. (Justin Constantino) +Solution: Don't let <CR> select the original text if there is no popup menu. +Files: src/edit.c + +Patch 7.0.074 (extra) +Problem: Win32: tooltips were not converted from 'encoding' to Unicode. +Solution: Set the tooltip to use Unicode and do the conversion. Also + cleanup the code for the tab pages tooltips. (Yukihiro Nakadaira) +Files: src/gui_w32.c, src/gui_w48.c + +Patch 7.0.075 +Problem: winsaveview() did not store the actual value of the desired cursor + column. This could move the cursor in the matchparen plugin. +Solution: Call update_curswant() before using the value w_curswant. +Files: src/eval.c + +Patch 7.0.076 (after 7.0.010) +Problem: Automatic downloading of spell files only works for ftp. +Solution: Don't add login and password for non-ftp URLs. (Alexander Patrakov) +Files: runtime/autoload/spellfile.vim + +Patch 7.0.077 +Problem: ":unlet v:this_session" causes a crash. (Marius Roets) +Solution: When trying to unlet a fixed variable give an error message. +Files: src/eval.c + +Patch 7.0.078 +Problem: There are two error messages E46. +Solution: Change the number for the sandbox message to E794. +Files: src/globals.h + +Patch 7.0.079 +Problem: Russian tutor doesn't work when 'encoding' is "utf-8". +Solution: Use tutor.ru.utf-8 as the master, and generate the other encodings + from it. Select the right tutor depending on 'encoding'. (Alexey + Froloff) +Files: runtime/tutor/Makefile, runtime/tutor/tutor.vim, + runtime/tutor/tutor.ru.utf-8 + +Patch 7.0.080 +Problem: Generating auto/pathdef.c fails for CFLAGS with a backslash. +Solution: Double backslashes in the string. (Alexey Froloff) +Files: src/Makefile + +Patch 7.0.081 +Problem: Command line completion doesn't work for a shell command with an + absolute path. +Solution: Don't use $PATH when there is an absolute path. +Files: src/ex_getln.c + +Patch 7.0.082 +Problem: Calling a function that waits for input may cause List and + Dictionary arguments to be freed by the garbage collector. +Solution: Keep a list of all arguments to internal functions. +Files: src/eval.c + +Patch 7.0.083 +Problem: Clicking with the mouse on an item for inputlist() doesn't work + when 'compatible' is set and/or when 'cmdheight' is more than one. + (Christian J. Robinson) +Solution: Also decrement "lines_left" when 'more' isn't set. Set + "cmdline_row" to zero to get all mouse events. +Files: src/message.c, src/misc1.c + +Patch 7.0.084 +Problem: The garbage collector may do its work while some Lists or + Dictionaries are used internally, e.g., by ":echo" that runs into + the more-prompt or ":echo [garbagecollect()]". +Solution: Only do garbage collection when waiting for a character at the + toplevel. Let garbagecollect() set a flag that is handled at the + toplevel before waiting for a character. +Files: src/eval.c, src/getchar.c, src/globals.h, src/main.c + +Patch 7.0.085 +Problem: When doing "make test" the viminfo file is modified. +Solution: Use another viminfo file after setting 'compatible'. +Files: src/testdir/test56.in + +Patch 7.0.086 +Problem: getqflist() returns entries for pattern and text with the number + zero. Passing these to setqflist() results in the string "0". +Solution: Use an empty string instead of the number zero. +Files: src/quickfix.c + +Patch 7.0.087 +Problem: After ":file fname" and ":saveas fname" the 'autochdir' option + does not take effect. (Yakov Lerner) + Commands for handling 'autochdir' are repeated many times. +Solution: Add the DO_AUTOCHDIR macro and do_autochdir(). Use it for + ":file fname" and ":saveas fname". +Files: src/proto/buffer.pro, src/buffer.c, src/ex_cmds.c, src/macros.h, + src/netbeans.c, src/option.c, src/window.c + +Patch 7.0.088 +Problem: When compiled with Perl the generated prototypes have "extern" + unnecessarily added. +Solution: Remove the "-pipe" argument from PERL_CFLAGS. +Files: src/auto/configure, src/configure.in + +Patch 7.0.089 +Problem: "ga" does not work properly for a non-Unicode multibyte encoding. +Solution: Only check for composing chars for utf-8. (Taro Muraoka) +Files: src/ex_cmds.c + +Patch 7.0.090 +Problem: Cancelling the conform() dialog on the console with Esc requires + typing it twice. (Benji Fisher) +Solution: When the start of an escape sequence is found use 'timeoutlen' or + 'ttimeoutlen'. +Files: src/misc1.c + +Patch 7.0.091 +Problem: Using winrestview() while 'showcmd' is set causes the cursor to be + displayed in the wrong position. (Yakov Lerner) +Solution: Set the window topline properly. +Files: src/eval.c + +Patch 7.0.092 (after 7.0.082 and 7.0.084) +Problem: The list of internal function arguments is obsolete now that + garbage collection is only done at the toplevel. +Solution: Remove the list of all arguments to internal functions. +Files: src/eval.c + +Patch 7.0.093 +Problem: The matchparen plugin can't handle a 'matchpairs' value where a + colon is matched. +Solution: Change the split() that is used to change 'matchpairs' into a + List. +Files: runtime/plugin/matchparen.vim + +Patch 7.0.094 +Problem: When a hidden buffer is made the current buffer and another file + edited later, the file message will still be given. Using + ":silent" also doesn't prevent the file message. (Marvin Renich) +Solution: Reset the need_fileinfo flag when reading a file. Don't set + need_fileinfo when msg_silent is set. +Files: src/buffer.c, src/fileio.c + +Patch 7.0.095 +Problem: The Greek tutor is not available in utf-8. "el" is used for the + language, only "gr" for the country is recognized. +Solution: Add the utf-8 Greek tutor. Use it for conversion to iso-8859-7 + and cp737. (Lefteris Dimitroulakis) +Files: runtime/tutor/Makefile, runtime/tutor/tutor.gr.utf-8, + runtime/tutor/tutor.vim + +Patch 7.0.096 +Problem: taglist() returns the filename relative to the tags file, while + the directory of the tags file is unknown. (Hari Krishna Dara) +Solution: Expand the file name. (Yegappan Lakshmanan) +Files: src/tag.c + +Patch 7.0.097 +Problem: ":tabclose N" that closes another tab page does not remove the tab + pages line. Same problem when using the mouse. +Solution: Adjust the tab pages line when needed in tabpage_close_other(). +Files: src/ex_docmd.c + +Patch 7.0.098 +Problem: Redirecting command output in a cmdline completion function + doesn't work. (Hari Krishna Dara) +Solution: Enable redirection when redirection is started. +Files: src/ex_docmd.c, src/ex_getln.c + +Patch 7.0.099 +Problem: GUI: When the popup menu is visible using the scrollbar messes up + the display. +Solution: Disallow scrolling the current window. Redraw the popup menu + after scrolling another window. +Files: src/gui.c + +Patch 7.0.100 +Problem: "zug" may report the wrong filename. (Lawrence Kesteloot) +Solution: Call home_replace() to fill NameBuff[]. +Files: src/spell.c + +Patch 7.0.101 +Problem: When the "~/.vim/spell" directory does not exist "zg" may create + a wrong directory. "zw" doesn't work. +Solution: Use the directory of the file name instead of NameBuff. For "zw" + not only remove a good word but also add the word with "!". +Files: src/spell.c + +Patch 7.0.102 +Problem: Redrawing cmdline is not correct when using SCIM. +Solution: Don't call im_get_status(). (Yukihiro Nakadaira) +Files: src/ex_getln.c + +Patch 7.0.103 (after 7.0.101) +Problem: Compiler warning for uninitialized variable. (Tony Mechelynck) +Solution: Init variable. +Files: src/spell.c + +Patch 7.0.104 +Problem: The CursorHoldI event only triggers once in Insert mode. It also + triggers after CTRL-V and other two-key commands. +Solution: Set "did_cursorhold" before getting a second key. Reset + "did_cursorhold" after handling a command. +Files: src/edit.c, src/fileio.c + +Patch 7.0.105 +Problem: When using incremental search the statusline ruler isn't updated. + (Christoph Koegl) +Solution: Update the statusline when it contains the ruler. +Files: src/ex_getln.c + +Patch 7.0.106 +Problem: The spell popup menu uses ":amenu", triggering mappings. Other + PopupMenu autocommands are removed. (John Little) +Solution: Use ":anoremenu" and use an autocmd group. +Files: runtime/menu.vim + +Patch 7.0.107 +Problem: Incremental search doesn't redraw the text tabline. (Ilya Bobir) + Also happens in other situations with one window in a tab page. +Solution: Redraw the tabline after clearing the screen. +Files: src/screen.c + +Patch 7.0.108 (extra) +Problem: Amiga: Compilation problem. +Solution: Have mch_mkdir() return a failure flag. (Willy Catteau) +Files: src/os_amiga.c, src/proto/os_amiga.pro + +Patch 7.0.109 +Problem: Lisp indenting is confused by escaped quotes in strings. (Dorai + Sitaram) +Solution: Check for backslash inside strings. (Sergey Khorev) +Files: src/misc1.c + +Patch 7.0.110 +Problem: Amiga: Compilation problems when not using libnix. +Solution: Change a few #ifdefs. (Willy Catteau) +Files: src/memfile.c + +Patch 7.0.111 +Problem: The gzip plugin can't handle filenames with single quotes. +Solution: Add and use the shellescape() function. (partly by Alexey Froloff) +Files: runtime/autoload/gzip.vim, runtime/doc/eval.txt, src/eval.c, + src/mbyte.c, src/misc2.c, src/proto/misc2.pro + +Patch 7.0.112 +Problem: Python interface does not work with Python 2.5. +Solution: Change PyMem_DEL() to Py_DECREF(). (Sumner Hayes) +Files: src/if_python.c + +Patch 7.0.113 +Problem: Using CTRL-L in Insert completion when there is no current match + may cause a crash. (Yukihiro Nakadaira) +Solution: Check for compl_leader to be NULL +Files: src/edit.c + +Patch 7.0.114 +Problem: When aborting an insert with CTRL-C an extra undo point is + created in the GUI. (Yukihiro Nakadaira) +Solution: Call gotchars() only when advancing. +Files: src/getchar.c + +Patch 7.0.115 +Problem: When 'ignorecase' is set, Insert mode completion only adds "foo" + and not "Foo" when both are found. + A found match isn't displayed right away when 'completeopt' does + not have "menu" or "menuone". +Solution: Do not ignore case when checking if a completion match already + exists. call ins_compl_check_keys() also when not using a popup + menu. (Yukihiro Nakadaira) +Files: src/edit.c + +Patch 7.0.116 +Problem: 64 bit Windows version reports "32 bit" in the ":version" output. + (M. Veerman) +Solution: Change the text for Win64. +Files: src/version.c + +Patch 7.0.117 +Problem: Using "extend" on a syntax item inside a region with "keepend", an + intermediate item may be truncated. + When applying the "keepend" and there is an offset to the end + pattern the highlighting of a contained item isn't adjusted. +Solution: Use the seen_keepend flag to remember when to apply the "keepend" + flag. Adjust the keepend highlighting properly. (Ilya Bobir) +Files: src/syntax.c + +Patch 7.0.118 +Problem: printf() does not do zero padding for strings. +Solution: Do allow zero padding for strings. +Files: src/message.c + +Patch 7.0.119 +Problem: When going back from Insert to Normal mode the CursorHold event + doesn't trigger. (Yakov Lerner) +Solution: Reset "did_cursorhold" when leaving Insert mode. +Files: src/edit.c + +Patch 7.0.120 +Problem: Crash when using CTRL-R = at the command line and entering + "getreg('=')". (James Vega) +Solution: Avoid recursiveness of evaluating the = register. +Files: src/ops.c + +Patch 7.0.121 +Problem: GUI: Dragging the last status line doesn't work when there is a + text tabline. (Markus Wolf) +Solution: Take the text tabline into account when deciding to start modeless + selection. +Files: src/gui.c + +Patch 7.0.122 +Problem: GUI: When clearing after a bold, double-wide character half a + character may be drawn. +Solution: Check for double-wide character and redraw it. (Yukihiro Nakadaira) +Files: src/screen.c + +Patch 7.0.123 +Problem: On SCO Openserver configure selects the wrong terminal library. +Solution: Put terminfo before the other libraries. (Roger Cornelius) + Also fix a small problem compiling on Mac without Darwin. +Files: src/configure.in, src/auto/configure + +Patch 7.0.124 +Problem: getwinvar() obtains a dictionary with window-local variables, but + it's always for the current window. +Solution: Get the variables of the specified window. (Geoff Reedy) +Files: src/eval.c + +Patch 7.0.125 +Problem: When "autoselect" is in the 'clipboard' option then the '< and '> + marks are set while Visual mode is still active. +Solution: Don't set the '< and '> marks when yanking the selected area for + the clipboard. +Files: src/normal.c + +Patch 7.0.126 +Problem: When 'formatexpr' uses setline() and later internal formatting is + used undo information is not correct. (Jiri Cerny, Benji Fisher) +Solution: Set ins_need_undo after using 'formatexpr'. +Files: src/edit.c + +Patch 7.0.127 +Problem: Crash when swap file has invalid timestamp. +Solution: Check return value of ctime() for being NULL. +Files: src/memline.c + +Patch 7.0.128 +Problem: GUI: when closing gvim is cancelled because there is a changed + buffer the screen isn't updated to show the changed buffer in the + current window. (Krzysztof Kacprzak) +Solution: Redraw when closing gvim is cancelled. +Files: src/gui.c + +Patch 7.0.129 +Problem: GTK GUI: the GTK file dialog can't handle a relative path. +Solution: Make the initial directory a full path before passing it to GTK. + (James Vega) Also postpone adding the default file name until + after setting the directory. +Files: src/gui_gtk.c + +Patch 7.0.130 (extra) +Problem: Win32: Trying to edit or write devices may cause Vim to get stuck. +Solution: Add the 'opendevice' option, default off. Disallow + reading/writing from/to devices when it's off. + Also detect more devices by the full name starting with "\\.\". +Files: runtime/doc/options.txt, src/fileio.c, src/option.c, src/option.h, + src/os_win32.c + +Patch 7.0.131 +Problem: Win32: "vim -r" does not list all the swap files. +Solution: Also check for swap files starting with a dot. +Files: src/memline.c + +Patch 7.0.132 (after 7.0.130) +Problem: Win32: Crash when Vim reads from stdin. +Solution: Only use mch_nodetype() when there is a file name. +Files: src/fileio.c + +Patch 7.0.133 +Problem: When searching included files messages are added to the history. +Solution: Set msg_hist_off for messages about scanning included files. + Set msg_silent to avoid message about wrapping around. +Files: src/edit.c, src/globals.h, src/message.c, src/search.c + +Patch 7.0.134 +Problem: Crash when comparing a recursively looped List or Dictionary. +Solution: Limit recursiveness for comparing to 1000. +Files: src/eval.c + +Patch 7.0.135 +Problem: Crash when garbage collecting list or dict with loop. +Solution: Don't use DEL_REFCOUNT but don't recurse into Lists and + Dictionaries when freeing them in the garbage collector. + Also add allocated Dictionaries to the list of Dictionaries to + avoid leaking memory. +Files: src/eval.c, src/proto/eval.pro, src/tag.c + +Patch 7.0.136 +Problem: Using "O" while matching parens are highlighted may not remove the + highlighting. (Ilya Bobir) +Solution: Also trigger CursorMoved when a line is inserted under the cursor. +Files: src/misc1.c + +Patch 7.0.137 +Problem: Configure check for big features is wrong. +Solution: Change "==" to "=". (Martti Kuparinen) +Files: src/auto/configure, src/configure.in + +Patch 7.0.138 (extra) +Problem: Mac: modifiers don't work with function keys. +Solution: Use GetEventParameter() to obtain modifiers. (Nicolas Weber) +Files: src/gui_mac.c + +Patch 7.0.139 +Problem: Using CTRL-PageUp or CTRL-PageDown in Insert mode to go to another + tab page does not prepare for undo properly. (Stefano Zacchiroli) +Solution: Call start_arrow() before switching tab page. +Files: src/edit.c + +Patch 7.0.140 (after 7.0.134) +Problem: Comparing recursively looped List or Dictionary doesn't work well. +Solution: Detect comparing a List or Dictionary with itself. +Files: src/eval.c + +Patch 7.0.141 +Problem: When pasting a while line on the command line an extra CR is added + literally. +Solution: Don't add the trailing CR when pasting with the mouse. +Files: src/ex_getln.c, src/proto/ops.pro, src/ops.c + +Patch 7.0.142 +Problem: Using the middle mouse button in Select mode to paste text results + in an extra "y". (Kriton Kyrimis) +Solution: Let the middle mouse button replace the selected text with the + contents of the clipboard. +Files: src/normal.c + +Patch 7.0.143 +Problem: Setting 'scroll' to its default value was not handled correctly. +Solution: Compare the right field to PV_SCROLL. +Files: src/option.c + +Patch 7.0.144 +Problem: May compare two unrelated pointers when matching a pattern against + a string. (Dominique Pelle) +Solution: Avoid calling reg_getline() when REG_MULTI is false. +Files: src/regexp.c + +Patch 7.0.145 (after 7.0.142) +Problem: Compiler warning. +Solution: Add type cast. +Files: src/normal.c + +Patch 7.0.146 +Problem: When 'switchbuf' is set to "usetab" and the current tab has only a + quickfix window, jumping to an error always opens a new window. + Also, when the buffer is open in another tab page it's not found. +Solution: Check for the "split" value of 'switchbuf' properly. Search in + other tab pages for the desired buffer. (Yegappan Lakshmanan) +Files: src/buffer.c, src/quickfix.c + +Patch 7.0.147 +Problem: When creating a session file and there are several tab pages and + some windows have a local directory a short file name may be used + when it's not valid. (Marius Roets) + A session with multiple tab pages may result in "No Name" buffers. + (Bill McCarthy) +Solution: Don't enter tab pages when going through the list, only use a + pointer to the first window in each tab page. + Use "tabedit" instead of "tabnew | edit" when possible. +Files: src/ex_docmd.c + +Patch 7.0.148 +Problem: When doing "call a.xyz()" and "xyz" does not exist in dictionary + "a" there is no error message. (Yegappan Lakshmanan) +Solution: Add the error message. +Files: src/eval.c + +Patch 7.0.149 +Problem: When resizing a window that shows "~" lines the text sometimes + jumps down. +Solution: Remove code that uses "~" lines in some situations. Fix the + computation of the screen line of the cursor. Also set w_skipcol + to handle very long lines. +Files: src/misc1.c, src/window.c + +Patch 7.0.150 +Problem: When resizing the Vim window scrollbinding doesn't work. (Yakov + Lerner) +Solution: Do scrollbinding in set_shellsize(). +Files: src/term.c + +Patch 7.0.151 +Problem: Buttons in file dialog are not according to Gnome guidelines. +Solution: Swap Cancel and Open buttons. (Stefano Zacchiroli) +Files: src/gui_gtk.c + +Patch 7.0.152 +Problem: Crash when using lesstif 2. +Solution: Fill in the extension field. (Ben Hutchings) +Files: src/gui_xmebw.c + +Patch 7.0.153 +Problem: When using cscope and opening the temp file fails Vim crashes. + (Kaya Bekiroglu) +Solution: Check for NULL pointer returned from mch_open(). +Files: src/if_cscope.c + +Patch 7.0.154 +Problem: When 'foldnestmax' is negative Vim can hang. (James Vega) +Solution: Avoid the fold level becoming negative. +Files: src/fold.c, src/syntax.c + +Patch 7.0.155 +Problem: When getchar() returns a mouse button click there is no way to get + the mouse coordinates. +Solution: Add v:mouse_win, v:mouse_lnum and v:mouse_col. +Files: runtime/doc/eval.txt, src/eval.c, src/vim.h + +Patch 7.0.156 (extra) +Problem: Vim doesn't compile for Amiga OS 4. +Solution: Various changes for Amiga OS4. (Peter Bengtsson) +Files: src/feature.h, src/mbyte.c, src/memfile.c, src/memline.c, + src/os_amiga.c, src/os_amiga.h, src/pty.c + +Patch 7.0.157 +Problem: When a function is used recursively the profiling information is + invalid. (Mikolaj Machowski) +Solution: Put the start time on the stack instead of in the function. +Files: src/eval.c + +Patch 7.0.158 +Problem: In a C file with ":set foldmethod=syntax", typing {<CR> on the + last line results in the cursor being in a closed fold. (Gautam + Iyer) +Solution: Open fold after inserting a new line. +Files: src/edit.c + +Patch 7.0.159 +Problem: When there is an I/O error in the swap file the cause of the error + cannot be seen. +Solution: Use PERROR() instead of EMSG() where possible. +Files: src/memfile.c + +Patch 7.0.160 +Problem: ":@a" echoes the command, Vi doesn't do that. +Solution: Set the silent flag in the typeahead buffer to avoid echoing the + command. +Files: src/ex_docmd.c, src/normal.c, src/ops.c, src/proto/ops.pro + +Patch 7.0.161 +Problem: Win32: Tab pages line popup menu isn't using the right encoding. + (Yongwei Wu) +Solution: Convert the text when necessary. Also fixes the Find/Replace + dialog title. (Yegappan Lakshmanan) +Files: src/gui_w48.c + +Patch 7.0.162 +Problem: "vim -o a b" when file "a" triggers the ATTENTION dialog, + selecting "Quit" exits Vim instead of editing "b" only. + When file "b" triggers the ATTENTION dialog selecting "Quit" or + "Abort" results in editing file "a" in that window. +Solution: When selecting "Abort" exit Vim. When selecting "Quit" close the + window. Also avoid hit-enter prompt when selecting Abort. +Files: src/buffer.c, src/main.c + +Patch 7.0.163 +Problem: Can't retrieve the position of a sign after it was set. +Solution: Add the netbeans interface getAnno command. (Xavier de Gaye) +Files: runtime/doc/netbeans.txt, src/netbeans.c + +Patch 7.0.164 +Problem: ":redir @+" doesn't work. +Solution: Accept "@+" just like "@*". (Yegappan Lakshmanan) +Files: src/ex_docmd.c + +Patch 7.0.165 +Problem: Using CTRL-L at the search prompt adds a "/" and other characters + without escaping, causing the pattern not to match. +Solution: Escape special characters with a backslash. +Files: src/ex_getln.c + +Patch 7.0.166 +Problem: Crash in cscope code when connection could not be opened. + (Kaya Bekiroglu) +Solution: Check for the file descriptor to be NULL. +Files: src/if_cscope.c + +Patch 7.0.167 +Problem: ":function" redefining a dict function doesn't work properly. + (Richard Emberson) +Solution: Allow a function name to be a number when it's a function + reference. +Files: src/eval.c + +Patch 7.0.168 +Problem: Using uninitialized memory and memory leak. (Dominique Pelle) +Solution: Use alloc_clear() instead of alloc() for w_lines. Free + b_ml.ml_stack after recovery. +Files: src/memline.c, src/window.c + +Patch 7.0.169 +Problem: With a Visual block selection, with the cursor in the left upper + corner, pressing "I" doesn't remove the highlighting. (Guopeng + Wen) +Solution: When checking if redrawing is needed also check if Visual + selection is still active. +Files: src/screen.c + +Patch 7.0.170 (extra) +Problem: Win32: Using "gvim --remote-tab foo" when gvim is minimized while + it previously was maximized, un-maximizing doesn't work properly. + And the labels are not displayed properly when 'encoding' is + utf-8. +Solution: When minimized check for SW_SHOWMINIMIZED. When updating the tab + pages line use TCM_SETITEMW instead of TCM_INSERTITEMW. (Liu + Yubao) +Files: src/gui_w48.c + +Patch 7.0.171 (extra) +Problem: VMS: A file name with multiple paths is written in the wrong file. +Solution: Get the actually used file name. (Zoltan Arpadffy) + Also add info to the :version command about compilation. +Files: src/Make_vms.mms, src/buffer.c, src/os_unix.c, src/version.c + +Patch 7.0.172 +Problem: Crash when recovering and quitting at the "press-enter" prompt. +Solution: Check for "msg_list" to be NULL. (Liu Yubao) +Files: src/ex_eval.c + +Patch 7.0.173 +Problem: ":call f().TT()" doesn't work. (Richard Emberson) +Solution: When a function returns a Dictionary or another composite continue + evaluating what follows. +Files: src/eval.c + +Patch 7.0.174 +Problem: ":mksession" doesn't restore window layout correctly in tab pages + other than the current one. (Zhibin He) +Solution: Use the correct topframe for producing the window layout commands. +Files: src/ex_docmd.c + +Patch 7.0.175 +Problem: The result of tr() is missing the terminating NUL. (Ingo Karkat) +Solution: Add the NUL. +Files: src/eval.c + +Patch 7.0.176 +Problem: ":emenu" isn't executed directly, causing the encryption key + prompt to fail. (Life Jazzer) +Solution: Fix wrong #ifdef. +Files: src/menu.c + +Patch 7.0.177 +Problem: When the press-enter prompt gets a character from a non-remappable + mapping, it's put back in the typeahead buffer as remappable, + which may cause an endless loop. +Solution: Restore the non-remappable flag and the silent flag when putting a + char back in the typeahead buffer. +Files: src/getchar.c, src/message.c, src/normal.c + +Patch 7.0.178 +Problem: When 'enc' is "utf-8" and 'ignorecase' is set the result of ":echo + ("\xe4" == "\xe4")" varies. +Solution: In mb_strnicmp() avoid looking past NUL bytes. +Files: src/mbyte.c + +Patch 7.0.179 +Problem: Using ":recover" or "vim -r" without a swapfile crashes Vim. +Solution: Check for "buf" to be unequal NULL. (Yukihiro Nakadaira) +Files: src/memline.c + +Patch 7.0.180 (extra, after 7.0.171) +Problem: VMS: build failed. Problem with swapfiles. +Solution: Add "compiled_arch". Always expand path and pass it to + buf_modname(). (Zoltan Arpadffy) +Files: src/globals.h, src/memline.c, src/os_unix.c, runtime/menu.vim + +Patch 7.0.181 +Problem: When reloading a file that starts with an empty line, the reloaded + buffer has an extra empty line at the end. (Motty Lentzitzky) +Solution: Delete all lines, don't use bufempty(). +Files: src/fileio.c + +Patch 7.0.182 +Problem: When using a mix of undo and "g-" it may no longer be possible to + go to every point in the undo tree. (Andy Wokula) +Solution: Correctly update pointers in the undo tree. +Files: src/undo.c + +Patch 7.0.183 +Problem: Crash in ":let" when redirecting to a variable that's being + displayed. (Thomas Link) +Solution: When redirecting to a variable only do the assignment when + stopping redirection to avoid that setting the variable causes a + freed string to be accessed. +Files: src/eval.c + +Patch 7.0.184 +Problem: When the cscope program is called "mlcscope" the Cscope interface + doesn't work. +Solution: Accept "\S*cscope:" instead of "cscope:". (Frodak D. Baksik) +Files: src/if_cscope.c + +Patch 7.0.185 +Problem: Multi-byte characters in a message are displayed with attributes + from what comes before it. +Solution: Don't use the attributes for a multibyte character. Do use + attributes for special characters. (Yukihiro Nakadaira) +Files: src/message.c + +Patch 7.0.186 +Problem: Get an ml_get error when 'encoding' is "utf-8" and searching for + "/\_s*/e" in an empty buffer. (Andrew Maykov) +Solution: Don't try getting the line just below the last line. +Files: src/search.c + +Patch 7.0.187 +Problem: Can't source a remote script properly. +Solution: Add the SourceCmd event. (Charles Campbell) +Files: runtime/doc/autocmd.txt, src/ex_cmds2.c, src/fileio.c, src/vim.h + +Patch 7.0.188 (after 7.0.186) +Problem: Warning for wrong pointer type. +Solution: Add a type cast. +Files: src/search.c + +Patch 7.0.189 +Problem: Translated message about finding matches is truncated. (Yukihiro + Nakadaira) +Solution: Enlarge the buffer. Also use vim_snprintf(). +Files: src/edit.c + +Patch 7.0.190 +Problem: "syntax spell default" results in an error message. +Solution: Change 4 to 7 for STRNICMP(). (Raul Nunez de Arenas Coronado) +Files: src/syntax.c + +Patch 7.0.191 +Problem: The items used by getqflist() and setqflist() don't match. +Solution: Support the "bufnum" item for setqflist(). (Yegappan Lakshmanan) +Files: runtime/doc/eval.txt, src/quickfix.c + +Patch 7.0.192 +Problem: When 'swapfile' is switched off in an empty file it is possible + that not all blocks are loaded into memory, causing ml_get errors + later. +Solution: Rename "dont_release" to "mf_dont_release" and also use it to + avoid using the cached line and locked block. +Files: src/globals.h, src/memfile.c, src/memline.c + +Patch 7.0.193 +Problem: Using --remote or --remote-tab with an argument that matches + 'wildignore' causes a crash. +Solution: Check the argument count before using ARGLIST[0]. +Files: src/ex_cmds.c + +Patch 7.0.194 +Problem: Once an ml_get error is given redrawing part of the screen may + cause it again, resulting in an endless loop. +Solution: Don't give the error message for a recursive call. +Files: src/memline.c + +Patch 7.0.195 +Problem: When a buffer is modified and 'autowriteall' is set, ":quit" + results in an endless loop when there is a conversion error while + writing. (Nikolai Weibull) +Solution: Make autowrite() return FAIL if the buffer is still changed after + writing it. + /* put the cursor on the last char, for 'tw' formatting */ +Files: src/ex_cmds2.c + +Patch 7.0.196 +Problem: When using ":vert ball" the computation of the mouse pointer + position may be off by one column. (Stefan Karlsson) +Solution: Recompute the frame width when moving the vertical separator from + one window to another. +Files: src/window.c + +Patch 7.0.197 (extra) +Problem: Win32: Compiling with EXITFREE doesn't work. +Solution: Adjust a few #ifdefs. (Alexei Alexandrof) +Files: src/misc2.c, src/os_mswin.c + +Patch 7.0.198 (extra) +Problem: Win32: Compiler warnings. No need to generate gvim.exe.mnf. +Solution: Add type casts. Use "*" for processorArchitecture. (George Reilly) +Files: src/Make_mvc.mak, src/eval.c, src/gvim.exe.mnf, src/misc2.c + +Patch 7.0.199 +Problem: When using multibyte characters the combination of completion and + formatting may result in a wrong cursor position. +Solution: Don't decrement the cursor column, use dec_cursor(). (Yukihiro + Nakadaira) Also check for the column to be zero. +Files: src/edit.c + +Patch 7.0.200 +Problem: Memory leaks when out of memory. +Solution: Free the memory. +Files: src/edit.c, src/diff.c + +Patch 7.0.201 +Problem: Message for ":diffput" about buffer not being in diff mode may be + wrong. +Solution: Check for buffer in diff mode but not modifiable. +Files: src/diff.c + +Patch 7.0.202 +Problem: Problems on Tandem systems while compiling and at runtime. +Solution: Recognize root uid is 65535. Check select() return value for it + not being supported. Avoid wrong function prototypes. Mention + use of -lfloss. (Matthew Woehlke) +Files: src/Makefile, src/ex_cmds.c, src/fileio.c, src/main.c, + src/osdef1.h.in, src/osdef2.h.in, src/os_unix.c, src/pty.c, + src/vim.h + +Patch 7.0.203 +Problem: 0x80 characters in a register are not handled correctly for the + "@" command. +Solution: Escape CSI and 0x80 characters. (Yukihiro Nakadaira) +Files: src/ops.c + +Patch 7.0.204 +Problem: Cscope: Parsing matches for listing isn't done properly. +Solution: Check for line number being found. (Yu Zhao) +Files: src/if_cscope.c + +Patch 7.0.205 (after 7.0.203) +Problem: Can't compile. +Solution: Always include the vim_strsave_escape_csi function. +Files: src/getchar.c + +Patch 7.0.206 (after 7.0.058) +Problem: Some characters of the "gb18030" encoding are not handled + properly. +Solution: Do not use "cp936" as an alias for "gb18030" encoding. Instead + initialize 'encoding' to "cp936". +Files: src/mbyte.c, src/option.c + +Patch 7.0.207 +Problem: After patch 2.0.203 CSI and K_SPECIAL characters are escaped when + recorded and then again when the register is executed. +Solution: Remove escaping before putting the recorded characters in a + register. (Yukihiro Nakadaira) +Files: src/getchar.c, src/ops.c, src/proto/getchar.pro + +Patch 7.0.208 (after 7.0.171 and 7.0.180) +Problem: VMS: changes to path handling cause more trouble than they solve. +Solution: Revert changes. +Files: src/buffer.c, src/memline.c, src/os_unix.c + +Patch 7.0.209 +Problem: When replacing a line through Python the cursor may end up beyond + the end of the line. +Solution: Check the cursor column after replacing the line. +Files: src/if_python.c + +Patch 7.0.210 +Problem: ":cbuffer" and ":lbuffer" always fail when the buffer is modified. + (Gary Johnson) +Solution: Support adding a !. (Yegappan Lakshmanan) +Files: runtime/doc/quickfix.txt, src/ex_cmds.h + +Patch 7.0.211 +Problem: With ":set cindent noai bs=0" using CTRL-U in Insert mode will + delete auto-indent. After ":set ai" it doesn't. +Solution: Also check 'cindent' being set. (Ryan Lortie) +Files: src/edit.c + +Patch 7.0.212 +Problem: The GUI can't be terminated with SIGTERM. (Mark Logan) +Solution: Use the signal protection in the GUI as in the console, allow + signals when waiting for 100 msec or longer. +Files: src/ui.c + +Patch 7.0.213 +Problem: When 'spellfile' has two regions that use the same sound folding + using "z=" will cause memory to be freed twice. (Mark Woodward) +Solution: Clear the hashtable properly so that the items are only freed once. +Files: src/spell.c + +Patch 7.0.214 +Problem: When using <f-args> in a user command it's not possible to have an + argument end in '\ '. +Solution: Change the handling of backslashes. (Yakov Lerner) +Files: runtime/doc/map.txt, src/ex_docmd.c + +Patch 7.0.215 (extra) +Problem: Mac: Scrollbar size isn't set. Context menu has disabled useless + Help entry. Call to MoreMasterPointers() is ignored. +Solution: Call SetControlViewSize() in gui_mch_set_scrollbar_thumb(). Use + kCMHelpItemRemoveHelp for ContextualMenuSelect(). Remove call to + MoreMasterPointers(). (Nicolas Weber) +Files: src/gui_mac.c + +Patch 7.0.216 +Problem: ":tab wincmd ]" does not open a tab page. (Tony Mechelynck) +Solution: Copy the cmdmod.tab value to postponed_split_tab and use it. +Files: src/globals.h, src/ex_docmd.c, src/if_cscope.c, src/window.c + +Patch 7.0.217 +Problem: This hangs when pressing "n": ":%s/\n/,\r/gc". (Ori Avtalion) +Solution: Set "skip_match" to advance to the next line. +Files: src/ex_cmds.c + +Patch 7.0.218 +Problem: "%B" in 'statusline' always shows zero in Insert mode. (DervishD) +Solution: Remove the exception for Insert mode, check the column for being + valid instead. +Files: src/buffer.c + +Patch 7.0.219 +Problem: When using the 'editexisting.vim' script and a file is being + edited in another tab page the window is split. The "+123" + argument is not used. +Solution: Make the tab page with the file the current tab page. Set + v:swapcommand when starting up to the first "+123" or "-c" command + line argument. +Files: runtime/macros/editexisting.vim, src/main.c + +Patch 7.0.220 +Problem: Crash when using winnr('#') in a new tab page. (Andy Wokula) +Solution: Check for not finding the window. +Files: src/eval.c + +Patch 7.0.221 +Problem: finddir() uses 'path' by default, where "." means relative to the + current file. But it works relative to the current directory. + (Tye Zdrojewski) +Solution: Add the current buffer name to find_file_in_path_option() for the + relative file name. +Files: runtime/doc/eval.txt, src/eval.c + +Patch 7.0.222 +Problem: Perl indenting using 'cindent' works almost right. +Solution: Recognize '#' to start a comment. (Alex Manoussakis) Added '#' + flag in 'cinoptions'. +Files: runtime/doc/indent.txt, src/misc1.c + +Patch 7.0.223 +Problem: Unprintable characters in completion text mess up the popup menu. + (Gombault Damien) +Solution: Use strtrans() to make the text printable. +Files: src/charset.c, src/popupmnu.c + +Patch 7.0.224 +Problem: When expanding "##" spaces are escaped twice. (Pavol Juhas) +Solution: Don't escape the spaces that separate arguments. +Files: src/eval.c, src/ex_docmd.c, src/proto/ex_docmd.pro + +Patch 7.0.225 +Problem: When using setline() in an InsertEnter autocommand and doing "A" + the cursor ends up on the last byte in the line. (Yukihiro + Nakadaira) +Solution: Only adjust the column when using setline() for the cursor line. + Move it back to the head byte if necessary. +Files: src/eval.c, src/misc2.c + +Patch 7.0.226 +Problem: Display flickering when updating signs through the netbeans + interface. (Xavier de Gaye) +Solution: Remove the redraw_later(CLEAR) call. +Files: src/netbeans.c + +Patch 7.0.227 +Problem: Crash when closing a window in the GUI. (Charles Campbell) +Solution: Don't call out_flush() from win_free(). +Files: src/window.c + +Patch 7.0.228 +Problem: Cygwin: problem with symlink to DOS style path. +Solution: Invoke cygwin_conv_to_posix_path(). (Luca Masini) +Files: src/os_unix.c + +Patch 7.0.229 +Problem: When 'pastetoggle' starts with Esc then pressing Esc in Insert + mode will not time out. (Jeffery Small) +Solution: Use KL_PART_KEY instead of KL_PART_MAP, so that 'ttimeout' applies + to the 'pastetoggle' key. +Files: src/getchar.c + +Patch 7.0.230 +Problem: After using ":lcd" a script doesn't know how to restore the + current directory. +Solution: Add the haslocaldir() function. (Bob Hiestand) +Files: runtime/doc/usr_41.txt, runtime/doc/eval.txt, src/eval.c + +Patch 7.0.231 +Problem: When recovering from a swap file the page size is likely to be + different from the minimum. The block used for the first page + then has a buffer of the wrong size, causing a crash when it's + reused later. (Zephaniah Hull) +Solution: Reallocate the buffer when the page size changes. Also check that + the page size is at least the minimum value. +Files: src/memline.c + +Patch 7.0.232 (extra) +Problem: Mac: doesn't support GUI tab page labels. +Solution: Add GUI tab page labels. (Nicolas Weber) +Files: src/feature.h, src/gui.c, src/gui.h, src/gui_mac.c, + src/proto/gui_mac.pro + +Patch 7.0.233 (extra) +Problem: Mac: code formatted badly. +Solution: Fix code formatting +Files: src/gui_mac.c + +Patch 7.0.234 +Problem: It's possible to use feedkeys() from a modeline. That is a + security issue, can be used for a trojan horse. +Solution: Disallow using feedkeys() in the sandbox. +Files: src/eval.c + +Patch 7.0.235 +Problem: It is possible to use writefile() in the sandbox. +Solution: Add a few more checks for the sandbox. +Files: src/eval.c + +Patch 7.0.236 +Problem: Linux 2.4 uses sysinfo() with a mem_unit field, which is not + backwards compatible. +Solution: Add an autoconf check for sysinfo.mem_unit. Let mch_total_mem() + return Kbyte to avoid overflow. +Files: src/auto/configure, src/configure.in, src/config.h.in, + src/option.c, src/os_unix.c + +Patch 7.0.237 +Problem: For root it is recommended to not use 'modeline', but in + not-compatible mode the default is on. +Solution: Let 'modeline' default to off for root. +Files: runtime/doc/options.txt, src/option.c + +Patch 7.0.238 +Problem: Crash when ":match" pattern runs into 'maxmempattern'. (Yakov + Lerner) +Solution: Don't free the regexp program of match_hl. +Files: src/screen.c + +Patch 7.0.239 +Problem: When using local directories and tab pages ":mksession" uses a + short file name when it shouldn't. Window-local options from a + modeline may be applied to the wrong window. (Teemu Likonen) +Solution: Add the did_lcd flag, use the full path when it's set. Don't use + window-local options from the modeline when using the current + window for another buffer in ":doautoall". +Files: src/fileio.c, src/ex_docmd.c + +Patch 7.0.240 +Problem: Crash when splitting a window in the GUI. (opposite of 7.0.227) +Solution: Don't call out_flush() from win_alloc(). Also avoid this for + win_delete(). Also block autocommands while the window structure + is invalid. +Files: src/window.c + +Patch 7.0.241 +Problem: ":windo throw 'foo'" loops forever. (Andy Wokula) +Solution: Detect that win_goto() doesn't work. +Files: src/ex_cmds2.c + +Patch 7.0.242 (extra) +Problem: Win32: Using "-register" in a Vim that does not support OLE causes + a crash. +Solution: Don't use EMSG() but mch_errmsg(). Check p_go for being NULL. + (partly by Michael Wookey) +Files: src/gui_w32.c + +Patch 7.0.243 (extra) +Problem: Win32: When GvimExt is built with MSVC 2005 or later, the "Edit + with vim" context menu doesn't appear in the Windows Explorer. +Solution: Embed the linker manifest file into the resources of GvimExt.dll. + (Mathias Michaelis) +Files: src/GvimExt/Makefile + + +Fixes after Vim 7.1a BETA: + +The extra archive had CVS directories included below "farsi" and +"runtime/icons". CVS was missing the farsi icon files. + +Fix compiling with Gnome 2.18, undefine bind_textdomain_codeset. (Daniel +Drake) + +Mac: "make install" didn't copy rgb.txt. + +When editing a compressed file while there are folds caused "ml_get" errors +and some lines could be missing. When decompressing failed option values were +not restored. + + +Patch 7.1a.001 +Problem: Crash when downloading a spell file. (Szabolcs Horvat) +Solution: Avoid that did_set_spelllang() is used recursively when a new + window is opened for the download. + Also avoid wiping out the wrong buffer. +Files: runtime/autoload/spellfile.vim, src/buffer.c, src/ex_cmds.c, + src/spell.c + +Patch 7.1a.002 (extra) +Problem: Compilation error with MingW. +Solution: Check for LPTOOLTIPTEXT to be defined. +Files: src/gui_w32.c + + +Fixes after Vim 7.1b BETA: + +Made the Mzscheme interface build both with old and new versions of Mzscheme, +using an #ifdef. (Sergey Khorev) +Mzscheme interface didn't link, missing function. Changed order of libraries +in the configure script. + +Ruby interface didn't compile on Mac. Changed #ifdef. (Kevin Ballard) + +Patch 7.1b.001 (extra) +Problem: Random text in a source file. No idea how it got there. +Solution: Delete the text. +Files: src/gui_w32.c + +Patch 7.1b.002 +Problem: When 'maxmem' is large there can be an overflow in computations. + (Thomas Wiegner) +Solution: Use the same mechanism as in mch_total_mem(): first reduce the + multiplier as much as possible. +Files: src/memfile.c + +============================================================================== +VERSION 7.2 *version-7.2* *version7.2* + +This section is about improvements made between version 7.1 and 7.2. + +This is mostly a bug-fix release. The main new feature is floating point +support. |Float| + + +Changed *changed-7.2* +------- + +Changed the command line buffer name from "command-line" to "[Command Line]". + +Removed optional ! for ":caddexpr", ":cgetexpr", ":cgetfile", ":laddexpr", +":lgetexpr" and ":lgetfile". They are not needed. (Yegappan Lakshmanan) + +An offset for syntax matches worked on bytes instead of characters. That is +inconsistent and can easily be done wrong. Use character offsets now. +(Yukihiro Nakadaira) + +The FileChangedShellPost event was also given when a file didn't change. +(John Little) + +When the current line is long (doesn't fit) the popup menu can't be seen. +Display it below the screen line instead of below the text line. +(Francois Ingelrest) + +Switched to autoconf version 2.62. + +Moved including fcntl.h to vim.h and removed it from all .c files. + +Introduce macro STRMOVE(d, s), like STRCPY() for overlapping strings. +Use it instead of mch_memmove(p, p + x, STRLEN(p + x) + 1). + +Removed the bulgarian.vim keymap file, two more standard ones replace it. +(Boyko Bantchev) + +Increased the maximum number of tag matches for command line completion from +200 to 300. + +Renamed help file sql.txt to ft_sql.txt and ada.txt to ft_ada.txt. + + +Added *added-7.2* +----- + +New syntax files: + CUDA (Timothy B. Terriberry) + Cdrdao config (Nikolai Weibull) + Coco/R (Ashish Shukla) + Denyhosts config (Nikolai Weibull) + Dtrace script (Nicolas Weber) + Git output, commit, config, rebase, send-email (Tim Pope) + HASTE and HastePreProc (M. Tranchero) + Haml (Tim Pope) + Host conf (Nikolai Weibull) + Linden script (Timo Frenay) + MS messages (Kevin Locke) + PDF (Tim Pope) + ProMeLa (Maurizio Tranchero) + Reva Foth (Ron Aaron) + Sass (Tim Pope) + Symbian meta-makefile, MMP (Ron Aaron) + VOS CM macro (Andrew McGill) + XBL (Doug Kearns) + +New tutor files: + Made UTF-8 versions of all the tutor files. + Greek renamed from ".gr" to ".el" (Greek vs Greece). + Esperanto (Dominique Pelle) + Croatian (Paul B. Mahol) + +New filetype plugins: + Cdrdao config (Nikolai Weibull) + Debian control files (Debian Vim maintainers) + Denyhosts (Nikolai Weibull) + Dos .ini file (Nikolai Weibull) + Dtrace script (Nicolas Weber) + FnameScript (Nikolai Weibull) + Git, Git config, Git commit, Git rebase, Git send-email (Tim Pope) + Haml (Tim Pope) + Host conf (Nikolai Weibull) + Host access (Nikolai Weibull) + Logtalk (Paulo Moura) + MS messages (Kevin Locke) + NSIS script (Nikolai Weibull) + PDF (Tim Pope) + Reva Forth (Ron Aaron) + Sass (Tim Pope) + +New indent files: + DTD (Nikolai Weibull) + Dtrace script (Nicolas Weber) + Erlang (Csaba Hoch) + FrameScript (Nikolai Weibull) + Git config (Tim Pope) + Haml (Tim Pope) + Logtalk (Paulo Moura) + Sass (Tim Pope) + Tiny Fugue (Christian J. Robinson) + +New compiler plugins: + RSpec (Tim Pope) + +New keymap files: + Croatian (Paul B. Mahol) + Russian Dvorak (Serhiy Boiko) + Ukrainian Dvorak (Serhiy Boiko) + Removed plain Bulgarian, "bds" and phonetic are sufficient. + +Other new runtime files: + Esperanto menu and message translations. (Dominique Pelle) + Finnish menu and message translations. (Flammie Pirinen) + Brazilian Portuguese message translations. (Eduardo Dobay) + +Added floating point support. |Float| + +Added argument to mode() to return a bit more detail about the current mode. +(Ben Schmidt) + +Added support for BSD console mouse: |sysmouse|. (Paul B. Mahol) + +Added the "newtab" value for the 'switchbuf' option. (partly by Yegappan +Lakshmanan) + +Improved error messages for the netbeans interface. (Philippe Fremy) + +Added support for using xterm mouse codes for screen. (Micah Cowan) + +Added support for cross compiling: +Adjusted configure.in and added INSTALLcross.txt. (Marc Haisenko) Fixed +mistakes in configure.in after that. +Don't use /usr/local/include and /usr/local/lib in configure. (Philip +Prindeville) +For cross compiling the Cygwin version on Unix, change VIM.TLB to vim.tlb in +src/vim.rc. (Tsuneo Nakagawa) + +Added v:searchforward variable: What direction we're searching in. (Yakov +Lerner) + + +Fixed *fixed-7.2* +----- + +Patch 7.1.001 +Problem: Still can't build with Gnome libraries. +Solution: Fix typo in bind_textdomain_codeset. (Mike Kelly) +Files: src/gui_gtk.c, src/gui_gtk_x11.c + +Patch 7.1.002 +Problem: Oracle Pro*C/C++ files are not detected. +Solution: Add the missing star. (Micah J. Cowan) +Files: runtime/filetype.vim + +Patch 7.1.003 (extra) +Problem: The "Tear off this menu" message appears in the message history + when using a menu. (Yongwei Wu) +Solution: Disable message history when displaying the menu tip. +Files: src/gui_w32.c + +Patch 7.1.004 +Problem: Crash when doing ":next directory". (Raphael Finkel) +Solution: Do not use "buf", it may be invalid after autocommands. +Files: src/ex_cmds.c + +Patch 7.1.005 +Problem: "cit" used on <foo></foo> deletes <foo>. Should not delete + anything and start insertion, like "ci'" does on "". (Michal + Bozon) +Solution: Handle an empty object specifically. Made it work consistent for + various text objects. +Files: src/search.c + +Patch 7.1.006 +Problem: Resetting 'modified' in a StdinReadPost autocommand doesn't work. +Solution: Set 'modified' before the autocommands instead of after it. +Files: src/buffer.c + +Patch 7.1.007 (extra) +Problem: Mac: Context menu doesn't work on Intel Macs. + Scrollbars are not dimmed when Vim is not the active application. +Solution: Remove the test whether context menus are supported. They are + always there in OS/X. Handle the dimming. (Nicolas Weber) +Files: src/gui_mac.c, src/gui.h + +Patch 7.1.008 +Problem: getfsize() returns a negative number for very big files. +Solution: Check for overflow and return -2. +Files: runtime/doc/eval.txt, src/eval.c + +Patch 7.1.009 +Problem: In diff mode, displaying the difference between a tab and spaces + is not highlighted correctly. +Solution: Only change highlighting at the end of displaying a tab. +Files: src/screen.c + +Patch 7.1.010 +Problem: The Gnome session file doesn't restore tab pages. +Solution: Add SSOP_TABPAGES to the session flags. (Matias D'Ambrosio) +Files: src/gui_gtk_x11.c + +Patch 7.1.011 +Problem: Possible buffer overflow when $VIMRUNTIME is very long. (Victor + Stinner) +Solution: Use vim_snprintf(). +Files: src/main.c + +Patch 7.1.012 +Problem: ":let &shiftwidth = 'asdf'" doesn't produce an error message. +Solution: Check for a string argument. (Chris Lubinski) +Files: src/option.c + +Patch 7.1.013 +Problem: ":syn include" only loads the first file, while it is documented + as doing the equivalent of ":runtime!". +Solution: Change the argument to source_runtime(). (James Vega) +Files: src/syntax.c + +Patch 7.1.014 +Problem: Crash when doing C indenting. (Chris Monson) +Solution: Obtain the current line again after invoking cin_islabel(). +Files: src/edit.c + +Patch 7.1.015 +Problem: MzScheme interface: current-library-collection-paths produces no + list. Interface doesn't build on a Mac. +Solution: Use a list instead of a pair. (Bernhard Fisseni) Use "-framework" + argument for MZSCHEME_LIBS in configure. +Files: src/configure.in, src/if_mzsch.c, src/auto/configure + +Patch 7.1.016 (after patch 7.1.012) +Problem: Error message about setting 'diff' to a string. +Solution: Don't pass an empty string to set_option_value() when setting + 'diff'. +Files: src/quickfix.c, src/popupmnu.c + +Patch 7.1.017 +Problem: ":confirm w" does give a prompt when 'readonly' is set, but not + when the file permissions are read-only. (Michael Schaap) +Solution: Provide a dialog in both situations. (Chris Lubinski) +Files: src/ex_cmds.c, src/fileio.c, src/proto/fileio.pro + +Patch 7.1.018 +Problem: When 'virtualedit' is set a "p" of a block just past the end of + the line inserts before the cursor. (Engelke) +Solution: Check for the cursor being just after the line (Chris Lubinski) +Files: src/ops.c + +Patch 7.1.019 +Problem: ":py" asks for an argument, ":py asd" then gives the error that + ":py" isn't implemented. Should already happen for ":py". +Solution: Compare with ex_script_ni. (Chris Lubinski) +Files: src/ex_docmd.c + +Patch 7.1.020 +Problem: Reading from uninitialized memory when using a dialog. (Dominique + Pelle) +Solution: In msg_show_console_dialog() append a NUL after every appended + character. +Files: src/message.c + +Patch 7.1.021 (after 7.1.015) +Problem: Mzscheme interface doesn't compile on Win32. +Solution: Fix the problem that 7.1.015 fixed in a better way. (Sergey Khorev) +Files: src/if_mzsch.c + +Patch 7.1.022 +Problem: When setting 'keymap' twice the b:keymap_name variable isn't set. + (Milan Berta) +Solution: Don't unlet b:keymap_name for ":loadkeymap". (Martin Toft) +Files: src/digraph.c + +Patch 7.1.023 +Problem: "dw" in a line with one character deletes the line. Vi and nvi + don't do this. (Kjell Arne Rekaa) +Solution: Check for one-character words especially. +Files: src/search.c + +Patch 7.1.024 +Problem: Using a pointer that has become invalid. (Chris Monson) +Solution: Obtain the line pointer again after we looked at another line. +Files: src/search.c + +Patch 7.1.025 +Problem: search() and searchpos() don't use match under cursor at start of + line when using 'bc' flags. (Viktor Kojouharov) +Solution: Don't go to the previous line when the 'c' flag is present. + Also fix that "j" doesn't move the cursor to the right column. +Files: src/eval.c, src/search.c + +Patch 7.1.026 +Problem: "[p" doesn't work in Visual mode. (David Brown) +Solution: Use checkclearop() instead of checkclearopq(). +Files: src/normal.c + +Patch 7.1.027 +Problem: On Sun systems opening /dev/fd/N doesn't work, and they are used + by process substitutions. +Solution: Allow opening specific character special files for Sun systems. + (Gary Johnson) +Files: src/fileio.c, src/os_unix.h + +Patch 7.1.028 +Problem: Can't use last search pattern for ":sort". (Brian McKee) +Solution: When the pattern is empty use the last search pattern. (Martin + Toft) +Files: runtime/doc/change.txt, src/ex_cmds.c + +Patch 7.1.029 (after 7.1.019) +Problem: Can't compile when all interfaces are used. (Taylor Venable) +Solution: Only check for ex_script_ni when it's defined. +Files: src/ex_docmd.c + +Patch 7.1.030 +Problem: The "vimtutor" shell script checks for "vim6" but not for "vim7". + (Christian Robinson) +Solution: Check for more versions, but prefer using "vim". +Files: src/vimtutor + +Patch 7.1.031 +Problem: virtcol([123, '$']) doesn't work. (Michael Schaap) +Solution: When '$' is used for the column number get the last column. +Files: runtime/doc/eval.txt, src/eval.c + +Patch 7.1.032 +Problem: Potential crash when editing a command line. (Chris Monson) +Solution: Check the position to avoid access before the start of an array. +Files: src/ex_getln.c + +Patch 7.1.033 +Problem: A buffer is marked modified when it was first deleted and then + added again using a ":next" command. (John Mullin) +Solution: When checking if a buffer is modified use the BF_NEVERLOADED flag. +Files: src/option.c + +Patch 7.1.034 +Problem: Win64: A few compiler warnings. Problems with optimizer. +Solution: Use int instead of size_t. Disable the optimizer in one function. + (George V. Reilly) +Files: src/eval.c, src/spell.c + +Patch 7.1.035 +Problem: After ":s/./&/#" all listed lines have a line number. (Yakov + Lerner) +Solution: Reset the line number flag when not using the "&" flag. +Files: src/ex_cmds.c + +Patch 7.1.036 +Problem: Completing ":echohl" argument should include "None". (Ori + Avtalion) ":match" should have "none" too. +Solution: Add flags to use expand_highlight(). Also fix that when disabling + FEAT_CMDL_COMPL compilation fails. (Chris Lubinski) +Files: src/eval.c, src/ex_docmd.c, src/ex_getln.c, src/proto/syntax.pro + src/syntax.c + +Patch 7.1.037 +Problem: strcpy() used for overlapping strings. (Chris Monson) +Solution: Use mch_memmove() instead. +Files: src/option.c + +Patch 7.1.038 +Problem: When 'expandtab' is set then a Tab copied for 'copyindent' is + expanded to spaces, even when 'preserveindent' is set. (Alexei + Alexandrov) +Solution: Remove the check for 'expandtab'. Also fix that ">>" doesn't obey + 'preserveindent'. (Chris Lubinski) +Files: src/misc1.c + +Patch 7.1.039 +Problem: A tag in a help file that starts with "help-tags" and contains a + percent sign may make Vim crash. (Ulf Harnhammar) +Solution: Use puts() instead of fprintf(). +Files: src/ex_cmds.c + +Patch 7.1.040 +Problem: ":match" only supports three matches. +Solution: Add functions clearmatches(), getmatches(), matchadd(), + matchdelete() and setmatches(). Changed the data structures for + this. A small bug in syntax.c is fixed, so newly created + highlight groups can have their name resolved correctly from their + ID. (Martin Toft) +Files: runtime/doc/eval.txt, runtime/doc/pattern.txt, + runtime/doc/usr_41.txt, src/eval.c, src/ex_docmd.c, + src/proto/window.pro, src/screen.c, src/structs.h, src/syntax.c, + src/testdir/Makefile, src/testdir/test63.in, + src/testdir/test63.ok, src/window.c + +Patch 7.1.041 (extra, after 7.1.040) +Problem: Some changes for patch 7.1.040 are in extra files. +Solution: Update the extra files. +Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, + src/testdir/Make_os2.mak, src/testdir/Make_vms.mms + +Patch 7.1.042 (after 7.1.040) +Problem: Internal error when using matchadd(). (David Larson) +Solution: Check the third argument to be present before using the fourth + argument. (Martin Toft) +Files: src/eval.c + +Patch 7.1.043 +Problem: In Ex mode using CTRL-D twice may cause a crash. Cursor isn't + positioned properly after CTRL-D. +Solution: Set prev_char properly. Position the cursor correctly. (Antony + Scriven) +Files: src/ex_getln.c + +Patch 7.1.044 +Problem: In Insert mode 0 CTRL-T deletes all indent, it should add indent. + (Gautam Iyer) +Solution: Check for CTRL-D typed. +Files: src/edit.c + +Patch 7.1.045 +Problem: Unnecessary screen redrawing. (Jjgod Jiang) +Solution: Reset "must_redraw" after clearing the screen. +Files: src/screen.c + +Patch 7.1.046 +Problem: ":s" command removes combining characters. (Ron Aaron) +Solution: Copy composing characters individually. (Chris Lubinski) +Files: src/regexp.c + +Patch 7.1.047 +Problem: vim_regcomp() called with invalid argument. (Xiaozhou Liu) +Solution: Change TRUE to RE_MAGIC + RE_STRING. +Files: src/ex_eval.c + +Patch 7.1.048 +Problem: The matchparen plugin doesn't update the match when scrolling with + the mouse wheel. (Ilya Bobir) +Solution: Set the match highlighting for text that can be scrolled into the + viewable area without moving the cursor. (Chris Lubinski) +Files: runtime/plugin/matchparen.vim + +Patch 7.1.049 +Problem: Cannot compile GTK2 version with Hangul input feature. +Solution: Don't define FEAT_XFONTSET when using GTK2. +Files: src/feature.h + +Patch 7.1.050 +Problem: Possible crash when using C++ indenting. (Chris Monson) +Solution: Keep the line pointer to the line to compare with. Avoid going + past the end of line. +Files: src/misc1.c + +Patch 7.1.051 +Problem: Accessing uninitialized memory when finding spell suggestions. +Solution: Don't try swapping characters at the end of a word. +Files: src/spell.c + +Patch 7.1.052 +Problem: When creating a new match not all fields are initialized, which + may lead to unpredictable results. +Solution: Initialise rmm_ic and rmm_maxcol. +Files: src/window.c + +Patch 7.1.053 +Problem: Accessing uninitialized memory when giving a message. +Solution: Check going the length before checking for a NUL byte. +Files: src/message.c + +Patch 7.1.054 +Problem: Accessing uninitialized memory when displaying the fold column. +Solution: Add a NUL to the extra array. (Dominique Pelle). Also do this in + a couple of other situations. +Files: src/screen.c + +Patch 7.1.055 +Problem: Using strcpy() with arguments that overlap. +Solution: Use mch_memmove() instead. +Files: src/buffer.c, src/charset.c, src/eval.c, src/ex_getln.c, + src/misc1.c, src/regexp.c, src/termlib.c + +Patch 7.1.056 +Problem: More prompt does not behave correctly after scrolling back. + (Randall W. Morris) +Solution: Avoid lines_left becomes negative. (Chris Lubinski) Don't check + mp_last when deciding to show the more prompt. (Martin Toft) +Files: src/message.c + +Patch 7.1.057 +Problem: Problem with CursorHoldI when using "r" in Visual mode (Max + Dyckhoff) +Solution: Ignore CursorHold(I) when getting a second character for a Normal + mode command. Also abort the "r" command in Visual when a special + key is typed. +Files: src/normal.c + +Patch 7.1.058 +Problem: When 'rightleft' is set the completion menu is positioned wrong. + (Baha-Eddine MOKADEM) +Solution: Fix the completion menu. (Martin Toft) +Files: src/popupmnu.c, src/proto/search.pro, src/search.c + +Patch 7.1.059 +Problem: When in Ex mode and doing "g/^/vi" and then pressing CTRL-C Vim + hangs and beeps. (Antony Scriven) +Solution: Clear "got_int" in the main loop to avoid the hang. When typing + CTRL-C twice in a row abort the ":g" command. This is Vi + compatible. +Files: src/main.c + +Patch 7.1.060 +Problem: Splitting quickfix window messes up window layout. (Marius + Gedminas) +Solution: Compute the window size in a smarter way. (Martin Toft) +Files: src/window.c + +Patch 7.1.061 +Problem: Win32: When 'encoding' is "latin1" 'ignorecase' doesn't work for + characters with umlaut. (Joachim Hofmann) +Solution: Do not use islower()/isupper()/tolower()/toupper() but our own + functions. (Chris Lubinski) +Files: src/mbyte.c, src/regexp.c, src/vim.h + +Patch 7.1.062 (after 7.1.038) +Problem: Indents of C comments can be wrong. (John Mullin) +Solution: Adjust ind_len. (Chris Lubinski) +Files: src/misc1.c + +Patch 7.1.063 (after 7.1.040) +Problem: Warning for uninitialized variable. +Solution: Initialise it to NULL. +Files: src/ex_docmd.c + +Patch 7.1.064 +Problem: On Interix some files appear not to exist. +Solution: Remove the top bit from st_mode. (Ligesh) +Files: src/os_unix.c + +Patch 7.1.065 (extra) +Problem: Win32: Compilation problem for newer version of w32api. +Solution: Only define __IID_DEFINED__ when needed. (Chris Sutcliffe) +Files: src/Make_ming.mak, src/iid_ole.c + +Patch 7.1.066 +Problem: When 'bomb' is set or reset the file should be considered + modified. (Tony Mechelynck) +Solution: Handle like 'endofline'. (Martin Toft) +Files: src/buffer.c, src/fileio.c, src/option.c, src/structs.h + +Patch 7.1.067 +Problem: 'thesaurus' doesn't work when 'infercase' is set. (Mohsin) +Solution: Don't copy the characters being completed but check the case and + apply it to the suggested word. Also fix that the first word in + the thesaurus line is not used. (Martin Toft) +Files: src/edit.c + +Patch 7.1.068 +Problem: When 'equalalways' is set and splitting a window, it's possible + that another small window gets bigger. +Solution: Only equalize window sizes when after a split the windows are + smaller than another window. (Martin Toft) +Files: runtime/doc/options.txt, runtime/doc/windows.txt, src/window.c + +Patch 7.1.069 +Problem: GTK GUI: When using confirm() without a default button there still + is a default choice. +Solution: Ignore Enter and Space when there is no default button. (Chris + Lubinski) +Files: src/gui_gtk.c + +Patch 7.1.070 (extra) +Problem: Win32 GUI: When using confirm() without a default button there + still is a default choice. +Solution: Set focus on something else than a button. (Chris Lubinski) +Files: src/gui_w32.c + +Patch 7.1.071 (after 7.1.040) +Problem: Regexp patterns are not tested. +Solution: Add a basic test, to be expanded later. + Also add (commented-out) support for valgrind. +Files: src/testdir/Makefile, src/testdir/test64.in, src/testdir/test64.ok + +Patch 7.1.072 (extra, after 7.1.041 and 7.1.071) +Problem: Some changes for patch 7.1.071 are in extra files. +Solution: Update the extra files. Also fix a few warnings from the DOS test + makefile. +Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, + src/testdir/Make_os2.mak, src/testdir/Make_vms.mms + +Patch 7.1.073 (after 7.1.062) +Problem: Wrong cursor position and crash when 'preserveindent' is set. + (Charles Campbell) +Solution: Handle the situation that we start without indent. (Chris + Lubinski) +Files: src/misc1.c + +Patch 7.1.074 +Problem: Crash when calling string() on a recursively nested List. +Solution: Check result value for being NULL. (Yukihiro Nakadaira) +Files: src/eval.c + +Patch 7.1.075 +Problem: ":let v:statusmsg" reads memory already freed. +Solution: Don't set v:statusmsg when listing it. +Files: src/eval.c + +Patch 7.1.076 +Problem: Another strcpy() with overlapping arguments. +Solution: Use mch_memmove(). (Dominique Pelle) And another one. +Files: src/ex_docmd.c, src/normal.c + +Patch 7.1.077 +Problem: Using "can_spell" without initializing it. (Dominique Pelle) +Solution: Set a default for get_syntax_attr(). +Files: src/syntax.c + +Patch 7.1.078 +Problem: Dropping a file name on gvim that contains a CSI byte doesn't work + when editing the command line. +Solution: Escape the CSI byte when inserting in the input buffer. (Yukihiro + Nakadaira) +Files: src/gui.c, src/ui.c + +Patch 7.1.079 +Problem: When the locale is "C" and 'encoding' is "latin1" then the "@" + character in 'isfname', 'isprint', etc. doesn't pick up accented + characters. +Solution: Instead of isalpha() use MB_ISLOWER() and MB_ISUPPER(). +Files: src/charset.c, src/macros.h + +Patch 7.1.080 (extra) +Problem: Compiler warnings for using "const char *" for "char *". +Solution: Add type casts. (Chris Sutcliffe) +Files: src/GvimExt/gvimext.cpp + +Patch 7.1.081 +Problem: Command line completion for a shell command: "cat </tmp/file<Tab>" + doesn't work. +Solution: Start the file name at any character that can't be in a file name. + (Martin Toft) +Files: src/ex_docmd.c + +Patch 7.1.082 +Problem: After a ":split" the matchparen highlighting isn't there. +Solution: Install a WinEnter autocommand. Also fixes that after + ":NoMatchParen" only the current window is updated. (Martin Toft) +Files: runtime/doc/pi_paren.txt, runtime/plugin/matchparen.vim + +Patch 7.1.083 (after 7.1.081) +Problem: Command line completion doesn't work with wildcards. +Solution: Add vim_isfilec_or_wc() and use it. (Martin Toft) +Files: src/charset.c, src/proto/charset.pro, src/ex_docmd.c + +Patch 7.1.084 +Problem: Using the "-nb" argument twice causes netbeans not to get + fileOpened events. +Solution: Change "&" to "&&". (Xavier de Gaye) +Files: src/ex_cmds.c + +Patch 7.1.085 +Problem: ":e fold.c" then ":sp fold.c" results in folds of original window + to disappear. (Akita Noek) +Solution: Invoke foldUpdateAll() for all windows of the changed buffer. + (Martin Toft) +Files: src/ex_cmds.c + +Patch 7.1.086 +Problem: Crash when using specific Python syntax highlighting. (Quirk) +Solution: Check for a negative index, coming from a keyword match at the + start of a line from a saved state. +Files: src/syntax.c + +Patch 7.1.087 +Problem: Reading past ":cscope find" command. Writing past end of a buffer. +Solution: Check length of the argument before using the pattern. Use + vim_strncpy(). (Dominique Pelle) +Files: if_cscope.c + +Patch 7.1.088 (extra) +Problem: The coordinates used by ":winpos" differ from what getwinposx() + and getwinposy() return. +Solution: Use MoveWindowStructure() instead of MoveWindow(). (Michael Henry) +Files: src/gui_mac.c + +Patch 7.1.089 +Problem: ":let loaded_getscriptPlugin" doesn't clear to eol, result is + "#1in". +Solution: Clear to the end of the screen after displaying the first variable + value. +Files: src/eval.c + +Patch 7.1.090 +Problem: Compiler warning on Mac OS X 10.5. +Solution: Don't redeclare sigaltstack(). (Hisashi T Fujinaka) +Files: src/os_unix.c + +Patch 7.1.091 (extra) +Problem: Win32: Can't embed Vim inside another application. +Solution: Add the --windowid argument. (Nageshwar) +Files: runtime/doc/gui_w32.txt, runtime/doc/starting.txt, + runtime/doc/vi_diff.txt, src/globals.h, src/gui_w32.c, src/main.c + +Patch 7.1.092 (extra, after 7.1.088) +Problem: Wrong arguments for MoveWindowStructure(). +Solution: Remove "TRUE". (Michael Henry) +Files: src/gui_mac.c + +Patch 7.1.093 +Problem: Reading past end of a screen line when determining cell width. + (Dominique Pelle) +Solution: Add an argument to mb_off2cells() for the maximum offset. +Files: src/globals.h, src/gui.c, src/mbyte.c, src/proto/mbyte.pro, + src/screen.c + +Patch 7.1.094 +Problem: When checking if syntax highlighting is present, looking in the + current buffer instead of the specified one. +Solution: Use "buf" instead of "curbuf". +Files: src/syntax.c + +Patch 7.1.095 +Problem: The FocusLost and FocusGained autocommands are triggered + asynchronously in the GUI. This may cause arbitrary problems. +Solution: Put the focus event in the input buffer and handle it when ready + for it. +Files: src/eval.c, src/getchar.c, src/gui.c, src/gui_gtk_x11.c, + src/keymap.h + +Patch 7.1.096 +Problem: Reading past end of a string when resizing Vim. (Dominique Pelle) +Solution: Check the string pointer before getting the char it points to. +Files: src/message.c + +Patch 7.1.097 +Problem: ":setlocal stl=%!1+1" does not work. +Solution: Adjust check for pointer. (Politz) +Files: src/option.c + +Patch 7.1.098 +Problem: ":call s:var()" doesn't work if "s:var" is a Funcref. (Andy Wokula) +Solution: Before converting "s:" into a script ID, check if it is a Funcref. +Files: src/eval.c + +Patch 7.1.099 +Problem: When the 'keymap' and 'paste' options have a non-default value, + ":mkexrc" and ":mksession" do not correctly set the options. +Solution: Set the options with side effects before other options. +Files: src/option.c + +Patch 7.1.100 +Problem: Win32: Executing cscope doesn't always work properly. +Solution: Use another way to invoke cscope. (Mike Williams) +Files: src/if_cscope.c, src/if_cscope.h, src/main.c, + src/proto/if_cscope.pro + +Patch 7.1.101 +Problem: Ruby: The Buffer.line= method does not work. +Solution: Add the "self" argument to set_current_line(). (Jonathan Hankins) +Files: src/if_ruby.c + +Patch 7.1.102 +Problem: Perl interface doesn't compile with new version of Perl. +Solution: Add two variables to the dynamic library loading. (Suresh + Govindachar) +Files: src/if_perl.xs + +Patch 7.1.103 +Problem: Using "dw" with the cursor past the end of the last line (using + CTRL-\ CTRL-O from Insert mode) deletes a character. (Tim Chase) +Solution: Don't move the cursor back when the movement failed. +Files: src/normal.c + +Patch 7.1.104 (after 7.1.095) +Problem: When 'lazyredraw' is set a focus event causes redraw to be + postponed until a key is pressed. +Solution: Instead of not returning from vgetc() when a focus event is + encountered return K_IGNORE. Add plain_vgetc() for when the + caller doesn't want to get K_IGNORE. +Files: src/digraph.c, src/edit.c, src/ex_cmds.c, src/ex_getln.c, + src/getchar.c, src/normal.c, src/proto/getchar.pro, src/window.c + +Patch 7.1.105 +Problem: Internal error when using "0 ? {'a': 1} : {}". (A.Politz) +Solution: When parsing a dictionary value without using the value, don't try + obtaining the key name. +Files: src/eval.c + +Patch 7.1.106 +Problem: ":messages" doesn't quit listing on ":". +Solution: Break the loop when "got_int" is set. +Files: src/message.c + +Patch 7.1.107 +Problem: When doing a block selection and using "s" to change the text, + while triggering auto-indenting, causes the wrong text to be + repeated in other lines. (Adri Verhoef) +Solution: Compute the change of indent and compensate for that. +Files: src/ops.c + +Patch 7.1.108 (after 7.1.100) +Problem: Win32: Compilation problems in Cscope code. (Jeff Lanzarotta) +Solution: Use (long) instead of (intptr_t) when it's not defined. +Files: src/if_cscope.c + +Patch 7.1.109 +Problem: GTK: when there are many tab pages, clicking on the arrow left of + the labels moves to the next tab page on the right. (Simeon Bird) +Solution: Check the X coordinate of the click and pass -1 as value for the + left arrow. +Files: src/gui_gtk_x11.c, src/term.c + +Patch 7.1.110 (after 7.1.102) +Problem: Win32: Still compilation problems with Perl. +Solution: Change the #ifdefs. (Suresh Govindachar) +Files: src/if_perl.xs + +Patch 7.1.111 +Problem: When using ":vimgrep" with the "j" flag folds from another buffer + may be displayed. (A.Politz) +Solution: When not jumping to another buffer update the folds. +Files: src/quickfix.c + +Patch 7.1.112 +Problem: Using input() with a wrong argument may crash Vim. (A.Politz) +Solution: Init the input() return value to NULL. +Files: src/eval.c + +Patch 7.1.113 +Problem: Using map() to go over an empty list causes memory to be freed + twice. (A.Politz) +Solution: Don't clear the typeval in restore_vimvar(). +Files: src/eval.c + +Patch 7.1.114 +Problem: Memory leak in getmatches(). +Solution: Don't increment the refcount twice. +Files: src/eval.c + +Patch 7.1.115 (after 7.1.105) +Problem: Compiler warning for uninitialized variable. (Tony Mechelynck) +Solution: Init variable to NULL. +Files: src/eval.c + +Patch 7.1.116 +Problem: Cannot display Unicode characters above 0x10000. +Solution: Remove the replacement with a question mark when UNICODE16 is not + defined. (partly by Nicolas Weber) +Files: src/screen.c + +Patch 7.1.117 +Problem: Can't check whether Vim was compiled with Gnome. (Tony Mechelynck) +Solution: Add gui_gnome to the has() list. +Files: src/eval.c + +Patch 7.1.118 (after 7.1.107) +Problem: Compiler warning for Visual C compiler. +Solution: Add typecast. (Mike Williams) +Files: src/ops.c + +Patch 7.1.119 +Problem: Crash when 'cmdheight' set to very large value. (A.Politz) +Solution: Limit 'cmdheight' to 'lines' minus one. Store right value of + 'cmdheight' when running out of room. +Files: src/option.c, src/window.c + +Patch 7.1.120 +Problem: Can't properly check memory leaks while running tests. +Solution: Add an argument to garbagecollect(). Delete functions and + variables in the test scripts. +Files: runtime/doc/eval.txt src/eval.c, src/globals.h, src/main.c, + src/testdir/Makefile, src/testdir/test14.in, + src/testdir/test26.in, src/testdir/test34.in, + src/testdir/test45.in, src/testdir/test47.in, + src/testdir/test49.in, src/testdir/test55.in, + src/testdir/test56.in, src/testdir/test58.in, + src/testdir/test59.in, src/testdir/test60.in, + src/testdir/test60.vim, src/testdir/test62.in, + src/testdir/test63.in, src/testdir/test64.in, + +Patch 7.1.121 +Problem: Using ":cd %:h" when editing a file in the current directory + results in an error message for using an empty string. +Solution: When "%:h" results in an empty string use ".". +Files: src/eval.c + +Patch 7.1.122 +Problem: Mac: building Vim.app fails. Using wrong architecture. +Solution: Use line continuation for the gui_bundle dependency. Detect the + system architecture with "uname -a". +Files: src/main.aap + +Patch 7.1.123 +Problem: Win32: ":edit foo ~ foo" expands "~". +Solution: Change the call to expand_env(). +Files: src/ex_docmd.c, src/misc1.c, src/proto/misc1.pro, src/option.c + +Patch 7.1.124 (extra) +Problem: Mac: When dropping a file on Vim.app that is already in the buffer + list (from .viminfo) results in editing an empty, unnamed buffer. + (Axel Kielhorn) Also: warning for unused variable. +Solution: Move to the buffer of the first argument. Delete unused variable. +Files: src/gui_mac.c + +Patch 7.1.125 +Problem: The TermResponse autocommand event is not always triggered. (Aron + Griffis) +Solution: When unblocking autocommands check if v:termresponse changed and + trigger the event then. +Files: src/buffer.c, src/diff.c, src/ex_getln.c, src/fileio.c, + src/globals.h, src/misc2.c, src/proto/fileio.pro, src/window.c + +Patch 7.1.126 (extra) +Problem: ":vimgrep */*" fails when a BufRead autocommand changes directory. + (Bernhard Kuhn) +Solution: Change back to the original directory after loading a file. + Also: use shorten_fname1() to avoid duplicating code. +Files: src/buffer.c, src/ex_docmd.c, src/fileio.c, src/gui_gtk.c, + src/gui_w48.c, src/proto/ex_docmd.pro, src/proto/fileio.pro, + src/quickfix.c + +Patch 7.1.127 +Problem: Memory leak when doing cmdline completion. (Dominique Pelle) +Solution: Free "orig" argument of ExpandOne() when it's not used. +Files: src/ex_getln.c + +Patch 7.1.128 (extra) +Problem: Build problems with new version of Cygwin. +Solution: Remove -D__IID_DEFINED__, like with MingW. (Guopeng Wen) +Files: src/Make_cyg.mak + +Patch 7.1.129 (extra) +Problem: Win32: Can't get the user name when it is longer than 15 + characters. +Solution: Use UNLEN instead of MAX_COMPUTERNAME_LENGTH. (Alexei Alexandrov) +Files: src/os_win32.c + +Patch 7.1.130 +Problem: Crash with specific order of undo and redo. (A.Politz) +Solution: Clear and adjust pointers properly. Add u_check() for debugging. +Files: src/undo.c, src/structs.h + +Patch 7.1.131 +Problem: ":mksession" always adds ":setlocal autoread". (Christian J. + Robinson) +Solution: Skip boolean global/local option using global value. +Files: src/option.c + +Patch 7.1.132 +Problem: getpos("'>") may return a negative column number for a Linewise + selection. (A.Politz) +Solution: Don't add one to MAXCOL. +Files: src/eval.c + +Patch 7.1.133 (after 7.1.126) +Problem: shorten_fname1() linked when it's not needed. +Solution: Add #ifdef. +Files: src/fileio.c + +Patch 7.1.134 (extra) +Problem: Win32: Can't build with VC8 +Solution: Detect the MSVC version instead of using NMAKE_VER. + (Mike Williams) +Files: src/Make_mvc.mak + +Patch 7.1.135 +Problem: Win32: When editing a file c:\tmp\foo and c:\tmp\\foo we have two + buffers for the same file. (Suresh Govindachar) +Solution: Invoke FullName_save() when a path contains "//" or "\\". +Files: src/buffer.c + +Patch 7.1.136 +Problem: Memory leak when using Ruby syntax highlighting. (Dominique Pelle) +Solution: Free the contained-in list. +Files: src/syntax.c + +Patch 7.1.137 +Problem: Build failure when using EXITFREE. (Dominique Pelle) +Solution: Add an #ifdef around using clip_exclude_prog. +Files: src/misc2.c + +Patch 7.1.138 +Problem: The Perl Msg() function doesn't stop when "q" is typed at the more + prompt. (Hari Krishna Dara) +Solution: Check got_int. +Files: src/if_perl.xs + +Patch 7.1.139 +Problem: When using marker folding and ending Insert mode with CTRL-C the + current fold is truncated. (Fred Kater) +Solution: Ignore got_int while updating folds. +Files: src/fold.c + +Patch 7.1.140 +Problem: v:count is set only after typing a non-digit, that makes it + difficult to make a nice mapping. +Solution: Set v:count while still typing the count. +Files: src/normal.c + +Patch 7.1.141 +Problem: GTK: -geom argument doesn't support a negative offset. +Solution: Compute position from the right/lower corner. +Files: src/gui_gtk_x11.c + +Patch 7.1.142 +Problem: ":redir @A>" doesn't work. +Solution: Ignore the extra ">" also when appending. (James Vega) +Files: src/ex_docmd.c + +Patch 7.1.143 +Problem: Uninitialized memory read when diffing three files. (Dominique + Pelle) +Solution: Remove "+ !notset" so that we don't use fields that were not + computed. +Files: src/diff.c + +Patch 7.1.144 +Problem: After ":diffup" cursor can be in the wrong position. +Solution: Force recomputing the cursor position. +Files: src/diff.c + +Patch 7.1.145 +Problem: Insert mode completion: When using the popup menu, after + completing a word and typing a non-word character Vim is still + completing the same word, following CTRL-N doesn't work. + Insert mode Completion: When using CTRL-X O and there is only + "struct." before the cursor, typing one char to reduce the + matches, then BS completion stops. +Solution: When typing a character that is not part of the item being + completed, stop complete mode. For whole line completion also + accept a space. For file name completion stop at a path + separator. + For omni completion stay in completion mode even if completing + with empty string. +Files: src/edit.c + +Patch 7.1.146 (extra) +Problem: VMS: Files with a very rare record organization (VFC) cannot be + properly written by Vim. + On older VAX systems mms runs into a syntax error. +Solution: Check for this special situation. Do not wrap a comment, make it + one long line. (Zoltan Arpadffy) +Files: src/fileio.c, src/Make_vms.mms + +Patch 7.1.147 (after 7.1.127) +Problem: Freeing memory already freed when completing user name. (Meino + Cramer) +Solution: Use a flag to remember if "orig" needs to be freed. +Files: src/ex_getln.c + +Patch 7.1.148 +Problem: Some types are not found by configure. +Solution: Test for the sys/types.h header file. (Sean Boudreau) +Files: src/configure.in, src/auto/configure + +Patch 7.1.149 +Problem: GTK GUI: When the completion popup menu is used scrolling another + window by the scrollbar is OK, but using the scroll wheel it + behaves line <Enter>. +Solution: Ignore K_MOUSEDOWN and K_MOUSEUP. Fix redrawing the popup menu. +Files: src/edit.c, src/gui.c + +Patch 7.1.150 +Problem: When 'clipboard' has "unnamed" using "p" in Visual mode doesn't + work correctly. (Jianrong Yu) +Solution: When 'clipboard' has "unnamed" also obtain the selection when + getting the default register. +Files: src/ops.c + +Patch 7.1.151 +Problem: Using whole line completion with 'ignorecase' and 'infercase' set + and the line is empty get an lalloc(0) error. +Solution: Don't try changing case for an empty match. (Matthew Wozniski) +Files: src/edit.c + +Patch 7.1.152 +Problem: Display problem when 'hls' and 'cursorcolumn' are set and + searching for "$". (John Mullin) Also when scrolling + horizontally when 'wrap' is off. +Solution: Keep track of the column where highlighting was set. Check the + column offset when skipping characters. +Files: src/screen.c + +Patch 7.1.153 +Problem: Compiler warnings on SGI. Undefined XpmAllocColor (Charles + Campbell) +Solution: Add type casts. Init st_dev and st_ino separately. Don't use + type casts for vim_snprintf() when HAVE_STDARG_H is defined. + Define XpmAllocColor when needed. +Files: src/eval.c, src/ex_cmds.c, src/fileio.c, src/misc2.c, + src/gui_xmebw.c + +Patch 7.1.154 +Problem: Compiler warning for signed/unsigned compare. +Solution: Add type cast. +Files: src/screen.c + +Patch 7.1.155 +Problem: Crash when 'undolevels' is 0 and repeating "udd". (James Vega) +Solution: When there is only one branch use u_freeheader() to delete it. +Files: src/undo.c + +Patch 7.1.156 +Problem: Overlapping arguments for strcpy() when expanding command line + variables. +Solution: Use mch_memmove() instead of STRCPY(). Also fix a few typos. + (Dominique Pelle) +Files: src/ex_docmd.c + +Patch 7.1.157 +Problem: In Ex mode, :" gives an error at end-of-file. (Michael Hordijk) +Solution: Only give an error for an empty line, not for a comment. +Files: src/ex_docmd.c + +Patch 7.1.158 (extra) +Problem: Win32 console: When 'encoding' is "utf-8" and typing Alt-y the + result is wrong. Win32 GUI: Alt-y results in "u" when 'encoding' + is "cp1250" (Lukas Cerman) +Solution: For utf-8 don't set the 7th bit in a byte, convert to the correct + byte sequence. For cp1250, when conversion to 'encoding' results + in the 7th bit not set, set the 7th bit after conversion. +Files: src/os_win32.c, src/gui_w48.c + +Patch 7.1.159 +Problem: strcpy() has overlapping arguments. +Solution: Use mch_memmove() instead. (Dominique Pelle) +Files: src/ex_cmds.c + +Patch 7.1.160 +Problem: When a focus autocommand is defined, getting or losing focus + causes the hit-enter prompt to be redrawn. (Bjorn Winckler) +Solution: Overwrite the last line. +Files: src/message.c + +Patch 7.1.161 +Problem: Compilation errors with tiny features and EXITFREE. +Solution: Add #ifdefs. (Dominique Pelle) +Files: src/edit.c, src/misc2.c + +Patch 7.1.162 +Problem: Crash when using a modifier before "while" or "for". (A.Politz) +Solution: Skip modifiers when checking for a loop command. +Files: src/proto/ex_docmd.pro, src/ex_docmd.c, src/ex_eval.c + +Patch 7.1.163 +Problem: Warning for the unknown option 'bufsecret'. +Solution: Remove the lines .vim that use this option. (Andy Wokula) +Files: runtime/menu.vim + +Patch 7.1.164 +Problem: Reading past end of regexp pattern. (Dominique Pelle) +Solution: Use utf_ptr2len(). +Files: src/regexp.c + +Patch 7.1.165 +Problem: Crash related to getting X window ID. (Dominique Pelle) +Solution: Don't trust the window ID that we got in the past, check it every + time. +Files: src/os_unix.c + +Patch 7.1.166 +Problem: Memory leak for using "gp" in Visual mode. +Solution: Free memory in put_register(). (Dominique Pelle) +Files: src/ops.c + +Patch 7.1.167 +Problem: Xxd crashes when using "xxd -b -c 110". (Debian bug 452789) +Solution: Allocate more memory. Fix check for maximum number of columns. +Files: src/xxd/xxd.c + +Patch 7.1.168 (extra) +Problem: Win32 GUI: Since patch 7.1.095, when the Vim window does not have + focus, clicking in it doesn't position the cursor. (Juergen + Kraemer) +Solution: Don't reset s_button_pending just after receiving focus. +Files: src/gui_w48.c + +Patch 7.1.169 +Problem: Using uninitialized variable when system() fails. (Dominique + Pelle) +Solution: Let system() return an empty string when it fails. +Files: src/eval.c + +Patch 7.1.170 +Problem: Valgrind warning for overlapping arguments for strcpy(). +Solution: Use mch_memmove() instead. (Dominique Pelle) +Files: src/getchar.c + +Patch 7.1.171 +Problem: Reading one byte before allocated memory. +Solution: Check index not to become negative. (Dominique Pelle) +Files: src/ex_getln.c + +Patch 7.1.172 +Problem: When 'buftype' is "acwrite" Vim still checks if the file or + directory exists before overwriting. +Solution: Don't check for overwriting when the buffer name is not a file + name. +Files: src/ex_cmds.c + +Patch 7.1.173 +Problem: Accessing freed memory. (Dominique Pelle) +Solution: Don't call reg_getline() to check if a line is the first in the + file. +Files: src/regexp.c + +Patch 7.1.174 +Problem: Writing NUL past end of a buffer. +Solution: Copy one byte less when using strncat(). (Dominique Pelle) +Files: src/ex_cmds.c, src/ex_docmd.c, + +Patch 7.1.175 +Problem: <BS> doesn't work with some combination of 'sts', 'linebreak' and + 'backspace'. (Francois Ingelrest) +Solution: When adding white space results in not moving back delete one + character. +Files: src/edit.c + +Patch 7.1.176 +Problem: Building with Aap fails when the "compiledby" argument contains + '<' or '>' characters. (Alex Yeh) +Solution: Change how quoting is done in the Aap recipe. +Files: src/main.aap + +Patch 7.1.177 +Problem: Freeing memory twice when in debug mode while reading a script. +Solution: Ignore script input while in debug mode. +Files: src/ex_cmds2.c, src/getchar.c, src/globals.h + +Patch 7.1.178 +Problem: "%" doesn't work on "/* comment *//* comment */". +Solution: Don't handle the "//" in "*//*" as a C++ comment. (Markus + Heidelberg) +Files: src/search.c + +Patch 7.1.179 +Problem: Need to check for TCL 8.5. +Solution: Adjust configure script. (Alexey Froloff) +Files: src/configure.in, src/auto/configure + +Patch 7.1.180 +Problem: Regexp patterns not tested sufficiently. +Solution: Add more checks to the regexp test. +Files: src/testdir/test64.in, src/testdir/test64.ok + +Patch 7.1.181 +Problem: Accessing uninitialized memory in Farsi mode. (Dominique Pelle) +Solution: Only invoke lrF_sub() when there is something to do. +Files: src/ex_cmds.c + +Patch 7.1.182 +Problem: When using tab pages and an argument list the session file may + contain wrong "next" commands. (Alexander Bluem) +Solution: Use "argu" commands and only when needed. +Files: src/ex_docmd.c + +Patch 7.1.183 +Problem: "Internal error" for ":echo matchstr('a', 'a\%[\&]')" (Mitanu + Paul) +Solution: Inside "\%[]" detect \&, \| and \) as an error. +Files: src/regexp.c + +Patch 7.1.184 +Problem: Crash when deleting backwards over a line break in Insert mode. +Solution: Don't advance the cursor when it's already on the NUL after a + line. (Matthew Wozniski) +Files: src/normal.c + +Patch 7.1.185 +Problem: Using "gR" with a multibyte encoding and typing a CR pushes + characters onto the replace stack incorrectly, resulting in BS + putting back the wrong characters. (Paul B. Mahol) +Solution: Push multibyte characters onto the replace stack in reverse byte + order. Add replace_push_mb(). +Files: src/edit.c, src/misc1.c, src/proto/edit.pro + +Patch 7.1.186 +Problem: "expand('<afile>')" returns a bogus value after changing + directory. (Dave Fishburn) +Solution: Copy "autocmd_fname" to allocated memory and expand to full + filename. Shorten the path when expanding <afile>. +Files: src/ex_docmd.c, src/fileio.c + +Patch 7.1.187 +Problem: Win32 GUI: Custom completion using system() no longer works + after patch 7.1.104. (Erik Falor) +Solution: Loop when safe_vgetc() returns K_IGNORE. +Files: src/ex_getln.c + +Patch 7.1.188 +Problem: When 'showmode' is off the message for changing a readonly file is + given in the second column instead of the first. (Payl B. Mahol) +Solution: Put the W10 message in the first column. +Files: src/edit.c + +Patch 7.1.189 (after 7.1.104) +Problem: Patch 7.1.104 was incomplete. +Solution: Also call plain_vgetc() in ask_yesno(). +Files: src/misc1.c + +Patch 7.1.190 +Problem: Cursor after end-of-line: "iA sentence.<Esc>)" +Solution: Move cursor back and make motion inclusive. +Files: src/normal.c + +Patch 7.1.191 +Problem: Win32 GUI: after patch 7.1.168 there is still a problem when + clicking in a scrollbar. (Juergen Jottkaerr) +Solution: Don't check the input buffer when dragging the scrollbar. +Files: src/gui.c + +Patch 7.1.192 +Problem: With Visual block selection, "s" and typing something, CTRL-C + doesn't stop Vim from repeating the replacement in other lines, + like happens for "I". +Solution: Check for "got_int" to be set. +Files: src/ops.c + +Patch 7.1.193 +Problem: Some Vim 5.x digraphs are missing in Vim 7, even though the + character pairs are not used. (Philippe de Muyter) +Solution: Add those Vim 5.x digraphs that don't conflict with others. +Files: src/digraph.c + +Patch 7.1.194 +Problem: ":echo glob('~/{}')" results in /home/user//. +Solution: Don't add a slash if there already is one. +Files: src/os_unix.c + +Patch 7.1.195 +Problem: '0 mark doesn't work for "~/foo ~ foo". +Solution: Don't expand the whole file name, only "~/". +Files: src/mark.c + +Patch 7.1.196 (extra) +Problem: Win32 GUI: "\n" in a tooltip doesn't cause a line break. (Erik + Falor) +Solution: Use the TTM_SETMAXTIPWIDTH message. +Files: src/gui_w32.c + +Patch 7.1.197 +Problem: Mac: "make install" doesn't work when prefix defined. +Solution: Pass different arguments to "make installruntime". (Jjgod Jiang) +Files: src/Makefile + +Patch 7.1.198 +Problem: Hang when using ":s/\n//gn". (Burak Gorkemli) +Solution: Set "skip_match". +Files: src/ex_cmds.c + +Patch 7.1.199 +Problem: Can't do command line completion for a specific file name + extension. +Solution: When the pattern ends in "$" don't add a star for completion and + remove the "$" before matching with file names. +Files: runtime/doc/cmdline.txt, src/ex_getln.c + +Patch 7.1.200 (after 7.1.177 and 7.1.182) +Problem: Compiler warnings for uninitialized variables. +Solution: Init variables. +Files: src/ex_cmds2.c, src/ex_docmd.c + +Patch 7.1.201 +Problem: When reading stdin 'fenc' and 'ff' are not set. +Solution: Set the options after reading stdin. (Ben Schmidt) +Files: src/fileio.c + +Patch 7.1.202 +Problem: Incomplete utf-8 byte sequence is not checked for validity. +Solution: Check the bytes that are present for being valid. (Ben Schmidt) +Files: src/mbyte.c + +Patch 7.1.203 +Problem: When 'virtualedit' is "onemore" then "99|" works but ":normal 99|" + doesn't. (Andy Wokula) +Solution: Check for "onemore" flag in check_cursor_col(). +Files: src/misc2.c + +Patch 7.1.204 (extra) +Problem: Win32: Using the example at 'balloonexpr' the balloon disappears + after four seconds and then comes back again. Also moves the + mouse pointer a little bit. (Yongwei Wu) +Solution: Set the autopop time to 30 seconds (the max value). (Sergey + Khorev) Move the mouse two pixels forward and one back to end up + in the same position (really!). +Files: src/gui_w32.c + +Patch 7.1.205 +Problem: Can't get the operator in an ":omap". +Solution: Add the "v:operator" variable. (Ben Schmidt) +Files: runtime/doc/eval.txt, src/eval.c, src/normal.c, src/vim.h + +Patch 7.1.206 +Problem: Compiler warnings when using MODIFIED_BY. +Solution: Add type casts. (Ben Schmidt) +Files: src/version.c + +Patch 7.1.207 +Problem: Netbeans: "remove" cannot delete one line. +Solution: Remove partial lines and whole lines properly. Avoid a memory + leak. (Xavier de Gaye) +Files: src/netbeans.c + +Patch 7.1.208 +Problem: On Alpha get an unaligned access error. +Solution: Store the dictitem pointer before using it. (Matthew Luckie) +Files: src/eval.c + +Patch 7.1.209 +Problem: GTK: When using the netrw plugin and doing ":gui" Vim hangs. +Solution: Stop getting a selection after three seconds. This is a hack. +Files: src/gui_gtk_x11.c + +Patch 7.1.210 +Problem: Listing mapping for 0xdb fails when 'encoding' is utf-8. (Tony + Mechelynck) +Solution: Recognize K_SPECIAL KS_EXTRA KE_CSI as a CSI byte. +Files: src/mbyte.c + +Patch 7.1.211 +Problem: The matchparen plugin may take an unexpected amount of time, so + that it looks like Vim hangs. +Solution: Add a timeout to searchpair(), searchpairpos(), search() and + searchpos(). Use half a second timeout in the plugin. +Files: runtime/doc/eval.txt, runtime/plugin/matchparen.vim, src/edit.c, + src/eval.c, src/ex_cmds2.c, src/ex_docmd.c, src/normal.c, + src/proto/eval.pro, src/proto/ex_cmds2.pro, src/proto/search.pro, + src/search.c + +Patch 7.1.212 +Problem: Accessing a byte before a line. +Solution: Check that the column is 1 or more. (Dominique Pelle) +Files: src/edit.c + +Patch 7.1.213 +Problem: A ":tabedit" command that results in the "swap file exists" dialog + and selecting "abort" doesn't close the new tab. (Al Budden) +Solution: Pass "old_curwin" to do_exedit(). +Files: src/ex_docmd.c + +Patch 7.1.214 +Problem: ":1s/g\n\zs1//" deletes characters from the first line. (A Politz) +Solution: Start replacing in the line where the match starts. +Files: src/ex_cmds.c + +Patch 7.1.215 +Problem: It is difficult to figure out what syntax items are nested at a + certain position. +Solution: Add the synstack() function. +Files: runtime/doc/eval.txt, src/eval.c, src/proto/syntax.pro, + src/syntax.c + +Patch 7.1.216 +Problem: Variants of --remote-tab are not mentioned for "vim --help". +Solution: Display optional -wait and -silent. +Files: src/main.c + +Patch 7.1.217 +Problem: The "help-tags" tag may be missing from runtime/doc/tags when it + was generated during "make install". +Solution: Add the "++t" argument to ":helptags" to force adding the tag. +Files: runtime/doc/Makefile, runtime/doc/various.txt, src/ex_cmds.c, + src/ex_cmds.h + +Patch 7.1.218 +Problem: A syntax region without a "keepend", containing a region with + "extend" could be truncated at the end of the containing region. +Solution: Do not call syn_update_ends() when there are no keepend items. +Files: src/syntax.c + +Patch 7.1.219 (after 7.1.215) +Problem: synstack() returns situation after the current character, can't + see the state for a one-character region. +Solution: Don't update ending states in the requested column. +Files: runtime/doc/eval.txt, src/eval.c, src/hardcopy.c, + src/proto/syntax.pro, src/screen.c, src/spell.c, src/syntax.c + +Patch 7.1.220 +Problem: When a ")" or word movement command moves the cursor back from the + end of the line it may end up on the trail byte of a multibyte + character. It's also moved back when it isn't needed. +Solution: Add the adjust_cursor() function. +Files: src/normal.c + +Patch 7.1.221 +Problem: When inserting a "(", triggering the matchparen plugin, the + following highlighting may be messed up. +Solution: Before triggering the CursorMovedI autocommands update the display + to update the stored syntax stacks for the change. +Files: src/edit.c + +Patch 7.1.222 (after 7.1.217) +Problem: Wildcards in argument of ":helptags" are not expanded. (Marcel + Svitalsky) +Solution: Expand wildcards in the directory name. +Files: src/ex_cmds.c + +Patch 7.1.223 +Problem: glob() doesn't work properly when 'shell' is "sh" or "bash" and + the expanded name contains spaces, '~', single quotes and other + special characters. (Adri Verhoef, Charles Campbell) +Solution: For Posix shells define a vimglob() function to list the matches + instead of using "echo" directly. +Files: src/os_unix.c + +Patch 7.1.224 +Problem: When using "vim -F -o file1 file2" only one window is + right-to-left. Same for "-H". (Ben Schmidt) +Solution: use set_option_value() to set 'rightleft'. +Files: src/main.c + +Patch 7.1.225 +Problem: Using uninitialized value when XGetWMNormalHints() fails. +Solution: Check the return value. (Dominique Pelle) +Files: src/os_unix.c + +Patch 7.1.226 +Problem: Command line completion doesn't work when a file name contains a + '&' character. +Solution: Accept all characters in a file name, except ones that end a + command or white space. +Files: src/ex_docmd.c + +Patch 7.1.227 +Problem: Hang in syntax HL when moving over a ")". (Dominique Pelle) +Solution: Avoid storing a syntax state in the wrong position in the list of + remembered states. +Files: src/syntax.c + +Patch 7.1.228 +Problem: When 'foldmethod' is "indent" and a fold is created with ">>" it + can't be closed with "zc". (Daniel Shahaf) +Solution: Reset the "small" flag of a fold when adding a line to it. +Files: src/fold.c + +Patch 7.1.229 +Problem: A fold is closed when it shouldn't when 'foldmethod' is "indent" + and backspacing a non-white character so that the indent increases. +Solution: Keep the fold open after backspacing a character. +Files: src/edit.c + +Patch 7.1.230 +Problem: Memory leak when executing SourceCmd autocommands. +Solution: Free the memory. (Dominique Pelle) +Files: src/ex_cmds2.c + +Patch 7.1.231 +Problem: When shifting lines the change is acted upon multiple times. +Solution: Don't have shift_line() call changed_bytes. +Files: src/edit.c, src/ops.c, src/proto/edit.pro, src/proto/ops.pro + +Patch 7.1.232 (after 7.1.207 and 7.1.211) +Problem: Compiler warnings with MSVC. +Solution: Add type casts. (Mike Williams) +Files: src/ex_cmds2.c, src/netbeans.c + +Patch 7.1.233 +Problem: Crash when doing Insert mode completion for a user defined + command. (Yegappan Lakshmanan) +Solution: Don't use the non-existing command line. +Files: src/ex_getln.c + +Patch 7.1.234 +Problem: When diff'ing three files the third one isn't displayed correctly. + (Gary Johnson) +Solution: Compute the size of diff blocks correctly when merging blocks. + Compute filler lines correctly when scrolling. +Files: src/diff.c + +Patch 7.1.235 +Problem: Pattern matching is slow when using a lot of simple patterns. +Solution: Avoid allocating memory by not freeing it when it's not so much. + (Alexei Alexandrov) +Files: src/regexp.c + +Patch 7.1.236 +Problem: When using 'incsearch' and 'hlsearch' a complicated pattern may + make Vim hang until CTRL-C is pressed. +Solution: Add the 'redrawtime' option. +Files: runtime/doc/options.txt, src/ex_cmds.c, src/ex_docmd.c, + src/ex_getln.c, src/gui.c, src/misc1.c, src/normal.c, + src/option.c, src/quickfix.c, src/regexp.c, src/proto/regexp.pro, + src/proto/search.pro, src/search.c, src/screen.c, + src/option.h, src/spell.c, src/structs.h, src/syntax.c, src/tag.c, + src/vim.h + +Patch 7.1.237 +Problem: Compiler warning on an Alpha processor in Motif code. +Solution: Change a typecast. (Adri Verhoef) +Files: src/gui_motif.c + +Patch 7.1.238 +Problem: Using the 'c' flag with searchpair() may cause it to fail. Using + the 'r' flag doesn't work when 'wrapscan' is set. (A.Politz) +Solution: Only use the 'c' flag for the first search, not for repeating. + When using 'r' imply 'W'. (Antony Scriven) +Files: src/eval.c + +Patch 7.1.239 (after 7.1.233) +Problem: Compiler warning for sprintf() argument. +Solution: Add a typecast. (Nico Weber) +Files: src/ex_getln.c + +Patch 7.1.240 +Problem: When "gUe" turns a German sharp s into SS the operation stops + before the end of the word. Latin2 has the same sharp s but it's + not changed to SS there. +Solution: Make sure all the characters are operated upon. Detect the sharp + s in latin2. Also fixes that changing case of a multibyte + character that changes the byte count doesn't always work. +Files: src/ops.c + +Patch 7.1.241 +Problem: Focus change events not always ignored. (Erik Falor) +Solution: Ignore K_IGNORE in Insert mode in a few more places. +Files: src/edit.c + +Patch 7.1.242 (after 7.1.005) +Problem: "cib" doesn't work properly on "(x)". (Tim Pope) +Solution: Use ltoreq() instead of lt(). Also fix "ciT" on "<a>x</a>". +Files: src/search.c + +Patch 7.1.243 (after 7.1.240) +Problem: "U" doesn't work on all text in Visual mode. (Adri Verhoef) +Solution: Loop over all the lines to be changed. Add tests for this. +Files: src/ops.c, src/testdir/test39.in, src/testdir/test39.ok + +Patch 7.1.244 +Problem: GUI may have part of the command line cut off. +Solution: Don't round the number of lines up, always round down. + (Tony Houghton, Scott Dillard) +Files: src/gui.c + +Patch 7.1.245 +Problem: Pressing CTRL-\ three times causes Vim to quit. (Ranganath Rao). + Also for f CTRL-\ CTRL-\. +Solution: When going to cooked mode in mch_delay() set a flag to ignore + SIGQUIT. +Files: src/os_unix.c + +Patch 7.1.246 +Problem: Configure hangs when the man pager is something strange. (lorien) +Solution: Set MANPAGER and PAGER to "cat". (Micah Cowan) +Files: src/auto/configure, src/configure.in + +Patch 7.1.247 +Problem: When using Netbeans backspacing in Insert mode skips a character + now and then. (Ankit Jain) +Solution: Avoid calling netbeans_removed(), it frees the line pointer. + (partly by Dominique Pelle). +Files: src/misc1.c + +Patch 7.1.248 +Problem: Can't set the '" mark. Can't know if setpos() was successful. +Solution: Allow setting the '" mark with setpos(). Have setpos() return a + value indicating success/failure. +Files: runtime/doc/eval.txt, src/eval.c, src/mark.c + +Patch 7.1.249 +Problem: After "U" the cursor can be past end of line. (Adri Verhoef) +Solution: Adjust the cursor position in u_undoline(). +Files: src/undo.c + +Patch 7.1.250 +Problem: ":setglobal fenc=anything" gives an error message in a buffer + where 'modifiable' is off. (Ben Schmidt) +Solution: Don't give an error if 'modifiable' doesn't matter. +Files: src/option.c + +Patch 7.1.251 +Problem: Using freed memory when spell checking enabled. +Solution: Obtain the current line again after calling spell_move_to(). + (Dominique Pelle) +Files: src/screen.c + +Patch 7.1.252 (after 7.1.243) +Problem: Test 39 fails when the environment has a utf-8 locale. (Dominique + Pelle) +Solution: Force 'encoding' to be latin1. +Files: src/testdir/test39.in + +Patch 7.1.253 +Problem: ":sort" doesn't work in a one line file. (Patrick Texier) +Solution: Don't sort if there is only one line. (Dominique Pelle) +Files: src/ex_cmds.c + +Patch 7.1.254 +Problem: Tests 49 and 55 fail when the locale is French. +Solution: Using C messages for test 49. Filter the error message in test 55 + such that it works when the number is halfway the message. +Files: src/testdir/test49.in, src/testdir/test55.in + +Patch 7.1.255 +Problem: Vim doesn't support utf-32. (Yongwei Wu) +Solution: Add aliases for utf-32, it's the same as ucs-4. +Files: src/mbyte.c + +Patch 7.1.256 +Problem: findfile() also returns directories. +Solution: Cleanup the code for finding files and directories in a list of + directories. Remove the ugly global ff_search_ctx. +Files: src/eval.c, src/misc2.c, src/vim.h, src/tag.c + +Patch 7.1.257 +Problem: Configure can't always find the Tcl header files. +Solution: Also look in /usr/local/include/tcl$tclver and + /usr/include/tcl$tclver (James Vega) +Files: src/auto/configure, src/configure.in + +Patch 7.1.258 +Problem: Crash when doing "d/\n/e" and 'virtualedit' is "all". (Andy Wokula) +Solution: Avoid that the column becomes negative. Also fixes other problems + with the end of a pattern match is in column zero. (A.Politz) +Files: src/search.c + +Patch 7.1.259 +Problem: Cursor is in the wrong position when 'rightleft' is set, + 'encoding' is "utf-8" and on an illegal byte. (Dominique Pelle) +Solution: Only put the cursor in the first column when actually on a + double-wide character. (Yukihiro Nakadaira) +Files: src/screen.c + +Patch 7.1.260 +Problem: Cursor positioning problem after ^@ wrapping halfway when + 'encoding' is utf-8. +Solution: Only count a position for printable characters. (partly by + Yukihiro Nakadaira) +Files: src/charset.c + +Patch 7.1.261 +Problem: When a 2 byte BOM is detected Vim uses UCS-2, which doesn't work + for UTF-16 text. (Tony Mechelynck) +Solution: Default to UTF-16. +Files: src/fileio.c, src/testdir/test42.ok + +Patch 7.1.262 +Problem: Can't get the process ID of Vim. +Solution: Implement getpid(). +Files: src/eval.c, runtime/doc/eval.txt + +Patch 7.1.263 +Problem: The filetype can consist of two dot separated names. This works + for syntax and ftplugin, but not for indent. (Brett Stahlman) +Solution: Use split() and loop over each dot separated name. +Files: runtime/indent.vim + +Patch 7.1.264 +Problem: Crash when indenting lines. (Dominique Pelle) +Solution: Set the cursor column when changing the cursor line. +Files: src/ops.c, src/misc1.c + +Patch 7.1.265 +Problem: When 'isfname' contains a space, cmdline completion can hang. + (James Vega) +Solution: Reset the "len" variable. +Files: src/ex_docmd.c + +Patch 7.1.266 +Problem: When the version string returned by the terminal contains + unexpected characters, it is used as typed input. (James Vega) +Solution: Assume the escape sequence ends in a letter. +Files: src/term.c + +Patch 7.1.267 +Problem: When changing folds cursor may be positioned in the wrong place. +Solution: Call changed_window_setting_win() instead of + changed_window_setting(). +Files: src/fold.c + +Patch 7.1.268 +Problem: Always shows "+" at end of screen line with: ":set + listchars=eol:$,extends:+ nowrap list cursorline" (Gary Johnson) +Solution: Check for lcs_eol_one instead of lcs_eol. +Files: src/screen.c + +Patch 7.1.269 +Problem: The matchparen plugin has an arbitrary limit for the number of + lines to look for a match. +Solution: Rely on the searchpair() timeout. +Files: runtime/plugin/matchparen.vim + +Patch 7.1.270 +Problem: ":?foo?" matches in current line since patch 7.1.025. (A.Politz) +Solution: Remove the SEARCH_START flag. +Files: src/ex_docmd.c, src/search.c + +Patch 7.1.271 +Problem: In a Vim build without autocommands, checking a file that was + changed externally causes the current buffer to be changed + unexpectedly. (Karsten Hopp) +Solution: Store "curbuf" instead of "buf". +Files: src/fileio.c + +Patch 7.1.272 +Problem: The special buffer name [Location List] is not used for a buffer + displayed in another tab page. +Solution: Use FOR_ALL_TAB_WINDOWS instead of FOR_ALL_WINDOWS. (Hiroaki + Nishihara) +Files: src/buffer.c + +Patch 7.1.273 +Problem: When profiling on Linux Vim exits early. (Liu Yubao) +Solution: When profiling don't exit on SIGPROF. +Files: src/Makefile, src/os_unix.c + +Patch 7.1.274 (after 7.1.272) +Problem: Compiler warning for optimized build. +Solution: Init win to NULL. +Files: src/buffer.c + +Patch 7.1.275 (extra) +Problem: Mac: ATSUI and 'antialias' don't work properly together. +Solution: Fix this and the input method. (Jjgod Jiang) +Files: src/vim.h, src/gui_mac.c + +Patch 7.1.276 +Problem: "gw" uses 'formatexpr', even though the docs say it doesn't. +Solution: Don't use 'formatexpr' for "gw". +Files: src/vim.h, src/edit.c, src/ops.c, src/proto/ops.pro + +Patch 7.1.277 +Problem: Default for 'paragraphs' misses some items (Colin Watson) +Solution: Add TP, HP, Pp, Lp and It to 'paragraphs'. (James Vega) +Files: runtime/doc/options.txt, src/option.c + +Patch 7.1.278 (extra, after 7.1.275) +Problem: Build failure when USE_CARBONKEYHANDLER is not defined. +Solution: Remove #ifdef. +Files: src/gui_mac.c + +Patch 7.1.279 +Problem: When using cscope temporary files are left behind. +Solution: Send the quit command to cscope and give it two seconds to exit + nicely before killing it. (partly by Dominique Pelle) +Files: src/if_cscope.c + +Patch 7.1.280 (after 7.1.275) +Problem: Mac: build problems when not using multibyte feature. (Nicholas + Stallard) +Solution: Don't define USE_IM_CONTROL when not using multibyte. +Files: src/vim.h + +Patch 7.1.281 (after 7.1.279) +Problem: sa.sa_mask is not initialized. Cscope may not exit. +Solution: Use sigemptyset(). Use SIGKILL instead of SIGTERM. (Dominique + Pelle) +Files: src/if_cscope.c + +Patch 7.1.282 (extra) +Problem: Win64: Edit with Vim context menu isn't installed correctly. + Compiler warnings and a few other things. +Solution: Add [ and ] to entry of class name. Use UINT_PTR instead of UINT. + And fixes for other things. (George V. Reilly) +Files: src/GvimExt/Makefile, src/dosinst.c, src/if_ole.cpp, src/if_ole.h, + src/if_ole.idl, src/INSTALLpc.txt, src/Make_mvc.mak, + src/os_win32.c, + +Patch 7.1.283 +Problem: Non-extra part for 7.1.282. +Solution: Various changes. +Files: src/ex_docmd.c, src/globals.h, src/if_cscope.c, src/main.c, + src/mark.c, src/netbeans.c, src/popupmnu.c, src/vim.h, + src/window.c + +Patch 7.1.284 +Problem: Compiler warnings for functions without prototype. +Solution: Add the function prototypes. (Patrick Texier) +Files: src/eval.c, src/quickfix.c + +Patch 7.1.285 (extra) +Problem: Mac: dialog hotkeys don't work. +Solution: Add hotkey support. (Dan Sandler) +Files: src/gui_mac.c + +Patch 7.1.286 (after 7.1.103) +Problem: "w" at the end of the buffer moves the cursor past the end of the + line. (Markus Heidelberg) +Solution: Move the cursor back from the NUL when it was moved forward. +Files: src/normal.c + +Patch 7.1.287 +Problem: Crash when reversing a list after using it. (Andy Wokula) +Solution: Update the pointer to the last used element. (Dominique Pelle) +Files: src/eval.c + +Patch 7.1.288 (after 7.1.281) +Problem: Cscope still leaves behind temp files when using gvim. +Solution: When getting the ECHILD error loop for a while until cscope exits. + (Dominique Pelle) +Files: if_cscope.c + +Patch 7.1.289 +Problem: When EXITFREE is defined and 'acd' is set freed memory is used. + (Dominique Pelle) +Solution: Reset p_acd before freeing all buffers. +Files: src/misc2.c + +Patch 7.1.290 +Problem: Reading bytes that were not written when spell checking and a line + has a very large indent. +Solution: Don't copy the start of the next line when it only contains + spaces. (Dominique Pelle) +Files: src/spell.c + +Patch 7.1.291 (after 7.1.288) +Problem: Compiler warning. +Solution: Change 50 to 50L. +Files: src/if_cscope.c + +Patch 7.1.292 +Problem: When using a pattern with "\@<=" the submatches can be wrong. + (Brett Stahlman) +Solution: Save the submatches when attempting a look-behind match. +Files: src/regexp.c + +Patch 7.1.293 +Problem: Spell checking considers super- and subscript characters as word + characters. +Solution: Recognize the Unicode super and subscript characters. +Files: src/spell.c + +Patch 7.1.294 +Problem: Leaking memory when executing a shell command. +Solution: Free memory when not able to save for undo. (Dominique Pelle) +Files: src/ex_cmds.c + +Patch 7.1.295 +Problem: Vimtutor only works with vim, not gvim. +Solution: Add the -g flag to vimtutor. (Dominique Pelle) Add gvimtutor. +Files: src/Makefile, src/gvimtutor, src/vimtutor, runtime/doc/vimtutor.1 + +Patch 7.1.296 +Problem: SELinux is not supported. +Solution: Detect the selinux library and use mch_copy_sec(). (James Vega) +Files: src/auto/configure, src/config.h.in, src/configure.in, + src/fileio.c, src/memfile.c, src/os_unix.c, src/proto/os_unix.pro + +Patch 7.1.297 +Problem: When using the search/replace dialog the parenmatch highlighting + can be wrong. (Tim Duncan) +Solution: In the GUI redraw function invoke the CursorMoved autocmd. +Files: src/gui.c + +Patch 7.1.298 (after 7.1.295) +Problem: src/gvimtutor is not distributed. +Solution: Add it to the list of distributed files. +Files: Filelist + +Patch 7.1.299 +Problem: Filetype detection doesn't work properly for file names ending in + a part that is ignored and contain a space or other special + characters. +Solution: Escape the special characters using the new fnameescape function. +Files: runtime/doc/eval.txt, runtime/filetype.vim, src/eval.c, + src/ex_getln.c, src/proto/ex_getln.pro, src/vim.h + +Patch 7.1.300 +Problem: Value of asmsyntax argument isn't checked for valid characters. +Solution: Only accepts letters and digits. +Files: runtime/filetype.vim + +Patch 7.1.301 +Problem: When the "File/Save" menu is used in Insert mode, a tab page label + is not updated to remove the "+". +Solution: Call draw_tabline() from showruler(). (Bjorn Winckler) +Files: src/screen.c + +Patch 7.1.302 (after 7.1.299) +Problem: Compilation error on MS-Windows. +Solution: Don't use xp_shell when it's not defined. +Files: src/ex_getln.c + +Patch 7.1.303 (after 7.1.302) +Problem: Compilation error on MS-Windows, again. +Solution: Declare p. +Files: src/ex_getln.c + +Patch 7.1.304 +Problem: Shortpath_for_invalid_fname() does not work correctly and is + unnecessary complex. +Solution: Clean up shortpath_for_invalid_fname(). (mostly by Yegappan + Lakshmanan) +Files: src/eval.c + +Patch 7.1.305 +Problem: Editing a compressed file with special characters in the name + doesn't work properly. +Solution: Escape special characters. +Files: runtime/autoload/gzip.vim + +Patch 7.1.306 +Problem: Some Unicode characters are handled like word characters while + they are symbols. +Solution: Adjust the table for Unicode classification. +Files: src/mbyte.c + +Patch 7.1.307 +Problem: Many warnings when compiling with Python 2.5. +Solution: Use ssize_t instead of int for some types. (James Vega) +Files: src/if_python.c + +Patch 7.1.308 +Problem: When in readonly mode ":options" produces an error. +Solution: Reset 'readonly'. (Gary Johnson) +Files: runtime/optwin.vim + +Patch 7.1.309 +Problem: Installing and testing with a shadow directory doesn't work. + (James Vega) +Solution: Add "po" to the list of directories to link. Also link the Vim + scripts in testdir. And a few more small fixes. +Files: src/Makefile + +Patch 7.1.310 +Problem: Incomplete utf-8 byte sequence at end of the file is not detected. + Accessing memory that wasn't written. +Solution: Check the last bytes in the buffer for being a valid utf-8 + character. (mostly by Ben Schmidt) + Also fix that the reported line number of the error was wrong. +Files: src/fileio.c + +Patch 7.1.311 +Problem: Compiler warning for missing sentinel in X code. +Solution: Change 0 to NULL. (Markus Heidelberg) +Files: src/mbyte.c + +Patch 7.1.312 +Problem: The .po files have mistakes in error numbers. +Solution: Search for these mistakes in the check script. (Dominique Pelle) +Files: src/po/check.vim + +Patch 7.1.313 +Problem: When the netbeans interface setModified call is used the status + lines and window title are not updated. +Solution: Redraw the status lines and title. (Philippe Fremy) +Files: src/netbeans.c + +Patch 7.1.314 +Problem: The value of 'pastetoggle' is written to the session file without + any escaping. (Randall Hansen) +Solution: Use put_escstr(). (Ben Schmidt) +Files: src/option.c + +Patch 7.1.315 +Problem: Crash with specific search pattern using look-behind match. + (Andreas Politz) +Solution: Also save the value of "need_clear_subexpr". +Files: src/regexp.c + +Patch 7.1.316 +Problem: When 'cscopetag' is set ":tag" gives an error message instead of + going to the next tag in the tag stack. +Solution: Don't call do_cstag() when there is no argument. (Mark Goldman) +Files: src/ex_docmd.c + +Patch 7.1.317 +Problem: Compiler warnings in Motif calls. +Solution: Change zero to NULL. (Dominique Pelle) +Files: src/gui_motif.c + +Patch 7.1.318 +Problem: Memory leak when closing xsmp connection. Crash on exit when + using Lesstif. +Solution: Don't close the X display to work around a Lesstif bug. Free + clientid. Also fix a leak for Motif and Athena. (Dominique Pelle) +Files: src/gui_x11.c, src/os_unix.c + +Patch 7.1.319 +Problem: When a register has an illegal utf-8 sequence, pasting it on the + command line causes an illegal memory access. +Solution: Use mb_cptr2char_adv(). (Dominique Pelle) +Files: src/ex_getln.c + +Patch 7.1.320 (extra) +Problem: Win64: Warnings while compiling Python interface. +Solution: Use PyInt in more places. Also update version message for the + console. (George Reilly) +Files: src/if_python.c, src/version.c + +Patch 7.1.321 (extra) +Problem: Win32 / Win64: Install file is outdated. +Solution: Update the text for recent compiler. (George Reilly) +Files: src/INSTALLpc.txt + +Patch 7.1.322 +Problem: Can't get start of Visual area in an <expr> mapping. +Solution: Add the 'v' argument to getpos(). +Files: runtime/doc/eval.txt, src/eval.c + +Patch 7.1.323 +Problem: Test 19 fails with some termcaps. (Dominique Pelle) +Solution: Set the t_kb and t_kD termcap values. +Files: src/testdir/test19.in, src/testdir/test38.in + +Patch 7.1.324 +Problem: File name path length on Unix is limited to 1024. +Solution: Use PATH_MAX when it's more than 1000. +Files: src/os_unix.h + +Patch 7.1.325 +Problem: When editing a command line that's longer than available space in + the window, the characters at the end are in reverse order. +Solution: Increment the insert position even when the command line doesn't + fit. (Ingo Karkat) +Files: src/ex_getln.c + +Patch 7.1.326 +Problem: ":s!from!to!" works, but ":smagic!from!to!" doesn't. It sees the + "!" as a flag to the command. Same for ":snomagic". (Johan Spetz) +Solution: When checking for a forced command also ignore ":smagic" and + ":snomagic". (Ian Kelling) +Files: src/ex_docmd.c + +Patch 7.1.327 +Problem: The GUI tutor is installed when there is no GUI version. +Solution: Only install gvimtutor when building a GUI version. +Files: src/Makefile + +Patch 7.1.328 +Problem: Crash when using Cygwin and non-posix path name in tags file. +Solution: Use separate buffer for posix path. (Ben Schmidt) +Files: src/os_unix.c + +Patch 7.1.329 +Problem: When the popup menu is removed a column of cells, the right half + of double-wide characters, may not be redrawn. +Solution: Check if the right half of a character needs to be redrawn. + (Yukihiro Nakadaira) +Files: src/screen.c + +Patch 7.1.330 +Problem: Reading uninitialized memory when using Del in replace mode. +Solution: Use utfc_ptr2len_len() instead of mb_ptr2len(). (Dominique Pelle) +Files: src/misc1.c + + +Warning for missing sentinel in gui_xmldlg.c. (Dominique Pelle) + +A search offset from the end of a match didn't work properly for multibyte +characters. (Yukihiro Nakadaira) + +When displaying the value of 'key' don't show "*****" when the value is empty. +(Ben Schmidt) + +Internal error when compiled with EXITFREE and using the nerd_tree plugin. +Set last_msg_hist to NULL when history becomes empty. Call +free_all_functions() after garbage collection. (Dominique Pelle) + +GTK with XIM: <S-Space> does not work. (Yukihiro Nakadaira) + +Some shells do not support "echo -n", which breaks glob(). Use "echo" instead +of "echo -n $1; echo". (Gary Johnson) + +"echo 22,44" printed "22" on top of the command, the error messages caused +the rest not to be cleared. Added the need_clr_eos flag. + +Netbeans events are handled while updating the screen, causing a crash. +Change the moment when events are handled. Rename nb_parse_messages() to +netbeans_parse_messages(). (Xavier de Gaye) + +Test 11 was broken after patch 7.1.186 on Win32 console. (Daniel Shahaf) +Use shellescape() on the file name. + +IM was turned off in im_preedit_end_cb() for no good reason. (Takuhiro +Nishioka) + +A corrupted spell file could cause Vim to use lots of memory. Better +detection for running into the end of the file. (idea from James Vega) + +Mac: Included a patch to make it build with GTK. Moved language init to +mac_lang_init() function. (Ben Schmidt) + +Problem with 'wildmenu' after ":lcd", up/down arrows don't work. (Erik Falor) + +Fix configure.in to avoid "implicitly declared" warnings when running +configure. + +Fixed a memory leak when redefining a keymap. (Dominique Pelle) + +Setting 'pastetoggle' to "jj" didn't work. + +'ic' and 'smartcase' don't work properly when using \%V in a search pattern. +(Kana Natsuno) + +Patch 7.2a.001 +Problem: On some systems X11/Xlib.h exists (from X11-dev package) but + X11/Intrinsic.h does not (in Xt-dev package). This breaks the + build. Also, on Solaris 9 sys/ptem.h isn't found. +Solution: Have configure only accept X11 when X11/Intrinsic.h exists. + Check for sys/ptem.h while including sys/stream.h. (Vladimir + Marek) +Files: src/auto/configure, src/configure.in + +Patch 7.2a.002 +Problem: getbufvar(N, "") gets the dictionary of the current buffer instead + of buffer N. +Solution: Set curbuf before calling find_var_in_ht(). (Kana Natsuno) +Files: src/eval.c + +Patch 7.2a.003 +Problem: Leaking memory when using ":file name" and using access control + lists. +Solution: Invoke mch_free_acl() in vim_rename(). (Dominique Pelle) +Files: src/fileio.c + +Patch 7.2a.004 +Problem: Some systems can't get spell files by ftp. +Solution: Use http when it looks like it's possible. (James Vega) +Files: runtime/autoload/spellfile.vim + +Patch 7.2a.005 +Problem: A few error messages use confusing names. Misspelling. +Solution: Change "dissallows" to "disallows". (Dominique Pelle) Change + "number" to "Number". +Files: src/eval.c, src/fileio.c + +Patch 7.2a.006 +Problem: Reading past NUL in a string. +Solution: Check for invalid utf-8 byte sequence. (Dominique Pelle) +Files: src/charset.c + +Patch 7.2a.007 +Problem: ":let v = 1.2.3" was OK in Vim 7.1, now it gives an error. +Solution: Don't look for a floating point number after the "." operator. +Files: src/eval.c + +Patch 7.2a.008 +Problem: printf("%g", 1) doesn't work. +Solution: Convert Number to Float when needed. +Files: src/message.c + +Patch 7.2a.009 +Problem: cygwin_conv_to_posix_path() does not specify buffer size. +Solution: Use new Cygwin function: cygwin_conv_path(). (Corinna Vinschen) +Files: src/main.c, src/os_unix.c + +Patch 7.2a.010 +Problem: When a file name has an illegal byte sequence Vim may read + uninitialised memory. +Solution: Don't use UTF_COMPOSINGLIKE() on an illegal byte. In + msg_outtrans_len_attr() use char2cells() instead of ptr2cells(). + In utf_ptr2char() don't check second byte when first byte is + illegal. (Dominique Pelle) +Files: src/mbyte.c, src/message.c + +Patch 7.2a.011 +Problem: The Edit/Startup Settings menu doesn't work. +Solution: Expand environment variables. (Ben Schmidt) +Files: runtime/menu.vim + +Patch 7.2a.012 +Problem: Compiler warnings for casting int to pointer. +Solution: Add cast to long in between. (Martin Toft) +Files: src/gui_gtk_x11.c + +Patch 7.2a.013 +Problem: shellescape() does not escape "%" and "#" characters. +Solution: Add find_cmdline_var() and use it when the second argument to + shellescape() is non-zero. +Files: runtime/doc/eval.txt, src/eval.c, src/ex_docmd.c, + src/proto/ex_docmd.pro, src/proto/misc2.pro, src/misc2.c + +Patch 7.2a.014 +Problem: Problem with % in message. +Solution: Put % in single quotes. +Files: src/eval.c + +Patch 7.2a.015 (after 7.2a.010) +Problem: Misaligned messages. +Solution: Compute length of unprintable chars correctly. +Files: src/message.c + +Patch 7.2a.016 +Problem: Using CTRL-W v in the quickfix window results in two quickfix + windows, which is not allowed. ":tab split" should be allowed to + open a new quickfix window in another tab. +Solution: For CTRL-W v instead of splitting the window open a new one. + When using ":tab" do allow splitting the quickfix window (was + already included in patch 7.2a.013). +Files: src/window.c + +Patch 7.2a.017 +Problem: ":doautoall" executes autocommands for all buffers instead of just + for loaded buffers. +Solution: Change "curbuf" to "buf". +Files: src/fileio.c + +Patch 7.2a.018 +Problem: Compiler warnings when compiling with Gnome. (Tony Mechelynck) +Solution: Add type casts. +Files: src/gui_gtk_x11.c + +Patch 7.2a.019 +Problem: ":let &g:tw = 44" sets the local option value. (Cyril Slobin) +Solution: Use get_varp_scope() instead of get_varp(). (Ian Kelling) +Files: src/option.c + +There is no way to avoid adding /usr/local/{include|lib} to the build +commands. Add the --with-local-dir argument to configure. (Michael +Haubenwallner) + +When using CTRL-D after ":help", the number of matches could be thousands. +Restrict to TAG_MANY to avoid this taking too long. (Ian Kelling) + +The popup menu could be placed at a weird location. Caused by w_wcol computed +by curs_columns(). (Dominique Pelle) + +Overlapping STRCPY() arguments when using %r item in 'errorformat'. Use +STRMOVE() instead. (Ralf Wildenhues) + +Mac: On Leopard gvim, when using the mouse wheel nothing would happen until +another event occurs, such as moving the mouse. Then the recorded scrolling +would take place all at once. (Eckehard Berns) + +Solution for cursor color not reflecting IM status for GTK 2. Add +preedit_is_active flag. (SungHyun Nam) + +filereadable() can hang on a FIFO on Linux. Use open() instead of fopen(), +with O_NONBLOCK. (suggested by Lars Kotthoff) + +Included patch to support Perl 5.10. (Yasuhiro Matsumoto) + +When files are dropped on gvim while the screen is being updated, ignore the +drop command to avoid freeing memory that is being used. + +In a terminal, when drawing the popup menu over double-wide characters, half +characters may not be cleared properly. (Yukihiro Nakadaira) + +The #ifdef for including "vimio.h" was inconsistent. In a few files it +depended on MSWIN, which isn't defined until later. + +Patch 7.2b.001 +Problem: Compilation problem: mb_fix_col() missing with multibyte feature + but without GUI or clipboard. +Solution: Remove #ifdef. +Files: src/mbyte.c + +Patch 7.2b.002 +Problem: Compiler warnings for signed/unsigned mismatch. +Solution: Add type casts. +Files: src/screen.c + +Patch 7.2b.003 +Problem: Still a compilation problem, check_col() and check_row() missing. +Solution: Add FEAT_MBYTE to the #if. +Files: src/ui.c + +Patch 7.2b.004 +Problem: Trying to free memory for a static string when using ":helpgrep". + (George Reilly) +Solution: Set 'cpo' to empty_option instead of an empty string. Also for + searchpair() and substitute(). +Files: src/quickfix.c, src/eval.c + +Patch 7.2b.005 +Problem: The special character "!" isn't handled properly in shellescape(). + (Jan Minar) +Solution: Escape "!" when using a "csh" like shell and with + shellescape(s, 1). Twice for both. Also escape <NL>. +Files: src/misc2.c + +Patch 7.2b.006 +Problem: Reading past end of string when reading info from tags line. +Solution: Break the loop when encountering a NUL. (Dominique Pelle) +Files: src/tag.c + +Patch 7.2b.007 +Problem: Part of a message cannot be translated. +Solution: Put _() around the message. +Files: src/search.c + +Patch 7.2b.008 +Problem: A few filetypes are not detected or not detected properly. +Solution: Add filetype detection patterns. (Nikolai Weibull) +Files: runtime/filetype.vim + +Patch 7.2b.009 +Problem: Reading past end of screen line. (Epicurus) +Solution: Avoid going past the value of Columns. +Files: src/screen.c + +Patch 7.2b.010 +Problem: ":mksession" doesn't work for ":map , foo", ":sunmap ,". (Ethan + Mallove) +Solution: Check for "nxo", "nso" and other strange mapping combinations. +Files: src/getchar.c + +Patch 7.2b.011 +Problem: Configure for TCL ends up with include file in compiler command. + (Richard Hogg) +Solution: Delete items from $TCL_DEFS that do not start with a dash. +Files: src/auto/configure, src/configure.in + +Patch 7.2b.012 +Problem: Build failure with +multi_byte but without +diff. +Solution: Add #ifdef. (Patrick Texier) +Files: src/main.c + +Patch 7.2b.013 +Problem: Build fails with tiny features and Perl. (Dominique Pelle) +Solution: Define missing functions. Also when compiling Python. +Files: src/if_perl.xs, src/if_python.c + +Patch 7.2b.014 +Problem: Configure uses an unsafe temp file to store commands. +Solution: Create the temp file in local directory. +Files: src/auto/configure, src/configure.in + +Patch 7.2b.015 +Problem: Build fails on Mac when using Aap. +Solution: Fix typo in configure script. +Files: src/auto/configure, src/configure.in + +Patch 7.2b.016 +Problem: Build fails with normal features but without +autocmd. +Solution: Fix #ifdefs. (Ian Kelling) +Files: src/eval.c, src/ex_cmds.c, src/quickfix.c, src/option.c, + src/ex_docmd.c + +Patch 7.2b.017 +Problem: "vim -O foo foo" results in only one window. (Zdenek Sekera) +Solution: Handle result of ATTENTION prompt properly. (Ian Kelling) +Files: src/main.c + +Patch 7.2b.018 +Problem: When doing command line completion on a file name for a csh-like + shell argument a '!' character isn't escaped properly. +Solution: Add another backslash. +Files: src/ex_getln.c, src/misc2.c, src/proto/misc2.pro, src/screen.c + +Patch 7.2b.019 (extra) +Problem: Win32: Various compiler warnings. +Solution: Use __w64 attribute. Comment-out unused parameters. Adjust a few + #ifdefs. (George Reilly) +Files: src/gui_w48.c, src/GvimExt/gvimext.cpp, src/Make_mvc.mak, + src/os_mswin.c, src/os_win32.c, src/vim.h + +Patch 7.2b.020 +Problem: ":sort n" doesn't handle negative numbers. (James Vega) +Solution: Include '-' in the number. +Files: src/charset.c, src/ex_cmds.c + +Patch 7.2b.021 +Problem: Reloading doesn't read the BOM correctly. (Steve Gardner) +Solution: Accept utf-8 BOM when specified file encoding is utf-8. +Files: src/fileio.c + +Patch 7.2b.022 +Problem: When using ":normal" while updating the status line the count of + an operator is lost. (Dominique Pelle) +Solution: Save and restore "opcount". +Files: src/ex_docmd.c, src/globals.h, src/normal.c + +Patch 7.2b.023 +Problem: Crash when using the result of synstack(0,0). (Matt Wozniski) +Solution: Check for v_list to be NULL in a few more places. +Files: src/eval.c + +Patch 7.2b.024 +Problem: Using ":gui" while the netrw plugin is active causes a delay in + updating the display. +Solution: Don't check for terminal codes when starting the GUI. +Files: src/term.c + +Patch 7.2b.025 +Problem: When the CursorHold event triggers a pending count is lost. + (Juergen Kraemer) +Solution: Save the counts and restore them. +Files: src/normal.c, src/structs.h + +Patch 7.2b.026 +Problem: The GTK 2 file chooser causes the ~/.recently-used.xbel file to be + written over and over again. This may cause a significant + slowdown. (Guido Berhoerster) +Solution: Don't use the GTK 2 file chooser. +Files: src/gui_gtk.c + +Patch 7.2b.027 +Problem: Memory leak for Python, Perl, etc. script command with end marker. +Solution: Free the memory of the end marker. (Andy Kittner) +Files: src/ex_getln.c + +Patch 7.2b.028 +Problem: Reading uninitialized memory when doing ":gui -f". (Dominique + Pelle) +Solution: Don't position the cursor when the screen size is invalid. +Files: src/gui.c + +Patch 7.2b.029 +Problem: ":help a" doesn't jump to "a" tag in docs. (Tony Mechelynck) +Solution: Get all tags and throw away more than TAG_MANY after sorting. + When there is no argument find matches for "help" to avoid a long + delay. +Files: src/ex_cmds.c, src/ex_getln.c + +Patch 7.2b.030 +Problem: When changing the value of t_Co from 8 to 16 the Visual + highlighting keeps both reverse and a background color. +Solution: Remove the attribute when setting the default highlight color. + (Markus Heidelberg) +Files: src/syntax.c + +Error when cancelling completion menu and auto-formatting. (fixed by Ian +Kelling) + +Patch 7.2c.001 +Problem: ":let x=[''] | let x += x" causes hang. (Matt Wozniski) +Solution: Only insert elements up to the original length of the List. +Files: runtime/doc/eval.txt, src/eval.c + +Patch 7.2c.002 +Problem: fnameescape() doesn't handle a leading '+' or '>'. (Jan Minar) +Solution: Escape a leading '+' and '>'. And a single '-'. +Files: runtime/doc/eval.txt, src/ex_getln.c + +Patch 7.2c.003 +Problem: Searching for "foo\%[bar]\+" gives a "Corrupted regexp program" + error. (Joachim Hofmann) +Solution: Mark the \%[] item as not being simple. +Files: src/regexp.c + +On Vista access to system directories is virtualized. (Michael Mutschler) +Adjusted the manifest file to avoid this. (George Reilly) + +Memory leak when using CTRL-C to cancel listing the jump list. (Dominique +Pelle) + +Mac: Could not build with Perl interface. + +============================================================================== +VERSION 7.3 *version-7.3* *version7.3* + +This section is about improvements made between version 7.2 and 7.3. + +This release has hundreds of bug fixes and there are a few new features. The +most notable new features are: + + +Persistent undo *new-persistent-undo* +--------------- + +Store undo information in a file. Can undo to before when the file was read, +also for unloaded buffers. See |undo-persistence| (partly by Jordan Lewis) + +Added the ":earlier 1f" and ":later 1f" commands. +Added file save counter to undo information. +Added the |undotree()| and |undofile()| functions. + +Also added the 'undoreload' option. This makes it possible to save the +current text when reloading the buffer, so that the reload can be undone. + + +More encryption *new-more-encryption* +--------------- + +Support for Blowfish encryption. Added the 'cryptmethod' option. +Mostly by Mohsin Ahmed. + +Also encrypt the text in the swap file and the undo file. + + +Conceal text *new-conceal* +------------ + +Added the |+conceal| feature. (Vince Negri) +This allows hiding stretches of text, based on syntax highlighting. +It also allows replacing a stretch of text by a character |:syn-cchar|. +The 'conceallevel' option specifies what happens with text matching a syntax +item that has the conceal attribute. +The 'concealcursor' option specifies what happens in the cursor line. + +The help files conceal characters used to mark tags and examples. + +Added the |synconcealed()| function and use it for :TOhtml. (Benjamin Fritz) + +Added the 'cursorbind' option, keeps the cursor in two windows with the same +text in sync. + + +Lua interface *new-lua* +------------- + +Added the |Lua| interface. (Luis Carvalho) + + +Python3 interface *new-python3* +----------------- + +Added the Python3 interface. It exists next to Python 2.x, both can be used +at the same time. See |python3| (Roland Puntaier) + + +Changed *changed-7.3* +------- + +The MS-Windows installer no longer requires the user to type anything in the +console windows. The installer now also works on 64 bit systems, including +the "Edit with Vim" context menu. +The gvim executable is 32 bits, the installed gvimext.dll is either a 32 or 64 +bit version. (mostly by George Reilly) +Made the DOS installer work with more compilers. +The MS-Windows big gvim is now built with Python 2.7 and 3.1.2, Perl 5.12 and +Ruby 1.9.1. You need the matching .dll files to use them. + +The extra and language files are no longer distributed separately. +The source files for all systems are included in one distribution. + +After using ":recover" or recovering a file in another way, ":x" and "ZZ" +didn't save what you see. This could result in work being lost. Now the text +after recovery is compared to the original file contents. When they differ +the buffer is marked as modified. + +When Vim is exiting because of a deadly signal, when v:dying is 2 or more, +VimLeavePre, VimLeave, BufWinLeave and BufUnload autocommands are not +executed. + +Removed support for GTK 1. It was no longer maintained and required a lot of +#ifdefs in the source code. GTK 2 should be available for every system. +(James Vega) + +It is no longer allowed to set the 'encoding' option from a modeline. It +would corrupt the text. (Patrick Texier) + +Renamed runtime/spell/fixdup to runtime/spell/fixdup.vim. + +Removed obsolete Mac code. + +Updated spell files for Ubuntu locale names. + +Switched from autoconf 2.63 to 2.65. + +Removed Mupad indent and ftplugin files, they are not useful. + +The maximum number of messages remembered in the history is now 200 (was 100). + + +Added *added-7.3* +----- + +Added the 'relativenumber' option. (Markus Heidelberg) + +Added the 'colorcolumn' option: highlight one or more columns in a window. +E.g. to highlight the column after 'textwidth'. (partly by Gregor Uhlenheuer) + +Added support for NetBeans in a terminal. Added |:nbstart| and |:nbclose|. +(Xavier de Gaye) + +More floating point functions: |acos()|, |asin()|, |atan2()|, |cosh()|, +|exp()|, |fmod()|, |log()|, |sinh()|, |tan()|, |tanh()|. (Bill McCarthy) + +Added the |gettabvar()| and |settabvar()| functions. (Yegappan Lakshmanan) + +Added the |strchars()|, |strwidth()| and |strdisplaywidth()| functions. + +Support GDK_SUPER_MASK for GTK on Mac. (Stephan Schulz) + +Made CTRL and ALT modifier work for mouse wheel. (Benjamin Haskell) + +Added support for horizontal scroll wheel. (Bjorn Winckler) + +When the buffer is in diff mode, have :TOhtml create HTML to show the diff +side-by-side. (Christian Brabandt) + +Various improvements to ":TOhtml" and the 2html.vim script. (Benjamin Fritz) + +Add the 'L' item to 'cinoptions'. (Manuel Konig) + +Improve Javascript indenting. Add "J" flag to 'cinoptions'. (Hari Kumar G) + +Mac: Support disabling antialias. (LC Mi) + +Mac: Add clipboard support in the Mac console. (Bjorn Winckler) + +Make it possible to drag a tab page label to another position. (Paul B. Mahol) + +Better implementation of creating the Color Scheme menu. (Juergen Kraemer) + +In Visual mode with 'showcmd' display the number of bytes and characters. + +Allow synIDattr() getting GUI attributes when built without GUI. (Matt +Wozniski) + +Support completion for ":find". Added test 73. (Nazri Ramliy) + +Command line completion for :ownsyntax and :setfiletype. (Dominique Pelle) + +Command line completion for :lmap and :lunmap. + +Support syntax and filetype completion for user commands. (Christian Brabandt) + +Avoid use of the GTK main_loop() so that the GtkFileChooser can be used. +(James Vega) + +When 'formatexpr' evaluates to non-zero fall back to internal formatting, also +for "gq". (James Vega) + +Support :browse for commands that use an error file argument. (Lech Lorens) + +Support wide file names in gvimext. (Szabolcs Horvat) + +Improve test for joining lines. (Milan Vancura) +Make joining a range of lines much faster. (Milan Vancura) + +Add patch to improve support of z/OS (OS/390). (Ralf Schandl) + +Added the helphelp.txt file. Moved text from various.txt to it. + +Added "q" item for 'statusline'. Added |w:quickfix_title|. (Lech Lorens) + +Various improvements for VMS. (Zoltan Arpadffy) + + +New syntax files: ~ +Haskell Cabal build file (Vincent Berthoux) +ChaiScript (Jason Turner) +Cucumber (Tim Pope) +Datascript (Dominique Pelle) +Fantom (Kamil Toman) +Liquid (Tim Pope) +Markdown (Tim Pope) +wavefront's obj file (Vincent Berthoux) +Perl 6 (Andy Lester) +SDC - Synopsys Design Constraints (Maurizio Tranchero) +SVG - Scalable Vector Graphics (Vincent Berthoux) +task data (John Florian) +task 42 edit (John Florian) + +New filetype plugins: ~ +Cucumber (Tim Pope) +Liquid (Tim Pope) +Logcheck (Debian) +Markdown (Tim Pope) +Perl 6 (Andy Lester) +Quickfix window (Lech Lorens) +Tcl (Robert L Hicks) + +New indent plugins: ~ +CUDA (Bram Moolenaar) +ChaiScript (Jason Turner) +Cucumber (Tim Pope) +LifeLines (Patrick Texier) +Liquid (Tim Pope) +Mail (Bram Moolenaar) +Perl 6 (Andy Lester) + +Other new runtime files: ~ +Breton spell file (Dominique Pelle) +Dvorak keymap (Ashish Shukla) +Korean translations. (SungHyun Nam) +Python 3 completion (Aaron Griffin) +Serbian menu translations (Aleksandar Jelenak) +Tetum spell files +Tutor Bairish (Sepp Hell) +Tutor in Esperanto. (Dominique Pellé) +Tutor in Portuguese. +Norwegian Tutor now also available as tutor.nb + +Removed the Mupad runtime files, they were not maintained. + + +Fixed *fixed-7.3* +----- + +Patch 7.2.001 +Problem: Mac: pseudo-ttys don't work properly on Leopard, resulting in the + shell not to have a prompt, CTRL-C not working, etc. +Solution: Don't use SVR4 compatible ptys, even though they are detected. + (Ben Schmidt) +Files: src/pty.c + +Patch 7.2.002 +Problem: Leaking memory when displaying menus. +Solution: Free allocated memory. (Dominique Pelle) +Files: src/menu.c + +Patch 7.2.003 +Problem: Typo in translated message. Message not translated. +Solution: Correct spelling. Add _(). (Dominique Pelle) +Files: src/spell.c, src/version.c + +Patch 7.2.004 +Problem: Cscope help message is not translated. +Solution: Put it in _(). (Dominique Pelle) +Files: src/if_cscope.c, src/if_cscope.h + +Patch 7.2.005 +Problem: A few problems when profiling. Using flag pointer instead of flag + value. Allocating zero bytes. Not freeing used memory. +Solution: Remove wrong '&' characters. Skip dumping when there is nothing + to dump. Free used memory. (Dominique Pelle) +Files: src/eval.c + +Patch 7.2.006 +Problem: HTML files are not recognized by contents. +Solution: Add a rule to the scripts file. (Nico Weber) +Files: runtime/scripts.vim + +Patch 7.2.007 (extra) +Problem: Minor issues for VMS. +Solution: Minor fixes for VMS. Add float support. (Zoltan Arpadffy) +Files: runtime/doc/os_vms.txt, src/os_vms_conf.h, src/Make_vms.mms, + src/testdir/Make_vms.mms, src/testdir/test30.in, + src/testdir/test54.in + +Patch 7.2.008 +Problem: With a BufHidden autocommand that invokes ":bunload" the window + count for a buffer can be wrong. (Bob Hiestand) +Solution: Don't call enter_buffer() when already in that buffer. +Files: src/buffer.c + +Patch 7.2.009 +Problem: Can't compile with Perl 5.10 on MS-Windows. (Cesar Romani) +Solution: Add the Perl_sv_free2 function for dynamic loading. (Dan Sharp) +Files: src/if_perl.xs + +Patch 7.2.010 +Problem: When using "K" in Visual mode not all characters are properly + escaped. (Ben Schmidt) +Solution: Use a function with the functionality of shellescape(). (Jan + Minar) +Files: src/mbyte.c, src/misc2.c, src/normal.c + +Patch 7.2.011 +Problem: Get an error when inserting a float value from the expression + register. +Solution: Convert the Float to a String automatically in the same place + where a List would be converted to a String. +Files: src/eval.c + +Patch 7.2.012 +Problem: Compiler warnings when building with startup timing. +Solution: Add type casts. +Files: src/ex_cmds2.c + +Patch 7.2.013 +Problem: While waiting for the X selection Vim consumes a lot of CPU time + and hangs until a response is received. +Solution: Sleep a bit when the selection event hasn't been received yet. + Time out after a couple of seconds to avoid a hang when the + selection owner isn't responding. +Files: src/ui.c + +Patch 7.2.014 +Problem: synstack() doesn't work in an empty line. +Solution: Accept column zero as a valid position. +Files: src/eval.c + +Patch 7.2.015 +Problem: "make all test install" doesn't stop when the test fails. (Daniel + Shahaf) +Solution: When test.log contains failures exit with non-zero status. +Files: src/testdir/Makefile + +Patch 7.2.016 +Problem: The pattern being completed may be in freed memory when the + command line is being reallocated. (Dominique Pelle) +Solution: Keep a pointer to the expand_T in the command line structure. + Don't use <S-Tab> as CTRL-P when there are no results. Clear the + completion when using a command line from the history. +Files: src/ex_getln.c + +Patch 7.2.017 +Problem: strlen() used on text that may not end in a NUL. (Dominique Pelle) + Pasting a very big selection doesn't work. +Solution: Use the length passed to the XtSelectionCallbackProc() function. + After getting the SelectionNotify event continue dispatching + events until the callback is actually called. Also dispatch the + PropertyNotify event. +Files: src/ui.c + +Patch 7.2.018 +Problem: Memory leak when substitute is aborted. +Solution: Free the buffer allocated for the new text. (Dominique Pelle) +Files: src/ex_cmds.c + +Patch 7.2.019 +Problem: Completion of ":noautocmd" doesn't work and exists(":noautocmd") + returns zero. (Ben Fritz) +Solution: Add "noautocmd" to the list of modifiers and commands. +Files: src/ex_cmds.h, src/ex_docmd.c + +Patch 7.2.020 +Problem: Starting the GUI when the executable starts with 'k', but the KDE + version no longer exists. +Solution: Don't have "kvim" start the GUI. +Files: src/main.c + +Patch 7.2.021 +Problem: When executing autocommands getting the full file name may be + slow. (David Kotchan) +Solution: Postpone calling FullName_save() until autocmd_fname is used. +Files: src/ex_docmd.c, src/fileio.c, src/globals.h + +Patch 7.2.022 (extra) +Problem: Testing is not possible when compiling with MingW. +Solution: Add a MingW specific test Makefile. (Bill McCarthy) +Files: Filelist, src/testdir/Make_ming.mak + +Patch 7.2.023 +Problem: 'cursorcolumn' is in the wrong place in a closed fold when the + display is shifted left. (Gary Johnson) +Solution: Subtract w_skipcol or w_leftcol when needed. +Files: src/screen.c + +Patch 7.2.024 +Problem: It's possible to set 'history' to a negative value and that causes + an out-of-memory error. +Solution: Check that 'history' has a positive value. (Doug Kearns) +Files: src/option.c + +Patch 7.2.025 +Problem: When a CursorHold event invokes system() it is retriggered over + and over again. +Solution: Don't reset did_cursorhold when getting K_IGNORE. +Files: src/normal.c + +Patch 7.2.026 (after 7.2.010) +Problem: "K" doesn't use the length of the identifier but uses the rest of + the line. +Solution: Copy the desired number of characters first. +Files: src/normal.c + +Patch 7.2.027 +Problem: Can use cscope commands in the sandbox. +Solution: Disallow them, they might not be safe. +Files: src/ex_cmds.h + +Patch 7.2.028 +Problem: Confusing error message for missing (). +Solution: Change "braces" to "parentheses". (Gary Johnson) +Files: src/eval.c + +Patch 7.2.029 +Problem: No completion for ":doautoall". +Solution: Complete ":doautoall" like ":doautocmd". (Doug Kearns) +Files: src/ex_docmd.c + +Patch 7.2.030 (after 7.2.027) +Problem: Can't compile. +Solution: Remove prematurely added ex_oldfiles. +Files: src/ex_cmds.h + +Patch 7.2.031 +Problem: Information in the viminfo file about previously edited files is + not available to the user. There is no way to get a complete list + of files edited in previous Vim sessions. +Solution: Add v:oldfiles and fill it with the list of old file names when + first reading the viminfo file. Add the ":oldfiles" command, + ":browse oldfiles" and the "#<123" special file name. Increase + the default value for 'viminfo' from '20 to '100. +Files: runtime/doc/cmdline.txt, runtime/doc/eval.txt, + runtime/doc/starting.txt, runtime/doc/usr_21.txt, src/eval.c, + src/ex_cmds.c, src/ex_cmds.h, src/ex_docmd.c, src/feature.h, + src/fileio.c, src/main.c, src/mark.c, src/misc1.c, + src/proto/eval.pro, src/proto/ex_cmds.pro, src/proto/mark.pro, + src/option.c, src/structs.h, src/vim.h + +Patch 7.2.032 (after 7.2.031) +Problem: Can't build with EXITFREE defined. (Dominique Pelle) +Solution: Change vv_string to vv_str. +Files: src/eval.c + +Patch 7.2.033 +Problem: When detecting a little endian BOM "ucs-2le" is used, but the text + might be "utf-16le". +Solution: Default to "utf-16le", it also works for "ucs-2le". (Jia Yanwei) +Files: src/fileio.c, src/testdir/test42.ok + +Patch 7.2.034 +Problem: Memory leak in spell info when deleting buffer. +Solution: Free the memory. (Dominique Pelle) +Files: src/buffer.c + +Patch 7.2.035 +Problem: Mismatches between alloc/malloc, free/vim_free, + realloc/vim_realloc. +Solution: Use the right function. (Dominique Pelle) +Files: src/gui_x11.c, src/mbyte.c, src/misc2.c, src/os_unix.c + +Patch 7.2.036 (extra) +Problem: Mismatches between alloc/malloc, free/vim_free, + realloc/vim_realloc. +Solution: Use the right function. (Dominique Pelle) +Files: src/gui_riscos.c, src/gui_w48.c, src/mbyte.c, src/os_vms.c, + src/os_w32exe.c, src/os_win16.c + +Patch 7.2.037 +Problem: Double free with GTK 1 and compiled with EXITFREE. +Solution: Don't close display. (Dominique Pelle) +Files: src/os_unix.c + +Patch 7.2.038 +Problem: Overlapping arguments to memcpy(). +Solution: Use mch_memmove(). (Dominique Pelle) +Files: src/if_xcmdsrv.c + +Patch 7.2.039 +Problem: Accessing freed memory on exit when EXITFREE is defined. +Solution: Call hash_init() on the v: hash table. +Files: src/eval.c + +Patch 7.2.040 +Problem: When using ":e ++ff=dos fname" and the file contains a NL without + a CR before it and 'ffs' contains "unix" then the fileformat + becomes unix. +Solution: Ignore 'ffs' when using the ++ff argument. (Ben Schmidt) + Also remove unreachable code. +Files: src/fileio.c + +Patch 7.2.041 +Problem: In diff mode, when using two tabs, each with two diffed buffers, + editing a buffer of the other tab messes up the diff. (Matt + Mzyzik) +Solution: Only copy options from a window where the buffer was edited that + doesn't have 'diff' set or is for the current tab page. + Also fix that window options for a buffer are stored with the + wrong window. +Files: src/buffer.c, src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c, + src/ex_getln.c, src/if_sniff.c, src/main.c, src/netbeans.c, + src/normal.c, src/popupmnu.c, src/proto/buffer.pro, + src/proto/ex_cmds.pro src/quickfix.c, src/window.c + +Patch 7.2.042 +Problem: When using winrestview() in a BufWinEnter autocommand the window + is scrolled anyway. (Matt Zyzik) +Solution: Don't recompute topline when above 'scrolloff' from the bottom. + Don't always put the cursor halfway when entering a buffer. Add + "w_topline_was_set". +Files: src/buffer.c, src/move.c, src/structs.h + +Patch 7.2.043 +Problem: VMS: Too many characters are escaped in filename and shell + commands. +Solution: Escape fewer characters. (Zoltan Arpadffy) +Files: src/vim.h + +Patch 7.2.044 +Problem: Crash because of STRCPY() being over protective of the destination + size. (Dominique Pelle) +Solution: Add -D_FORTIFY_SOURCE=1 to CFLAGS. Use an intermediate variable + for the pointer to avoid a warning. +Files: src/auto/configure, src/configure.in, src/eval.c + +Patch 7.2.045 +Problem: The Python interface has an empty entry in sys.path. +Solution: Filter out the empty entry. (idea from James Vega) +Files: src/if_python.c + +Patch 7.2.046 +Problem: Wrong check for filling buffer with encoding. (Danek Duvall) +Solution: Remove pointers. (Dominique Pelle) +Files: src/mbyte.c + +Patch 7.2.047 +Problem: Starting Vim with the -nb argument while it's not supported causes + the other side to hang. +Solution: When -nb is used while it's not supported exit Vim. (Xavier de + Gaye) +Files: src/main.c, src/vim.h + +Patch 7.2.048 +Problem: v:prevcount is changed too often. Counts are not multiplied when + setting v:count. +Solution: Set v:prevcount properly. Multiply counts. (idea by Ben Schmidt) +Files: src/eval.c, src/normal.c, src/proto/eval.pro + +Patch 7.2.049 (extra) +Problem: Win32: the clipboard doesn't support UTF-16. +Solution: Change UCS-2 support to UTF-16 support. (Jia Yanwei) +Files: src/gui_w32.c, src/gui_w48.c, src/mbyte.c, src/misc1.c, + src/os_mswin.c, src/os_win32.c, src/proto/os_mswin.pro + +Patch 7.2.050 +Problem: Warnings for not checking return value of fwrite(). (Chip Campbell) +Solution: Use the return value. +Files: src/spell.c + +Patch 7.2.051 +Problem: Can't avoid 'wildignore' and 'suffixes' for glob() and globpath(). +Solution: Add an extra argument to these functions. (Ingo Karkat) +Files: src/eval.c, src/ex_getln.c, src/proto/ex_getln.pro, + runtime/doc/eval.txt, runtime/doc/options.txt + +Patch 7.2.052 +Problem: synIDattr() doesn't support "sp" for special color. +Solution: Recognize "sp" and "sp#". (Matt Wozniski) +Files: runtime/doc/eval.txt, src/eval.c + +Patch 7.2.053 +Problem: Crash when using WorkShop command ":ws foo". (Dominique Pelle) +Solution: Avoid using a NULL pointer. +Files: src/workshop.c + +Patch 7.2.054 +Problem: Compilation warnings for format in getchar.c. +Solution: Use fputs() instead of fprintf(). (Dominique Pelle) +Files: src/getchar.c + +Patch 7.2.055 +Problem: Various compiler warnings with strict checking. +Solution: Avoid the warnings by using return values and renaming. +Files: src/diff.c, src/eval.c, src/ex_cmds.c, src/ex_docmd.c, + src/fileio.c, src/fold.c, src/globals.h, src/gui.c, + src/gui_at_sb.c, src/gui_gtk_x11.c, src/gui_xmdlg.c, + src/gui_xmebw.c, src/main.c, src/mbyte.c, src/message.c, + src/netbeans.c, src/option.c, src/os_unix.c, src/spell.c, + src/ui.c, src/window.c + +Patch 7.2.056 (after 7.2.050) +Problem: Tests 58 and 59 fail. +Solution: Don't invoke fwrite() with a zero length. (Dominique Pelle) +Files: src/spell.c + +Patch 7.2.057 (after 7.2.056) +Problem: Combination of int and size_t may not work. +Solution: Use size_t for variable. +Files: src/spell.c + +Patch 7.2.058 +Problem: Can't add a patch name to the ":version" output. +Solution: Add the extra_patches array. +Files: src/version.c + +Patch 7.2.059 +Problem: Diff display is not always updated. +Solution: Update the display more often. +Files: src/diff.c + +Patch 7.2.060 +Problem: When a spell files has many compound rules it may take a very long + time making the list of suggestions. Displaying also can be slow + when there are misspelled words. + Can't parse some Hunspell .aff files. +Solution: Check if a compounding can possibly work before trying a + combination, if the compound rules don't contain wildcards. + Implement using CHECKCOMPOUNDPATTERN. + Ignore COMPOUNDRULES. Ignore a comment after most items. + Accept ONLYINCOMPOUND as an alias for NEEDCOMPOUND. + Accept FORBIDDENWORD as an alias for BAD. +Files: runtime/doc/spell.txt, src/spell.c + +Patch 7.2.061 +Problem: Can't create a funcref for an autoload function without loading + the script first. (Marc Weber) +Solution: Accept autoload functions that don't exist yet in function(). +Files: src/eval.c + +Patch 7.2.062 +Problem: "[Scratch]" is not translated. +Solution: Mark the string for translation. (Dominique Pelle) +Files: src/buffer.c + +Patch 7.2.063 +Problem: Warning for NULL argument of Perl_sys_init3(). +Solution: Use Perl_sys_init() instead. (partly by Dominique Pelle) +Files: src/if_perl.xs + +Patch 7.2.064 +Problem: Screen update bug when repeating "~" on a Visual block and the + last line doesn't change. +Solution: Keep track of changes for all lines. (Moritz Orbach) +Files: src/ops.c + +Patch 7.2.065 +Problem: GTK GUI: the cursor disappears when doing ":vsp" and the Vim + window is maximized. (Dominique Pelle, Denis Smolyar) +Solution: Don't change "Columns" back to an old value at a wrong moment. + Do change "Rows" when it should not be a problem. +Files: src/gui.c + +Patch 7.2.066 +Problem: It's not easy to see whether 'encoding' is a multibyte encoding. +Solution: Add has('multi_byte_encoding'). +Files: runtime/doc/eval.txt, src/eval.c + +Patch 7.2.067 +Problem: Session file can't load extra file when the path contains special + characters. +Solution: Escape the file name. (Lech Lorens) +Files: src/ex_docmd.c + +Patch 7.2.068 +Problem: Emacs tags file lines can be too long, resulting in an error + message. (James Vega) +Solution: Ignore lines with errors if they are too long. +Files: src/tag.c + +Patch 7.2.069 (after 7.2.060) +Problem: Compiler warning for storing size_t in int. +Solution: Add type cast. +Files: src/spell.c + +Patch 7.2.070 +Problem: Crash when a function returns a:000. (Matt Wozniski) +Solution: Don't put the function struct on the stack, allocate it. Free it + only when nothing in it is used. +Files: src/eval.c + +Patch 7.2.071 (extra) +Problem: Win32: Handling netbeans events while Vim is busy updating the + screen may cause a crash. +Solution: Like with GTK, only handle netbeans messages in the main loop. + (Xavier de Gaye) +Files: src/gui_w48.c, src/netbeans.c + +Patch 7.2.072 (extra) +Problem: Compiler warning in Sniff code. +Solution: Use return value of pipe(). (Dominique Pelle) +Files: src/if_sniff.c + +Patch 7.2.073 +Problem: ":set <xHome>" has the same output as ":set <Home>". (Matt + Wozniski) +Solution: Don't translate "x" keys to its alternative for ":set". +Files: src/gui_mac.c, src/misc2.c, src/option.c, src/proto/misc2.pro + +Patch 7.2.074 (extra, after 7.2.073) +Problem: ":set <xHome>" has the same output as ":set <Home>". (Matt + Wozniski) +Solution: Don't translate "x" keys to its alternative for ":set". +Files: src/gui_mac.c + +Patch 7.2.075 (after 7.2.058) +Problem: Explanation about making a diff for extra_patches is unclear. +Solution: Adjust comment. +Files: src/version.c + +Patch 7.2.076 +Problem: rename(from, to) deletes the file if "from" and "to" are not equal + but still refer to the same file. E.g., on a FAT32 filesystem + under Unix. +Solution: Go through another file name. +Files: src/fileio.c + +Patch 7.2.077 (after 7.2.076) +Problem: rename(from, to) doesn't work if "from" and "to" differ only in + case on a system that ignores case in file names. +Solution: Go through another file name. +Files: src/fileio.c + +Patch 7.2.078 +Problem: When deleting a fold that is specified with markers the cursor + position may be wrong. Folds may not be displayed properly after + a delete. Wrong fold may be deleted. +Solution: Fix the problems. (mostly by Lech Lorens) +Files: src/fold.c + +Patch 7.2.079 +Problem: "killed" netbeans events are not handled correctly. +Solution: A "killed" netbeans event is sent when the buffer is deleted or + wiped out (in this case, the netbeans annotations in this buffer + have been removed). A user can still remove a sign with the + command ":sign unplace" and this does not trigger a "killed" + event. (Xavier de Gaye) +Files: runtime/doc/netbeans.txt, src/buffer.c, src/globals.h, + src/netbeans.c, src/proto/netbeans.pro + +Patch 7.2.080 +Problem: When typing a composing character just after starting completion + may access memory before its allocation point. (Dominique Pelle) +Solution: Don't delete before the completion start column. Add extra checks + for the offset not being negative. +Files: src/edit.c + +Patch 7.2.081 +Problem: Compiler warning for floating point overflow on VAX. +Solution: For VAX use a smaller number. (Zoltan Arpadffy) +Files: src/message.c + +Patch 7.2.082 +Problem: When 'ff' is "mac" then "ga" on a ^J shows 0x0d instead of 0x0a. + (Andy Wokula) +Solution: Use NL for this situation. (Lech Lorens) +Files: src/ex_cmds.c + +Patch 7.2.083 +Problem: ":tag" does not return to the right tag entry from the tag stack. +Solution: Don't change the current match when there is no argument. + (Erik Falor) +Files: src/tag.c + +Patch 7.2.084 +Problem: Recursive structures are not handled properly in Python + vim.eval(). +Solution: Keep track of references in a better way. (Yukihiro Nakadaira) +Files: src/if_python.c + +Patch 7.2.085 +Problem: ":set <M-b>=<Esc>b" does not work when 'encoding' is utf-8. +Solution: Put the <M-b> character in the input buffer as valid utf-8. + (partly by Matt Wozniski) +Files: src/term.c + +Patch 7.2.086 +Problem: Using ":diffget 1" in buffer 1 corrupts the text. +Solution: Don't do anything when source and destination of ":diffget" or + ":diffput" is the same buffer. (Dominique Pelle) +Files: src/diff.c + +Patch 7.2.087 +Problem: Adding URL to 'path' doesn't work to edit a file. +Solution: Skip simplify_filename() for URLs. (Matt Wozniski) +Files: src/misc2.c + +Patch 7.2.088 (extra) +Problem: OpenClipboard() may fail when another application is using the + clipboard. +Solution: Retry OpenClipboard() a few times. (Jianrong Yu) +Files: src/os_mswin.c + +Patch 7.2.089 (extra) +Problem: Win32: crash when using Ultramon buttons. +Solution: Don't use a WM_OLE message of zero size. (Ray Megal) +Files: src/if_ole.cpp, src/gui_w48.c + +Patch 7.2.090 +Problem: User command containing 0x80 in multibyte character does not work + properly. (Yasuhiro Matsumoto) +Solution: Undo replacement of K_SPECIAL and CSI characters when executing + the command. +Files: src/ex_docmd.c + +Patch 7.2.091 +Problem: ":cs help" output is not aligned for some languages. +Solution: Compute character size instead of byte size. (Dominique Pelle) +Files: src/if_cscope.c + +Patch 7.2.092 +Problem: Some error messages are not translated. +Solution: Add _() around the messages. (Dominique Pelle) +Files: src/eval.c + +Patch 7.2.093 (extra) +Problem: Win32: inputdialog() and find/replace dialogs can't handle + multibyte text. +Solution: Use the wide version of dialog functions when available. (Yanwei + Jia) +Files: src/gui_w32.c, src/gui_w48.c + +Patch 7.2.094 +Problem: Compiler warning for signed/unsigned compare. +Solution: Add type cast. Also fix a few typos. +Files: src/edit.c + +Patch 7.2.095 +Problem: With Visual selection, "r" and then CTRL-C Visual mode is stopped + but the highlighting is not removed. +Solution: Call reset_VIsual(). +Files: src/normal.c + +Patch 7.2.096 +Problem: After ":number" the "Press Enter" message may be on the wrong + screen, if switching screens for shell commands. +Solution: Reset info_message. (James Vega) +Files: src/ex_cmds.c + +Patch 7.2.097 +Problem: "!xterm&" doesn't work when 'shell' is "bash". +Solution: Ignore SIGHUP after calling setsid(). (Simon Schubert) +Files: src/os_unix.c + +Patch 7.2.098 +Problem: Warning for signed/unsigned pointer. +Solution: Add type cast. +Files: src/eval.c + +Patch 7.2.099 +Problem: Changing GUI options causes an unnecessary redraw when the GUI + isn't active. +Solution: Avoid the redraw. (Lech Lorens) +Files: src/option.c + +Patch 7.2.100 +Problem: When using ":source" on a FIFO or something else that can't rewind + the first three bytes are skipped. +Solution: Instead of rewinding read the first line and detect a BOM in that. + (mostly by James Vega) +Files: src/ex_cmds2.c + +Patch 7.2.101 (extra) +Problem: MSVC version not recognized. +Solution: Add the version number to the list. (Zhong Zhang) +Files: src/Make_mvc.mak + +Patch 7.2.102 (after 7.2.100) +Problem: When 'encoding' is "utf-8" a BOM at the start of a Vim script is + not removed. (Tony Mechelynck) +Solution: When no conversion is taking place make a copy of the line without + the BOM. +Files: src/ex_cmds2.c + +Patch 7.2.103 +Problem: When 'bomb' is changed the window title is updated to show/hide a + "+", but the tab page label isn't. (Patrick Texier) +Solution: Set "redraw_tabline" in most places where "need_maketitle" is set. + (partly by Lech Lorens) +Files: src/option.c + +Patch 7.2.104 +Problem: When using ":saveas bar.c" the tab label isn't updated right away. +Solution: Set redraw_tabline. (Francois Ingelrest) +Files: src/ex_cmds.c + +Patch 7.2.105 +Problem: Modeline setting for 'foldmethod' overrules diff options. (Ingo + Karkat) +Solution: Don't set 'foldmethod' and 'wrap' from a modeline when 'diff' is + on. +Files: src/option.c + +Patch 7.2.106 +Problem: Endless loop when using "]s" in HTML when there are no + misspellings. (Ingo Karkat) +Solution: Break the search loop. Also fix pointer alignment for systems + with pointers larger than int. +Files: src/spell.c + +Patch 7.2.107 +Problem: When using a GUI dialog and ":echo" commands the messages are + deleted after the dialog. (Vincent Birebent) +Solution: Don't call msg_end_prompt() since there was no prompt. +Files: src/message.c + +Patch 7.2.108 (after 7.2.105) +Problem: Can't build without the diff feature. +Solution: Add #ifdef. +Files: src/option.c + +Patch 7.2.109 +Problem: 'langmap' does not work for multibyte characters. +Solution: Add a list of mapped multibyte characters. (based on work by + Konstantin Korikov, Agathoklis Hatzimanikas) +Files: runtime/doc/options.txt, src/edit.c, src/getchar.c, src/macros.h, + src/normal.c, src/option.c, src/proto/option.pro, src/window.c + +Patch 7.2.110 +Problem: Compiler warning for unused variable. +Solution: Init the variable. +Files: src/ex_docmd.c + +Patch 7.2.111 +Problem: When using Visual block mode with 'cursorcolumn' it's unclear what + is selected. +Solution: Don't use 'cursorcolumn' highlighting inside the Visual selection. + (idea by Dominique Pelle) +Files: src/screen.c + +Patch 7.2.112 +Problem: Cursor invisible in Visual mode when 'number' is set and cursor in + first column. (Matti Niemenmaa, Renato Alves) +Solution: Check that vcol_prev is smaller than vcol. +Files: src/screen.c + +Patch 7.2.113 +Problem: Crash for substitute() call using submatch(1) while there is no + such submatch. (Yukihiro Nakadaira) +Solution: Also check the start of the submatch is set, it can be NULL when + an attempted match didn't work out. +Files: src/regexp.c + +Patch 7.2.114 +Problem: Using wrong printf format. +Solution: Use "%ld" instead of "%d". (Dominique Pelle) +Files: src/netbeans.c + +Patch 7.2.115 +Problem: Some debugging code is never used. +Solution: Remove nbtrace() and nbprt(). (Dominique Pelle) +Files: src/nbdebug.c, src/nbdebug.h + +Patch 7.2.116 +Problem: Not all memory is freed when EXITFREE is defined. +Solution: Free allocated memory on exit. (Dominique Pelle) +Files: src/ex_docmd.c, src/gui_gtk_x11.c, src/misc2.c, src/search.c, + src/tag.c + +Patch 7.2.117 +Problem: Location list incorrectly labelled "Quickfix List". +Solution: Break out of both loops for finding window for location list + buffer. (Lech Lorens) +Files: src/buffer.c, src/quickfix.c, src/screen.c + +Patch 7.2.118 +Problem: <PageUp> at the more prompt only does half a page. +Solution: Make <PageUp> go up a whole page. Also make 'f' go a page + forward, but not quit the more prompt. (Markus Heidelberg) +Files: src/message.c + +Patch 7.2.119 +Problem: Status line is redrawn too often. +Solution: Check ScreenLinesUC[] properly. (Yukihiro Nakadaira) +Files: src/screen.c + +Patch 7.2.120 +Problem: When opening the quickfix window or splitting the window and + setting the location list, the location list is copied and then + deleted, which is inefficient. +Solution: Don't copy the location list when not needed. (Lech Lorens) +Files: src/quickfix.c, src/vim.h, src/window.c + +Patch 7.2.121 +Problem: In gvim "!grep a *.c" spews out a lot of text that can't be + stopped with CTRL-C. +Solution: When looping to read and show text, do check for typed characters + every two seconds. +Files: src/os_unix.c + +Patch 7.2.122 +Problem: Invalid memory access when the VimResized autocommand changes + 'columns' and/or 'lines'. +Solution: After VimResized check for changed values. (Dominique Pelle) +Files: src/screen.c + +Patch 7.2.123 +Problem: Typing 'q' at more prompt for ":map" output still displays another + line, causing another more prompt. (Markus Heidelberg) +Solution: Quit listing maps when 'q' typed. +Files: src/getchar.c + +Patch 7.2.124 +Problem: Typing 'q' at more prompt for ":tselect" output still displays + more lines, causing another more prompt. (Markus Heidelberg) +Solution: Quit listing tags when 'q' typed. +Files: src/tag.c + +Patch 7.2.125 +Problem: Leaking memory when reading XPM bitmap for a sign. +Solution: Don't allocate the memory twice. (Dominique Pelle) +Files: src/gui_x11.c + +Patch 7.2.126 +Problem: When EXITFREE is defined signs are not freed. +Solution: Free all signs on exit. Also free keymaps. (Dominique Pelle) +Files: src/misc2.c, src/ex_cmds.c, src/proto/ex_cmds.pro + +Patch 7.2.127 +Problem: When listing mappings and a wrapping line causes the more prompt, + after typing 'q' there can be another more prompt. (Markus + Heidelberg) +Solution: Set "lines_left" to allow more lines to be displayed. +Files: src/message.c + +Patch 7.2.128 (after 7.2.055) +Problem: Using ":lcd" makes session files not work. +Solution: Compare return value of mch_chdir() properly. (Andreas Bernauer) +Files: src/ex_docmd.c + +Patch 7.2.129 +Problem: When opening a command window from input() it uses the search + history. +Solution: Use get_cmdline_type(). (James Vega) +Files: src/ex_getln.c + +Patch 7.2.130 +Problem: Vim may hang until CTRL-C is typed when using CTRL-Z. +Solution: Avoid using pause(). Also use "volatile" for variables used in + signal functions. (Dominique Pelle) +Files: src/auto/configure, src/configure.in, src/config.h.in, + src/globals.h, src/os_unix.c + +Patch 7.2.131 +Problem: When 'keymap' is cleared may still use the cursor highlighting for + when it's enabled. +Solution: Reset 'iminsert' and 'imsearch'. (partly by Dominique Pelle) + Also avoid ":setlocal" for these options have a global effect. +Files: src/option.c + +Patch 7.2.132 +Problem: When changing directory during a SwapExists autocmd freed memory + may be accessed. (Dominique Pelle) +Solution: Add the allbuf_lock flag. +Files: src/ex_getln.c, src/globals.h, src/fileio.c, + src/proto/ex_getln.pro + +Patch 7.2.133 +Problem: ":diffoff!" changes settings in windows not in diff mode. +Solution: Only change settings in other windows when 'diff' is set, always + do it for the current window. (Lech Lorens) +Files: src/diff.c + +Patch 7.2.134 +Problem: Warning for discarding "const" from pointer. +Solution: Don't pass const pointer to mch_memmove(). +Files: src/fileio.c + +Patch 7.2.135 +Problem: Memory leak when redefining user command with complete argument. +Solution: Free the old complete argument. (Dominique Pelle) +Files: src/ex_docmd.c + +Patch 7.2.136 (after 7.2.132) +Problem: ":cd" is still possible in a SwapExists autocmd. +Solution: Check the allbuf_lock flag in ex_cd(). +Files: src/ex_docmd.c + +Patch 7.2.137 +Problem: When 'virtualedit' is set, a left shift of a blockwise selection + that starts and ends inside a tab shifts too much. (Helmut + Stiegler) +Solution: Redo the block left shift code. (Lech Lorens) +Files: src/ops.c, src/testdir/Makefile, src/testdir/test66.in, + src/testdir/test66.ok + +Patch 7.2.138 (extra part of 7.2.137) +Problem: See 7.2.137. +Solution: See 7.2.137. +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 + +Patch 7.2.139 +Problem: Crash when 'virtualedit' is "all". (James Vega) +Solution: Avoid overflow when column is MAXCOL. (Dominique Pelle) +Files: src/misc2.c + +Patch 7.2.140 +Problem: Diff highlighting isn't displayed before the Visual area if it + starts at the cursor position. (Markus Heidelberg) +Solution: Also check fromcol_prev. +Files: src/screen.c + +Patch 7.2.141 +Problem: When redrawing a character for bold spill this causes the next + character to be redrawn as well. +Solution: Only redraw one extra character. (Yukihiro Nakadaira) +Files: src/screen.c + +Patch 7.2.142 +Problem: Motif and Athena balloons don't use tooltip colors. +Solution: Set the colors. (Matt Wozniski) +Files: src/gui_beval.c + +Patch 7.2.143 +Problem: No command line completion for ":cscope" command. +Solution: Add the completion for ":cscope". (Dominique Pelle) +Files: src/ex_docmd.c, src/ex_getln.c, src/if_cscope.c, + src/proto/if_cscope.pro, src/vim.h + +Patch 7.2.144 +Problem: When 't_Co' is set to the value it already had the color scheme is + reloaded anyway. +Solution: Only load the colorscheme when the t_Co value changes. (Dominique + Pelle) +Files: src/option.c + +Patch 7.2.145 +Problem: White space in ":cscope find" is not ignored. +Solution: Ignore the white space, but not when the leading white space is + useful for the argument. +Files: runtime/doc/if_scop.txt, src/if_cscope.c + +Patch 7.2.146 +Problem: v:warningmsg isn't used for all warnings. +Solution: Set v:warningmsg for relevant warnings. (Ingo Karkat) +Files: src/fileio.c, src/misc1.c, src/option.c + +Patch 7.2.147 +Problem: When compiled as small version and 'number' is on the cursor is + displayed in the wrong position after a tab. (James Vega) +Solution: Don't increment vcol when still displaying the line number. +Files: src/screen.c + +Patch 7.2.148 +Problem: When searching for "$" while 'hlsearch' is set, highlighting the + character after the line does not work in the cursor column. + Also highlighting for Visual mode after the line end when this + isn't needed. (Markus Heidelberg) +Solution: Only compare the cursor column in the cursor line. Only highlight + for Visual selection after the last character when it's needed to + see where the Visual selection ends. +Files: src/screen.c + +Patch 7.2.149 +Problem: Using return value of function that doesn't return a value results + in reading uninitialized memory. +Solution: Set the default to return zero. Make cursor() return -1 on + failure. Let complete() return an empty string in case of an + error. (partly by Dominique Pelle) +Files: runtime/doc/eval.txt, src/eval.c + +Patch 7.2.150 (extra) +Problem: Can't use tab pages from VisVim. +Solution: Add tab page support to VisVim. (Adam Slater) +Files: src/VisVim/Commands.cpp, src/VisVim/Resource.h, + src/VisVim/VisVim.rc + +Patch 7.2.151 +Problem: ":hist a" doesn't work like ":hist all" as the docs suggest. +Solution: Make ":hist a" and ":hist al" work. (Dominique Pelle) +Files: src/ex_getln.c + +Patch 7.2.152 +Problem: When using "silent echo x" inside ":redir" a next echo may start + halfway the line. (Tony Mechelynck, Dennis Benzinger) +Solution: Reset msg_col after redirecting silently. +Files: src/ex_docmd.c, src/message.c, src/proto/message.pro + +Patch 7.2.153 +Problem: Memory leak for ":recover empty_dir/". +Solution: Free files[] when it becomes empty. (Dominique Pelle) +Files: src/memline.c + +Patch 7.2.154 (after 7.2.132) +Problem: ":cd" is still possible in a SwapExists autocmd. +Solution: Set allbuf_lock in do_swapexists(). +Files: src/memline.c + +Patch 7.2.155 +Problem: Memory leak in ":function /pat". +Solution: Free the memory. (Dominique Pelle) +Files: src/eval.c + +Patch 7.2.156 (after 7.2.143) +Problem: No completion for :scscope and :lcscope commands. +Solution: Implement the completion. (Dominique Pelle) +Files: src/if_cscope.c, src/ex_docmd.c, src/proto/if_cscope.pro + +Patch 7.2.157 +Problem: Illegal memory access when searching in path. +Solution: Avoid looking at a byte after end of a string. (Dominique Pelle) +Files: src/search.c + +Patch 7.2.158 +Problem: Warnings from VisualC compiler. +Solution: Add type casts. (George Reilly) +Files: src/ops.c + +Patch 7.2.159 +Problem: When $x_includes ends up being "NONE" configure fails. +Solution: Check for $x_includes not to be "NONE" (Rainer) +Files: src/auto/configure, src/configure.in + +Patch 7.2.160 +Problem: Search pattern not freed on exit when 'rightleft' set. +Solution: Free mr_pattern_alloced. +Files: src/search.c + +Patch 7.2.161 +Problem: Folds messed up in other tab page. (Vlad Irnov) +Solution: Instead of going over all windows in current tab page go over all + windows in all tab pages. Also free memory for location lists in + other tab pages when exiting. (Lech Lorens) +Files: src/fileio.c, src/mark.c, src/misc1.c, src/misc2.c + +Patch 7.2.162 +Problem: The quickfix window may get wrong filetype. +Solution: Do not detect the filetype for the quickfix window. (Lech Lorens) +Files: src/quickfix.c + +Patch 7.2.163 +Problem: The command line window may get folding. +Solution: Default to no/manual folding. (Lech Lorens) +Files: src/ex_getln.c + +Patch 7.2.164 +Problem: When 'showbreak' is set the size of the Visual block may be + reported wrong. (Eduardo Daudt Flach) +Solution: Temporarily make 'sbr' empty. +Files: src/normal.c, src/ops.c + +Patch 7.2.165 +Problem: The argument for the FuncUndefined autocmd event is expanded like + a file name. +Solution: Don't try expanding it. (Wang Xu) +Files: src/fileio.c + +Patch 7.2.166 +Problem: No completion for ":sign" command. +Solution: Add ":sign" completion. (Dominique Pelle) +Files: src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c, src/vim.h, + src/proto/ex_cmds.pro + +Patch 7.2.167 +Problem: Splint doesn't work well for checking the code. +Solution: Add splint arguments in the Makefile. Exclude some code from + splint that it can't handle. Tune splint arguments to give + reasonable errors. Add a filter for removing false warnings from + splint output. Many small changes to avoid warnings. More to + follow... +Files: Filelist, src/Makefile, src/buffer.c, src/charset.c, + src/cleanlint.vim, src/digraph.c, src/edit.c, src/ex_cmds.c, + src/globals.h, src/ops.c, src/os_unix.c, src/os_unix.h, + src/proto/buffer.pro, src/proto/edit.pro, src/screen.c, + src/structs.h + +Patch 7.2.168 +Problem: When no ctags program can be found, "make tags" attempts to + execute the first C file. +Solution: Default to "ctags" when no ctags program can be found. +Files: src/configure.in, src/auto/configure + +Patch 7.2.169 +Problem: Splint complains about a lot of things. +Solution: Add type casts, #ifdefs and other changes to avoid warnings. + Change colnr_T from unsigned to int. Avoids mistakes with + subtracting columns. +Files: src/cleanlint.vim, src/diff.c, src/edit.c, src/ex_cmds.c, + src/ex_cmds2.c, src/ex_docmd.c, src/proto/ex_cmds.pro, + src/proto/spell.pro, src/quickfix.c, src/spell.c, src/structs.h, + src/term.h, src/vim.h + +Patch 7.2.170 +Problem: Using b_dev while it was not set. (Dominique Pelle) +Solution: Add the b_dev_valid flag. +Files: src/buffer.c, src/fileio.c, src/structs.h + +Patch 7.2.171 (after 7.2.169) +Problem: Compiler warnings. (Tony Mechelynck) +Solution: Add function prototype. (Patrick Texier) Init variable. +Files: src/ex_cmds.c + +Patch 7.2.172 (extra) +Problem: Compiler warning. +Solution: Adjust function prototype. (Patrick Texier) +Files: src/os_mswin.c + +Patch 7.2.173 +Problem: Without lint there is no check for unused function arguments. +Solution: Use gcc -Wunused-parameter instead of lint. For a few files add + attributes to arguments that are known not to be used. +Files: src/auto/configure, src/buffer.c, src/charset.c, src/diff.c, + src/configure.in, src/config.h.in, src/edit.c, src/ex_cmds.c, + src/ex_cmds2.c, src/version.c, src/vim.h + +Patch 7.2.174 +Problem: Too many warnings from gcc -Wextra. +Solution: Change initializer. Add UNUSED. Add type casts. +Files: src/edit.c, src/eval.c, src/ex_cmds.c, src/ex_docmd.c, + src/ex_getln.c, src/fileio.c, getchar.c, globals.h, main.c, + memline.c, message.c, src/misc1.c, src/move.c, src/normal.c, + src/option.c, src/os_unix.c, src/os_unix.h, src/regexp.c, + src/search.c, src/tag.c + +Patch 7.2.175 +Problem: Compiler warning in OpenBSD. +Solution: Add type cast for NULL. (Dasn) +Files: src/if_cscope.c + +Patch 7.2.176 +Problem: Exceptions for splint are not useful. +Solution: Remove the S_SPLINT_S ifdefs. +Files: src/edit.c, src/ex_cmds.c, src/ex_docmd.c, src/os_unix.c, + src/os_unix.h, src/os_unixx.h, src/structs.h, src/term.h + +Patch 7.2.177 +Problem: Compiler warnings when using -Wextra +Solution: Add UNUSED and type casts. +Files: src/eval.c, src/ex_docmd.c, src/ex_eval.c, src/ex_getln.c, + src/fileio.c, src/hardcopy.c, src/if_cscope.c, src/if_xcmdsrv.c, + src/farsi.c, src/mark.c, src/menu.c + +Patch 7.2.178 +Problem: Using negative value for device number might not work. +Solution: Use a separate flag for whether ffv_dev was set. +Files: src/misc2.c + +Patch 7.2.179 +Problem: Using negative value for device number might not work. +Solution: Use a separate flag for whether sn_dev was set. +Files: src/ex_cmds2.c + +Patch 7.2.180 +Problem: Some more compiler warnings when using gcc -Wextra. +Solution: Add UNUSED and type casts. +Files: src/buffer.c, src/ex_cmds.c, src/macros.h, src/main.c, + src/menu.c, src/message.c, src/misc1.c, src/mbyte.c, + src/normal.c, src/option.c, src/os_unix.c, src/quickfix.c, + src/screen.c, src/search.c, src/spell.c, src/syntax.c, src/tag.c, + src/term.c, src/ui.c + +Patch 7.2.181 +Problem: Some more compiler warnings when using gcc -Wextra. +Solution: Add UNUSED and type casts. +Files: src/if_mzsch.c, src/gui.c, src/gui_gtk.c, src/gui_gtk_x11.c, + src/gui_gtk_f.c, src/gui_beval.c, src/netbeans.c + +Patch 7.2.182 (after 7.2.181) +Problem: Compilation problems after previous patch for Motif. Gvim with + GTK crashes on startup. +Solution: Add comma. Init form structure to zeroes. +Files: src/netbeans.c, src/gui_gtk_f.c + +Patch 7.2.183 +Problem: Configure problem for sys/sysctl.h on OpenBSD. (Dasn) +Solution: Add separate check for this header file. Also switch to newer + version of autoconf. +Files: src/auto/configure, src/configure.in + +Patch 7.2.184 +Problem: Some more compiler warnings when using gcc -Wextra. +Solution: Add UNUSED and type casts. Autoconf check for wchar_t. +Files: src/auto/configure, src/config.h.in, src/configure.in, + src/gui_athena.c, src/gui_x11.c, src/gui.c, src/gui_beval.c, + src/gui_at_sb.c, src/gui_at_fs.c, src/gui_motif.c, + src/gui_xmdlg.c, src/gui_xmebw.c, src/if_python.c, src/window.c, + src/workshop.c + +Patch 7.2.185 +Problem: Some more compiler warnings when using gcc -Wextra. +Solution: Add UNUSED and type casts. +Files: src/Makefile, src/if_tlc.c, src/if_ruby.c + +Patch 7.2.186 +Problem: Some more compiler warnings when using gcc -Wextra. +Solution: Now with the intended if_tcl.c changes. +Files: src/if_tcl.c + +Patch 7.2.187 (after 7.2.186) +Problem: Doesn't build with older versions of TCL. (Yongwei Wu) +Solution: Add #ifdefs. (Dominique Pelle) +Files: src/if_tcl.c + +Patch 7.2.188 +Problem: Crash with specific use of function calls. (Meikel Brandmeyer) +Solution: Make sure the items referenced by a function call are not freed + twice. (based on patch from Nico Weber) +Files: src/eval.c + +Patch 7.2.189 +Problem: Possible hang for deleting auto-indent. (Dominique Pelle) +Solution: Make sure the position is not beyond the end of the line. +Files: src/edit.c + +Patch 7.2.190 +Problem: The register executed by @@ isn't restored. +Solution: Mark the executable register in the viminfo file. +Files: src/ops.c + +Patch 7.2.191 +Problem: Mzscheme interface doesn't work on Ubuntu. +Solution: Change autoconf rules. Define missing macro. Some changes to + avoid gcc warnings. Remove per-buffer namespace. (Sergey Khorev) +Files: runtime/doc/if_mzsch.txt, src/Makefile, src/Make_ming.mak, + src/Make_mvc.mak, src/auto/configure, src/configure.in, + src/config.mk.in, src/eval.c, src/if_mzsch.c, src/if_mzsch.h, + src/main.c, src/proto/if_mzsch.pro + +Patch 7.2.192 (after 7.2.188) +Problem: Still a crash in the garbage collector for a very rare situation. +Solution: Make sure current_copyID is always incremented correctly. (Kent + Sibilev) +Files: src/eval.c + +Patch 7.2.193 +Problem: Warning for uninitialized values. +Solution: Initialize all the struct items. +Files: src/eval.c + +Patch 7.2.194 (extra) +Problem: MSVC: rem commands are echoed. +Solution: Add commands to switch off echo. (Wang Xu) +Files: src/msvc2008.bat + +Patch 7.2.195 +Problem: Leaking memory for the command Vim was started with. +Solution: Remember the pointer and free it. +Files: src/gui_gtk_x11.c + +Patch 7.2.196 (after 7.2.167) +Problem: Turns out splint doesn't work well enough to be usable. +Solution: Remove splint support. +Files: Filelist, src/cleanlint.vim + +Patch 7.2.197 +Problem: Warning for uninitialized values. +Solution: Initialize all the struct items of typebuf. +Files: src/globals.h + +Patch 7.2.198 +Problem: Size of buffer used for tgetent() may be too small. +Solution: Use the largest known size everywhere. +Files: src/vim.h + +Patch 7.2.199 +Problem: Strange character in comment. +Solution: Change to "message". (Yongwei Wu) +Files: src/term.c + +Patch 7.2.200 +Problem: Reading past end of string when navigating the menu bar or + resizing the window. +Solution: Add and use mb_ptr2len_len(). (partly by Dominique Pelle) + Also add mb_ptr2cells_len() to prevent more trouble. +Files: src/gui_gtk_x11.c, src/os_unix.c, src/globals.h, src/mbyte.c, + src/proto/mbyte.pro + +Patch 7.2.201 +Problem: Cannot copy/paste HTML to/from Firefox via the clipboard. +Solution: Implement this for GTK. Add the "html" value to 'clipboard'. +Files: runtime/doc/options.txt, src/globals.h, src/gui_gtk_x11.c, + src/mbyte.c, src/proto/mbyte.pro, src/option.c + +Patch 7.2.202 +Problem: BufWipeout autocommand that edits another buffer causes problems. +Solution: Check for the situation, give an error and quit the operation. +Files: src/fileio.c + +Patch 7.2.203 +Problem: When reloading a buffer or doing anything else with a buffer that + is not displayed in a visible window, autocommands may be applied + to the current window, folds messed up, etc. +Solution: Instead of using the current window for the hidden buffer use a + special window, splitting the current one temporarily. +Files: src/fileio.c, src/globals.h, src/gui.c, src/if_perl.xs, + src/progo/gui.pro, src/proto/window.pro, src/screen.c, + src/structs.h, src/window.c + +Patch 7.2.204 (extra) +Problem: Win32: Can't build with Visual Studio 2010 beta 1. +Solution: Fix the makefile. (George Reilly) +Files: src/Make_mvc.mak + +Patch 7.2.205 (extra) +Problem: Win32: No support for High DPI awareness. +Solution: Fix the manifest file. (George Reilly) +Files: src/Make_mvc.mak, src/gvim.exe.mnf + +Patch 7.2.206 +Problem: Win32: Can't build netbeans interface with Visual Studio 2010. +Solution: Undefine ECONNREFUSED. (George Reilly) +Files: src/netbeans.c + +Patch 7.2.207 +Problem: Using freed memory with ":redrawstatus" when it works recursively. +Solution: Prevent recursively updating the status line. (partly by Dominique + Pelle) +Files: src/screen.c + +Patch 7.2.208 +Problem: "set novice" gives an error message, it should be ignored. +Solution: Don't see "no" in "novice" as unsetting an option. (Patrick + Texier) +Files: src/option.c + +Patch 7.2.209 +Problem: For xxd setmode() is undefined on Cygwin. +Solution: Include io.h. (Dominique Pelle) +Files: src/xxd/xxd.c + +Patch 7.2.210 +Problem: When a file that is being edited has its timestamp updated outside + of Vim and ":checktime" is used still get a warning when writing + the file. (Matt Mueller) +Solution: Store the timestamp in b_mtime_read when the timestamp is the only + thing that changed. +Files: src/fileio.c + +Patch 7.2.211 +Problem: Memory leak when expanding a series of file names. +Solution: Use ga_clear_strings() instead of ga_clear(). +Files: src/misc1.c + +Patch 7.2.212 (extra) +Problem: Warnings for redefining SIG macros. +Solution: Don't define them if already defined. (Bjorn Winckler) +Files: src/os_mac.h + +Patch 7.2.213 +Problem: Warning for using vsprintf(). +Solution: Use vim_vsnprintf(). +Files: src/netbeans.c + +Patch 7.2.214 +Problem: Crash with complete function for user command. (Andy Wokula) +Solution: Avoid using a NULL pointer (Dominique Pelle) +Files: src/ex_getln.c + +Patch 7.2.215 +Problem: ml_get error when using ":vimgrep". +Solution: Load the memfile for the hidden buffer before putting it in a + window. Correct the order of splitting the window and filling + the window and buffer with data. +Files: src/fileio.c, src/proto/window.pro, src/quickfix.c, src/window.c + +Patch 7.2.216 +Problem: Two error messages have the same number E812. +Solution: Give one message a different number. +Files: runtime/doc/autocmd.txt, runtime/doc/if_mzsch.txt, src/if_mzsch.c + +Patch 7.2.217 +Problem: Running tests with valgrind doesn't work as advertised. +Solution: Fix the line in the Makefile. +Files: src/testdir/Makefile + +Patch 7.2.218 +Problem: Cannot build GTK with hangul_input feature. (Dominique Pelle) +Solution: Adjust #ifdef. (SungHyun Nam) +Files: src/gui.c + +Patch 7.2.219 (extra) +Problem: Photon GUI is outdated. +Solution: Updates for QNX 6.4.0. (Sean Boudreau) +Files: src/gui_photon.c + +Patch 7.2.220 (after 7.2.215) +Problem: a BufEnter autocommand that changes directory causes problems. + (Ajit Thakkar) +Solution: Disable autocommands when opening a hidden buffer in a window. +Files: src/fileio.c + +Patch 7.2.221 +Problem: X cut_buffer0 text is used as-is, it may be in the wrong encoding. +Solution: Convert between 'enc' and latin1. (James Vega) +Files: src/gui_gtk_x11.c, src/message.c, src/ops.c, src/proto/ui.pro, + src/ui.c + +Patch 7.2.222 +Problem: ":mksession" doesn't work properly with 'acd' set. +Solution: Make it work. (Yakov Lerner) +Files: src/ex_docmd.c + +Patch 7.2.223 +Problem: When a script is run with ":silent" it is not able to give warning + messages. +Solution: Add the ":unsilent" command. +Files: runtime/doc/various.txt, src/ex_cmds.h, src/ex_docmd.c + +Patch 7.2.224 +Problem: Crash when using 'completefunc'. (Ingo Karkat) +Solution: Disallow entering edit() recursively when doing completion. +Files: src/edit.c + +Patch 7.2.225 +Problem: When using ":normal" a saved character may be executed. +Solution: Also store old_char when saving typeahead. +Files: src/getchar.c, src/structs.h + +Patch 7.2.226 +Problem: ml_get error after deleting the last line. (Xavier de Gaye) +Solution: When adjusting marks a callback may be invoked. Adjust the cursor + position before invoking deleted_lines_mark(). +Files: src/ex_cmds.c, src/ex_docmd.c, src/if_mzsch.c, src/if_python.c, + src/if_perl.xs, src/misc1.c + +Patch 7.2.227 +Problem: When using ":cd" in a script there is no way to track this. +Solution: Display the directory when 'verbose' is 5 or higher. +Files: src/ex_docmd.c + +Patch 7.2.228 +Problem: Cscope is limited to 8 connections. +Solution: Allocated the connection array to handle any number of + connections. (Dominique Pelle) +Files: runtime/doc/if_cscop.txt, src/if_cscope.h, src/if_cscope.c + +Patch 7.2.229 +Problem: Warning for shadowed variable. +Solution: Rename "wait" to "wait_time". +Files: src/os_unix.c + +Patch 7.2.230 +Problem: A few old lint-style ARGUSED comments. +Solution: Change to the new UNUSED style. +Files: src/getchar.c + +Patch 7.2.231 +Problem: Warning for unreachable code. +Solution: Add #ifdef. +Files: src/if_perl.xs + +Patch 7.2.232 +Problem: Cannot debug problems with being in a wrong directory. +Solution: When 'verbose' is 5 or higher report directory changes. +Files: src/os_unix.c, src/os_unix.h, src/proto/os_unix.pro + +Patch 7.2.233 (extra part of 7.2.232) +Problem: Cannot debug problems with being in a wrong directory. +Solution: When 'verbose' is 5 or higher report directory changes. +Files: src/os_msdos.c, src/os_mswin.c, src/os_riscos.c, src/os_mac.h + +Patch 7.2.234 +Problem: It is not possible to ignore file names without a suffix. +Solution: Use an empty entry in 'suffixes' for file names without a dot. +Files: runtime/doc/cmdline.txt, src/misc1.c + +Patch 7.2.235 +Problem: Using CTRL-O z= in Insert mode has a delay before redrawing. +Solution: Reset msg_didout and msg_scroll. +Files: src/misc1.c, src/spell.c + +Patch 7.2.236 +Problem: Mac: Compiling with Ruby doesn't always work. +Solution: In configure filter out the --arch argument (Bjorn Winckler) +Files: src/configure.in, src/auto/configure + +Patch 7.2.237 +Problem: Crash on exit when window icon not set. +Solution: Copy terminal name when using it for the icon name. +Files: src/os_unix.c + +Patch 7.2.238 +Problem: Leaking memory when setting term to "builtin_dumb". +Solution: Free memory when resetting term option t_Co. +Files: src/option.c, src/proto/option.pro, src/term.c + +Patch 7.2.239 +Problem: Using :diffpatch twice or when patching fails causes memory + corruption and/or a crash. (Bryan Venteicher) +Solution: Detect missing output file. Avoid using non-existing buffer. +Files: src/diff.c + +Patch 7.2.240 +Problem: Crash when using find/replace dialog repeatedly. (Michiel + Hartsuiker) +Solution: Avoid doing the operation while busy or recursively. Also refuse + replace when text is locked. +Files: src/gui.c + +Patch 7.2.241 +Problem: When using a combination of ":bufdo" and "doautoall" we may end up + in the wrong directory. (Ajit Thakkar) + Crash when triggering an autocommand in ":vimgrep". (Yukihiro + Nakadaira) +Solution: Clear w_localdir and globaldir when using the aucmd_win. + Use a separate flag to decide aucmd_win needs to be restored. +Files: src/fileio.c, src/globals.h, src/structs.h + +Patch 7.2.242 +Problem: Setting 'lazyredraw' causes the cursor column to be recomputed. + (Tom Link) +Solution: Only recompute the cursor column for a boolean option if changes + the cursor position. +Files: src/option.c + +Patch 7.2.243 +Problem: Memory leak when using :vimgrep and resizing. (Dominique Pelle) +Solution: Free memory for aucmd_win when resizing and don't allocate it + twice. +Files: src/screen.c + +Patch 7.2.244 +Problem: When 'enc' is utf-8 and 'fenc' is latin1, writing a non-latin1 + character gives a conversion error without any hint what is wrong. +Solution: When known add the line number to the error message. +Files: src/fileio.c + +Patch 7.2.245 +Problem: When 'enc' is "utf-16" and 'fenc' is "utf-8" writing a file does + conversion while none should be done. (Yukihiro Nakadaira) When + 'fenc' is empty the file is written as utf-8 instead of utf-16. +Solution: Do proper comparison of encodings, taking into account that all + Unicode values for 'enc' use utf-8 internally. +Files: src/fileio.c + +Patch 7.2.246 +Problem: Cscope home page link is wrong. +Solution: Update the URL. (Sergey Khorev) +Files: runtime/doc/if_cscop.txt + +Patch 7.2.247 +Problem: Mzscheme interface minor problem. +Solution: Better error message when build fails. (Sergey Khorev) +Files: src/if_mzsch.c + +Patch 7.2.248 (extra) +Problem: Mzscheme interface building minor problems. +Solution: Update Win32 makefiles. (Sergey Khorev) +Files: src/Make_cyg.mak, src/Make_ming.mak, src/Make_mvc.mak + +Patch 7.2.249 +Problem: The script to check .po files can't handle '%' in plural forms. +Solution: Remove "Plural-Forms:" from the checked string. +Files: src/po/check.vim + +Patch 7.2.250 (extra) +Problem: Possible buffer overflow. +Solution: Compute the remaining space. (Dominique Pelle) +Files: src/GvimExt/gvimext.cpp + +Patch 7.2.251 (after 7.2.044) +Problem: Compiler adds invalid memory bounds check. +Solution: Remove _FORTIFY_SOURCE=2 from CFLAGS. (Dominique Pelle) +Files: src/auto/configure, src/configure.in + +Patch 7.2.252 +Problem: When using a multibyte 'enc' the 'iskeyword' option cannot + contain characters above 128. +Solution: Use mb_ptr2char_adv(). +Files: src/charset.c + +Patch 7.2.253 +Problem: Netbeans interface: getLength always uses current buffer. +Solution: Use ml_get_buf() instead of ml_get(). (Xavier de Gaye) +Files: src/netbeans.c + +Patch 7.2.254 +Problem: Compiler warning for assigning size_t to int. +Solution: Use size_t for the variable. (George Reilly) +Files: src/fileio.c + +Patch 7.2.255 (after 7.2.242) +Problem: Setting 'rightleft', 'linebreak' and 'wrap' may cause cursor to be + in wrong place. +Solution: Recompute the cursor column for these options. +Files: src/option.c + +Patch 7.2.256 +Problem: When 'guifont' was not set GTK font dialog doesn't have a default. + (Andreas Metzler) +Solution: Set default to DEFAULT_FONT. (James Vega) +Files: src/gui_gtk_x11.c + +Patch 7.2.257 +Problem: With GTK 2.17 lots of assertion error messages. +Solution: Remove check for static gravity. (Sebastian Droege) +Files: src/gui_gtk_f.c + +Patch 7.2.258 +Problem: v:beval_col and b:beval_text are wrong in UTF-8 text. (Tony + Mechelynck) +Solution: Use byte number instead of character number for the column. +Files: src/ui.c + +Patch 7.2.259 +Problem: exists() doesn't work properly for an empty aucmd group. +Solution: Change how au_exists() handles a missing pattern. Also add a + test for this. (Bob Hiestand) +Files: src/fileio.c, src/testdir/Makefile, src/testdir/test67.in, + src/testdir/test67.ok + +Patch 7.2.260 (extra part of 7.2.259) +Problem: exists() doesn't work properly for empty aucmd group. +Solution: Change how au_exists() handles a missing pattern. Also add a + test for this. (Bob Hiestand) +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 + +Patch 7.2.261 +Problem: When deleting lines with a specific folding configuration E38 may + appear. (Shahaf) +Solution: When adjusting nested folds for deleted lines take into account + that they don't start at the top of the enclosing fold. +Files: src/fold.c + +Patch 7.2.262 +Problem: When using custom completion for a user command the pattern string + goes beyond the cursor position. (Hari Krishna Dara) +Solution: Truncate the string at the cursor position. +Files: src/ex_getln.c, src/structs.h + +Patch 7.2.263 +Problem: GTK2: when using the -geom argument with an offset from the right + edge and the size is smaller than the default, the Vim window is + not positioned properly. +Solution: Use another function to set the size. (Vitaly Minko) +Files: src/gui_gtk_x11.c + +Patch 7.2.264 +Problem: GTK2: When the Vim window is maximized setting 'columns' or + 'lines' doesn't work. +Solution: Unmaximize the window before setting the size. (Vitaly Minko) +Files: src/gui.c, src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro + +Patch 7.2.265 +Problem: When using ":silent broken" inside try/catch silency may persist. + (dr-dr xp) +Solution: Set msg_silent when there is an error and it's bigger than the + saved value. +Files: src/ex_docmd.c + +Patch 7.2.266 +Problem: When an expression abbreviation is triggered, the typed character + is unknown. +Solution: Make the typed character available in v:char. +Files: runtime/doc/map.txt, src/eval.c, src/getchar.c, src/ops.c, + src/proto/eval.pro + +Patch 7.2.267 +Problem: Crash for narrow window and double-width character. +Solution: Check for zero width. (Taro Muraoka) +Files: src/charset.c + +Patch 7.2.268 +Problem: Crash when using Python to set cursor beyond end of line. + (winterTTr) +Solution: Check the column to be valid. +Files: src/if_python.c + +Patch 7.2.269 +Problem: Many people struggle to find out why Vim startup is slow. +Solution: Add the --startuptime command line flag. +Files: runtime/doc/starting.txt, src/globals.h, src/feature.h, + src/main.c, src/macros.h + +Patch 7.2.270 +Problem: Using ":@c" when the c register contains a CR causes the rest to + be executed later. (Dexter Douglas) +Solution: Don't check for typeahead to start with ':', keep executing + commands until all added typeahead has been used. +Files: src/ex_docmd.c + +Patch 7.2.271 +Problem: Using freed memory in Motif GUI version when making a choice. +Solution: Free memory only after using it. (Dominique Pelle) +Files: src/gui_xmdlg.c + +Patch 7.2.272 +Problem: "_.svz" is not recognized as a swap file. (David M. Besonen) +Solution: Accept .s[uvw][a-z] as a swap file name extension. +Files: src/memline.c + +Patch 7.2.273 +Problem: Crash with redir to unknown array. (Christian Brabandt) +Solution: Don't assign the redir result when there was an error. +Files: src/eval.c + +Patch 7.2.274 +Problem: Syntax folding doesn't work properly when adding a comment. +Solution: Fix it and add a test. (Lech Lorens) +Files: src/fold.c, src/testdir/test45.in, src/testdir/test45.ok + +Patch 7.2.275 +Problem: Warning for unused argument and comparing signed and unsigned. +Solution: Add type cast. +Files: src/memline.c + +Patch 7.2.276 +Problem: Crash when setting 'isprint' to a small bullet. (Raul Coronado) +Solution: Check for the character to be < 256. Also make it possible to + specify a range of multibyte characters. (Lech Lorens) +Files: src/charset.c + +Patch 7.2.277 +Problem: CTRL-Y in a diff'ed window may move the cursor outside of the + window. (Lech Lorens) +Solution: Limit the number of filler lines to the height of the window. + Don't reset filler lines to zero for an empty buffer. +Files: src/move.c + +Patch 7.2.278 +Problem: Using magic number in the folding code. +Solution: Use the defined MAX_LEVEL. +Files: src/fold.c + +Patch 7.2.279 +Problem: Invalid memory read with visual mode "r". (Dominique Pelle) +Solution: Make sure the cursor position is valid. Don't check the cursor + position but the position being used. And make sure we get the + right line. +Files: src/misc2.c, src/ops.c + +Patch 7.2.280 +Problem: A redraw in a custom statusline with %! may cause a crash. + (Yukihiro Nakadaira) +Solution: Make a copy of 'statusline'. Also fix typo in function name + redraw_custom_statusline. (partly by Dominique Pelle) +Files: src/screen.c + +Patch 7.2.281 +Problem: 'cursorcolumn' highlighting is wrong in diff mode. +Solution: Adjust the column computation. (Lech Lorens) +Files: src/screen.c + +Patch 7.2.282 +Problem: A fold can't be closed. +Solution: Initialize fd_small to MAYBE. (Lech Lorens) +Files: src/fold.c + +Patch 7.2.283 +Problem: Changing font while the window is maximized doesn't keep the + window maximized. +Solution: Recompute number of lines and columns after changing font. (James + Vega) +Files: src/gui_gtk_x11.c + +Patch 7.2.284 +Problem: When editing the same buffer in two windows, one with folding, + display may be wrong after changes. +Solution: Call set_topline() to take care of side effects. (Lech Lorens) +Files: src/misc1.c + +Patch 7.2.285 (after 7.2.169) +Problem: CTRL-U in Insert mode also deletes indent. (Andrey Voropaev) +Solution: Fix mistake made in patch 7.2.169. +Files: src/edit.c + +Patch 7.2.286 (after 7.2.269) +Problem: The "--startuptime=<file>" argument is not consistent with other + arguments. +Solution: Use "--startuptime <file>". Added the +startuptime feature. +Files: runtime/doc/eval.txt, runtime/doc/starting.txt, + runtime/doc/various.txt, src/eval.c, src/main.c, src/version.c + +Patch 7.2.287 +Problem: Warning from gcc 3.4 about uninitialized variable. +Solution: Move assignment outside of #ifdef. +Files: src/if_perl.xs + +Patch 7.2.288 +Problem: Python 2.6 pyconfig.h redefines macros. +Solution: Undefine the macros before including pyconfig.h. +Files: src/if_python.c + +Patch 7.2.289 +Problem: Checking wrong struct member. +Solution: Change tb_buf to tb_noremap. (Dominique Pelle) +Files: src/getchar.c + +Patch 7.2.290 +Problem: Not freeing memory from ":lmap", ":xmap" and ":menutranslate". +Solution: Free the memory when exiting. (Dominique Pelle) +Files: src/misc2.c + +Patch 7.2.291 +Problem: Reading uninitialised memory in arabic mode. +Solution: Use utfc_ptr2char_len() rather than utfc_ptr2char(). (Dominique + Pelle) +Files: src/screen.c + +Patch 7.2.292 +Problem: Block right-shift doesn't work properly with multibyte encoding + and 'list' set. +Solution: Add the missing "else". (Lech Lorens) +Files: src/ops.c + +Patch 7.2.293 +Problem: When setting 'comments' option it may be used in a wrong way. +Solution: Don't increment after skipping over digits. (Yukihiro Nakadaira) +Files: src/misc1.c + +Patch 7.2.294 +Problem: When using TEMPDIRS dir name could get too long. +Solution: Overwrite tail instead of appending each time. Use mkdtemp() when + available. (James Vega) +Files: src/auto/configure, src/config.h.in, src/configure.in, src/fileio.c + +Patch 7.2.295 +Problem: When using map() on a List the index is not known. +Solution: Set v:key to the index. (Hari Krishna Dara) +Files: runtime/doc/eval.txt, src/eval.c + +Patch 7.2.296 +Problem: Help message about startuptime is wrong. (Dominique Pelle) +Solution: Remove the equal sign. +Files: src/main.c + +Patch 7.2.297 +Problem: Reading freed memory when writing ":reg" output to a register. + (Dominique Pelle) +Solution: Skip the register being written to. +Files: src/ops.c + +Patch 7.2.298 +Problem: ":vimgrep" crashes when there is an autocommand that sets a + window-local variable. +Solution: Initialize the w: hashtab for re-use. (Yukihiro Nakadaira) +Files: src/fileio.c + +Patch 7.2.299 +Problem: Crash when comment middle is longer than start. +Solution: Fix size computation. (Lech Lorens) +Files: src/misc1.c + +Patch 7.2.300 +Problem: Vim doesn't close file descriptors when forking and executing + another command, e.g., ":shell". +Solution: Use FD_CLOEXEC when available. (James Vega) +Files: auto/configure, src/config.h.in, src/configure.in, + src/ex_cmdds2.c, src/fileio.c, src/memfile.c, src/memline.c + +Patch 7.2.301 +Problem: Formatting is wrong when 'tw' is set to a small value. +Solution: Fix it and add tests. Also fix behavior of "1" in 'fo'. (Yukihiro + Nakadaira) +Files: src/edit.c, src/testdir/Makefile, src/testdir/test68.in, + src/testdir/test68.ok, src/testdir/test69.in, + src/testdir/test69,ok + +Patch 7.2.302 (extra part of 7.2.301) +Problem: Formatting wrong with small 'tw' value. +Solution: Add build rules for tests. +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 + +Patch 7.2.303 (after 7.2.294) +Problem: Can't build on MS-Windows. +Solution: Add #ifdef around vim_settempdir(). (James Vega) +Files: src/fileio.c + +Patch 7.2.304 +Problem: Compiler warning for bad pointer cast. +Solution: Use another variable for int pointer. +Files: src/ops.c + +Patch 7.2.305 +Problem: Recursively redrawing causes a memory leak. (Dominique Pelle) +Solution: Disallow recursive screen updating. +Files: src/screen.c + +Patch 7.2.306 +Problem: shellescape("10%%", 1) only escapes first %. (Christian Brabandt) +Solution: Don't copy the character after the escaped one. +Files: src/misc2.c + +Patch 7.2.307 +Problem: Crash with a very long syntax match statement. (Guy Gur Ari) +Solution: When the offset does not fit in the two bytes available give an + error instead of continuing with invalid pointers. +Files: src/regexp.c + +Patch 7.2.308 +Problem: When using a regexp in the "\=" expression of a substitute + command, submatch() returns empty strings for further lines. + (Clockwork Jam) +Solution: Save and restore the line number and line count when calling + reg_getline(). +Files: src/regexp.c + +Patch 7.2.309 (after 7.2.308) +Problem: Warning for missing function prototype. (Patrick Texier) +Solution: Add the prototype. +Files: src/regexp.c + +Patch 7.2.310 +Problem: When a filetype plugin in ~/.vim/ftdetect uses ":setfiletype" and + the file starts with a "# comment" it gets "conf" filetype. +Solution: Check for "conf" filetype after using ftdetect plugins. +Files: runtime/filetype.vim + +Patch 7.2.311 +Problem: Can't compile with FreeMiNT. +Solution: Change #ifdef for limits.h. (Alan Hourihane) +Files: src/fileio.c + +Patch 7.2.312 +Problem: iconv() returns an invalid character sequence when conversion + fails. It should return an empty string. (Yongwei Wu) +Solution: Be more strict about invalid characters in the input. +Files: src/mbyte.c + +Patch 7.2.313 +Problem: Command line completion doesn't work after "%:h" and similar. +Solution: Expand these items before doing the completion. +Files: src/ex_getln.c, src/misc1.c, src/proto/misc1.pro + +Patch 7.2.314 +Problem: Missing function in small build. +Solution: Always include concat_str. +Files: src/misc1.c + +Patch 7.2.315 +Problem: Python libs can't be found on 64 bit system. +Solution: Add lib64 to the list of directories. (Michael Henry) +Files: src/auto/configure, src/configure.in + +Patch 7.2.316 +Problem: May get multiple _FORTIFY_SOURCE arguments. (Tony Mechelynck) +Solution: First remove all these arguments and then add the one we want. + (Dominique Pelle) +Files: src/auto/configure, src/configure.in + +Patch 7.2.317 +Problem: Memory leak when adding a highlight group with unprintable + characters, resulting in E669. +Solution: Free the memory. And fix a few typos. (Dominique Pelle) +Files: src/syntax.c + +Patch 7.2.318 +Problem: Wrong locale value breaks floating point numbers for gvim. +Solution: Set the locale again after doing GUI inits. (Dominique Pelle) +Files: src/main.c + +Patch 7.2.319 +Problem: Motif: accessing freed memory when cancelling font dialog. +Solution: Destroy the widget only after accessing it. (Dominique Pelle) +Files: src/gui_xmdlg.c + +Patch 7.2.320 +Problem: Unused function in Mzscheme interface. +Solution: Remove the function and what depends on it. (Dominique Pelle) +Files: src/if_mzsch.c, src/proto/if_mzsch.pro + +Patch 7.2.321 +Problem: histadd() and searching with "*" fails to add entry to history + when it is empty. +Solution: Initialize the history. (Lech Lorens) +Files: src/eval.c, src/normal.c + +Patch 7.2.322 +Problem: Wrong indenting in virtual replace mode with CTRL-Y below a short + line. +Solution: Check for character to be NUL. (suggested by Lech Lorens) +Files: src/edit.c + +Patch 7.2.323 (extra) +Problem: Balloon evaluation crashes on Win64. +Solution: Change pointer types. (Sergey Khorev) +Files: src/gui_w32.c + +Patch 7.2.324 +Problem: A negative column argument in setpos() may cause a crash. +Solution: Check for invalid column number. (James Vega) +Files: src/eval.c, src/misc2.c + +Patch 7.2.325 +Problem: A stray "w" in the startup vimrc file causes the edited file to be + replaced with an empty file. (Stone Kang). +Solution: Do not write a buffer when it has never been loaded. +Files: src/fileio.c + +Patch 7.2.326 +Problem: Win32: $HOME doesn't work when %HOMEPATH% is not defined. +Solution: Use "\" for %HOMEPATH% when it is not defined. +Files: src/misc1.c + +Patch 7.2.327 +Problem: Unused functions in Workshop. +Solution: Add "#if 0" and minor cleanup. (Dominique Pelle) +Files: src/workshop.c, src/integration.c, src/integration.h + +Patch 7.2.328 +Problem: has("win64") does not return 1 on 64 bit MS-Windows version. +Solution: Also check for _WIN64 besides WIN64. +Files: src/eval.c + +Patch 7.2.329 +Problem: "g_" doesn't position cursor correctly when in Visual mode and + 'selection' is "exclusive". (Ben Fritz) +Solution: Call adjust_for_sel(). +Files: src/normal.c + +Patch 7.2.330 +Problem: Tables for Unicode case operators are outdated. +Solution: Add a Vim script for generating the tables. Include tables for + Unicode 5.2. +Files: runtime/tools/README.txt, runtime/tools/unicode.vim, src/mbyte.c + +Patch 7.2.331 +Problem: Can't interrupt "echo list" for a very long list. +Solution: Call line_breakcheck() in list_join(). +Files: src/eval.c + +Patch 7.2.332 +Problem: Crash when spell correcting triggers an autocommand that reloads + the buffer. +Solution: Make a copy of the line to be modified. (Dominique Pelle) +Files: src/spell.c + +Patch 7.2.333 +Problem: Warnings from static code analysis. +Solution: Small changes to various lines. (Dominique Pelle) +Files: src/buffer.c, src/edit.c, src/ex_getln.c, src/fileio.c, + src/if_cscope.c, src/netbeans.c, src/ops.c, src/quickfix.c, + src/syntax.c, src/ui.c + +Patch 7.2.334 +Problem: Postponing keys in Netbeans interface does not work properly. +Solution: Store the key string instead of the number. Avoid an infinite + loop. (Mostly by Xavier de Gaye) +Files: src/netbeans.c, src/proto/netbeans.pro + +Patch 7.2.335 +Problem: The CTRL-] command escapes too many characters. +Solution: Use a different list of characters to be escaped. (Sergey Khorev) +Files: src/normal.c + +Patch 7.2.336 +Problem: MzScheme interface can't evaluate an expression. +Solution: Add mzeval(). (Sergey Khorev) +Files: runtime/doc/eval.txt, runtime/doc/if_mzsch.txt, + runtime/doc/usr_41.txt, src/eval.c, src/if_mzsch.c, + src/proto/eval.pro, src/proto/if_mzsch.pro, + src/testdir/Make_dos.mak, src/testdir/Make_ming.mak, + src/testdir/Makefile, src/testdir/main.aap, src/testdir/test1.in, + src/testdir/test70.in, src/testdir/test70.ok + +Patch 7.2.337 +Problem: The :compiler command doesn't function properly when invoked in a + function. +Solution: Add "g:" before "current_compiler". (Yukihiro Nakadaira) +Files: src/ex_cmds2.c + +Patch 7.2.338 (after 7.2.300) +Problem: Part of FD_CLOEXEC change is missing. +Solution: Include source file skipped because of typo. +Files: src/ex_cmds2.c + +Patch 7.2.339 (after 7.2.269) +Problem: Part of --startuptime patch is missing. +Solution: Add check for time_fd. +Files: src/ex_cmds2.c + +Patch 7.2.340 +Problem: Gcc warning for condition that can never be true. (James Vega) +Solution: Use start_lvl instead flp->lvl. +Files: src/fold.c + +Patch 7.2.341 +Problem: Popup menu wraps to next line when double-wide character doesn't + fit. (Jiang Ma) +Solution: Display a ">" instead. (Dominique Pelle) +Files: src/screen.c + +Patch 7.2.342 +Problem: Popup menu displayed wrong in 'rightleft' mode when there are + multibyte characters. +Solution: Adjust the column computations. (Dominique Pelle) +Files: src/popupmnu.c + +Patch 7.2.343 (after 7.2.338) +Problem: Can't compile on Win32. +Solution: Insert the missing '|'. +Files: src/ex_cmds2.c + +Patch 7.2.344 (after 7.2.343) +Problem: Can't compile on some systems +Solution: Move the #ifdef outside of the mch_open macro. (Patrick Texier) +Files: src/ex_cmds2.c + +Patch 7.2.345 +Problem: Tab line is not updated when the value of 'bt' is changed. +Solution: Call redraw_titles(). (Lech Lorens) +Files: src/option.c + +Patch 7.2.346 +Problem: Repeating a command with @: causes a mapping to be applied twice. +Solution: Do not remap characters inserted in the typeahead buffer. (Kana + Natsuno) +Files: src/ops.c + +Patch 7.2.347 +Problem: Crash when executing <expr> mapping redefines that same mapping. +Solution: Save the values used before evaluating the expression. +Files: src/getchar.c + +Patch 7.2.348 (after 7.2.330) +Problem: Unicode double-width characters are not up-to date. +Solution: Produce the double-width table like the others. +Files: runtime/tools/unicode.vim, src/mbyte.c + +Patch 7.2.349 +Problem: CTRL-W gf doesn't put the new tab in the same place as "tab split" + and "gf". (Tony Mechelynck) +Solution: Store the tab number in cmdmod.tab. +Files: src/window.c + +Patch 7.2.350 +Problem: Win32: When changing font the window may jump from the secondary + to the primary screen. (Michael Wookey) +Solution: When the screen position was negative don't correct it to zero. +Files: src/gui.c + +Patch 7.2.351 (after 7.2.347) +Problem: Can't build with some compilers. +Solution: Move the #ifdef outside of a macro. Cleanup the code. +Files: src/getchar.c + +Patch 7.2.352 (extra) +Problem: Win64: Vim doesn't work when cross-compiled with MingW libraries. +Solution: Always return TRUE for the WM_NCCREATE message. (Andy Kittner) +Files: src/gui_w48.c + +Patch 7.2.353 +Problem: No command line completion for ":profile". +Solution: Complete the subcommand and file name. +Files: src/ex_docmd.c, src/ex_cmds2.c, src/ex_getln.c, + src/proto/ex_cmds2.pro, src/vim.h + +Patch 7.2.354 +Problem: Japanese single-width double-byte characters not handled correctly. +Solution: Put 0x8e in ScreenLines[] and the second byte in ScreenLines2[]. + (partly by Kikuchan) +Files: src/screen.c + +Patch 7.2.355 +Problem: Computing the cursor column in validate_cursor_col() is wrong when + line numbers are used and 'n' is not in 'cpoptions', causing the + popup menu to be positioned wrong. +Solution: Correctly use the offset. (partly by Dominique Pelle) +Files: src/move.c + +Patch 7.2.356 +Problem: When 'foldmethod' is changed not all folds are closed as expected. +Solution: In foldUpdate() correct the start position and reset fd_flags when + w_foldinvalid is set. (Lech Lorens) +Files: src/fold.c + +Patch 7.2.357 +Problem: When changing 'fileformat' from/to "mac" and there is a CR in the + text the display is wrong. +Solution: Redraw the text when 'fileformat' is changed. (Ben Schmidt) +Files: src/option.c + +Patch 7.2.358 +Problem: Compiler warnings on VMS. (Zoltan Arpadffy) +Solution: Pass array itself instead its address. Return a value. +Files: src/gui_gtk_x11.c, src/os_unix.c + +Patch 7.2.359 +Problem: Crash when using the Netbeans join command. +Solution: Make sure the ml_flush_line() function is not used recursively. + (Xavier de Gaye) +Files: src/memline.c + +Patch 7.2.360 +Problem: Ruby on MS-Windows: can't use sockets. +Solution: Call NtInitialize() during initialization. (Ariya Mizutani) +Files: src/if_ruby.c + +Patch 7.2.361 +Problem: Ruby 1.9 is not supported. +Solution: Add Ruby 1.9 support. (Masaki Suketa) +Files: src/Makefile, src/auto/configure, src/configure.in, src/if_ruby.c + +Patch 7.2.362 (extra, after 7.2.352) +Problem: Win64: Vim doesn't work when cross-compiled with MingW libraries. +Solution: Instead of handling WM_NCCREATE, create wide text area window + class if the parent window iw side. (Sergey Khorev) +Files: src/gui_w32.c, src/gui_w48.c + +Patch 7.2.363 +Problem: Can't dynamically load Perl 5.10. +Solution: Add the function Perl_croak_xs_usage. (Sergey Khorev) +Files: src/if_perl.xs + +Patch 7.2.364 (extra) +Problem: Can't build gvimext.dll on Win 7 x64 using MinGW (John Marriott) +Solution: Check if _MSC_VER is defined. (Andy Kittner) +Files: src/GvimExt/gvimext.h + +Patch 7.2.365 (extra) +Problem: MS-Windows with MingW: "File->Save As" does not work. (John + Marriott) +Solution: Correctly fill in structure size. (Andy Kittner) +Files: src/gui_w48.c + +Patch 7.2.366 +Problem: CTRL-B doesn't go back to the first line of the buffer. +Solution: Avoid an overflow when adding MAXCOL. +Files: src/move.c + +Patch 7.2.367 +Problem: "xxd -r -p" doesn't work as documented. +Solution: Skip white space. (James Vega) +Files: src/xxd/xxd.c + +Patch 7.2.368 (after 7.2.361) +Problem: Ruby interface: Appending line doesn't work. (Michael Henry) +Solution: Reverse check for NULL line. (James Vega) +Files: src/if_ruby.c + +Patch 7.2.369 +Problem: Error message is not easy to understand. +Solution: Add quotes. (SungHyun Nam) +Files: src/ex_cmds2.c + +Patch 7.2.370 (after 7.2.356) +Problem: A redraw may cause folds to be closed. +Solution: Revert part of the previous patch. Add a test. (Lech Lorens) +Files: src/diff.c, src/fold.c, src/option.c, src/testdir/test45.in, + src/testdir/test45.ok + +Patch 7.2.371 +Problem: Build problems on Tandem NonStop. +Solution: A few changes to #ifdefs (Joachim Schmitz) +Files: src/auto/configure, src/configure.in, src/config.h.in, src/vim.h, + src/if_cscope.c, src/osdef1.h.in, src/tag.c + +Patch 7.2.372 (extra) +Problem: Cross-compiling GvimExt and xxd doesn't work. +Solution: Change the build files. (Markus Heidelberg) +Files: src/INSTALLpc.txt, src/GvimExt/Make_ming.mak, src/Make_cyg.mak, + src/Make_ming.mak, src/xxd/Make_cyg.mak + +Patch 7.2.373 +Problem: Gcc 4.5 adds more error messages. (Chris Indy) +Solution: Update default 'errorformat'. +Files: src/option.h + +Patch 7.2.374 +Problem: Ruby eval() doesn't understand Vim types. +Solution: Add the vim_to_ruby() function. (George Gensure) +Files: src/eval.c, src/if_ruby.c + +Patch 7.2.375 +Problem: ml_get errors when using ":bprevious" in a BufEnter autocmd. + (Dominique Pelle) +Solution: Clear w_valid when entering another buffer. +Files: src/buffer.c + +Patch 7.2.376 +Problem: ml_get error when using SiSU syntax. (Nathan Thomas) +Solution: If the match ends below the last line move it to the end of the + last line. +Files: src/syntax.c + +Patch 7.2.377 (extra, after 7.2.372) +Problem: Misplaced assignment. Duplicate build line for gvimext.dll. +Solution: Move setting CROSS_COMPILE to before ifneq. Remove the wrong + build line. (Markus Heidelberg) +Files: src/Make_ming.mak + +Patch 7.2.378 +Problem: C function declaration indented too much. (Rui) +Solution: Don't see a line containing { or } as a type. (Matt Wozniski) +Files: src/misc1.c + +Patch 7.2.379 +Problem: 'eventignore' is set to an invalid value inside ":doau". (Antony + Scriven) +Solution: Don't include the leading comma when the option was empty. +Files: src/fileio.c + +Patch 7.2.380 (after 7.2.363) +Problem: Perl interface builds with 5.10.1 but not with 5.10.0. +Solution: Change the #ifdefs. (Sergey Khorev) +Files: src/if_perl.xs + +Patch 7.2.381 +Problem: No completion for :behave. +Solution: Add :behave completion. Minor related fixes. (Dominique Pelle) +Files: src/ex_docmd.c, src/ex_getln.c, src/proto/ex_docmd.pro, src/vim.h + +Patch 7.2.382 +Problem: Accessing freed memory when closing the cmdline window when + 'bufhide' is set to "wipe". +Solution: Check if the buffer still exists before invoking close_buffer() + (Dominique Pelle) +Files: src/ex_getln.c + +Patch 7.2.383 +Problem: Vim doesn't build cleanly with MSVC 2010. +Solution: Change a few types. (George Reilly) +Files: src/ex_cmds2.c, src/if_python.c, src/syntax.c + +Patch 7.2.384 (extra) +Problem: Vim doesn't build properly with MSVC 2010. +Solution: Add the nmake version to the build file. (George Reilly) +Files: src/Make_mvc.mak, src/testdir/Make_dos.mak + +Patch 7.2.385 +Problem: When in the command line window dragging status line only works + for last-but-one window. (Jean Johner) +Solution: Remove the code that disallows this. +Files: src/ui.c + +Patch 7.2.386 +Problem: Focus hack for KDE 3.1 causes problems for other window managers. +Solution: Remove the hack. (forwarded by Joel Bradshaw) +Files: src/gui_gtk.c + +Patch 7.2.387 +Problem: Ruby with MingW still doesn't build all versions. +Solution: More #ifdefs for the Ruby code. (Sergey Khorev) +Files: src/if_ruby.c + +Patch 7.2.388 (extra part of 7.2.387) +Problem: Ruby with MingW still doesn't build all versions. +Solution: Different approach to build file. (Sergey Khorev) +Files: src/Make_ming.mak + +Patch 7.2.389 +Problem: synIDattr() cannot return the font. +Solution: Support the "font" argument. (Christian Brabandt) +Files: runtime/doc/eval.txt, src/eval.c, src/syntax.c + +Patch 7.2.390 +Problem: In some situations the popup menu can be displayed wrong. +Solution: Remove the popup menu if the cursor moved. (Lech Lorens) +Files: src/edit.c + +Patch 7.2.391 +Problem: Internal alloc(0) error when doing "CTRL-V $ c". (Martti Kuparinen) +Solution: Fix computations in getvcol(). (partly by Lech Lorens) +Files: src/charset.c, src/memline.c + +Patch 7.2.392 +Problem: Netbeans hangs reading from a socket at the maximum block size. +Solution: Use select() or poll(). (Xavier de Gaye) +Files: src/vim.h, src/os_unixx.h, src/if_xcmdsrv.c, src/netbeans.c + +Patch 7.2.393 +Problem: Mac: Can't build with different Xcode developer tools directory. +Solution: make "Developer" directory name configurable. (Rainer Muller) +Files: src/configure.in, src/auto/configure + +Patch 7.2.394 +Problem: .lzma and .xz files are not supported. +Solution: Recognize .lzma and .xz files so that they can be edited. +Files: runtime/plugin/gzip.vim + +Patch 7.2.395 +Problem: In help CTRL=] on g?g? escapes the ?, causing it to fail. (Tony + Mechelynck) +Solution: Don't escape ? for a help command. (Sergey Khorev) +Files: src/normal.c + +Patch 7.2.396 +Problem: Get E38 errors. (Dasn) +Solution: Set cursor to line 1 instead of 0. (Dominique Pelle) +Files: src/popupmnu.c + +Patch 7.2.397 +Problem: Redundant check for w_lines_valid. +Solution: Remove the if. (Lech Lorens) +Files: src/fold.c + +Patch 7.2.398 +Problem: When moving windows the cursor ends up in the wrong line. +Solution: Set the window width and height properly. (Lech Lorens) +Files: src/window.c + +Patch 7.2.399 (extra, after 7.2.388) +Problem: Cannot compile on MingW. +Solution: Move ifneq to separate line. (Vlad Sandrini, Dominique Pelle) +Files: src/Make_ming.mak + +Patch 7.2.400 (after 7.2.387) +Problem: Dynamic Ruby is not initialised properly for version 1.9.1. + Ruby cannot create strings from NULL. +Solution: Cleanup #ifdefs. Handle NULL like an empty string. Add + ruby_init_stack. (Sergey Khorev) +Files: src/if_ruby.c + +Patch 7.2.401 +Problem: ":e dir<Tab>" with 'wildmode' set to "list" doesn't highlight + directory names with a space. (Alexandre Provencio) +Solution: Remove the backslash before checking if the name is a directory. + (Dominique Pelle) +Files: src/ex_getln.c + +Patch 7.2.402 +Problem: This gives a #705 error: let X = function('haslocaldir') + let X = function('getcwd') +Solution: Don't give E705 when the name is found in the hashtab. (Sergey + Khorev) +Files: src/eval.c + +Patch 7.2.403 (after 7.2.400) +Problem: Compiler warning for pointer type. (Tony Mechelynck) +Solution: Move type cast to the right place. +Files: src/if_ruby.c + +Patch 7.2.404 +Problem: Pointers for composing characters are not properly initialized. +Solution: Compute the size of the pointer, not what it points to. (Yukihiro + Nakadaira) +Files: src/screen.c + +Patch 7.2.405 +Problem: When built with small features the matching text is not + highlighted for ":s/pat/repl/c". +Solution: Remove the #ifdef for IncSearch. (James Vega) +Files: src/syntax.c + +Patch 7.2.406 +Problem: Patch 7.2.119 introduces uninit mem read. (Dominique Pelle) +Solution: Only used ScreenLinesC when ScreenLinesUC is not zero. (Yukihiro + Nakadaira) Also clear ScreenLinesC when allocating. +Files: src/screen.c + +Patch 7.2.407 +Problem: When using an expression in ":s" backslashes in the result are + dropped. (Sergey Goldgaber, Christian Brabandt) +Solution: Double backslashes. +Files: src/regexp.c + +Patch 7.2.408 +Problem: With ":g/the/s/foo/bar/" the '[ and '] marks can be set to a line + that was not changed. +Solution: Only set '[ and '] marks when a substitution was done. +Files: src/ex_cmds.c + +Patch 7.2.409 +Problem: Summary of number of substitutes is incorrect for ":folddo". (Jean + Johner) +Solution: Reset sub_nsubs and sub_nlines in global_exe(). +Files: src/ex_cmds.c + +Patch 7.2.410 +Problem: Highlighting directories for completion doesn't work properly. +Solution: Don't halve backslashes when not needed, expanded "~/". + (Dominique Pelle) +Files: src/ex_getln.c + +Patch 7.2.411 +Problem: When parsing 'cino' a comma isn't skipped properly. +Solution: Skip the comma. (Lech Lorens) +Files: src/misc1.c + +Patch 7.2.412 +Problem: [ or ] followed by mouse click doesn't work. +Solution: Reverse check for key being a mouse event. (Dominique Pelle) +Files: src/normal.c + +Patch 7.2.413 +Problem: Large file support is incorrect. +Solution: Add AC_SYS_LARGEFILE to configure. (James Vega) +Files: src/configure.in, src/config.h.in, src/auto/configure + +Patch 7.2.414 +Problem: CTRL-K <space> <space> does not produce 0xa0 as expected. (Tony + Mechelynck) +Solution: Remove the Unicode range 0xe000 - 0xefff from digraphs, these are + not valid characters. +Files: src/digraph.c + +Patch 7.2.415 +Problem: Win32: Can't open a remote file when starting Vim. +Solution: Don't invoke cygwin_conv_path() for URLs. (Tomoya Adachi) +Files: src/main.c + +Patch 7.2.416 +Problem: Logtalk.dict is not installed. +Solution: Add it to the install target. (Markus Heidelberg) +Files: src/Makefile + +Patch 7.2.417 +Problem: When 'shell' has an argument with a slash then 'shellpipe' is not + set properly. (Britton Kerin) +Solution: Assume there are no spaces in the path, arguments follow. +Files: src/option.c + +Patch 7.2.418 +Problem: Vim tries to set the background or foreground color in a terminal + to -1. (Graywh) Happens with ":hi Normal ctermbg=NONE". +Solution: When resetting the foreground or background color don't set the + color, let the clear screen code do that. +Files: src/syntax.c + +Patch 7.2.419 +Problem: Memory leak in Motif when clicking on "Search Vim Help". +Solution: Free string returned by XmTextGetString(). (Dominique Pelle) +Files: src/gui_motif.c + +Patch 7.2.420 +Problem: ":argedit" does not accept "++enc=utf8" as documented. (Dominique + Pelle) +Solution: Add the ARGOPT flag to ":argedit". +Files: src/ex_cmds.h + +Patch 7.2.421 +Problem: Folds are sometimes not updated properly and there is no way to + force an update. +Solution: Make "zx" and "zX" recompute folds (suggested by Christian + Brabandt) +Files: src/normal.c + +Patch 7.2.422 +Problem: May get E763 when using spell dictionaries. +Solution: Avoid utf-8 case folded character to be truncated to 8 bits and + differ from latin1. (Dominique Pelle) +Files: src/spell.c + +Patch 7.2.423 +Problem: Crash when assigning s: to variable. (Yukihiro Nakadaira) +Solution: Make ga_scripts contain pointer to scriptvar_T instead of + scriptvar_T itself. (Dominique Pelle) +Files: src/eval.c + +Patch 7.2.424 +Problem: ":colorscheme" without an argument doesn't do anything. +Solution: Make it echo the current color scheme name. (partly by Christian + Brabandt) +Files: runtime/doc/syntax.txt, src/ex_cmds.h, src/ex_docmd.c + +Patch 7.2.425 +Problem: Some compilers complain about fourth EX() argument. +Solution: Add cast to long_u. +Files: src/ex_cmds.h + +Patch 7.2.426 +Problem: Commas in 'langmap' are not always handled correctly. +Solution: Require commas to be backslash escaped. (James Vega) +Files: src/option.c + +Patch 7.2.427 +Problem: The swapfile is created using the destination of a symlink, but + recovery doesn't follow symlinks. +Solution: When recovering, resolve symlinks. (James Vega) +Files: src/memline.c + +Patch 7.2.428 +Problem: Using setqflist([]) to clear the error list doesn't work properly. +Solution: Set qf_nonevalid to TRUE when appropriate. (Christian Brabandt) +Files: src/quickfix.c + +Patch 7.2.429 +Problem: A file that exists but access is denied may result in a "new file" + message. E.g. when its directory is unreadable. +Solution: Specifically check for ENOENT to decide a file doesn't exist. + (partly by James Vega) +Files: src/fileio.c + +Patch 7.2.430 +Problem: The ++bad argument is handled wrong, resulting in an invalid + memory access. +Solution: Use the bad_char field only for the replacement character, add + bad_char_idx to store the position. (Dominique Pelle) +Files: src/eval.c, src/ex_cmds.h, src/ex_docmd.c + +Patch 7.2.431 +Problem: ":amenu" moves the cursor when in Insert mode. +Solution: Use CTRL-\ CTRL-O instead of CTRL-O. (Christian Brabandt) +Files: src/menu.c + +Patch 7.2.432 +Problem: When menus are translated they can only be found by the translated + name. That makes ":emenu" difficult to use. +Solution: Store the untranslated name and use it for completion and :emenu. + (Liang Peng (Bezetek James), Edward L. Fox) +Files: src/menu.c, src/structs.h + +Patch 7.2.433 +Problem: Can't use cscope with QuickFixCmdPre and QuickFixCmdPost. +Solution: Add cscope support for these autocmd events. (Bryan Venteicher) +Files: runtime/doc/autocmd.txt, src/if_cscope.c + +Patch 7.2.434 (after 7.2.432) +Problem: Compilation fails without the multi-lang feature. +Solution: Add #ifdefs. (John Marriott) +Files: src/menu.c + +Patch 7.2.435 (after 7.2.430) +Problem: Crash when using bad_char_idx uninitialized. (Patrick Texier) +Solution: Don't use bad_char_idx, reproduce the ++bad argument from bad_char. +Files: src/eval.c, src/ex_cmds.h, src/ex_docmd.c + +Patch 7.2.436 +Problem: Reproducible crash in syntax HL. (George Reilly, Dominique Pelle) +Solution: Make sst_stacksize an int instead of short. (Dominique Pelle) +Files: src/structs.h + +Patch 7.2.437 (after 7.2.407) +Problem: When "\\\n" appears in the expression result the \n doesn't result + in a line break. (Andy Wokula) +Solution: Also replace a \n after a backslash into \r. +Files: src/regexp.c + +Patch 7.2.438 (after 7.2.427) +Problem: "vim -r" crashes. +Solution: Don't use NULL pointer argument. +Files: src/memline.c + +Patch 7.2.439 +Problem: Invalid memory access when doing thesaurus completion and + 'infercase' is set. +Solution: Use the minimal length of completed word and replacement. + (Dominique Pelle) +Files: src/edit.c + +Patch 7.2.440 +Problem: Calling a function through a funcref, where the function deletes + the funcref, leads to an invalid memory access. +Solution: Make a copy of the function name. (Lech Lorens) +Files: src/eval.c, src/testdir/test34.in, src/testdir/test34.ok + +Patch 7.2.441 +Problem: When using ":earlier" undo information may be wrong. +Solution: When changing alternate branches also adjust b_u_oldhead. +Files: src/undo.c + +Patch 7.2.442 (after 7.2.201) +Problem: Copy/paste with OpenOffice doesn't work. +Solution: Do not offer the HTML target when it is not supported. (James + Vega) +Files: src/gui_gtk_x11.c, src/option.c, src/proto/gui_gtk_x11.pro + +Patch 7.2.443 +Problem: Using taglist() on a tag file with duplicate fields generates an + internal error. (Peter Odding) +Solution: Check for duplicate field names. +Files: src/eval.c, src/proto/eval.pro, src/tag.c + +Patch 7.2.444 (after 7.2.442) +Problem: Can't build with GTK 1, gtk_selection_clear_targets() is not + available. (Patrick Texier) +Solution: Don't change the targets for GTK 1, set them once. +Files: src/gui_gtk_x11.c, src/option.c + +Patch 7.2.445 +Problem: Crash when using undo/redo and a FileChangedRO autocmd event that + reloads the buffer. (Dominique Pelle) +Solution: Do not allow autocommands while performing and undo or redo. +Files: src/misc1.c, src/undo.c + +Patch 7.2.446 +Problem: Crash in GUI when closing the last window in a tabpage. (ryo7000) +Solution: Remove the tabpage from the list before freeing the window. +Files: src/window.c + +When writing a file, switching tab pages and selecting a word the file write +message would be displayed again. This happened in Insert mode and with +'cmdheight' set to 2. + +When using ":lang" to set a locale that uses a comma for decimal separator and +using GTK floating point numbers stop working. Use gtk_disable_setlocale(). +(James Vega) + +"g8" didn't produce the right value on a NUL. (Dominique Pelle) + +Use BASEMODLIBS instead of MODLIBS for Python configuration to pick up the +right compiler flags. (Michael Bienia) + +Window title was not updated after dropping a file on Vim. (Hari G) + +synstack() did not return anything when just past the end of the line. Useful +when using the cursor position in Insert mode. + +When entering a digraph or special character after a line that fits the window +the '?' or '^' on the next line is not redrawn. (Ian Kelling) + +Composing characters in |:s| substitute text were dropped. + +|exists()| was causing an autoload script to be loaded. + +Filter out -pthread for cproto. + +Make CTRL-L in command line mode respect 'ignorecase' and 'smartcase'. (Martin +Toft) + +Spell menu moved the cursor, causing Copy not to work. Spell replacement +didn't work in 'compatible' mode. + +Various small fixes from Dominique Pelle. + +Fix that :mksession may generate "2argu" even though there is no such +argument. (Peter Odding) + +Fixes for time in clipboard request. Also fix ownership. (David Fries) + +Fixed completion of file names with '%' and '*'. + +Fixed MSVC makefile use of /Wp64 flag. + +Correct use of long instead of off_t for file size. (James Vega) + +Add a few #ifdefs to exclude functions that are not used. (Dominique Pelle) + +Remove old and unused method to allocate memory for undo. + +Fix definition of UINT_PTR for 64 bit systems. + +Some versions of Ruby redefine rb_str_new2 to rb_str_new_cstr. + +Window title not updated after file dropped. + +Fixed crash for ":find" completion, might also happen in other path expansion +usage. + +When 'searchhl' causes a hang make CTRL-C disable 'searchhl'. + +When resetting both 'title' and 'icon' the title would be set after a shell +command. + +Reset 'title' and 'icon' in test47 to avoid the xterm title getting messed up. + +Fix for compiler warning about function prototype in pty.c. + +Added 'window' to the options window. + +Fixed: errors for allocating zero bytes when profiling an empty function. + +Remove -arch flag from build flags for Perl. (Bjorn Wickler) + +Fix 'autochdir' not showing up in :options window. (Dominique Pelle) + +Fix: test 69 didn't work on MS-Windows. Test 72 beeped too often. + +Avoid illegal memory access in spell suggestion. (Dominique Pelle) +Fix: crash in spell checking with a 0x300 character. + +Avoid that running tests changes viminfo. + +Fix: changing case of a character removed combining characters. +Fixed: CTRL-R in Insert mode doesn't insert composing characters. + +Added the WOW64 flag to OLE registration, for 64 bit Windows systems. + +Various fixes for coverity warnings. + +Fix compile warnings, esp. for 64-bit systems. (Mike Williams) + +Fix: :redir to a dictionary that is changed before ":redir END" causes a +memory access error. + +Fix: terminal title not properly restored when there are multibyte +characters. (partly by James Vega) + +Set 'wrapscan' when checking the .po files. (Mike Williams) + +Win32: Put quotes around the gvim.exe path for the "Open with" menu entry. + +On MS-Windows sometimes files with number 4913 or higher are left behind. + +'suffixesadd' was used for finding tags file. + +Removed unused code. + +Improved positioning of combining characters in GTK. + +Made test 11 pass when there is no gzip program. (John Beckett) + +Changed readfile() to ignore byte order marks, unless in binary mode. + +On MS-Windows completion of shell commands didn't work. + +An unprintable multibyte character at the start of the screen line caused the +following text to be drawn at the wrong position. + +Got ml_get errors when using undo with 'virtualedit'. + +Call gui_mch_update() before triggering GuiEnter autocmd. (Ron Aaron) + +Unix "make install" installed a few Amiga .info files. + +Disallow setting 'ambiwidth' to "double" when 'listchars' or 'fillchars' +contains a character that would become double width. + +Set 'wrapscan' when checking the .po files. (Mike Williams) + +Fixed: using expression in command line may cause a crash. + +Avoid warnings from the clang compiler. (Dominique Pelle) + +Fix: Include wchar.h in charset.c for towupper(). + +Fixed: Using ":read file" in an empty buffer when 'compatible' is set caused +an error. Was caused by patch 7.2.132. + +Make the references to features in the help more consistent. (Sylvain Hitier) + +============================================================================== +VERSION 7.4 *version-7.4* *version7.4* *vim-7.4* + +This section is about improvements made between version 7.3 and 7.4. + +This release has hundreds of bug fixes and there are a few new features. The +most notable new features are: + +- New regexp engine |new-regexp-engine| +- A more pythonic Python interface |better-python-interface| + + +New regexp engine *new-regexp-engine* +----------------- + +What is now called the "old" regexp engine uses a backtracking algorithm. It +tries to match the pattern with the text in one way, and when that fails it +goes back and tries another way. This works fine for simple patterns, but +complex patterns can be very slow on longer text. + +The new engine uses a state machine. It tries all possible alternatives at +the current character and stores the possible states of the pattern. This is +a bit slower for simple patterns, but much faster for complex patterns and +long text. + +Most notably, syntax highlighting for Javascript and XML files with long lines +is now working fine. Previously Vim could get stuck. + +More information here: |two-engines| + + +Better Python interface *better-python-interface* +----------------------- + +Added |python-bindeval| function. Unlike |python-eval| this one returns +|python-Dictionary|, |python-List| and |python-Function| objects for +dictionaries lists and functions respectively in place of their Python +built-in equivalents (or None if we are talking about function references). + For simple types this function returns Python built-in types and not only +Python `str()` like |python-eval| does. On Python 3 it will return `bytes()` +objects in place of `str()` ones avoiding possibility of UnicodeDecodeError. + Interface of new objects mimics standard Python `dict()` and `list()` +interfaces to some extent. Extent will be improved in the future. + +Added special |python-vars| objects also available for |python-buffer| and +|python-window|. They ease access to Vim script variables from Python. + +Now you no longer need to alter `sys.path` to import your module: special +hooks are responsible for importing from {rtp}/python2, {rtp}/python3 and +{rtp}/pythonx directories (for Python 2, Python 3 and both respectively). +See |python-special-path|. + +Added possibility to work with |tabpage|s through |python-tabpage| object. + +Added automatic conversion of Vim errors and exceptions to Python +exceptions. + +Changed the behavior of the |python-buffers| object: it now uses buffer numbers +as keys in place of the index of the buffer in the internal buffer list. +This should not break anything as the only way to get this index was +iterating over |python-buffers|. + +Added |:pydo| and |:py3do| commands. + +Added the |pyeval()| and |py3eval()| functions. + +Now in all places which previously accepted `str()` objects, `str()` and +`unicode()` (Python 2) or `bytes()` and `str()` (Python 3) are accepted. + +|python-window| has gained `.col` and `.row` attributes that are currently +the only way to get internal window positions. + +Added or fixed support for `dir()` in Vim Python objects. + + +Changed *changed-7.4* +------- + +Old Python versions (≤2.2) are no longer supported. Building with them did +not work anyway. + +Options: + Added ability to automatically save the selection into the system + clipboard when using non-GUI version of Vim (autoselectplus in + 'clipboard'). Also added ability to use the system clipboard as + default register (previously only primary selection could be used). + (Ivan Krasilnikov, Christian Brabandt, Bram Moolenaar) + + Added a special 'shiftwidth' value that makes 'sw' follow 'tabstop'. + As indenting via 'indentexpr' became tricky |shiftwidth()| function + was added. Also added equivalent special value to 'softtabstop' + option. (Christian Brabandt, so8res) + + Show absolute number in number column when 'relativenumber' option is + on. Now there are four combinations with 'number' and + 'relativenumber'. (Christian Brabandt) + +Commands: + |:diffoff| now saves the local values of some settings and restores + them in place of blindly resetting them to the defaults. (Christian + Brabandt) + +Other: + Lua interface now also uses userdata bound to Vim structures. (Taro + Muraoka, Luis Carvalho) + + glob() and autocommand patterns used to work with the undocumented + "\{n,m\}" item from a regexp. "\{" is now used for a literal "{", as + this is normal in shell file patterns. Now used "\\\{n,m\}" to get + "\{n,m}" in the regexp pattern. + +Added *added-7.4* +----- + +Various syntax, indent and other plugins were added. + +Added support for |Lists| and |Dictionaries| in |viminfo|. (Christian +Brabandt) + +Functions: + Bitwise functions: |and()|, |or()|, |invert()|, |xor()|. + + Added |luaeval()| function. (Taro Muraoka, Luis Carvalho) + + Added |sha256()| function. (Tyru, Hirohito Higashi) + + Added |wildmenumode()| function. (Christian Brabandt) + + Debugging functions: |screenattr()|, |screenchar()|, |screencol()|, + |screenrow()|. (Simon Ruderich, Bram Moolenaar) + + Added ability to use |Dictionary-function|s for |sort()|ing, via + optional third argument. (Nikolay Pavlov) + + Added special |expand()| argument that expands to the current line + number. + + Made it possible to force |char2nr()| to always give unicode codepoints + regardless of current encoding. (Yasuhiro Matsumoto) + + Made it possible for functions generating file list generate |List| + and not NL-separated string. (e.g. |glob()|, |expand()|) (Christian + Brabandt) + + Functions that obtain variables from the specific window, tabpage or + buffer scope dictionary can now return specified default value in + place of empty string in case variable is not found. (|gettabvar()|, + |getwinvar()|, |getbufvar()|) (Shougo Matsushita, Hirohito Higashi) + +Autocommands: + Added |InsertCharPre| event launched before inserting character. + (Jakson A. Aquino) + + Added |CompleteDone| event launched after finishing completion in + insert mode. (idea by Florian Klein) + + Added |QuitPre| event launched when commands that can either close Vim + or only some window(s) are launched. + + Added |TextChanged| and |TextChangedI| events launched when text is + changed. + +Commands: + |:syntime| command useful for debugging. + + Made it possible to remove all signs from the current buffer using + |:sign-unplace|. (Christian Brabandt) + + Added |:language| autocompletion. (Dominique Pelle) + + Added more |:command-complete| completion types: |:behave| suboptions, + color schemes, compilers, |:cscope| suboptions, files from 'path', + |:history| suboptions, locale names, |:syntime| suboptions, user + names. (Dominique Pelle) + + Added |:map-nowait| creating mapping which when having lhs that is the + prefix of another mapping’s lhs will not allow Vim to wait for user to + type more characters to resolve ambiguity, forcing Vim to take the + shorter alternative: one with <nowait>. + +Options: + Made it possible to ignore case when completing: 'wildignorecase'. + + Added ability to delete comment leader when using |J| by `j` flag in + 'formatoptions' (|fo-table|). (Lech Lorens) + + Added ability to control indentation inside namespaces: |cino-N|. + (Konstantin Lepa) + + Added ability to control alignment inside `if` condition separately + from alignment inside function arguments: |cino-k|. (Lech Lorens) + +Other: + Improved support for cmd.exe. (Ben Fritz, Bram Moolenaar) + + Added |v:windowid| variable containing current window number in GUI + Vim. (Christian J. Robinson, Lech Lorens) + + Added rxvt-unicode and SGR mouse support. (Yiding Jia, Hayaki Saito) + + +All changes in 7.4 *fixed-7.4* +------------------ + +Patch 7.3.001 +Problem: When editing "src/main.c" and 'path' set to "./proto", + ":find e<C-D" shows ./proto/eval.pro instead of eval.pro. +Solution: Check for path separator when comparing names. (Nazri Ramliy) +Files: src/misc1.c + +Patch 7.3.002 +Problem: ":find" completion doesn't work when halfway an environment + variable. (Dominique Pelle) +Solution: Only use in-path completion when expanding file names. (Nazri + Ramliy) +Files: src/ex_docmd.c + +Patch 7.3.003 +Problem: Crash with specific BufWritePost autocmd. (Peter Odding) +Solution: Don't free the quickfix title twice. (Lech Lorens) +Files: src/quickfix.c + +Patch 7.3.004 +Problem: Crash when using very long regexp. (Peter Odding) +Solution: Reset reg_toolong. (Carlo Teubner) +Files: src/regexp.c + +Patch 7.3.005 +Problem: Crash when using undotree(). (Christian Brabandt) +Solution: Increase the list reference count. Add a test for undotree() + (Lech Lorens) +Files: src/eval.c, src/testdir/Makefile, src/testdir/test61.in + +Patch 7.3.006 +Problem: Can't build some multibyte code with C89. +Solution: Move code to after declarations. (Joachim Schmitz) +Files: src/mbyte.c, src/spell.c + +Patch 7.3.007 +Problem: Python code defines global "buffer". Re-implements a grow-array. +Solution: Use a grow-array instead of coding the same functionality. Handle + out-of-memory situation properly. +Files: src/if_py_both.h + +Patch 7.3.008 +Problem: 'cursorbind' is kept in places where 'scrollbind' is reset. +Solution: Reset 'cursorbind'. +Files: src/buffer.c, src/diff.c, src/ex_cmds.c, src/ex_cmds2.c, + src/ex_docmd.c, src/ex_getln.c, src/if_cscope.c, src/macros.h, + src/quickfix.c, src/search.c, src/tag.c, src/window.c + +Patch 7.3.009 +Problem: Win32: Crash on Windows when using a bad argument for strftime(). + (Christian Brabandt) +Solution: Use the bad_param_handler(). (Mike Williams) +Files: src/os_win32.c + +Patch 7.3.010 +Problem: Mac GUI: Missing break statements. +Solution: Add the break statements. (Dominique Pelle) +Files: src/gui_mac.c + +Patch 7.3.011 +Problem: X11 clipboard doesn't work in Athena/Motif GUI. First selection + after a shell command doesn't work. +Solution: When using the GUI use XtLastTimestampProcessed() instead of + changing a property. (partly by Toni Ronkko) + When executing a shell command disown the selection. +Files: src/ui.c, src/os_unix.c + +Patch 7.3.012 +Problem: Problems building with MingW. +Solution: Adjust the MingW makefiles. (Jon Maken) +Files: src/Make_ming.mak, src/GvimExt/Make_ming.mak + +Patch 7.3.013 +Problem: Dynamic loading with Ruby doesn't work for 1.9.2. +Solution: Handle rb_str2cstr differently. Also support dynamic loading on + Unix. (Jon Maken) +Files: src/if_ruby.c + +Patch 7.3.014 +Problem: Ending a line in a backslash inside an ":append" or ":insert" + command in Ex mode doesn't work properly. (Ray Frush) +Solution: Halve the number of backslashes, only insert a NUL after an odd + number of backslashes. +Files: src/ex_getln.c + +Patch 7.3.015 +Problem: Test is using error message that no longer exists. +Solution: Change E106 to E121. (Dominique Pelle) +Files: src/testdir/test49.vim + +Patch 7.3.016 +Problem: Netbeans doesn't work under Athena. +Solution: Support Athena, just like Motif. (Xavier de Gaye) +Files: runtime/doc/netbeans.txt, src/gui.c, src/main.c, src/netbeans.c + +Patch 7.3.017 +Problem: smatch reports errors. +Solution: Fix the reported errors. (Dominique Pelle) +Files: src/spell.c, src/syntax.c + +Patch 7.3.018 (after 7.3.012) +Problem: Missing argument to windres in MingW makefiles. +Solution: Add the argument that was wrapped in the patch. (Jon Maken) +Files: src/Make_ming.mak, src/GvimExt/Make_ming.mak + +Patch 7.3.019 +Problem: ":nbstart" can fail silently. +Solution: Give an error when netbeans is not supported by the GUI. (Xavier + de Gaye) +Files: src/netbeans.c + +Patch 7.3.020 +Problem: Cursor position wrong when joining multiple lines and + 'formatoptions' contains "a". (Moshe Kamensky) +Solution: Adjust cursor position for skipped indent. (Carlo Teubner) +Files: src/ops.c, src/testdir/test68.in, src/testdir/test68.ok + +Patch 7.3.021 +Problem: Conflict for defining Boolean in Mac header files. +Solution: Define NO_X11_INCLUDES. (Rainer Muller) +Files: src/os_macosx.m, src/vim.h + +Patch 7.3.022 +Problem: When opening a new window the 'spellcapcheck' option is cleared. +Solution: Copy the correct option value. (Christian Brabandt) +Files: src/option.c + +Patch 7.3.023 +Problem: External program may hang when it tries to write to the tty. +Solution: Don't close the slave tty until after the child exits. (Nikola + Knezevic) +Files: src/os_unix.c + +Patch 7.3.024 +Problem: Named signs do not use a negative number as intended. +Solution: Fix the numbering of named signs. (Xavier de Gaye) +Files: src/ex_cmds.c + +Patch 7.3.025 +Problem: ":mksession" does not square brackets escape file name properly. +Solution: Improve escaping of file names. (partly by Peter Odding) +Files: src/ex_docmd.c + +Patch 7.3.026 +Problem: CTRL-] in a help file doesn't always work. (Tony Mechelynck) +Solution: Don't escape special characters. (Carlo Teubner) +Files: src/normal.c + +Patch 7.3.027 +Problem: Opening a file on a network share is very slow. +Solution: When fixing file name case append "\*" to directory, server and + network share names. (David Anderson, John Beckett) +Files: src/os_win32.c + +Patch 7.3.028 (after 7.3.024) +Problem: Signs don't show up. (Charles Campbell) +Solution: Don't use negative numbers. Also assign a number to signs that + have a name of all digits to avoid using a sign number twice. +Files: src/ex_cmds.c + +Patch 7.3.029 +Problem: ":sort n" sorts lines without a number as number zero. (Beeyawned) +Solution: Make lines without a number sort before lines with a number. Also + fix sorting negative numbers. +Files: src/ex_cmds.c, src/testdir/test57.in, src/testdir/test57.ok + +Patch 7.3.030 +Problem: Cannot store Dict and List in viminfo file. +Solution: Add support for this. (Christian Brabandt) +Files: runtime/doc/options.txt, src/eval.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/main.aap, src/testdir/test74.in, + src/testdir/test74.ok + +Patch 7.3.031 +Problem: Can't pass the X window ID to another application. +Solution: Add v:windowid. (Christian J. Robinson, Lech Lorens) +Files: runtime/doc/eval.txt, src/eval.c, src/gui.c, src/vim.h, + src/os_unix.c + +Patch 7.3.032 +Problem: maparg() doesn't return the flags, such as <buffer>, <script>, + <silent>. These are needed to save and restore a mapping. +Solution: Improve maparg(). (also by Christian Brabandt) +Files: runtime/doc/eval.txt, src/eval.c, src/getchar.c, src/gui_w48.c, + src/message.c, src/proto/getchar.pro, src/proto/message.pro, + src/structs.h src/testdir/test75.in, src/testdir/test75.ok + +Patch 7.3.033 (after 7.3.032) +Problem: Can't build without FEAT_LOCALMAP. +Solution: Add an #ifdef. (John Marriott) +Files: src/getchar.c + +Patch 7.3.034 +Problem: Win32: may be loading .dll from the wrong directory. +Solution: Go to the Vim executable directory when opening a library. +Files: src/gui_w32.c, src/if_lua.c, src/if_mzsch.c, src/if_perl.xs, + src/if_python.c, src/if_python3.c, src/if_ruby.c, src/mbyte.c, + src/os_mswin.c, src/os_win32.c, src/proto/os_win32.pro + +Patch 7.3.035 (after 7.3.034) +Problem: Stray semicolon after if statement. (Hari G) +Solution: Remove the semicolon. +Files: src/os_win32.c + +Patch 7.3.036 +Problem: Win32 GUI: When building without menus, the font for dialogs and + tab page headers also changes. +Solution: Define USE_SYSMENU_FONT always. (Harig G.) +Files: src/gui_w32.c + +Patch 7.3.037 +Problem: Compiler warnings for loss of data. (Mike Williams) +Solution: Add type casts. +Files: src/if_py_both.h, src/getchar.c, src/os_win32.c + +Patch 7.3.038 +Problem: v:windowid isn't set on MS-Windows. +Solution: Set it to the window handle. (Chris Sutcliffe) +Files: runtime/doc/eval.txt, src/gui_w32.c + +Patch 7.3.039 +Problem: Crash when using skk.vim plugin. +Solution: Get length of expression evaluation result only after checking for + NULL. (Noriaki Yagi, Dominique Pelle) +Files: src/ex_getln.c + +Patch 7.3.040 +Problem: Comparing strings while ignoring case goes beyond end of the + string when there are illegal bytes. (Dominique Pelle) +Solution: Explicitly check for illegal bytes. +Files: src/mbyte.c + +Patch 7.3.041 +Problem: Compiler warning for accessing mediumVersion. (Tony Mechelynck) +Solution: Use the pointer instead of the array itself. (Dominique Pelle) +Files: src/version.c + +Patch 7.3.042 +Problem: No spell highlighting when re-using an empty buffer. +Solution: Clear the spell checking info only when clearing the options for a + buffer. (James Vega) +Files: src/buffer.c + +Patch 7.3.043 +Problem: Can't load Ruby dynamically on Unix. +Solution: Adjust the configure script. (James Vega) +Files: src/Makefile, src/config.h.in, src/configure.in, + src/auto/configure, src/if_ruby.c + +Patch 7.3.044 +Problem: The preview window opened by the popup menu is larger than + specified with 'previewheight'. (Benjamin Haskell) +Solution: Use 'previewheight' if it's set and smaller. +Files: src/popupmnu.c + +Patch 7.3.045 +Problem: Compiler warning for uninitialized variable. +Solution: Initialize the variable always. +Files: src/getchar.c + +Patch 7.3.046 (after 7.3.043) +Problem: Can't build Ruby on MS-Windows. +Solution: Add #ifdef, don't use WIN3264 before including vim.h. +Files: src/if_ruby.c + +Patch 7.3.047 (after 7.3.032) +Problem: Missing makefile updates for test 75. +Solution: Update the makefiles. +Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, + src/testdir/Makefile, src/testdir/Make_ming.mak, + src/testdir/Make_os2.mak, src/testdir/Make_vms.mms + +Patch 7.3.048 +Problem: ":earlier 1f" doesn't work after loading undo file. +Solution: Set b_u_save_nr_cur when loading an undo file. (Christian + Brabandt) + Fix only showing time in ":undolist" +Files: src/undo.c + +Patch 7.3.049 +Problem: PLT has rebranded their Scheme to Racket. +Solution: Add support for Racket 5.x. (Sergey Khorev) +Files: src/Make_cyg.mak, src/Make_ming.mak, src/Make_mvc.mak, + src/auto/configure, src/configure.in, src/if_mzsch.c + +Patch 7.3.050 +Problem: The link script is clumsy. +Solution: Use the --as-needed linker option if available. (Kirill A. + Shutemov) +Files: src/Makefile, src/auto/configure, src/config.mk.in, + src/configure.in, src/link.sh + +Patch 7.3.051 +Problem: Crash when $PATH is empty. +Solution: Check for vim_getenv() returning NULL. (Yasuhiro Matsumoto) +Files: src/ex_getln.c, src/os_win32.c + +Patch 7.3.052 +Problem: When 'completefunc' opens a new window all kinds of errors follow. + (Xavier Deguillard) +Solution: When 'completefunc' goes to another window or buffer and when it + deletes text abort completion. Add a test for 'completefunc'. +Files: 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/test76.in, src/testdir/test76.ok + +Patch 7.3.053 +Problem: complete() function doesn't reset complete direction. Can't use + an empty string in the list of matches. +Solution: Set compl_direction to FORWARD. Add "empty" key to allow empty + words. (Kikuchan) +Files: src/edit.c + +Patch 7.3.054 +Problem: Can define a user command for :Print, but it doesn't work. (Aaron + Thoma) +Solution: Let user command :Print overrule the builtin command (Christian + Brabandt) Disallow :X and :Next as a user defined command. +Files: src/ex_docmd.c + +Patch 7.3.055 +Problem: Recursively nested lists and dictionaries cause a near-endless + loop when comparing them with a copy. (ZyX) +Solution: Limit recursiveness in a way that non-recursive structures can + still be nested very deep. +Files: src/eval.c, src/testdir/test55.in, src/testdir/test55.ok + +Patch 7.3.056 +Problem: "getline" argument in do_cmdline() shadows global. +Solution: Rename the argument. +Files: src/ex_docmd.c + +Patch 7.3.057 +Problem: Segfault with command line abbreviation. (Randy Morris) +Solution: Don't retrigger the abbreviation when abandoning the command line. + Continue editing the command line after the error. +Files: src/ex_getln.c + +Patch 7.3.058 +Problem: Error "code converter not found" when loading Ruby script. +Solution: Load Gem module. (Yasuhiro Matsumoto) +Files: src/if_ruby.c + +Patch 7.3.059 +Problem: Netbeans: Problem with recursively handling messages for Athena + and Motif. +Solution: Call netbeans_parse_messages() in the main loop, like it's done + for GTK. (Xavier de Gaye) +Files: src/gui_x11.c, src/netbeans.c + +Patch 7.3.060 +Problem: Netbeans: crash when socket is disconnected unexpectedly. +Solution: Don't cleanup when a read fails, put a message in the queue and + disconnect later. (Xavier de Gaye) +Files: src/netbeans.c + +Patch 7.3.061 +Problem: Remote ":drop" does not respect 'autochdir'. (Peter Odding) +Solution: Don't restore the directory when 'autochdir' is set. (Benjamin + Fritz) +Files: src/main.c + +Patch 7.3.062 +Problem: Python doesn't work properly when installed in another directory + than expected. +Solution: Figure out home directory in configure and use Py_SetPythonHome() + at runtime. (Roland Puntaier) +Files: src/configure.in, src/auto/configure, src/if_python.c, + src/if_python3.c + +Patch 7.3.063 +Problem: Win32: Running a filter command makes Vim lose focus. +Solution: Use SW_SHOWMINNOACTIVE instead of SW_SHOWMINIMIZED. (Hong Xu) +Files: src/os_win32.c + +Patch 7.3.064 +Problem: Win32: ":dis +" shows nothing, but "+p does insert text. +Solution: Display the * register, since that's what will be inserted. + (Christian Brabandt) +Files: src/globals.h, src/ops.c + +Patch 7.3.065 +Problem: Can't get current line number in a source file. +Solution: Add the <slnum> item, similar to <sfile>. +Files: src/ex_docmd.c + +Patch 7.3.066 +Problem: Crash when changing to another window while in a :vimgrep command. + (Christian Brabandt) +Solution: When wiping out the dummy before, remove it from aucmd_win. +Files: src/quickfix.c + +Patch 7.3.067 (after 7.3.058) +Problem: Ruby: Init_prelude is not always available. +Solution: Remove use of Init_prelude. (Yasuhiro Matsumoto) +Files: src/if_ruby.c + +Patch 7.3.068 +Problem: Using freed memory when doing ":saveas" and an autocommand sets + 'autochdir'. (Kevin Klement) +Solution: Get the value of fname again after executing autocommands. +Files: src/ex_cmds.c + +Patch 7.3.069 +Problem: GTK: pressing Enter in inputdialog() doesn't work like clicking OK + as documented. +Solution: call gtk_entry_set_activates_default(). (Britton Kerin) +Files: src/gui_gtk.c + +Patch 7.3.070 +Problem: Can set environment variables in the sandbox, could be abused. +Solution: Disallow it. +Files: src/eval.c + +Patch 7.3.071 +Problem: Editing a file in a window that's in diff mode resets 'diff' + but not cursor binding. +Solution: Reset cursor binding in two more places. +Files: src/quickfix.c, src/option.c + +Patch 7.3.072 +Problem: Can't complete file names while ignoring case. +Solution: Add 'wildignorecase'. +Files: src/ex_docmd.c, src/ex_getln.c, src/misc1.c, src/option.c, + src/option.h, src/vim.h, src/runtime/options.txt + +Patch 7.3.073 +Problem: Double free memory when netbeans command follows DETACH. +Solution: Only free the node when owned. (Xavier de Gaye) +Files: src/netbeans.c + +Patch 7.3.074 +Problem: Can't use the "+ register like "* for yank and put. +Solution: Add "unnamedplus" to the 'clipboard' option. (Ivan Krasilnikov) +Files: runtime/doc/options.txt, src/eval.c, src/globals.h, src/ops.c, + src/option.c + +Patch 7.3.075 (after 7.3.072) +Problem: Missing part of 'wildignorecase' +Solution: Also adjust expand() +Files: src/eval.c + +Patch 7.3.076 +Problem: Clang warnings for dead code. +Solution: Remove it. (Carlo Teubner) +Files: src/gui_gtk.c, src/if_ruby.c, src/misc2.c, src/netbeans.c, + src/spell.c + +Patch 7.3.077 +Problem: When updating crypt of swapfile fails there is no error message. + (Carlo Teubner) +Solution: Add the error message. +Files: src/memline.c + +Patch 7.3.078 +Problem: Warning for unused variable. +Solution: Adjust #ifdefs. +Files: src/ops.c + +Patch 7.3.079 +Problem: Duplicate lines in makefile. +Solution: Remove the lines. (Hong Xu) +Files: src/Make_mvc.mak + +Patch 7.3.080 +Problem: Spell doesn't work on VMS. +Solution: Use different file names. (Zoltan Bartos, Zoltan Arpadffy) +Files: src/spell.c + +Patch 7.3.081 +Problem: Non-printable characters in 'statusline' cause trouble. (ZyX) +Solution: Use transstr(). (partly by Caio Ariede) +Files: src/screen.c + +Patch 7.3.082 +Problem: Leaking file descriptor when hostname doesn't exist. +Solution: Remove old debugging lines. +Files: src/netbeans.c + +Patch 7.3.083 +Problem: When a read() or write() is interrupted by a signal it fails. +Solution: Add read_eintr() and write_eintr(). +Files: src/fileio.c, src/proto/fileio.pro, src/memfile.c, src/memline.c, + src/os_unix.c, src/undo.c, src/vim.h + +Patch 7.3.084 +Problem: When splitting the window, the new one scrolls with the cursor at + the top. +Solution: Compute w_fraction before setting the new height. +Files: src/window.c + +Patch 7.3.085 (after 7.3.083) +Problem: Inconsistency with preproc symbols. void * computation. +Solution: Include vimio.h from vim.h. Add type cast. +Files: src/eval.c, src/ex_cmds.c, src/ex_cmds2.c, src/fileio.c, + src/if_cscope.c, src/if_sniff.c, src/main.c, src/memfile.c, + src/memline.c, src/netbeans.c, src/os_msdos.c, src/os_mswin.c, + src/os_win16.c, src/os_win32.c, src/spell.c, src/tag.c, + src/undo.c, src/vim.h + +Patch 7.3.086 +Problem: When using a mapping with an expression and there was no count, + v:count has the value of the previous command. (ZyX) +Solution: Also set v:count and v:count1 before getting the character that + could be a command or a count. +Files: src/normal.c + +Patch 7.3.087 +Problem: EINTR is not always defined. +Solution: Include errno.h in vim.h. +Files: src/if_cscope.c, src/if_tcl.c, src/integration.c, src/memline.c, + src/os_mswin.c, src/os_win16.c, src/os_win32.c, src/vim.h, + src/workshop.c + +Patch 7.3.088 +Problem: Ruby can't load Gems sometimes, may cause a crash. +Solution: Undefine off_t. Use ruby_process_options(). (Yasuhiro Matsumoto) +Files: src/if_ruby.c + +Patch 7.3.089 +Problem: Compiler warning on 64 bit MS-Windows. +Solution: Add type cast. (Mike Williams) +Files: src/netbeans.c + +Patch 7.3.090 +Problem: Wrong help text for Cscope. +Solution: Adjust the help text for "t". (Dominique Pelle) +Files: src/if_cscope.c + +Patch 7.3.091 +Problem: "vim -w foo" writes special key codes for removed escape + sequences. (Josh Triplett) +Solution: Don't write K_IGNORE codes. +Files: src/getchar.c, src/misc1.c, src/term.c, src/vim.h + +Patch 7.3.092 +Problem: Resizing the window when exiting. +Solution: Don't resize when exiting. +Files: src/term.c + +Patch 7.3.093 +Problem: New DLL dependencies in MingW with gcc 4.5.0. +Solution: Add STATIC_STDCPLUS, LDFLAGS and split up WINDRES. (Guopeng Wen) +Files: src/GvimExt/Make_ming.mak, src/Make_ming.mak + +Patch 7.3.094 +Problem: Using abs() requires type cast to int. +Solution: Use labs() so that the value remains long. (Hong Xu) +Files: src/screen.c + +Patch 7.3.095 +Problem: Win32: In Chinese tear-off menu doesn't work. (Weasley) +Solution: Use menu_name_equal(). (Alex Jakushev) +Files: src/menu.c + +Patch 7.3.096 +Problem: "gvim -nb" is not interruptible. Leaking file descriptor on + netbeans connection error. +Solution: Check for CTRL-C typed. Free file descriptor. (Xavier de Gaye) +Files: src/netbeans.c + +Patch 7.3.097 +Problem: Using ":call" inside "if 0" does not see that a function returns a + Dict and gives error for "." as string concatenation. +Solution: Use eval0() to skip over the expression. (Yasuhiro Matsumoto) +Files: src/eval.c + +Patch 7.3.098 +Problem: Function that ignores error still causes called_emsg to be set. + E.g. when expand() fails the status line is disabled. +Solution: Move check for emsg_not_now() up. (James Vega) +Files: src/message.c + +Patch 7.3.099 +Problem: Crash when splitting a window with zero height. (Yukihiro + Nakadaira) +Solution: Don't set the fraction in a window with zero height. +Files: src/window.c + +Patch 7.3.100 +Problem: When using :normal v:count isn't set. +Solution: Call normal_cmd() with toplevel set to TRUE. +Files: src/ex_docmd.c + +Patch 7.3.101 +Problem: ino_t defined with wrong size. +Solution: Move including auto/config.h before other includes. (Marius + Geminas) +Files: src/if_ruby.c, src/if_lua.c + +Patch 7.3.102 +Problem: When using ":make", typing the next command and then getting the + "reload" prompt the next command is (partly) eaten by the reload + prompt. +Solution: Accept ':' as a special character at the reload prompt to accept + the default choice and execute the command. +Files: src/eval.c, src/fileio.c, src/gui.c, src/gui_xmdlg.c, + src/memline.c, src/message.c, src/proto/message.pro, + src/gui_athena.c, src/gui_gtk.c, src/gui_mac.c, src/gui_motif.c, + src/gui_photon.c, src/gui_w16.c, src/gui_w32.c, src/os_mswin.c + src/proto/gui_athena.pro, src/proto/gui_gtk.pro, + src/proto/gui_mac.pro, src/proto/gui_motif.pro, + src/proto/gui_photon.pro, src/proto/gui_w16.pro, + src/proto/gui_w32.pro + +Patch 7.3.103 +Problem: Changing 'fileformat' and then using ":w" in an empty file sets + the 'modified' option. +Solution: In unchanged() don't ignore 'ff' for an empty file. +Files: src/misc1.c, src/option.c, src/proto/option.pro, src/undo.c + +Patch 7.3.104 +Problem: Conceal: using Tab for cchar causes problems. (ZyX) +Solution: Do not accept a control character for cchar. +Files: src/syntax.c + +Patch 7.3.105 +Problem: Can't get the value of "b:changedtick" with getbufvar(). +Solution: Make it work. (Christian Brabandt) +Files: src/eval.c + +Patch 7.3.106 +Problem: When 'cursorbind' is set another window may scroll unexpectedly + when 'scrollbind' is also set. (Xavier Wang) +Solution: Don't call update_topline() if 'scrollbind' is set. +Files: src/move.c + +Patch 7.3.107 +Problem: Year number for :undolist can be confused with month or day. +Solution: Change "%y" to "%Y". +Files: src/undo.c + +Patch 7.3.108 +Problem: Useless check for NULL when calling vim_free(). +Solution: Remove the check. (Dominique Pelle) +Files: src/eval.c, src/ex_cmds.c, src/os_win32.c + +Patch 7.3.109 +Problem: Processing new Esperanto spell file fails and crashes Vim. + (Dominique Pelle) +Solution: When running out of memory give an error. Handle '?' in + COMPOUNDRULE properly. +Files: src/spell.c + +Patch 7.3.110 +Problem: The "nbsp" item in 'listchars' isn't used for ":list". +Solution: Make it work. (Christian Brabandt) +Files: src/message.c + +Patch 7.3.111 (after 7.3.100) +Problem: Executing a :normal command in 'statusline' evaluation causes the + cursor to move. (Dominique Pelle) +Solution: When updating the cursor for 'cursorbind' allow the cursor beyond + the end of the line. When evaluating 'statusline' temporarily + reset 'cursorbind'. +Files: src/move.c, src/screen.c + +Patch 7.3.112 +Problem: Setting 'statusline' to "%!'asdf%' reads uninitialized memory. +Solution: Check for NUL after %. +Files: src/buffer.c + +Patch 7.3.113 +Problem: Windows: Fall back directory for creating temp file is wrong. +Solution: Use "." instead of empty string. (Hong Xu) +Files: src/fileio.c + +Patch 7.3.114 +Problem: Potential problem in initialization when giving an error message + early. +Solution: Initialize 'verbosefile' empty. (Ben Schmidt) +Files: src/option.h + +Patch 7.3.115 +Problem: Vim can crash when tmpnam() returns NULL. +Solution: Check for NULL. (Hong Xu) +Files: src/fileio.c + +Patch 7.3.116 +Problem: 'cursorline' is displayed too short when there are concealed + characters and 'list' is set. (Dennis Preiser) +Solution: Check for 'cursorline' when 'list' is set. (Christian Brabandt) +Files: src/screen.c + +Patch 7.3.117 +Problem: On some systems --as-needed does not work, because the "tinfo" + library is included indirectly from "ncurses". (Charles Campbell) +Solution: In configure prefer using "tinfo" instead of "ncurses". +Files: src/configure.in, src/auto/configure + +Patch 7.3.118 +Problem: Ruby uses SIGVTALARM which makes Vim exit. (Alec Tica) +Solution: Ignore SIGVTALARM. (Dominique Pelle) +Files: src/os_unix.c + +Patch 7.3.119 +Problem: Build problem on Mac. (Nicholas Stallard) +Solution: Use "extern" instead of "EXTERN" for p_vfile. +Files: src/option.h + +Patch 7.3.120 +Problem: The message for an existing swap file is too long to fit in a 25 + line terminal. +Solution: Make the message shorter. (Chad Miller) +Files: src/memline.c + +Patch 7.3.121 +Problem: Complicated 'statusline' causes a crash. (Christian Brabandt) +Solution: Check that the number of items is not too big. +Files: src/buffer.c + +Patch 7.3.122 +Problem: Having auto/config.mk in the repository causes problems. +Solution: Remove auto/config.mk from the distribution. In the toplevel + Makefile copy it from the "dist" file. +Files: Makefile, src/Makefile, src/auto/config.mk + +Patch 7.3.123 +Problem: ml_get error when executing register being recorded into, deleting + lines and 'conceallevel' is set. (ZyX) +Solution: Don't redraw a line for concealing when it doesn't exist. +Files: src/main.c + +Patch 7.3.124 +Problem: When writing a file in binary mode it may be missing the final EOL + if a file previously read was missing the EOL. (Kevin Goodsell) +Solution: Move the write_no_eol_lnum into the buffer struct. +Files: src/structs.h, src/fileio.c, src/globals.h, src/os_unix.c + +Patch 7.3.125 +Problem: MSVC: Problem with quotes in link argument. +Solution: Escape backslashes and quotes. (Weasley) +Files: src/Make_mvc.mak + +Patch 7.3.126 +Problem: Compiler warning for signed pointer. +Solution: Use unsigned int argument for sscanf(). +Files: src/blowfish.c + +Patch 7.3.127 +Problem: Compiler complains about comma. +Solution: Remove comma after last enum element. +Files: src/ex_cmds2.c + +Patch 7.3.128 +Problem: Another compiler warning for signed pointer. +Solution: Use unsigned int argument for sscanf(). +Files: src/mark.c + +Patch 7.3.129 +Problem: Using integer like a boolean. +Solution: Nicer check for integer being non-zero. +Files: src/tag.c + +Patch 7.3.130 +Problem: Variable misplaced in #ifdef. +Solution: Move clipboard_event_time outside of #ifdef. +Files: src/gui_gtk_x11.c + +Patch 7.3.131 +Problem: Including errno.h too often. +Solution: Don't include errno.h in Unix header file. +Files: src/os_unix.h + +Patch 7.3.132 +Problem: C++ style comments. +Solution: Change to C comments. +Files: src/if_python3.c + +Patch 7.3.133 +Problem: When using encryption it's not clear what method was used. +Solution: In the file message show "blowfish" when using blowfish. +Files: src/fileio.c + +Patch 7.3.134 +Problem: Drag-n-drop doesn't work in KDE Dolphin. +Solution: Add GDK_ACTION_MOVE flag. (Florian Degner) +Files: src/gui_gtk_x11.c + +Patch 7.3.135 +Problem: When there is no previous substitute pattern, the previous search + pattern is used. The other way around doesn't work. +Solution: When there is no previous search pattern, use the previous + substitute pattern if possible. (Christian Brabandt) +Files: src/search.c + +Patch 7.3.136 +Problem: Duplicate include of assert.h. +Solution: Remove it. +Files: src/if_cscope.c + +Patch 7.3.137 (after 7.3.091) +Problem: When 'lazyredraw' is set the screen may not be updated. (Ivan + Krasilnikov) +Solution: Call update_screen() before waiting for input. +Files: src/misc1.c, src/getchar.c + +Patch 7.3.138 +Problem: ":com" changes the multibyte text of :echo. (Dimitar Dimitrov) +Solution: Search for K_SPECIAL as a byte, not a character. (Ben Schmidt) +Files: src/ex_docmd.c + +Patch 7.3.139 (after 7.3.137) +Problem: When 'lazyredraw' is set ":ver" output can't be read. +Solution: Don't redraw the screen when at a prompt or command line. +Files: src/getchar.c, src/message.c, src/misc1.c + +Patch 7.3.140 +Problem: Crash when drawing the "$" at end-of-line for list mode just after + the window border and 'cursorline' is set. +Solution: Don't check for 'cursorline'. (Quentin Carbonneaux) +Files: src/screen.c + +Patch 7.3.141 +Problem: When a key code is not set get a confusing error message. +Solution: Change the error message to say the key code is not set. +Files: src/option.c, runtime/doc/options.txt + +Patch 7.3.142 +Problem: Python stdout doesn't have a flush() method, causing an import to + fail. +Solution: Add a dummy flush() method. (Tobias Columbus) +Files: src/if_py_both.h + +Patch 7.3.143 +Problem: Memfile is not tested sufficiently. Looking up blocks in a + memfile is slow when there are many blocks. +Solution: Add high level test and unittest. Adjust the number of hash + buckets to the number of blocks. (Ivan Krasilnikov) +Files: Filelist, src/Makefile, src/main.c, src/memfile.c, + src/memfile_test.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.mak, + src/testdir/Makefile, src/testdir/test77.in, src/testdir/test77.ok + +Patch 7.3.144 +Problem: Crash with ":python help(dir)". (Kearn Holliday) +Solution: Fix the way the type is set on objects. (Tobias Columbus) +Files: src/if_python.c + +Patch 7.3.145 (after 7.3.144) +Problem: Can't build with Python dynamically loading. +Solution: Add dll_PyType_Ready. +Files: src/if_python.c + +Patch 7.3.146 +Problem: It's possible to assign to a read-only member of a dict. + It's possible to create a global variable "0". (ZyX) + It's possible to add a v: variable with ":let v:.name = 1". +Solution: Add check for dict item being read-only. + Check the name of g: variables. + Disallow adding v: variables. +Files: src/eval.c + +Patch 7.3.147 (after 7.3.143) +Problem: Can't build on HP-UX. +Solution: Remove an unnecessary backslash. (John Marriott) +Files: src/Makefile + +Patch 7.3.148 +Problem: A syntax file with a huge number of items or clusters causes weird + behavior, a hang or a crash. (Yukihiro Nakadaira) +Solution: Check running out of IDs. (partly by Ben Schmidt) +Files: src/syntax.c + +Patch 7.3.149 +Problem: The cursor disappears after the processing of the 'setDot' + netbeans command when vim runs in a terminal. +Solution: Show the cursor after a screen update. (Xavier de Gaye) +Files: src/netbeans.c + +Patch 7.3.150 +Problem: readline() does not return the last line when the NL is missing. + (Hong Xu) +Solution: When at the end of the file Also check for a previous line. +Files: src/eval.c + +Patch 7.3.151 (after 7.3.074) +Problem: When "unnamedplus" is in 'clipboard' the selection is sometimes + also copied to the star register. +Solution: Avoid copy to the star register when undesired. (James Vega) +Files: src/ops.c + +Patch 7.3.152 +Problem: Xxd does not check for errors from library functions. +Solution: Add error checks. (Florian Zumbiehl) +Files: src/xxd/xxd.c + +Patch 7.3.153 (after 7.3.152) +Problem: Compiler warning for ambiguous else, missing prototype. +Solution: Add braces. (Dominique Pelle) Add prototype for die(). +Files: src/xxd/xxd.c + +Patch 7.3.154 (after 7.3.148) +Problem: Can't compile with tiny features. (Tony Mechelynck) +Solution: Move #define outside of #ifdef. +Files: src/syntax.c + +Patch 7.3.155 +Problem: Crash when using map(), filter() and remove() on v:. (ZyX) + Also for extend(). (Yukihiro Nakadaira) +Solution: Mark v: as locked. Also correct locking error messages. +Files: src/eval.c + +Patch 7.3.156 +Problem: Tty names possibly left unterminated. +Solution: Use vim_strncpy() instead of strncpy(). +Files: src/pty.c + +Patch 7.3.157 +Problem: Superfluous assignment. +Solution: Remove assignment. +Files: src/misc1.c + +Patch 7.3.158 +Problem: Might use uninitialized memory in C indenting. +Solution: Init arrays to empty. +Files: src/misc1.c + +Patch 7.3.159 +Problem: Using uninitialized pointer when out of memory. +Solution: Check for NULL return value. +Files: src/mbyte.c + +Patch 7.3.160 +Problem: Unsafe string copying. +Solution: Use vim_strncpy() instead of strcpy(). Use vim_strcat() instead + of strcat(). +Files: src/buffer.c, src/ex_docmd.c, src/hardcopy.c, src/menu.c, + src/misc1.c, src/misc2.c, src/proto/misc2.pro, src/netbeans.c, + src/os_unix.c, src/spell.c, src/syntax.c, src/tag.c + +Patch 7.3.161 +Problem: Items on the stack may be too big. +Solution: Make items static or allocate them. +Files: src/eval.c, src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c, + src/fileio.c, src/hardcopy.c, src/quickfix.c, src/main.c, + src/netbeans.c, src/spell.c, src/tag.c, src/vim.h, src/xxd/xxd.c + +Patch 7.3.162 +Problem: No error message when assigning to a list with an index out of + range. (Yukihiro Nakadaira) +Solution: Add the error message. +Files: src/eval.c + +Patch 7.3.163 +Problem: For the default of 'shellpipe' "mksh" and "pdksh" are not + recognized. +Solution: Recognize these shell names. +Files: src/option.c + +Patch 7.3.164 +Problem: C-indenting: a preprocessor statement confuses detection of a + function declaration. +Solution: Ignore preprocessor lines. (Lech Lorens) Also recognize the style + to put a comma before the argument name. +Files: src/misc1.c, testdir/test3.in, testdir/test3.ok + +Patch 7.3.165 +Problem: ":find" completion does not escape spaces in a directory name. + (Isz) +Solution: Add backslashes for EXPAND_FILES_IN_PATH. (Carlo Teubner) +Files: src/ex_getln.c + +Patch 7.3.166 +Problem: Buffer on the stack may be too big +Solution: Allocate the space. +Files: src/option.c + +Patch 7.3.167 +Problem: When using the internal grep QuickFixCmdPost is not triggered. + (Yukihiro Nakadaira) +Solution: Change the place where autocommands are triggered. +Files: src/quickfix.c + +Patch 7.3.168 +Problem: When the second argument of input() contains a CR the text up to + that is used without asking the user. (Yasuhiro Matsumoto) +Solution: Change CR, NL and ESC in the text to a space. +Files: src/getchar.c + +Patch 7.3.169 +Problem: Freeing memory already freed, warning from static code analyzer. +Solution: Initialize pointers to NULL, correct use of "mustfree". (partly by + Dominique Pelle) +Files: src/mis1.c + +Patch 7.3.170 +Problem: VMS Makefile for testing was not updated for test77. +Solution: Add test77 to the Makefile. +Files: src/testdir/Make_vms.mms + +Patch 7.3.171 +Problem: When the clipboard isn't supported: ":yank*" gives a confusing + error message. +Solution: Specifically mention that the register name is invalid. + (Jean-Rene David) +Files: runtime/doc/change.txt, src/ex_docmd.c, src/globals.h + +Patch 7.3.172 +Problem: MS-Windows: rename() might delete the file if the name differs but + it's actually the same file. +Solution: Use the file handle to check if it's the same file. (Yukihiro + Nakadaira) +Files: src/if_cscope.c, src/fileio.c, src/os_win32.c, + src/proto/os_win32.pro, src/vim.h + +Patch 7.3.173 +Problem: After using setqflist() to make the quickfix list empty ":cwindow" + may open the window anyway. Also after ":vimgrep". +Solution: Correctly check whether the list is empty. (Ingo Karkat) +Files: src/quickfix.c + +Patch 7.3.174 +Problem: When Exuberant ctags binary is exctags it's not found. +Solution: Add configure check for exctags. (Hong Xu) +Files: src/configure.in, src/auto/configure + +Patch 7.3.175 +Problem: When 'colorcolumn' is set locally to a window, ":new" opens a + window with the same highlighting but 'colorcolumn' is empty. + (Tyru) +Solution: Call check_colorcolumn() after clearing and copying options. + (Christian Brabandt) +Files: src/buffer.c + +Patch 7.3.176 +Problem: Ruby linking doesn't work properly on Mac OS X. +Solution: Fix the configure check for Ruby. (Bjorn Winckler) +Files: src/configure.in, src/auto/configure + +Patch 7.3.177 +Problem: MS-Windows: mkdir() doesn't work properly when 'encoding' is + "utf-8". +Solution: Convert to utf-16. (Yukihiro Nakadaira) +Files: src/os_win32.c, src/os_win32.h, src/proto/os_win32.pro + +Patch 7.3.178 +Problem: C-indent doesn't handle code right after { correctly. +Solution: Fix detecting unterminated line. (Lech Lorens) +Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok + +Patch 7.3.179 +Problem: C-indent doesn't handle colon in string correctly. +Solution: Skip the string. (Lech Lorens) +Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok + +Patch 7.3.180 +Problem: When both a middle part of 'comments' matches and an end part, the + middle part was used erroneously. +Solution: After finding the middle part match continue looking for a better + end part match. (partly by Lech Lorens) +Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok + +Patch 7.3.181 +Problem: When repeating the insert of CTRL-V or a digraph the display may + not be updated correctly. +Solution: Only call edit_unputchar() after edit_putchar(). (Lech Lorens) +Files: src/edit.c + +Patch 7.3.182 (after 7.3.180) +Problem: Compiler warning for uninitialized variable. +Solution: Add dummy initializer. +Files: src/misc1.c + +Patch 7.3.183 (after 7.3.174) +Problem: When Exuberant ctags binary is exuberant-ctags it's not found. +Solution: Add configure check for exuberant-ctags. +Files: src/configure.in, src/auto/configure + +Patch 7.3.184 +Problem: Static code analysis errors in riscOS. +Solution: Make buffer size bigger. (Dominique Pelle) +Files: src/gui_riscos.c + +Patch 7.3.185 +Problem: ":windo g/pattern/q" closes windows and reports "N more lines". + (Tim Chase) +Solution: Remember what buffer ":global" started in. (Jean-Rene David) +Files: src/ex_cmds.c + +Patch 7.3.186 +Problem: When 'clipboard' contains "unnamed" or "unnamedplus" the value of + v:register is wrong for operators without a specific register. +Solution: Adjust the register according to 'clipboard'. (Ingo Karkat) +Files: src/normal.c + +Patch 7.3.187 +Problem: The RISC OS port has obvious errors and is not being maintained. +Solution: Remove the RISC OS files and code. +Files: src/ascii.h, src/eval.c, src/ex_cmds.c, src/ex_cmds2.c, + src/ex_docmd.c, src/fileio.c, src/globals.h, src/gui.c, src/gui.h, + src/main.c, src/memfile.c, src/memline.c, src/misc1.c, + src/proto.h, src/quickfix.c, src/search.c, src/structs.h, + src/term.c, src/termlib.c, src/version.c, src/vim.h, + src/gui_riscos.h, src/os_riscos.h, src/gui_riscos.c, + src/os_riscos.c, runtime/doc/os_risc.txt + +Patch 7.3.188 +Problem: More RISC OS files to remove. +Solution: Remove them. Update the file list. +Files: src/proto/gui_riscos.pro, src/proto/os_riscos.pro, Filelist + +Patch 7.3.189 (after 7.3.186) +Problem: Can't build without +clipboard feature. (Christian Ebert) +Solution: Add the missing #ifdef. +Files: src/normal.c + +Patch 7.3.190 +Problem: When there is a "containedin" syntax argument highlighting may be + wrong. (Radek) +Solution: Reset current_next_list. (Ben Schmidt) +Files: src/syntax.c + +Patch 7.3.191 +Problem: Still some RISC OS stuff to remove. +Solution: Remove files and lines. (Hong Xu) + Remove the 'osfiletype' option code. +Files: README_extra.txt, src/Make_ro.mak, src/INSTALL, src/Makefile, + src/buffer.c, src/eval.c, src/feature.h, src/option.c, + src/option.h, src/structs.h, src/version.c, src/pty.c, Filelist + +Patch 7.3.192 +Problem: Ex command ":s/ \?/ /g" splits multibyte characters into bytes. + (Dominique Pelle) +Solution: Advance over whole character instead of one byte. +Files: src/ex_cmds.c + +Patch 7.3.193 +Problem: In the command line window ":close" doesn't work properly. (Tony + Mechelynck) +Solution: Use Ctrl_C instead of K_IGNORE for cmdwin_result. (Jean-Rene + David) +Files: src/ex_docmd.c, src/ex_getln.c + +Patch 7.3.194 +Problem: When "b" is a symlink to directory "a", resolve("b/") doesn't + result in "a/". (ZyX) +Solution: Remove the trailing slash. (Jean-Rene David) +Files: src/eval.c + +Patch 7.3.195 +Problem: "} else" causes following lines to be indented too much. (Rouben + Rostamian) +Solution: Better detection for the "else". (Lech Lorens) +Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok + +Patch 7.3.196 +Problem: Can't intercept a character that is going to be inserted. +Solution: Add the InsertCharPre autocommand event. (Jakson A. Aquino) +Files: runtime/doc/autocmd.txt, runtime/doc/eval.txt, + runtime/doc/map.txt, src/edit.c, src/eval.c, src/fileio.c, + src/vim.h + +Patch 7.3.197 +Problem: When a QuickfixCmdPost event removes all errors, Vim still tries + to jump to the first error, resulting in E42. +Solution: Get the number of error after the autocmd event. (Mike Lundy) +Files: src/quickfix.c + +Patch 7.3.198 +Problem: No completion for ":lang". +Solution: Get locales to complete from. (Dominique Pelle) +Files: src/eval.c, src/ex_cmds2.c, src/ex_getln.c, + src/proto/ex_cmds2.pro, src/proto/ex_getln.pro, src/vim.h + +Patch 7.3.199 +Problem: MS-Windows: Compilation problem of OLE with MingW compiler. +Solution: Put #ifdef around declarations. (Guopeng Wen) +Files: src/if_ole.h + +Patch 7.3.200 (after 7.3.198) +Problem: CTRL-D doesn't complete :lang. +Solution: Add the missing part of the change. (Dominique Pelle) +Files: src/ex_docmd.c + +Patch 7.3.201 (after 7.3.195) +Problem: "} else" still causes following lines to be indented too much. +Solution: Better detection for the "else" block. (Lech Lorens) +Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok + +Patch 7.3.202 +Problem: Cannot influence the indent inside a namespace. +Solution: Add the "N" 'cino' parameter. (Konstantin Lepa) +Files: runtime/doc/indent.txt, src/misc1.c, src/testdir/test3.in, + src/testdir/test3.ok + +Patch 7.3.203 +Problem: MS-Windows: Can't run an external command without a console window. +Solution: Support ":!start /b cmd". (Xaizek) +Files: runtime/doc/os_win32.txt, src/os_win32.c + +Patch 7.3.204 (after 7.3.201) +Problem: Compiler warning. +Solution: Add type cast. (Mike Williams) +Files: src/misc1.c + +Patch 7.3.205 +Problem: Syntax "extend" doesn't work correctly. +Solution: Avoid calling check_state_ends() recursively (Ben Schmidt) +Files: src/syntax.c + +Patch 7.3.206 +Problem: 64bit MS-Windows compiler warning. +Solution: Use HandleToLong() instead of type cast. (Mike Williams) +Files: src/gui_w32.c + +Patch 7.3.207 +Problem: Can't compile with MSVC with pentium4 and 64 bit. +Solution: Only use SSE2 for 32 bit. (Mike Williams) +Files: src/Make_mvc.mak + +Patch 7.3.208 +Problem: Early terminated if statement. +Solution: Remove the semicolon. (Lech Lorens) +Files: src/gui_mac.c + +Patch 7.3.209 +Problem: MSVC Install instructions point to wrong batch file. +Solution: Add a batch file for use with MSVC 10. +Files: src/msvc2010.bat, src/INSTALLpc.txt, Filelist + +Patch 7.3.210 +Problem: Can't always find the file when using cscope. +Solution: Add the 'cscoperelative' option. (Raghavendra D Prabhu) +Files: runtime/doc/if_cscop.txt, runtime/doc/options.txt, + src/if_cscope.c + +Patch 7.3.211 (after 7.3.210) +Problem: Compiler warning. +Solution: Add type cast. +Files: src/if_cscope.c + +Patch 7.3.212 +Problem: With Python 3.2 ":py3" fails. +Solution: Move PyEval_InitThreads() to after Py_Initialize(). (Roland + Puntaier) Check abiflags in configure. (Andreas Behr) +Files: src/if_python3.c, src/auto/configure, src/configure.in + +Patch 7.3.213 +Problem: Javascript object literal is not indented correctly. +Solution: Make a special case for when "J1" is in 'cino'. (Luc Deschenaux) +Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok + +Patch 7.3.214 +Problem: The text displayed by ":z-" isn't exactly like old Vi. +Solution: Add one to the start line number. (ChangZhuo Chen) +Files: src/ex_cmds.c + +Patch 7.3.215 (after 7.3.210) +Problem: Wrong file names in previous patch. (Toothpik) +Solution: Include the option changes. +Files: src/option.c, src/option.h + +Patch 7.3.216 +Problem: When recovering a file a range of lines is missing. (Charles Jie) +Solution: Reset the index when advancing to the next pointer block. Add a + test to verify recovery works. +Files: src/memline.c, src/testdir/test78.in, src/testdir/test78.ok, + src/testdir/Makefile, 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.3.217 +Problem: Inside an "if" a ":wincmd" causes problems. +Solution: When skipping commands let ":wincmd" skip over its argument. +Files: src/ex_docmd.c + +Patch 7.3.218 (after 7.3.212) +Problem: Tiny configuration problem with Python 3. +Solution: Add abiflags in one more place. (Andreas Behr) +Files: src/auto/configure, src/configure.in + +Patch 7.3.219 +Problem: Can't compile with GTK on Mac. +Solution: Add some #ifdef trickery. (Ben Schmidt) +Files: src/os_mac_conv.c, src/os_macosx.m, src/vim.h + +Patch 7.3.220 +Problem: Python 3: vim.error is a 'str' instead of an 'Exception' object, + so 'except' or 'raise' it causes a 'SystemError' exception. + Buffer objects do not support slice assignment. + When exchanging text between Vim and Python, multibyte texts become + garbage or cause Unicode Exceptions, etc. + 'py3file' tries to read in the file as Unicode, sometimes causes + UnicodeDecodeException +Solution: Fix the problems. (lilydjwg) +Files: src/if_py_both.h, src/if_python.c, src/if_python3.c + +Patch 7.3.221 +Problem: Text from the clipboard is sometimes handled as linewise, but not + consistently. +Solution: Assume the text is linewise when it ends in a CR or NL. +Files: src/gui_gtk_x11.c, src/gui_mac.c, src/ops.c, src/os_msdos.c, + src/os_mswin.c, src/os_qnx.c, src/ui.c + +Patch 7.3.222 +Problem: Warning for building GvimExt. +Solution: Comment-out the DESCRIPTION line. (Mike Williams) +Files: src/GvimExt/gvimext.def, src/GvimExt/gvimext_ming.def + +Patch 7.3.223 +Problem: MingW cross compilation doesn't work with tiny features. +Solution: Move acp_to_enc(), enc_to_utf16() and utf16_to_enc() outside of + "#ifdef CLIPBOARD". Fix typo in makefile. +Files: src/Make_ming.mak, src/os_mswin.c + +Patch 7.3.224 +Problem: Can't pass dict to sort function. +Solution: Add the optional {dict} argument to sort(). (ZyX) +Files: runtime/doc/eval.txt, src/eval.c + +Patch 7.3.225 +Problem: Using "\n" in a substitute inside ":s" does not result in a line + break. +Solution: Change behavior inside vim_regexec_nl(). Add tests. (Motoya + Kurotsu) +Files: src/regexp.c, src/testdir/test79.in, src/testdir/test79.ok, + src/testdir/test80.in, src/testdir/test80.ok, + src/testdir/Makefile, 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.3.226 +Problem: On a 64 bit system "syn sync fromstart" is very slow. (Bjorn + Steinbrink) +Solution: Store the state when starting to parse from the first line. +Files: src/syntax.c + +Patch 7.3.227 (after 7.3.221) +Problem: Mac OS doesn't have the linewise clipboard fix. +Solution: Also change the Mac OS file. (Bjorn Winckler) +Files: src/os_macosx.m + +Patch 7.3.228 +Problem: "2gj" does not always move to the correct position. +Solution: Get length of line after moving to a next line. (James Vega) +Files: src/normal.c + +Patch 7.3.229 +Problem: Using fork() makes gvim crash on Mac when build with + CoreFoundation. +Solution: Disallow fork() when __APPLE__ is defined. (Hisashi T Fujinaka) +Files: src/gui.c + +Patch 7.3.230 +Problem: ":wundo" and ":rundo" don't unescape their argument. (Aaron + Thoma) +Solution: Use FILE1 instead of XFILE. +Files: src/ex_cmds.h + +Patch 7.3.231 +Problem: Runtime file patches failed. +Solution: Redo the patches made against the patched files instead of the + files in the mercurial repository. +Files: runtime/doc/indent.txt, runtime/doc/os_win32.txt + +Patch 7.3.232 +Problem: Python doesn't compile without +multi_byte +Solution: Use "latin1" when MULTI_BYTE is not defined. +Files: src/if_py_both.h + +Patch 7.3.233 +Problem: ":scriptnames" and ":breaklist" show long file names. +Solution: Shorten to use "~/" when possible. (Jean-Rene David) +Files: src/ex_cmds2.c + +Patch 7.3.234 +Problem: With GTK menu may be popping down. +Solution: Use event time instead of GDK_CURRENT_TIME. (Hong Xu) +Files: src/gui.c, src/gui.h, src/gui_gtk.c, src/gui_gtk_x11.c + +Patch 7.3.235 +Problem: ";" gets stuck on a "t" command, it's not useful. +Solution: Add the ';' flag in 'cpo'. (Christian Brabandt) +Files: runtime/doc/motion.txt, runtime/doc/options.txt, src/option.h, + src/search.c src/testdir/test81.in, src/testdir/test81.ok, + src/testdir/Makefile, 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.3.236 (after 7.3.232) +Problem: Python 3 doesn't compile without +multi_byte +Solution: Use "latin1" when MULTI_BYTE is not defined. (lilydjwg) +Files: src/if_python3.c + +Patch 7.3.237 +Problem: "filetype" completion doesn't work on Windows. (Yue Wu) +Solution: Don't use a glob pattern for the directories, use a list of + directories. (Dominique Pelle) +Files: src/ex_getln.c + +Patch 7.3.238 +Problem: Compiler warning for conversion. +Solution: Add type cast. (Mike Williams) +Files: src/ex_getln.c + +Patch 7.3.239 +Problem: Python corrects the cursor column without taking 'virtualedit' + into account. (lilydjwg) +Solution: Call check_cursor_col_win(). +Files: src/if_py_both.h, src/mbyte.c, src/misc2.c, src/normal.c, + src/proto/mbyte.pro, src/proto/misc2.pro + +Patch 7.3.240 +Problem: External commands can't use pipes on MS-Windows. +Solution: Implement pipes and use them when 'shelltemp' isn't set. (Vincent + Berthoux) +Files: src/eval.c, src/ex_cmds.c, src/misc2.c, src/os_unix.c, + src/os_win32.c, src/proto/misc2.pro, src/ui.c + +Patch 7.3.241 +Problem: Using CTRL-R CTRL-W on the command line may insert only part of + the word. +Solution: Use the cursor position instead of assuming it is at the end of + the command. (Tyru) +Files: src/ex_getln.c + +Patch 7.3.242 +Problem: Illegal memory access in after_pathsep(). +Solution: Check that the pointer is not at the start of the file name. + (Dominique Pelle) +Files: src/misc2.c + +Patch 7.3.243 +Problem: Illegal memory access in readline(). +Solution: Swap the conditions. (Dominique Pelle) +Files: src/eval.c + +Patch 7.3.244 +Problem: MS-Windows: Build problem with old compiler. (John Beckett) +Solution: Only use HandleToLong() when available. (Mike Williams) +Files: src/gui_w32.c + +Patch 7.3.245 +Problem: Python 3.2 libraries not correctly detected. +Solution: Add the suffix to the library name. (Niclas Zeising) +Files: src/auto/configure, src/configure.in + +Patch 7.3.246 (after 7.3.235) +Problem: Repeating "f4" in "4444" skips one 4. +Solution: Check the t_cmd flag. (Christian Brabandt) +Files: src/search.c + +Patch 7.3.247 +Problem: Running tests changes the users viminfo file. Test for patch + 7.3.246 missing. +Solution: Add "nviminfo" to the 'viminfo' option. Include the test. +Files: src/testdir/test78.in, src/testdir/test81.in + +Patch 7.3.248 +Problem: PC Install instructions missing install instructions. +Solution: Step-by-step explanation. (Michael Soyka) +Files: src/INSTALLpc.txt + +Patch 7.3.249 +Problem: Wrong indenting for array initializer. +Solution: Detect '}' in a better way. (Lech Lorens) +Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok + +Patch 7.3.250 +Problem: Python: Errors in Unicode characters not handled nicely. +Solution: Add the surrogateescape error handler. (lilydjwg) +Files: src/if_python3.c + +Patch 7.3.251 +Problem: "gH<Del>" deletes the current line, except when it's the last + line. +Solution: Set the "include" flag to indicate the last line is to be deleted. +Files: src/normal.c, src/ops.c + +Patch 7.3.252 (after 7.3.247) +Problem: Tests fail. (David Northfield) +Solution: Add missing update for .ok file. +Files: src/testdir/test81.ok + +Patch 7.3.253 +Problem: "echo 'abc' > ''" returns 0 or 1, depending on 'ignorecase'. + Checks in mb_strnicmp() for illegal and truncated bytes are + wrong. Should not assume that byte length is equal before case + folding. +Solution: Add utf_safe_read_char_adv() and utf_strnicmp(). Add a test for + this. (Ivan Krasilnikov) +Files: src/mbyte.c src/testdir/test82.in, src/testdir/test82.ok, + src/testdir/Makefile, 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.3.254 +Problem: The coladd field is not reset when setting the line number for a + ":call" command. +Solution: Reset it. +Files: src/eval.c + +Patch 7.3.255 +Problem: When editing a file such as "File[2010-08-15].vim" an E16 error is + given. (Manuel Stol) +Solution: Don't give an error for failing to compile the regexp. +Files: src/ex_docmd.c, src/misc1.c, src/vim.h + +Patch 7.3.256 +Problem: Javascript indenting not sufficiently tested. +Solution: Add more tests. (Luc Deschenaux) Mark the lines that are indented + wrong. +Files: src/testdir/test3.in, src/testdir/test3.ok + +Patch 7.3.257 +Problem: Not all completions are available to user commands. +Solution: Add "color", "compiler", "file_in_path" and "locale". (Dominique + Pelle) +Files: src/ex_docmd.c, runtime/doc/map.txt + +Patch 7.3.258 +Problem: MS-Windows: The edit with existing vim context menu entries can be + unwanted. +Solution: Let a registry entry disable them. (Jerome Vuarand) +Files: src/GvimExt/gvimext.cpp + +Patch 7.3.259 +Problem: Equivalence classes only work for latin characters. +Solution: Add the Unicode equivalence characters. (Dominique Pelle) +Files: runtime/doc/pattern.txt, src/regexp.c, src/testdir/test44.in, + src/testdir/test44.ok + +Patch 7.3.260 +Problem: CursorHold triggers on an incomplete mapping. (Will Gray) +Solution: Don't trigger CursorHold when there is typeahead. +Files: src/fileio.c + +Patch 7.3.261 +Problem: G++ error message erroneously recognized as error. +Solution: Ignore "In file included from" line also when it ends in a colon. + (Fernando Castillo) +Files: src/option.h + +Patch 7.3.262 +Problem: Photon code style doesn't match Vim style. +Solution: Clean up some of it. (Elias Diem) +Files: src/gui_photon.c + +Patch 7.3.263 +Problem: Perl and Tcl have a few code style problems. +Solution: Clean it up. (Elias Diem) +Files: src/if_perl.xs, src/if_tcl.c + +Patch 7.3.264 +Problem: When the current directory name contains wildcard characters, such + as "foo[with]bar", the tags file can't be found. (Jeremy + Erickson) +Solution: When searching for matching files also match without expanding + wildcards. This is a bit of a hack. +Files: src/vim.h, src/misc1.c, src/misc2.c + +Patch 7.3.265 +Problem: When storing a pattern in search history there is no proper check + for the separator character. +Solution: Pass the separator character to in_history(). (Taro Muraoka) +Files: src/ex_getln.c + +Patch 7.3.266 +Problem: In gvim with iBus typing space in Insert mode doesn't work. +Solution: Clear xim_expected_char after checking it. +Files: src/mbyte.c + +Patch 7.3.267 +Problem: Ruby on Mac OS X 10.7 may crash. +Solution: Avoid alloc(0). (Bjorn Winckler) +Files: src/if_ruby.c + +Patch 7.3.268 +Problem: Vim freezes when executing an external command with zsh. +Solution: Use O_NOCTTY both in the master and slave. (Bjorn Winckler) +Files: src/os_unix.c + +Patch 7.3.269 +Problem: 'shellcmdflag' only works with one flag. +Solution: Split into multiple arguments. (Gary Johnson) +Files: src/os_unix.c + +Patch 7.3.270 +Problem: Illegal memory access. +Solution: Swap conditions. (Dominique Pelle) +Files: src/ops.c + +Patch 7.3.271 +Problem: Code not following Vim coding style. +Solution: Fix the style. (Elias Diem) +Files: src/gui_photon.c + +Patch 7.3.272 +Problem: ":put =list" does not add an empty line for a trailing empty + item. +Solution: Add a trailing NL when turning a list into a string. +Files: src/eval.c + +Patch 7.3.273 +Problem: A BOM in an error file is seen as text. (Aleksey Baibarin) +Solution: Remove the BOM from the text before evaluating. (idea by Christian + Brabandt) +Files: src/quickfix.c, src/mbyte.c, src/proto/mbyte.pro, + src/testdir/test10.in + +Patch 7.3.274 +Problem: With concealed characters tabs do not have the right size. +Solution: Use VCOL_HLC instead of vcol. (Eiichi Sato) +Files: src/screen.c + +Patch 7.3.275 +Problem: MS-Windows: When using a black background some screen updates + cause the window to flicker. +Solution: Add WS_CLIPCHILDREN to CreateWindow(). (René Aguirre) +Files: src/gui_w32.c + +Patch 7.3.276 +Problem: GvimExt sets $LANG in the wrong way. +Solution: Save the environment and use it for gvim. (Yasuhiro Matsumoto) +Files: src/GvimExt/gvimext.cpp + +Patch 7.3.277 +Problem: MS-Windows: some characters do not show in dialogs. +Solution: Use the wide methods when available. (Yanwei Jia) +Files: src/gui_w32.c, src/gui_w48.c, src/os_mswin.c, src/os_win32.c, + src/os_win32.h + +Patch 7.3.278 +Problem: Passing the file name to open in VisVim doesn't work. +Solution: Adjust the index and check for end of buffer. (Jiri Sedlak) +Files: src/VisVim/Commands.cpp + +Patch 7.3.279 +Problem: With GTK, when gvim is full-screen and a tab is opened and using a + specific monitor configuration the window is too big. +Solution: Adjust the window size like on MS-Windows. (Yukihiro Nakadaira) +Files: src/gui.c, src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro + +Patch 7.3.280 +Problem: ":lmake" does not update the quickfix window title. +Solution: Update the title. (Lech Lorens) +Files: src/quickfix.c, src/testdir/test10.in, src/testdir/test10.ok + +Patch 7.3.281 +Problem: After using "expand('%:8')" the buffer name is changed. +Solution: Make a copy of the file name before shortening it. +Files: src/eval.c + +Patch 7.3.282 +Problem: When using input() and :echo in a loop the displayed text is + incorrect. (Benjamin Fritz) +Solution: Only restore the cursor position when there is a command line. + (Ben Schmidt) +Files: src/ex_getln.c + +Patch 7.3.283 +Problem: An expression mapping with a multibyte character containing a + 0x80 byte gets messed up. (ZyX) +Solution: Unescape the expression before evaluating it (Yukihiro Nakadaira) +Files: src/getchar.c + +Patch 7.3.284 +Problem: The str2special() function doesn't handle multibyte characters + properly. +Solution: Recognize multibyte characters. (partly by Vladimir Vichniakov) +Files: src/getchar.c, src/message.c, src/misc2.c + +Patch 7.3.285 (after 7.3.284) +Problem: Mapping <Char-123> no longer works. +Solution: Properly check for "char-". Add a test for it. +Files: src/misc2.c, src/testdir/test75.in, src/testdir/test75.ok + +Patch 7.3.286 +Problem: Crash when using "zd" on a large number of folds. (Sam King) +Solution: Recompute pointer after reallocating array. Move fewer entries + when making room. +Files: src/fold.c + +Patch 7.3.287 +Problem: Can't compile with MSVC and tiny options. +Solution: Move variables and #ifdefs. (Sergey Khorev) +Files: src/os_win32.c + +Patch 7.3.288 +Problem: has('python') may give an error message for not being able to load + the library after using python3. +Solution: Only give the error when the verbose argument is true. +Files: src/if_python.c, src/if_python3.c + +Patch 7.3.289 +Problem: Complete function isn't called when the leader changed. +Solution: Call ins_compl_restart() when the leader changed. (Taro Muraoka) +Files: src/edit.c + +Patch 7.3.290 +Problem: When a BufWriteCmd autocommand resets 'modified' this doesn't + change older buffer states to be marked as 'modified' like + ":write" does. (Yukihiro Nakadaira) +Solution: When the BufWriteCmd resets 'modified' then adjust the undo + information like ":write" does. +Files: src/fileio.c + +Patch 7.3.291 +Problem: Configure doesn't work properly with Python3. +Solution: Put -ldl before $LDFLAGS. Add PY3_NO_RTLD_GLOBAL. (Roland + Puntaier) +Files: src/config.h.in, src/auto/configure, src/configure.in + +Patch 7.3.292 +Problem: Crash when using fold markers and selecting a visual block that + includes a folded line and goes to end of line. (Sam Lidder) +Solution: Check for the column to be MAXCOL. (James Vega) +Files: src/screen.c + +Patch 7.3.293 +Problem: MSVC compiler has a problem with non-ASCII characters. +Solution: Avoid non-ASCII characters. (Hong Xu) +Files: src/ascii.h, src/spell.c + +Patch 7.3.294 (after 7.3.289) +Problem: Patch 289 causes more problems than it solves. +Solution: Revert the patch until a better solution is found. +Files: src/edit.c + +Patch 7.3.295 +Problem: When filtering text with an external command Vim may not read all + the output. +Solution: When select() is interrupted loop and try again. (James Vega) +Files: src/os_unix.c + +Patch 7.3.296 +Problem: When writing to an external command a zombie process may be left + behind. +Solution: Wait on the process. (James Vega) +Files: src/os_unix.c + +Patch 7.3.297 +Problem: Can't load Perl 5.14 dynamically. +Solution: Add code in #ifdefs. (Charles Cooper) +Files: if_perl.xs + +Patch 7.3.298 +Problem: Built-in colors are different from rgb.txt. +Solution: Adjust the color values. (Benjamin Haskell) +Files: src/gui_photon.c, src/gui_w48.c + +Patch 7.3.299 +Problem: Source code not in Vim style. +Solution: Adjust the style. (Elias Diem) +Files: src/gui_photon.c + +Patch 7.3.300 +Problem: Python doesn't parse multibyte argument correctly. +Solution: Use "t" instead of "s". (lilydjwg) +Files: src/if_py_both.h + +Patch 7.3.301 +Problem: When 'smartindent' and 'copyindent' are set a Tab is used even + though 'expandtab' is set. +Solution: Do not insert Tabs. Add a test. (Christian Brabandt) +Files: src/misc1.c, src/testdir/test19.in, src/testdir/test19.ok + +Patch 7.3.302 (after 7.3.301) +Problem: Test 19 fails without 'smartindent' and +eval. +Solution: Don't use ":exe". Source small.vim. +Files: src/testdir/test19.in + +Patch 7.3.303 (after 7.3.296) +Problem: Compilation error. +Solution: Correct return type from int to pid_t. (Danek Duvall) +Files: src/os_unix.c + +Patch 7.3.304 +Problem: Strawberry Perl doesn't work on MS-Windows. +Solution: Use xsubpp if needed. (Yasuhiro Matsumoto) +Files: src/Make_ming.mak, src/Make_mvc.mak + +Patch 7.3.305 +Problem: Auto-loading a function while editing the command line causes + scrolling up the display. +Solution: Don't set msg_scroll when defining a function and the user is not + typing. (Yasuhiro Matsumoto) +Files: src/eval.c + +Patch 7.3.306 +Problem: When closing a window there is a chance that deleting a scrollbar + triggers a GUI resize, which uses the window while it is not in a + valid state. +Solution: Set the buffer pointer to NULL to be able to detect the invalid + situation. Fix a few places that used the buffer pointer + incorrectly. +Files: src/buffer.c, src/ex_cmds.c, src/term.c, src/window.c + +Patch 7.3.307 +Problem: Python 3 doesn't support slice assignment. +Solution: Implement slices. (Brett Overesch, Roland Puntaier) +Files: src/if_python3.c + +Patch 7.3.308 +Problem: Writing to 'verbosefile' has problems, e.g. for :highlight. +Solution: Do not use a separate verbose_write() function but write with the + same code that does redirecting. (Yasuhiro Matsumoto) +Files: src/message.c + +Patch 7.3.309 (after 7.3.307) +Problem: Warnings for pointer types. +Solution: Change PySliceObject to PyObject. +Files: src/if_python3.c + +Patch 7.3.310 +Problem: Code not following Vim style. +Solution: Fix the style. (Elias Diem) +Files: src/gui_photon.c + +Patch 7.3.311 (replaces 7.3.289) +Problem: Complete function isn't called when the leader changed. +Solution: Allow the complete function to return a dictionary with a flag + that indicates ins_compl_restart() is to be called when the leader + changes. (Taro Muraoka) +Files: runtime/insert.txt, src/edit.c, src/eval.c, src/proto/eval.pro + +Patch 7.3.312 (after 7.3.306) +Problem: Can't compile with tiny features. +Solution: Add #ifdef around win_valid(). +Files: src/buffer.c + +Patch 7.3.313 (after 7.3.307) +Problem: One more warning when compiling with dynamic Python 3. +Solution: Change PySliceObject to PyObject. +Files: src/if_python3.c + +Patch 7.3.314 (after 7.3.304) +Problem: Missing parenthesis. +Solution: Add it. (Benjamin R. Haskell) +Files: src/Make_mvc.mak + +Patch 7.3.315 +Problem: Opening a window before forking causes problems for GTK. +Solution: Fork first, create the window in the child and report back to the + parent process whether it worked. If successful the parent exits, + if unsuccessful the child exits and the parent continues in the + terminal. (Tim Starling) +Files: src/gui.c + +Patch 7.3.316 (after 7.3.306) +Problem: Crash when 'colorcolumn' is set and closing buffer. +Solution: Check for w_buffer to be NULL. (Yasuhiro Matsumoto) +Files: src/option.c + +Patch 7.3.317 +Problem: Calling debug.debug() in Lua may cause Vim to hang. +Solution: Add a better debug method. (Rob Hoelz, Luis Carvalho) +Files: src/if_lua.c + +Patch 7.3.318 +Problem: "C" on the last line deletes that line if it's blank. +Solution: Only delete the last line for a delete operation. (James Vega) +Files: src/ops.c + +Patch 7.3.319 (after 7.3.311) +Problem: Redobuff doesn't always include changes of the completion leader. +Solution: Insert backspaces as needed. (idea by Taro Muraoka) +Files: src/edit.c + +Patch 7.3.320 +Problem: When a 0xa0 character is in a sourced file the error message for + unrecognized command does not show the problem. +Solution: Display 0xa0 as <a0>. +Files: src/ex_docmd.c + +Patch 7.3.321 +Problem: Code not following Vim style. +Solution: Fix the style. (Elias Diem) +Files: src/os_qnx.c + +Patch 7.3.322 +Problem: #ifdef for PDP_RETVAL doesn't work, INT_PTR can be a typedef. +Solution: Check the MSC version and 64 bit flags. (Sergiu Dotenco) +Files: src/os_mswin.c + +Patch 7.3.323 +Problem: The default 'errorformat' does not ignore some "included from" + lines. +Solution: Add a few more patterns. (Ben Boeckel) +Files: src/option.h + +Patch 7.3.324 (after 7.3.237) +Problem: Completion for ":compiler" shows color scheme names. +Solution: Fix the directory name. (James Vega) +Files: src/ex_getln.c + +Patch 7.3.325 +Problem: A duplicated function argument gives an internal error. +Solution: Give a proper error message. (based on patch by Tyru) +Files: src/eval.c + +Patch 7.3.326 +Problem: MingW 4.6 no longer supports the -mno-cygwin option. +Solution: Split the Cygwin and MingW makefiles. (Matsushita Shougo) +Files: src/GvimExt/Make_cyg.mak, src/GvimExt/Make_ming.mak, + src/Make_cyg.mak, src/Make_ming.mak, src/xxd/Make_ming.mak, + Filelist + +Patch 7.3.327 +Problem: When jumping to a help tag a closed fold doesn't open. +Solution: Save and restore KeyTyped. (Yasuhiro Matsumoto) +Files: src/ex_cmds.c + +Patch 7.3.328 +Problem: When command line wraps the cursor may be displayed wrong when + there are multibyte characters. +Solution: Position the cursor before drawing the text. (Yasuhiro Matsumoto) +Files: src/ex_getln.c + +Patch 7.3.329 +Problem: When skipping over code from ":for" to ":endfor" get an error for + calling a dict function. (Yasuhiro Matsumoto) +Solution: Ignore errors when skipping over :call command. +Files: src/ex_docmd.c, src/eval.c + +Patch 7.3.330 +Problem: When longjmp() is invoked if the X server gives an error the state + is not properly restored. +Solution: Reset vgetc_busy. (Yukihiro Nakadaira) +Files: src/main.c + +Patch 7.3.331 +Problem: "vit" selects wrong text when a tag name starts with the same text + as an outer tag name. (Ben Fritz) +Solution: Add "\>" to the pattern to check for word boundary. +Files: src/search.c + +Patch 7.3.332 (after 7.3.202) +Problem: Indent after "public:" is not increased in C++ code. (Lech Lorens) +Solution: Check for namespace after the regular checks. (partly by Martin + Gieseking) +Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok + +Patch 7.3.333 +Problem: Using "." to repeat a Visual delete counts the size in bytes, not + characters. (Connor Lane Smith) +Solution: Store the virtual column numbers instead of byte positions. +Files: src/normal.c + +Patch 7.3.334 +Problem: Latest MingW about XSUBPP referencing itself. (Gongqian Li) +Solution: Rename the first use to XSUBPPTRY. +Files: src/Make_ming.mak + +Patch 7.3.335 +Problem: When 'imdisable' is reset from an autocommand in Insert mode it + doesn't take effect. +Solution: Call im_set_active() in Insert mode. (Taro Muraoka) +Files: src/option.c + +Patch 7.3.336 +Problem: When a tags file specifies an encoding different from 'enc' it + may hang and using a pattern doesn't work. +Solution: Convert the whole line. Continue reading the header after the + SORT tag. Add test83. (Yukihiro Nakadaira) +Files: src/tag.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/test83-tags2, src/testdir/test83-tags3, + src/testdir/test83.in, src/testdir/test83.ok + +Patch 7.3.337 (after 7.3.295) +Problem: Screen doesn't update after resizing the xterm until a character + is typed. +Solution: When the select call is interrupted check do_resize. (Taylor + Hedberg) +Files: src/os_unix.c + +Patch 7.3.338 +Problem: Using getchar() in an expression mapping doesn't work well. +Solution: Don't save and restore the typeahead. (James Vega) +Files: src/getchar.c, src/testdir/test34.ok + +Patch 7.3.339 +Problem: "make shadow" doesn't link all test files. +Solution: Add a line in Makefile and Filelist. +Files: src/Makefile, Filelist + +Patch 7.3.340 +Problem: When 'verbosefile' is set ftplugof.vim can give an error. +Solution: Only remove filetypeplugin autocommands when they exist. (Yasuhiro + Matsumoto) +Files: runtime/ftplugof.vim + +Patch 7.3.341 +Problem: Local help files are only listed in help.txt, not in translated + help files. +Solution: Also find translated help files. (Yasuhiro Matsumoto) +Files: src/ex_cmds.c + +Patch 7.3.342 +Problem: Code not in Vim style. +Solution: Fix the style. (Elias Diem) +Files: src/os_amiga.c, src/os_mac_conv.c, src/os_win16.c + +Patch 7.3.343 +Problem: No mouse support for urxvt. +Solution: Implement urxvt mouse support, also for > 252 columns. (Yiding + Jia) +Files: src/feature.h, src/keymap.h, src/option.h, src/os_unix.c, + src/term.c, src/version.c + +Patch 7.3.344 +Problem: Problem with GUI startup related to XInitThreads. +Solution: Use read() and write() instead of fputs() and fread(). (James + Vega) +Files: src/gui.c + +Patch 7.3.345 +Problem: When switching language with ":lang" the window title doesn't + change until later. +Solution: Update the window title right away. (Dominique Pelle) +Files: src/ex_cmds2.c + +Patch 7.3.346 +Problem: It's hard to test netbeans commands. +Solution: Process netbeans commands after :sleep. (Xavier de Gaye) +Files: runtime/doc/netbeans.txt, src/ex_docmd.c, src/netbeans.c + +Patch 7.3.347 +Problem: When dropping text from a browser on Vim it receives HTML even + though "html" is excluded from 'clipboard'. (Andrei Avk) +Solution: Fix the condition for TARGET_HTML. +Files: src/gui_gtk_x11.c + +Patch 7.3.348 +Problem: "call range(1, 947948399)" causes a crash. (ZyX) +Solution: Avoid a loop in the out of memory message. +Files: src/misc2.c + +Patch 7.3.349 +Problem: When running out of memory during startup trying to open a + swapfile will loop forever. +Solution: Let findswapname() set dirp to NULL if out of memory. +Files: src/memline.c + +Patch 7.3.350 +Problem: Block of code after ":lua << EOF" may not work. (Paul Isambert) +Solution: Recognize the ":lua" command, skip to EOF. +Files: src/eval.c + +Patch 7.3.351 +Problem: Text formatting uses start of insert position when it should not. + (Peter Wagenaar) +Solution: Do not use Insstart when intentionally formatting. +Files: src/edit.c + +Patch 7.3.352 +Problem: When completing methods dict functions and script-local functions + get in the way. +Solution: Sort function names starting with "<" to the end. (Yasuhiro + Matsumoto) +Files: src/ex_getln.c + +Patch 7.3.353 (after 7.3.343) +Problem: Missing part of the urxvt patch. +Solution: Add the change in term.c +Files: src/term.c + +Patch 7.3.354 +Problem: ":set backspace+=eol" doesn't work when 'backspace' has a + backwards compatible value of 2. +Solution: Convert the number to a string. (Hirohito Higashi) +Files: src/option.c + +Patch 7.3.355 +Problem: GTK warnings when using netrw.vim. (Ivan Krasilnikov) +Solution: Do not remove the beval event handler twice. +Files: src/option.c + +Patch 7.3.356 +Problem: Using "o" with 'cindent' set may freeze Vim. (lolilolicon) +Solution: Skip over {} correctly. (Hari G) +Files: src/misc1.c + +Patch 7.3.357 +Problem: Compiler warning in MS-Windows console build. +Solution: Adjust return type of PrintHookProc(). (Mike Williams) +Files: src/os_mswin.c + +Patch 7.3.358 (after 7.3.353) +Problem: Mouse support doesn't work properly. +Solution: Add HMT_URXVT. (lilydjwg, James McCoy) +Files: src/term.c + +Patch 7.3.359 +Problem: Command line completion shows dict functions. +Solution: Skip dict functions for completion. (Yasuhiro Matsumoto) +Files: src/eval.c + +Patch 7.3.360 +Problem: Interrupting the load of an autoload function may cause a crash. +Solution: Do not use the hashitem when not valid. (Yukihiro Nakadaira) +Files: src/eval.c + +Patch 7.3.361 +Problem: Accessing memory after it is freed when EXITFREE is defined. +Solution: Don't access curwin when firstwin is NULL. (Dominique Pelle) +Files: src/buffer.c + +Patch 7.3.362 +Problem: ml_get error when using ":g" with folded lines. +Solution: Adjust the line number for changed_lines(). (Christian Brabandt) +Files: src/ex_cmds.c + +Patch 7.3.363 +Problem: C indenting is wrong after #endif followed by a semicolon. +Solution: Add special handling for a semicolon in a line by itself. (Lech + Lorens) +Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok + +Patch 7.3.364 (after 7.3.353) +Problem: Can't compile on HP-UX. (John Marriott) +Solution: Only use TTYM_URXVT when it is defined. +Files: src/term.c + +Patch 7.3.365 +Problem: Crash when using a large Unicode character in a file that has + syntax highlighting. (ngollan) +Solution: Check for going past the end of the utf tables. (Dominique Pelle) +Files: src/mbyte.c + +Patch 7.3.366 +Problem: A tags file with an extremely long name causes errors. +Solution: Ignore tags that are too long. (Arno Renevier) +Files: src/tag.c + +Patch 7.3.367 +Problem: :wundo and :rundo use a wrong checksum. +Solution: Include the last line when computing the hash. (Christian Brabandt) +Files: src/undo.c + +Patch 7.3.368 +Problem: Gcc complains about redefining _FORTIFY_SOURCE. +Solution: Undefine it before redefining it. +Files: src/Makefile, src/configure.in, src/auto/configure + +Patch 7.3.369 +Problem: When compiled with Gnome get an error message when using --help. +Solution: Don't fork. (Ivan Krasilnikov) +Files: src/main.c + +Patch 7.3.370 +Problem: Compiler warns for unused variable in Lua interface. +Solution: Remove the variable. +Files: src/if_lua.c + +Patch 7.3.371 +Problem: Crash in autocomplete. (Greg Weber) +Solution: Check not going over allocated buffer size. +Files: src/misc2.c + +Patch 7.3.372 +Problem: When using a command line mapping to <Up> with file name + completion to go one directory up, 'wildchar' is inserted. + (Yasuhiro Matsumoto) +Solution: Set the KeyTyped flag. +Files: src/ex_getln.c + +Patch 7.3.373 (after 7.3.366) +Problem: A tags file with an extremely long name may cause an infinite loop. +Solution: When encountering a long name switch to linear search. +Files: src/tag.c + +Patch 7.3.374 +Problem: ++encoding does not work properly. +Solution: Recognize ++encoding before ++enc. (Charles Cooper) +Files: src/ex_docmd.c + +Patch 7.3.375 +Problem: Duplicate return statement. +Solution: Remove the superfluous one. (Dominique Pelle) +Files: src/gui_mac.c + +Patch 7.3.376 +Problem: Win32: Toolbar repainting does not work when the mouse pointer + hovers over a button. +Solution: Call DefWindowProc() when not handling an event. (Sergiu Dotenco) +Files: src/gui_w32.c + +Patch 7.3.377 +Problem: No support for bitwise AND, OR, XOR and invert. +Solution: Add and(), or(), invert() and xor() functions. +Files: src/eval.c, src/testdir/test49.in, src/testdir/test65.in, + src/testdir/test65.ok, runtime/doc/eval.txt + +Patch 7.3.378 +Problem: When cross-compiling the check for uint32_t fails. +Solution: Only give a warning message. (Maksim Melnikau) +Files: src/configure.in, src/auto/configure + +Patch 7.3.379 +Problem: C-indenting wrong for static enum. +Solution: Skip over "static". (Lech Lorens) +Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok + +Patch 7.3.380 +Problem: C-indenting wrong for a function header. +Solution: Skip to the start paren. (Lech Lorens) +Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok + +Patch 7.3.381 +Problem: Configure silently skips interfaces that won't work. +Solution: Add the --enable-fail_if_missing argument. (Shlomi Fish) +Files: src/Makefile, src/configure.in, src/auto/configure + +Patch 7.3.382 (after 7.3.376) +Problem: IME characters are inserted twice. +Solution: Do not call DefWindowProc() if the event was handled. (Yasuhiro + Matsumoto) +Files: src/gui_w32.c + +Patch 7.3.383 +Problem: For EBCDIC pound sign is defined as 't'. +Solution: Correctly define POUND. +Files: src/ascii.h + +Patch 7.3.384 +Problem: Mapping CTRL-K in Insert mode breaks CTRL-X CTRL-K for dictionary + completion. +Solution: Add CTRL-K to the list of recognized keys. (James McCoy) +Files: src/edit.c + +Patch 7.3.385 +Problem: When using an expression mapping on the command line the cursor + ends up in the wrong place. (Yasuhiro Matsumoto) +Solution: Save and restore msg_col and msg_row when evaluating the + expression. +Files: src/getchar. + +Patch 7.3.386 +Problem: Test 83 fails when iconv does not support cp932. (raf) +Solution: Test if conversion works. (Yukihiro Nakadaira) +Files: src/testdir/test83.in + +Patch 7.3.387 (after 7.3.386) +Problem: Test 83 may fail for some encodings. +Solution: Set 'encoding' to utf-8 earlier. +Files: src/testdir/test83.in + +Patch 7.3.388 +Problem: Crash on exit when EXITFREE is defined and using tiny features. +Solution: Check for NULL window pointer. (Dominique Pelle) +Files: src/buffer.c + +Patch 7.3.389 +Problem: After typing at a prompt the "MORE" message appears too soon. +Solution: reset lines_left in msg_end_prompt(). (Eswald) +Files: src/message.c + +Patch 7.3.390 +Problem: Using NULL buffer pointer in a window. +Solution: Check for w_buffer being NULL in more places. (Bjorn Winckler) +Files: src/ex_cmds.c, src/quickfix.c, src/window.c + +Patch 7.3.391 +Problem: Can't check if the XPM_W32 feature is enabled. +Solution: Add xpm_w32 to the list of features. (kat) +Files: src/eval.c + +Patch 7.3.392 +Problem: When setting 'undofile' while the file is already loaded but + unchanged, try reading the undo file. (Andy Wokula) +Solution: Compute a checksum of the text when 'undofile' is set. (Christian + Brabandt) +Files: src/option.c, src/testdir/test72.in, src/testdir/test72.ok + +Patch 7.3.393 +Problem: Win32: When resizing Vim it is always moved to the primary monitor + if the secondary monitor is on the left. +Solution: Use the nearest monitor. (Yukihiro Nakadaira) +Files: src/gui_w32.c + +Patch 7.3.394 +Problem: When placing a mark while starting up a screen redraw messes up + the screen. (lith) +Solution: Don't redraw while still starting up. (Christian Brabandt) +Files: src/screen.c + +Patch 7.3.395 (after 7.3.251) +Problem: "dv?bar" in the last line deletes too much and breaks undo. +Solution: Only adjust the cursor position when it's after the last line of + the buffer. Add a test. (Christian Brabandt) +Files: src/ops.c, src/testdir/test43.in, src/testdir/test43.ok + +Patch 7.3.396 +Problem: After forcing an operator to be characterwise it can still become + linewise when spanning whole lines. +Solution: Don't make the operator linewise when motion_force was set. + (Christian Brabandt) +Files: src/ops.c + +Patch 7.3.397 +Problem: ":helpgrep" does not work properly when 'encoding' is not utf-8 or + latin1. +Solution: Convert non-ascii lines to 'encoding'. (Yasuhiro Matsumoto) +Files: src/quickfix.c, src/spell.c, src/misc2.c, src/proto/misc2.pro + +Patch 7.3.398 +Problem: When creating more than 10 location lists and adding items one by + one a previous location may be used. (Audrius Kažukauskas) +Solution: Clear the location list completely when adding the tenth one. +Files: src/quickfix.c + +Patch 7.3.399 +Problem: ":cd" doesn't work when the path contains wildcards. (Yukihiro + Nakadaira) +Solution: Ignore wildcard errors when the EW_NOTWILD flag is used. +Files: src/misc1.c + +Patch 7.3.400 +Problem: Compiler warnings for shadowed variables. +Solution: Remove or rename the variables. +Files: src/charset.c, src/digraph.c, src/edit.c, src/eval.c, src/fold.c, + src/getchar.c, src/message.c, src/misc2.c, src/move.c, + src/netbeans.c, src/option.c, src/os_unix.c, src/screen.c, + src/search.c, src/spell.c, src/syntax.c, src/tag.c, src/window.c + +Patch 7.3.401 +Problem: A couple more shadowed variables. +Solution: Rename the variables. +Files: src/netbeans.c + +Patch 7.3.402 +Problem: When jumping to the first error a line of the buffer is sometimes + redrawn on top of the list of errors. +Solution: Do not call update_topline_redraw() if the display was scrolled + up. +Files: src/quickfix.c + +Patch 7.3.403 +Problem: ":helpgrep" does not trigger QuickFixCmd* autocommands. +Solution: Trigger the autocommands. (Christian Brabandt) +Files: src/quickfix.c + +Patch 7.3.404 +Problem: When a complete function uses refresh "always" redo will not work + properly. +Solution: Do not reset compl_leader when compl_opt_refresh_always is set. + (Yasuhiro Matsumoto) +Files: src/edit.c + +Patch 7.3.405 +Problem: When xterm gets back the function keys it may delete the urxvt + mouse termcap code. +Solution: Check for the whole code, not just the start. (Egmont Koblinger) +Files: src/keymap.h, src/misc2.c, src/term.c + +Patch 7.3.406 +Problem: Multi-byte characters in b:browsefilter are not handled correctly. +Solution: First use convert_filter() normally and then convert to wide + characters. (Taro Muraoka) +Files: src/gui_w48.c + +Patch 7.3.407 +Problem: ":12verbose call F()" may duplicate text while trying to truncate. + (Thinca) +Solution: Only truncate when there is not enough room. Also check the byte + length of the buffer. +Files: src/buffer.c, src/eval.c, src/ex_getln.c, src/message.c, + src/proto/message.pro + +Patch 7.3.408 (after 7.3.406) +Problem: Missing declaration. +Solution: Add the declaration. (John Marriott) +Files: src/gui_w48.c + +Patch 7.3.409 +Problem: The license in pty.c is unclear. +Solution: Add a comment about the license. +Files: src/pty.c + +Patch 7.3.410 +Problem: Compiler error for // comment. (Joachim Schmitz) +Solution: Turn into /* comment */. +Files: src/message.c + +Patch 7.3.411 +Problem: Pasting in Visual mode using the "" register does not work. (John + Beckett) +Solution: Detect that the write is overwriting the pasted register. + (Christian Brabandt) +Files: src/normal.c + +Patch 7.3.412 +Problem: Storing a float in a session file has an additional '&'. +Solution: Remove the '&'. (Yasuhiro Matsumoto) +Files: src/eval.c + +Patch 7.3.413 +Problem: Build warnings on MS-Windows. +Solution: Add type casts. (Mike Williams) +Files: src/ex_getln.c, src/message.c, src/term.c + +Patch 7.3.414 +Problem: Using CTRL-A on "000" drops the leading zero, while on "001" it + doesn't. +Solution: Detect "000" as an octal number. (James McCoy) +Files: src/charset.c + +Patch 7.3.415 (after 7.3.359) +Problem: Completion of functions stops once a dictionary is encountered. + (James McCoy) +Solution: Return an empty string instead of NULL. +Files: src/eval.c + +Patch 7.3.416 (after 7.3.415) +Problem: Compiler warning for wrong pointer. +Solution: Add type cast. +Files: src/eval.c + +Patch 7.3.417 (after 7.3.395) +Problem: Test 43 fails with a tiny build. +Solution: Only run test 43 with at least a small build. +Files: src/testdir/test43.in + +Patch 7.3.418 +Problem: When a user complete function returns -1 an error message is + given. +Solution: When -2 is returned stop completion silently. (Yasuhiro Matsumoto) +Files: src/edit. + +Patch 7.3.419 +Problem: DBCS encoding in a user command does not always work. +Solution: Skip over DBCS characters. (Yasuhiro Matsumoto) +Files: src/ex_docmd.c + +Patch 7.3.420 +Problem: "it" and "at" don't work properly with a dash in the tag name. +Solution: Require a space to match the tag name. (Christian Brabandt) +Files: src/search.c + +Patch 7.3.421 +Problem: Get E832 when setting 'undofile' in vimrc and there is a file to + be edited on the command line. (Toothpik) +Solution: Do not try reading the undo file for a file that wasn't loaded. +Files: src/option.c + +Patch 7.3.422 +Problem: Python 3 does not have __members__. +Solution: Add "name" and "number" in another way. (lilydjwg) +Files: src/if_py_both.h, src/if_python3.c + +Patch 7.3.423 +Problem: Small mistakes in comments, proto and indent. +Solution: Fix the mistakes. +Files: src/ex_cmds2.c, src/structs.h, src/ui.c, src/proto/ex_docmd.pro + +Patch 7.3.424 +Problem: Win16 version missing some functions. +Solution: Add #defines for the functions. +Files: src/gui_w16.c + +Patch 7.3.425 (after 7.3.265) +Problem: Search history lines are duplicated. (Edwin Steiner) +Solution: Convert separator character from space to NUL. +Files: src/ex_getln.c + +Patch 7.3.426 +Problem: With '$' in 'cpoptions' the $ is not displayed in the first + column. +Solution: Use -1 instead of 0 as a special value. (Hideki Eiraku and + Hirohito Higashi) +Files: src/edit.c, src/globals.h, src/move.c, src/screen.c, src/search.c + +Patch 7.3.427 +Problem: readfile() can be slow with long lines. +Solution: Use realloc() instead of alloc(). (John Little) +Files: src/eval.c + +Patch 7.3.428 +Problem: Win32: an xpm file without a mask crashes Vim. +Solution: Fail when the mask is missing. (Dave Bodenstab) +Files: src/xpm_w32.c + +Patch 7.3.429 +Problem: When 'cpoptions' includes "E" "c0" in the first column is an + error. The redo register is then set to the erroneous command. +Solution: Do not set the redo register if the command fails because of an + empty region. (Hideki Eiraku) +Files: src/getchar.c, src/normal.c, src/proto/getchar.pro + +Patch 7.3.430 +Problem: When a custom filetype detection uses "augroup END" the conf + filetype detection does not have the filetypedetect group. +Solution: Always end the group and include filetypedetect in the conf + autocommand. (Lech Lorens) +Files: runtime/filetype.vim + +Patch 7.3.431 +Problem: Fetching a key at a prompt may be confused by escape sequences. + Especially when getting a prompt at a VimEnter autocommand. + (Alex Efros) +Solution: Properly handle escape sequences deleted by check_termcode(). +Files: src/getchar.c, src/misc1.c, src/term.c, src/proto/term.pro + +Patch 7.3.432 +Problem: ACLs are not supported for ZFS or NFSv4 on Solaris. +Solution: Add configure check and code. (Danek Duvall) +Files: src/configure.in, src/auto/configure, src/config.h.in, + src/os_unix.c + +Patch 7.3.433 +Problem: Using continued lines in a Vim script can be slow. +Solution: Instead of reallocating for every line use a growarray. (Yasuhiro + Matsumoto) +Files: src/ex_cmds2.c + +Patch 7.3.434 +Problem: Using join() can be slow. +Solution: Compute the size of the result before allocation to avoid a lot of + allocations and copies. (Taro Muraoka) +Files: src/eval.c + +Patch 7.3.435 +Problem: Compiler warning for unused variable. +Solution: Move the variable inside #ifdef. +Files: src/ex_cmds2.c + +Patch 7.3.436 +Problem: Compiler warnings for types on Windows. +Solution: Add type casts. (Mike Williams) +Files: src/eval.c + +Patch 7.3.437 +Problem: Continue looping inside FOR_ALL_TAB_WINDOWS even when already done. +Solution: Use goto instead of break. (Hirohito Higashi) +Files: src/fileio.c, src/globals.h + +Patch 7.3.438 +Problem: There is no way to avoid ":doautoall" reading modelines. +Solution: Add the <nomodeline> argument. Adjust documentation. +Files: src/fileio.c, runtime/doc/autocmd.txt + +Patch 7.3.439 +Problem: Compiler warnings to size casts in Perl interface. +Solution: Use XS macros. (James McCoy) +Files: src/if_perl.xs, src/typemap + +Patch 7.3.440 +Problem: Vim does not support UTF8_STRING for the X selection. +Solution: Add UTF8_STRING atom support. (Alex Efros) Use it only when + 'encoding' is set to Unicode. +Files: src/ui.c + +Patch 7.3.441 +Problem: Newer versions of MzScheme (Racket) require earlier (trampolined) + initialisation. +Solution: Call mzscheme_main() early in main(). (Sergey Khorev) +Files: src/Make_mvc.mak, src/if_mzsch.c, src/main.c, + src/proto/if_mzsch.pro + +Patch 7.3.442 (after 7.3.438) +Problem: Still read modelines for ":doautocmd". +Solution: Move check for <nomodeline> to separate function. +Files: src/fileio.c, src/ex_docmd.c, src/proto/fileio.pro, + runtime/doc/autocmd.txt + +Patch 7.3.443 +Problem: MS-Windows: 'shcf' and 'shellxquote' defaults are not very good. +Solution: Make a better guess when 'shell' is set to "cmd.exe". (Ben Fritz) +Files: src/option.c, runtime/doc/options.txt + +Patch 7.3.444 +Problem: ":all!" and ":sall!" give error E477, even though the + documentation says these are valid commands. +Solution: Support the exclamation mark. (Hirohito Higashi) +Files: src/ex_cmds.h, src/testdir/test31.in, src/testdir/test31.ok + +Patch 7.3.445 (after 7.3.443) +Problem: Can't properly escape commands for cmd.exe. +Solution: Default 'shellxquote' to '('. Append ')' to make '(command)'. + No need to use "/s" for 'shellcmdflag'. +Files: src/misc2.c, src/option.c, src/os_win32.c + +Patch 7.3.446 (after 7.3.445) +Problem: Win32: External commands with special characters don't work. +Solution: Add the 'shellxescape' option. +Files: src/misc2.c, src/option.c, src/option.h, runtime/doc/options.txt + +Patch 7.3.447 (after 7.3.446) +Problem: Win32: External commands with "start" do not work. +Solution: Unescape part of the command. (Yasuhiro Matsumoto) +Files: src/os_win32.c + +Patch 7.3.448 (after 7.3.447) +Problem: Win32: Still a problem with "!start /b". +Solution: Escape only '|'. (Yasuhiro Matsumoto) +Files: src/os_win32.c + +Patch 7.3.449 +Problem: Crash when a BufWinLeave autocommand closes the only other window. + (Daniel Hunt) +Solution: Abort closing a buffer when it becomes the only one. +Files: src/buffer.c, src/proto/buffer.pro, src/ex_cmds.c, src/ex_getln.c, + src/misc2.c, src/quickfix.c, src/window.c, src/proto/window.pro + +Patch 7.3.450 (after 7.3.448) +Problem: Win32: Still a problem with "!start /b". +Solution: Fix pointer use. (Yasuhiro Matsumoto) +Files: src/os_win32.c + +Patch 7.3.451 +Problem: Tcl doesn't work on 64 MS-Windows. +Solution: Make it work. (Dave Bodenstab) +Files: src/Make_mvc.mak, src/if_tcl.c + +Patch 7.3.452 +Problem: Undo broken when pasting close to the last line. (Andrey Radev) +Solution: Use a flag to remember if the deleted included the last line. + (Christian Brabandt) +Files: src/ops.c + +Patch 7.3.453 +Problem: Pasting in the command line is slow. +Solution: Don't redraw if there is another character to read. (Dominique + Pelle) +Files: src/ex_getln.c + +Patch 7.3.454 +Problem: Re-allocating memory slows Vim down. +Solution: Use realloc() in ga_grow(). (Dominique Pelle) +Files: src/misc2.c + +Patch 7.3.455 +Problem: Using many continuation lines can be slow. +Solution: Adjust the reallocation size to the current length. +Files: src/ex_cmds2.c + +Patch 7.3.456 +Problem: ":tab drop file" has several problems, including moving the + current window and opening a new tab for a file that already has a + window. +Solution: Refactor ":tab drop" handling. (Hirohito Higashi) +Files: src/buffer.c, src/testdir/test62.in, src/testdir/test62.ok + +Patch 7.3.457 +Problem: When setting $VIMRUNTIME later the directory for fetching + translated messages is not adjusted. +Solution: Put bindtextdomain() in vim_setenv(). +Files: src/misc1.c + +Patch 7.3.458 +Problem: Crash when calling smsg() during startup. +Solution: Don't use 'shortmess' when it is not set yet. +Files: src/option.c + +Patch 7.3.459 +Problem: Win32: Warnings for type conversion. +Solution: Add type casts. (Mike Williams) +Files: src/misc2.c, src/os_win32.c + +Patch 7.3.460 +Problem: Win32: UPX does not compress 64 bit binaries. +Solution: Mention and add the alternative: mpress. (Dave Bodenstab) +Files: src/INSTALLpc.txt, src/Make_ming.mak + +Patch 7.3.461 +Problem: The InsertCharPre autocommand event is not triggered during + completion and when typing several characters quickly. +Solution: Also trigger InsertCharPre during completion. Do not read ahead + when an InsertCharPre autocommand is defined. (Yasuhiro Matsumoto) +Files: src/edit.c, src/fileio.c, src/proto/fileio.pro + +Patch 7.3.462 +Problem: When using ":loadview" folds may be closed unexpectedly. +Solution: Take into account foldlevel. (Xavier de Gaye) +Files: src/fold.c + +Patch 7.3.463 +Problem: When using ":s///c" the cursor is moved away from the match. + (Lawman) +Solution: Don't move the cursor when do_ask is set. (Christian Brabandt) +Files: src/ex_cmds.c + +Patch 7.3.464 +Problem: Compiler warning for sprintf. +Solution: Put the length in a variable. (Dominique Pelle) +Files: src/version.c + +Patch 7.3.465 +Problem: Cannot get file name with newline from glob(). +Solution: Add argument to glob() and expand() to indicate they must return a + list. (Christian Brabandt) +Files: runtime/doc/eval.txt, src/eval.c, src/ex_getln.c, src/vim.h + +Patch 7.3.466 +Problem: Get ml_get error hen ":behave mswin" was used and selecting + several lines. (A. Sinan Unur) +Solution: Adjust the end of the operation. (Christian Brabandt) +Files: src/ops.c + +Patch 7.3.467 +Problem: Cursor positioned wrong at the command line when regaining focus + and using some input method. +Solution: Do not position the cursor in command line mode. +Files: src/mbyte.c + +Patch 7.3.468 +Problem: For some compilers the error file is not easily readable. +Solution: Use QuickFixCmdPre for more commands. (Marcin Szamotulski) +Files: runtime/doc/autocmd.txt, src/quickfix.c + +Patch 7.3.469 +Problem: Compiler warning for unused argument without some features. +Solution: Add UNUSED. +Files: src/buffer.c + +Patch 7.3.470 +Problem: Test 62 fails when compiled without GUI and X11. +Solution: Don't test :drop when it is not supported. +Files: src/testdir/test62.in + +Patch 7.3.471 +Problem: Can't abort listing placed signs. +Solution: Check "got_int". (Christian Brabandt) +Files: src/buffer.c, src/ex_cmds.c + +Patch 7.3.472 +Problem: Crash when using ":redraw" in a BufEnter autocommand and + switching to another tab. (驼峰) +Solution: Move triggering the autocommands to after correcting the + option values. Also check the row value to be out of bounds. + (Christian Brabandt, Sergey Khorev) +Files: src/screen.c, src/window.c + +Patch 7.3.473 +Problem: 'cursorbind' does not work correctly in combination with + 'virtualedit' set to "all". +Solution: Copy coladd. (Gary Johnson) +Files: src/move.c + +Patch 7.3.474 +Problem: Perl build with gcc 4 fails. +Solution: Remove XS() statements. (Yasuhiro Matsumoto) +Files: src/if_perl.xs + +Patch 7.3.475 +Problem: In a terminal with few colors the omnicomplete menu may be hard to + see when using the default colors. +Solution: Use more explicit colors. (suggested by Alex Henrie) +Files: src/syntax.c + +Patch 7.3.476 +Problem: When selecting a block, using "$" to include the end of each line + and using "A" and typing a backspace strange things happen. + (Yuangchen Xie) +Solution: Avoid using a negative length. (Christian Brabandt) +Files: src/ops.c + +Patch 7.3.477 +Problem: Using ":echo" to output enough lines to scroll, then using "j" and + "k" at the more prompt, displays the command on top of the output. + (Marcin Szamotulski) +Solution: Put the output below the command. (Christian Brabandt) +Files: src/eval.c + +Patch 7.3.478 +Problem: Memory leak using the ':rv!' command when reading dictionary or + list global variables i.e. with 'viminfo' containing !. +Solution: Free the typeval. (Dominique Pelle) +Files: src/eval.c + +Patch 7.3.479 +Problem: When 'cursorline' is set the line number highlighting can't be set + separately. +Solution: Add "CursorLineNr". (Howard Buchholz) +Files: src/option.c, src/screen.c, src/syntax.c, src/vim.h + +Patch 7.3.480 +Problem: When using ":qa" and there is a changed buffer picking the buffer + to jump to is not very good. +Solution: Consider current and other tab pages. (Hirohito Higashi) +Files: src/ex_cmds2.c + +Patch 7.3.481 +Problem: Changing 'virtualedit' in an operator function to "all" does not + have the desired effect. (Aaron Bohannon) +Solution: Save, reset and restore virtual_op when executing an operator + function. +Files: src/normal.c + +Patch 7.3.482 +Problem: With 'cursorbind' set moving up/down does not always keep the same + column. +Solution: Set curswant appropriately. (Gary Johnson) +Files: src/move.c + +Patch 7.3.483 (after 7.3.477) +Problem: More prompt shows up too often. +Solution: Instead of adding a line break, only start a new line in the + message history. (Christian Brabandt) +Files: src/eval.c, src/message.c, src/proto/message.pro + +Patch 7.3.484 +Problem: The -E and --echo-wid command line arguments are not mentioned in + "vim --help". +Solution: Add the help lines. (Dominique Pelle) +Files: src/main.c + +Patch 7.3.485 +Problem: When building Vim LDFLAGS isn't passed on to building xxd. +Solution: Pass the LDFLAGS value. (James McCoy) +Files: src/Makefile + +Patch 7.3.486 +Problem: Build error with mingw64 on Windows 7. +Solution: Avoid the step of going through vimres.res. (Guopeng Wen) +Files: src/Make_ming.mak + +Patch 7.3.487 +Problem: When setting 'timeoutlen' or 'ttimeoutlen' the column for vertical + movement is reset unnecessarily. +Solution: Do not set w_set_curswant for every option. Add a test for this. + (Kana Natsuno) Add the P_CURSWANT flag for options. +Files: src/option.c, src/testdir/test84.in, src/testdir/test84.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.3.488 +Problem: ":help!" in a help file does not work as documented. +Solution: When in a help file don't give an error message. (thinca) +Files: src/ex_cmds.c + +Patch 7.3.489 +Problem: CTRL-] in Insert mode does not expand abbreviation when used in a + mapping. (Yichao Zhou) +Solution: Special case using CTRL-]. (Christian Brabandt) +Files: src/getchar.c, src/edit.c + +Patch 7.3.490 +Problem: Member confusion in Lua interface. +Solution: Fix it. Add luaeval(). (Taro Muraoka, Luis Carvalho) +Files: runtime/doc/if_lua.txt, src/eval.c, src/if_lua.c, + src/proto/if_lua.pro + +Patch 7.3.491 +Problem: No tests for Lua. +Solution: Add some simple tests for Lua. (Luis Carvalho) +Files: src/testdir/test1.in, src/testdir/test85.in, src/testdir/test85.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.3.492 +Problem: Can't indent conditions separately from function arguments. +Solution: Add the 'k' flag in 'cino'. (Lech Lorens) +Files: runtime/doc/indent.txt, src/misc1.c, src/testdir/test3.in, + src/testdir/test3.ok + +Patch 7.3.493 (after 7.3.492) +Problem: Two unused variables. +Solution: Remove them. (Hong Xu) +Files: src/misc1.c + +Patch 7.3.494 (after 7.3.491) +Problem: Can't compile with Lua 5.1 or dynamic Lua. +Solution: Fix dll_ methods. Fix luado(). (Muraoka Taro, Luis Carvalho) +Files: src/if_lua.c + +Patch 7.3.495 (after 7.3.492) +Problem: Compiler warnings. +Solution: Add function declaration. Remove "offset" argument. +Files: src/misc1.c + +Patch 7.3.496 +Problem: MS-DOS: When "diff" trips over difference in line separators some + tests fail. +Solution: Make some .ok files use unix line separators. (David Pope) +Files: src/testdir/Make_dos.mak, src/testdir/Make_ming.mak + +Patch 7.3.497 +Problem: Crash when doing ":python print" and compiled with gcc and + the optimizer enabled. +Solution: Avoid the crash, doesn't really fix the problem. (Christian + Brabandt) +Files: src/if_py_both.h + +Patch 7.3.498 +Problem: The behavior of the "- register changes depending on value of + the 'clipboard' option. (Szamotulski) +Solution: Also set the "- register when the register is "*" or "+". + (Christian Brabandt) +Files: src/ops.c + +Patch 7.3.499 +Problem: When using any interface language when Vim is waiting for a child + process it gets confused by a child process started through the + interface. +Solution: Always used waitpid() instead of wait(). (Yasuhiro Matsumoto) +Files: src/os_unix.c + +Patch 7.3.500 +Problem: Ming makefile unconditionally sets WINVER. +Solution: Only defined when not already defined. (Yasuhiro Matsumoto) +Files: src/Make_ming.mak + +Patch 7.3.501 +Problem: Error for "flush" not being defined when using Ruby command. +Solution: Defined "flush" as a no-op method. (Kent Sibilev) +Files: src/if_ruby.c + +Patch 7.3.502 +Problem: Netbeans insert halfway a line actually appends to the line. +Solution: Insert halfway the line. (Brian Victor) +Files: src/netbeans.c + +Patch 7.3.503 (after 7.3.501) +Problem: Warning for unused argument. +Solution: Add UNUSED. +Files: src/if_ruby.c + +Patch 7.3.504 +Problem: Commands in help files are not highlighted. +Solution: Allow for commands in backticks. Adjust CTRL-] to remove the + backticks. +Files: src/ex_cmds.c + +Patch 7.3.505 +Problem: Test 11 fails on MS-Windows in some versions. +Solution: Fix #ifdefs for whether filtering through a pipe is possible. Move + setting b_no_eol_lnum back to where it was before patch 7.3.124. + (David Pope) +Files: src/feature.h, src/eval.c, src/ex_cmds.c, src/fileio.c + +Patch 7.3.506 +Problem: GTK gives an error when selecting a non-existent file. +Solution: Add a handler to avoid the error. (Christian Brabandt) +Files: src/gui_gtk.c + +Patch 7.3.507 +Problem: When exiting with unsaved changes, selecting an existing file in + the file dialog, there is no dialog to ask whether the existing + file should be overwritten. (Felipe G. Nievinski) +Solution: Call check_overwrite() before writing. (Christian Brabandt) +Files: src/ex_cmds.c, src/ex_cmds2.c, src/proto/ex_cmds.pro + +Patch 7.3.508 +Problem: Default for v:register is not set. +Solution: Init v:register in eval_init(). Correct for 'clipboard' before the + main loop. (Ingo Karkat) +Files: src/eval.c, src/main.c + +Patch 7.3.509 +Problem: ":vimgrep" fails when 'autochdir' is set. +Solution: A more generic solution for changing directory. (Ben Fritz) +Files: src/quickfix.c + +Patch 7.3.510 +Problem: Test 77 fails on Solaris 7. (Michael Soyka) +Solution: Replace any tabs with spaces. +Files: src/testdir/test77.in + +Patch 7.3.511 +Problem: Using a FileReadCmd autocommand that does ":e! {file}" may cause a + crash. (Christian Brabandt) +Solution: Properly restore curwin->w_s. +Files: src/fileio.c + +Patch 7.3.512 +Problem: undofile() returns a useless name when passed an empty string. +Solution: Return an empty string. (Christian Brabandt) +Files: src/eval.c + +Patch 7.3.513 +Problem: Cannot use CTRL-E and CTRL-Y with "r". +Solution: Make CTRL-E and CTRL-Y work like in Insert mode. (Christian + Brabandt) +Files: src/edit.c, src/normal.c, src/proto/edit.pro + +Patch 7.3.514 +Problem: No completion for :history command. +Solution: Add the completion and update the docs. Also fix ":behave" + completion. (Dominique Pelle) +Files: runtime/doc/cmdline.txt, runtime/doc/map.txt, src/ex_docmd.c, + src/ex_getln.c, src/vim.h + +Patch 7.3.515 +Problem: 'wildignorecase' only applies to the last part of the path. +Solution: Also ignore case for letters earlier in the path. +Files: src/misc1.c + +Patch 7.3.516 +Problem: extend(o, o) may crash Vim. +Solution: Fix crash and add test. (Thinca and Hirohito Higashi) +Files: src/eval.c, src/testdir/test55.in, src/testdir/test55.ok + +Patch 7.3.517 +Problem: Crash when using "vipvv". (Alexandre Provencio) +Solution: Don't let the text length become negative. +Files: src/ops.c + +Patch 7.3.518 +Problem: When 'encoding' is a double-byte encoding ":helptags" may not find + tags correctly. +Solution: Use vim_strbyte() instead of vim_strchr(). (Yasuhiro Matsumoto) +Files: src/ex_cmds.c + +Patch 7.3.519 +Problem: When completefunction returns it cannot indicate end of completion + mode. +Solution: Recognize completefunction returning -3. (Matsushita Shougo) +Files: src/edit.c + +Patch 7.3.520 +Problem: gvim starts up slow on Ubuntu 12.04. +Solution: Move the call to gui_mch_init_check() to after fork(). (Yasuhiro + Matsumoto) Do check $DISPLAY being set. +Files: src/gui.c, src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro + +Patch 7.3.521 +Problem: Using "z=" on a multibyte character may cause a crash. +Solution: Don't use strlen() on an int pointer. +Files: src/spell.c + +Patch 7.3.522 +Problem: Crash in vim_realloc() when using MEM_PROFILE. +Solution: Avoid using a NULL argument. (Dominique Pelle) +Files: src/eval.c + +Patch 7.3.523 +Problem: ":diffupdate" doesn't check for files changed elsewhere. +Solution: Add the ! flag. (Christian Brabandt) +Files: runtime/doc/diff.txt, src/diff.c, src/ex_cmds.h + +Patch 7.3.524 (after 7.3.523) +Problem: Missing comma. +Solution: Add the comma. +Files: src/version.c + +Patch 7.3.525 +Problem: Compiler warning on 64 bit MS-Windows. +Solution: Add type cast. (Mike Williams) +Files: src/ex_getln.c + +Patch 7.3.526 +Problem: Confusing indenting for #ifdef. +Solution: Remove and add indent. (Elias Diem) +Files: src/normal.c + +Patch 7.3.527 +Problem: Clang complains about non-ASCII characters in a string. +Solution: Change to \x88 form. (Dominique Pelle) +Files: src/charset.c + +Patch 7.3.528 +Problem: Crash when closing last window in a tab. (Alex Efros) +Solution: Use common code in close_last_window_tabpage(). (Christian + Brabandt) +Files: src/window.c + +Patch 7.3.529 +Problem: Using a count before "v" and "V" does not work (Kikyous) +Solution: Make the count select that many characters or lines. (Christian + Brabandt) +Files: src/normal.c + +Patch 7.3.530 (after 7.3.520) +Problem: gvim does not work when 'guioptions' includes "f". (Davido) +Solution: Call gui_mch_init_check() when running GUI in the foreground. + (Yasuhiro Matsumoto) +Files: src/gui.c + +Patch 7.3.531 (after 7.3.530) +Problem: GUI does not work on MS-Windows. +Solution: Add the missing #ifdef. (Patrick Avery) +Files: src/gui.c + +Patch 7.3.532 +Problem: Compiler warning from Clang. +Solution: Use a different way to point inside a string. (Dominique Pelle) +Files: src/syntax.c + +Patch 7.3.533 +Problem: Memory leak when writing undo file. +Solution: Free the ACL. (Dominique Pelle) +Files: src/undo.c + +Patch 7.3.534 (after 7.3.461) +Problem: When using an InsertCharPre autocommand autoindent fails. +Solution: Proper handling of v:char. (Alexey Radkov) +Files: src/edit.c + +Patch 7.3.535 +Problem: Many #ifdefs for MB_MAXBYTES. +Solution: Also define MB_MAXBYTES without the +multi_byte feature. Fix + places where the buffer didn't include space for a NUL byte. +Files: src/arabic.c, src/edit.c, src/eval.c, src/getchar.c, src/mbyte.c, + src/misc1.c, src/screen.c, src/spell.c, src/vim.h + +Patch 7.3.536 +Problem: When spell checking the German sharp s is not seen as a word + character. (Aexl Bender) +Solution: In utf_islower() return true for the sharp s. Note: also need + updated spell file for this to take effect. +Files: src/mbyte.c + +Patch 7.3.537 +Problem: Unnecessary call to init_spell_chartab(). +Solution: Delete the call. +Files: src/spell.c + +Patch 7.3.538 +Problem: 'efm' does not handle Tabs in pointer lines. +Solution: Add Tab support. Improve tests. (Lech Lorens) +Files: src/quickfix.c, src/testdir/test10.in, src/testdir/test10.ok + +Patch 7.3.539 +Problem: Redrawing a character on the command line does not work properly + for multibyte characters. +Solution: Count the number of bytes in a character. (Yukihiro Nakadaira) +Files: src/ex_getln.c + +Patch 7.3.540 +Problem: Cursor is left on the text instead of the command line. +Solution: Don't call setcursor() in command line mode. +Files: src/getchar.c + +Patch 7.3.541 +Problem: When joining lines comment leaders need to be removed manually. +Solution: Add the 'j' flag to 'formatoptions'. (Lech Lorens) +Files: runtime/doc/change.txt, src/edit.c, src/ex_docmd.c, src/misc1.c, + src/normal.c, src/ops.c, src/option.h, src/proto/misc1.pro, + src/proto/ops.pro, src/search.c, src/testdir/test29.in, + src/testdir/test29.ok + +Patch 7.3.542 (after 7.3.506) +Problem: Function is sometimes unused. +Solution: Add #ifdef. +Files: src/gui_gtk.c + +Patch 7.3.543 +Problem: The cursor is in the wrong line after using ":copen". (John + Beckett) +Solution: Invoke more drastic redraw method. +Files: src/eval.c + +Patch 7.3.544 +Problem: There is no good way to close a quickfix window when closing the + last ordinary window. +Solution: Add the QuitPre autocommand. +Files: src/ex_docmd.c, src/fileio.c, src/vim.h + +Patch 7.3.545 +Problem: When closing a window or buffer autocommands may close it too, + causing problems for where the autocommand was invoked from. +Solution: Add the w_closing and b_closing flags. When set disallow ":q" and + ":close" to prevent recursive closing. +Files: src/structs.h, src/buffer.c, src/ex_docmd.c, src/window.c + +Patch 7.3.546 +Problem: Bogus line break. +Solution: Remove the line break. +Files: src/screen.c + +Patch 7.3.547 (after 7.3.541) +Problem: Compiler warning for uninitialized variable. +Solution: Initialize it. +Files: src/ops.c + +Patch 7.3.548 +Problem: Compiler warning on 64 bit Windows. +Solution: Add type cast. (Mike Williams) +Files: src/ops.c + +Patch 7.3.549 +Problem: In 'cinoptions' "0s" is interpreted as one shiftwidth. (David + Pineau) +Solution: Use the zero as zero. (Lech Lorens) +Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok + +Patch 7.3.550 (after 7.3.541) +Problem: With "j" in 'formatoptions' a list leader is not removed. (Gary + Johnson) +Solution: Don't ignore the start of a three part comment. (Lech Lorens) +Files: src/ops.c, src/testdir/test29.in, src/testdir/test29.ok + +Patch 7.3.551 +Problem: When using :tablose a TabEnter autocommand is triggered too early. + (Karthick) +Solution: Don't trigger *Enter autocommands before closing the tab. + (Christian Brabandt) +Files: src/buffer.c, src/eval.c, src/ex_cmds2.c, src/fileio.c, + src/proto/window.pro, src/window.c + +Patch 7.3.552 +Problem: Formatting inside comments does not use the "2" flag in + 'formatoptions'. +Solution: Support the "2" flag. (Tor Perkins) +Files: src/vim.h, src/ops.c, src/edit.c, src/misc1.c, + src/testdir/test68.in, src/testdir/test68.ok + +Patch 7.3.553 +Problem: With double-width characters and 'listchars' containing "precedes" + the text is displayed one cell off. +Solution: Check for double-width character being overwritten by the + "precedes" character. (Yasuhiro Matsumoto) +Files: src/screen.c + +Patch 7.3.554 (after 7.3.551) +Problem: Compiler warning for unused argument. +Solution: Add UNUSED. +Files: src/window.c + +Patch 7.3.555 +Problem: Building on IBM z/OS fails. +Solution: Adjust configure. Use the QUOTESED value from config.mk instead of + the hard coded one in Makefile. (Stephen Bovy) +Files: src/configure.in, src/auto/configure, src/Makefile + +Patch 7.3.556 +Problem: Compiler warnings on 64 bit Windows. +Solution: Add type casts. (Mike Williams) +Files: src/misc1.c + +Patch 7.3.557 +Problem: Crash when an autocommand wipes out a buffer when it is hidden. +Solution: Restore the current window when needed. (Christian Brabandt) +Files: src/buffer.c + +Patch 7.3.558 +Problem: Memory access error. (Gary Johnson) +Solution: Allocate one more byte. (Dominique Pelle) +Files: src/misc1.c + +Patch 7.3.559 +Problem: home_replace() does not work with 8.3 filename. +Solution: Make ":p" expand 8.3 name to full path. (Yasuhiro Matsumoto) +Files: src/eval.c, src/misc1.c + +Patch 7.3.560 +Problem: Get an error for a locked argument in extend(). +Solution: Initialize the lock flag for a dictionary. (Yukihiro Nakadaira) +Files: src/eval.c + +Patch 7.3.561 +Problem: Using refresh: always in a complete function breaks the "." + command. (Val Markovic) +Solution: Add match leader to the redo buffer. (Yasuhiro Matsumoto) +Files: src/edit.c + +Patch 7.3.562 +Problem: ":profdel" should not work when the +profile feature is disabled. +Solution: Call ex_ni(). (Yasuhiro Matsumoto) +Files: src/ex_cmds2.c + +Patch 7.3.563 (after 7.3.557) +Problem: Can't build with tiny features. +Solution: Add #ifdef. +Files: src/buffer.c + +Patch 7.3.564 (after 7.3.559) +Problem: Warning for pointer conversion. +Solution: Add type cast. +Files: src/misc1.c + +Patch 7.3.565 +Problem: Can't generate proto file for Python 3. +Solution: Add PYTHON3_CFLAGS to LINT_CFLAGS. +Files: src/Makefile + +Patch 7.3.566 (after 7.3.561) +Problem: Redo after completion does not work correctly when refresh: always + is not used. (Raymond Ko) +Solution: Check the compl_opt_refresh_always flag. (Christian Brabandt) +Files: src/edit.c + +Patch 7.3.567 +Problem: Missing copyright notice. +Solution: Add Vim copyright notice. (Taro Muraoka) +Files: src/dehqx.py + +Patch 7.3.568 +Problem: Bad indents for #ifdefs. +Solution: Add and remove spaces. (Elias Diem) +Files: src/globals.h + +Patch 7.3.569 +Problem: Evaluating Vim expression in Python is insufficient. +Solution: Add vim.bindeval(). Also add pyeval() and py3eval(). (ZyX) +Files: runtime/doc/eval.txt, runtime/doc/if_pyth.txt, src/eval.c, + src/if_lua.c, src/if_py_both.h, src/if_python.c, src/if_python3.c, + src/proto/eval.pro, src/proto/if_python.pro, + src/proto/if_python3.pro, src/testdir/Make_amiga.mak, + src/testdir/Make_dos.mak, src/testdir/Make_ming.mak, + src/testdir/Make_os2.mak, src/testdir/Makefile, + src/testdir/test86.in, src/testdir/test86.ok, + src/testdir/test87.in, src/testdir/test87.ok + +Patch 7.3.570 +Problem: ":vimgrep" does not obey 'wildignore'. +Solution: Apply 'wildignore' and 'suffixes' to ":vimgrep". (Ingo Karkat) +Files: src/ex_cmds2.c, src/proto/ex_cmds2.pro, src/quickfix.c, src/spell.c + +Patch 7.3.571 +Problem: Duplicated condition. +Solution: Remove one. (Dominique Pelle) +Files: src/os_win32.c + +Patch 7.3.572 +Problem: Duplicate statement in if and else. (Dominique Pelle) +Solution: Remove the condition and add a TODO. +Files: src/gui_xmebw.c + +Patch 7.3.573 +Problem: Using array index before bounds checking. +Solution: Swap the parts of the condition. (Dominique Pelle) +Files: src/ops.c + +Patch 7.3.574 +Problem: When pasting a register in the search command line a CTRL-L + character is not pasted. (Dominique Pelle) +Solution: Escape the CTRL-L. (Christian Brabandt) +Files: src/ex_getln.c + +Patch 7.3.575 +Problem: "ygt" tries to yank instead of giving an error. (Daniel Mueller) +Solution: Check for a pending operator. +Files: src/normal.c + +Patch 7.3.576 +Problem: Formatting of lists inside comments is not right yet. +Solution: Use another solution and add a test. (Tor Perkins) +Files: src/edit.c, src/misc1.c, src/testdir/test68.in, + src/testdir/test69.ok + +Patch 7.3.577 +Problem: Size of memory does not fit in 32 bit unsigned. +Solution: Use Kbyte instead of byte. Call GlobalMemoryStatusEx() instead of + GlobalMemoryStatus() when available. +Files: src/misc2.c, src/option.c, src/os_amiga.c, src/os_msdos.c, + src/os_win16.c, src/os_win32.c + +Patch 7.3.578 +Problem: Misplaced declaration. +Solution: Move declaration to start of block. +Files: src/if_py_both.h + +Patch 7.3.579 (after 7.3.569) +Problem: Can't compile with Python 2.5. +Solution: Use PyCObject when Capsules are not available. +Files: src/if_py_both.h, src/if_python.c, src/if_python3.c + +Patch 7.3.580 +Problem: Warning on 64 bit MS-Windows. +Solution: Add type cast. (Mike Williams) +Files: src/if_py_both.h + +Patch 7.3.581 +Problem: Problems compiling with Python. +Solution: Pick UCS2 or UCS4 function at runtime. (lilydjwg) +Files: src/if_python.c + +Patch 7.3.582 (after 7.3.576) +Problem: Missing parts of the test OK file. +Solution: Add the missing parts. +Files: src/testdir/test68.ok + +Patch 7.3.583 +Problem: PyObject_NextNotImplemented is not defined before Python 2.7. + (Danek Duvall) +Solution: Add #ifdefs. +Files: src/if_python.c + +Patch 7.3.584 +Problem: PyCObject is not always defined. +Solution: Use PyObject instead. +Files: src/if_py_both.h, src/if_python.c + +Patch 7.3.585 +Problem: Calling changed_bytes() too often. +Solution: Move changed_bytes() out of a loop. (Tor Perkins) +Files: src/edit.c + +Patch 7.3.586 +Problem: When compiling with Cygwin or MingW MEMORYSTATUSEX is not defined. +Solution: Set the default for WINVER to 0x0500. +Files: src/Make_ming.mak, src/Make_cyg.mak + +Patch 7.3.587 +Problem: Compiler warning for local var shadowing global var. +Solution: Rename the var and move it to an inner block. (Christian Brabandt) +Files: src/buffer.c + +Patch 7.3.588 +Problem: Crash on NULL pointer. +Solution: Fix the immediate problem by checking for NULL. (Lech Lorens) +Files: src/window.c + +Patch 7.3.589 +Problem: Crash when $HOME is not set. +Solution: Check for a NULL pointer. (Chris Webb) +Files: src/misc1.c + +Patch 7.3.590 +Problem: The '< and '> marks cannot be set directly. +Solution: Allow setting '< and '>. (Christian Brabandt) +Files: src/mark.c + +Patch 7.3.591 +Problem: Can only move to a tab by absolute number. +Solution: Move a number of tabs to the left or the right. (Lech Lorens) +Files: runtime/doc/tabpage.txt, src/ex_cmds.h, src/ex_docmd.c, + src/testdir/test62.in, src/testdir/test62.ok, src/window.c + +Patch 7.3.592 +Problem: Vim on GTK does not support g:browsefilter. +Solution: Add a GtkFileFilter to the file chooser. (Christian Brabandt) +Files: src/gui_gtk.c + +Patch 7.3.593 +Problem: No easy way to decide if b:browsefilter will work. +Solution: Add the browsefilter feature. +Files: src/gui_gtk.c, src/eval.c, src/vim.h + +Patch 7.3.594 +Problem: The X command server doesn't work perfectly. It sends an empty + reply for as-keys requests. +Solution: Remove duplicate ga_init2(). Do not send a reply for as-keys + requests. (Brian Burns) +Files: src/if_xcmdsrv.c + +Patch 7.3.595 +Problem: The X command server responds slowly +Solution: Change the loop that waits for replies. (Brian Burns) +Files: src/if_xcmdsrv.c + +Patch 7.3.596 +Problem: Can't remove all signs for a file or buffer. +Solution: Support "*" for the sign id. (Christian Brabandt) +Files: runtime/doc/sign.txt, src/buffer.c, src/ex_cmds.c, + src/proto/buffer.pro + +Patch 7.3.597 +Problem: 'clipboard' "autoselect" only applies to the * register. (Sergey + Vakulenko) +Solution: Make 'autoselect' work for the + register. (Christian Brabandt) + Add the "autoselectplus" option in 'clipboard' and the "P" flag in + 'guioptions'. +Files: runtime/doc/options.txt, src/normal.c, src/ops.c, src/screen.c, + src/ui.c, src/globals.h, src/proto/ui.pro, src/option.h, src/gui.c + +Patch 7.3.598 +Problem: Cannot act upon end of completion. (Taro Muraoka) +Solution: Add an autocommand event that is triggered when completion has + finished. (Idea by Florian Klein) +Files: src/edit.c, src/fileio.c, src/vim.h + +Patch 7.3.599 (after 7.3.597) +Problem: Missing change in one file. +Solution: Patch for changed clip_autoselect(). +Files: src/option.c + +Patch 7.3.600 +Problem: <f-args> is not expanded properly with DBCS encoding. +Solution: Skip over character instead of byte. (Yukihiro Nakadaira) +Files: src/ex_docmd.c + +Patch 7.3.601 +Problem: Bad code style. +Solution: Insert space, remove parens. +Files: src/farsi.c + +Patch 7.3.602 +Problem: Missing files in distribution. +Solution: Update the list of files. +Files: Filelist + +Patch 7.3.603 +Problem: It is possible to add replace builtin functions by calling + extend() on g:. +Solution: Add a flag to a dict to indicate it is a scope. Check for + existing functions. (ZyX) +Files: src/buffer.c, src/eval.c, src/proto/eval.pro, src/structs.h, + src/testdir/test34.in, src/testdir/test34.ok, src/window.c + +Patch 7.3.604 +Problem: inputdialog() doesn't use the cancel argument in the console. + (David Fishburn) +Solution: Use the third argument. (Christian Brabandt) +Files: src/eval.c + +Patch 7.3.605 (after 7.3.577) +Problem: MS-Windows: Can't compile with older compilers. (Titov Anatoly) +Solution: Add #ifdef for MEMORYSTATUSEX. +Files: src/os_win32.c + +Patch 7.3.606 +Problem: CTRL-P completion has a problem with multibyte characters. +Solution: Check for next character being NUL properly. (Yasuhiro Matsumoto) +Files: src/search.c, src/macros.h + +Patch 7.3.607 +Problem: With an 8 color terminal the selected menu item is black on black, + because darkGrey as bg is the same as black. +Solution: Swap fg and bg colors. (James McCoy) +Files: src/syntax.c + +Patch 7.3.608 +Problem: winrestview() does not always restore the view correctly. +Solution: Call win_new_height() and win_new_width(). (Lech Lorens) +Files: src/eval.c, src/proto/window.pro, src/window.c + +Patch 7.3.609 +Problem: File names in :checkpath! output are garbled. +Solution: Check for \zs in the pattern. (Lech Lorens) +Files: src/search.c, src/testdir/test17.in, src/testdir/test17.ok + +Patch 7.3.610 +Problem: Cannot operate on the text that a search pattern matches. +Solution: Add the "gn" and "gN" commands. (Christian Brabandt) +Files: runtime/doc/index.txt, runtime/doc/visual.txt, src/normal.c, + src/proto/search.pro, src/search.c, src/testdir/test53.in, + src/testdir/test53.ok + +Patch 7.3.611 +Problem: Can't use Vim dictionary as self argument in Python. +Solution: Fix the check for the "self" argument. (ZyX) +Files: src/if_py_both.h + +Patch 7.3.612 +Problem: Auto formatting messes up text when 'fo' contains "2". (ZyX) +Solution: Decrement "less_cols". (Tor Perkins) +Files: src/misc1.c, src/testdir/test68.in, src/testdir/test68.ok + +Patch 7.3.613 +Problem: Including Python's config.c in the build causes trouble. It is + not clear why it was there. +Solution: Omit the config file. (James McCoy) +Files: src/Makefile, src/auto/configure, src/configure.in + +Patch 7.3.614 +Problem: Number argument gets turned into a number while it should be a + string. +Solution: Add flag to the call_vim_function() call. (Yasuhiro Matsumoto) +Files: src/edit.c, src/eval.c, src/proto/eval.pro + +Patch 7.3.615 +Problem: Completion for a user command does not recognize backslash before + a space. +Solution: Recognize escaped characters. (Yasuhiro Matsumoto) +Files: src/ex_docmd.c + +Patch 7.3.616 (after 7.3.610) +Problem: Can't compile without +visual. +Solution: Add #ifdef. +Files: src/normal.c + +Patch 7.3.617 (after 7.3.615) +Problem: Hang on completion. +Solution: Skip over the space. (Yasuhiro Matsumoto) +Files: src/ex_docmd.c + +Patch 7.3.618 (after 7.3.616) +Problem: Still doesn't compile with small features. +Solution: Move current_search() out of #ifdef. (Dominique Pelle) +Files: src/normal.c, src/search.c + +Patch 7.3.619 +Problem: When executing a shell command Vim may become slow to respond. +Solution: Don't wait after every processed message. (idea by Yasuhiro + Matsumoto) +Files: src/os_win32.c + +Patch 7.3.620 +Problem: Building with recent Ruby on Win32 doesn't work. +Solution: Add a separate argument for the API version. (Yasuhiro Matsumoto) +Files: src/Make_ming.mak, src/Make_mvc.mak + +Patch 7.3.621 +Problem: Compiler warnings on 64 bit windows. +Solution: Add type casts. (Mike Williams) +Files: src/ex_docmd.c, src/search.c + +Patch 7.3.622 +Problem: XPM library for Win32 can't be found. +Solution: Suggest using the one from the Vim ftp site. +Files: src/Make_mvc.mak + +Patch 7.3.623 +Problem: Perl 5.14 commands crash Vim on MS-Windows. +Solution: Use perl_get_sv() instead of GvSV(). (Raymond Ko) +Files: src/if_perl.xs + +Patch 7.3.624 +Problem: When cancelling input() it returns the third argument. That should + only happen for inputdialog(). +Solution: Check if inputdialog() was used. (Hirohito Higashi) +Files: src/eval.c + +Patch 7.3.625 +Problem: "gn" does not handle zero-width matches correctly. +Solution: Handle zero-width patterns specially. (Christian Brabandt) +Files: src/search.c + +Patch 7.3.626 +Problem: Python interface doesn't build with Python 2.4 or older. +Solution: Define Py_ssize_t. (Benjamin Bannier) +Files: src/if_py_both.h + +Patch 7.3.627 +Problem: When using the "n" flag with the ":s" command a \= substitution + will not be evaluated. +Solution: Do perform the evaluation, so that a function can be invoked at + every matching position without changing the text. (Christian + Brabandt) +Files: src/ex_cmds.c + +Patch 7.3.628 +Problem: ":open" does not allow for a !, which results in a confusing error + message. (Shawn Wilson) +Solution: Allow ! on ":open". (Christian Brabandt) +Files: src/ex_cmds.h + +Patch 7.3.629 +Problem: There is no way to make 'shiftwidth' follow 'tabstop'. +Solution: When 'shiftwidth' is zero use the value of 'tabstop'. (Christian + Brabandt) +Files: src/edit.c, src/ex_getln.c, src/fold.c, src/misc1.c, src/ops.c, + src/option.c, src/proto/option.pro + +Patch 7.3.630 +Problem: "|" does not behave correctly when 'virtualedit' is set. +Solution: Call validate_virtcol(). (David Bürgin) +Files: src/normal.c + +Patch 7.3.631 +Problem: Cannot complete user names. +Solution: Add user name completion. (Dominique Pelle) +Files: runtime/doc/map.txt, src/auto/configure, src/config.h.in, + src/configure.in, src/ex_docmd.c, src/ex_getln.c, src/misc1.c, + src/misc2.c, src/proto/misc1.pro, src/vim.h + +Patch 7.3.632 +Problem: Cannot select beyond 222 columns with the mouse in xterm. +Solution: Add support for SGR mouse tracking. (Hayaki Saito) +Files: runtime/doc/options.txt, src/feature.h, src/keymap.h, src/misc2.c, + src/option.h, src/os_unix.c, src/term.c, src/version.c + +Patch 7.3.633 +Problem: Selection remains displayed as selected after selecting another + text. +Solution: Call xterm_update() before select(). (Andrew Pimlott) +Files: src/os_unix.c + +Patch 7.3.634 +Problem: Month/Day format for undo is confusing. (Marcin Szamotulski) +Solution: Always use Year/Month/Day, should work for everybody. +Files: src/undo.c + +Patch 7.3.635 +Problem: Issue 21: System call during startup sets 'lines' to a wrong + value. (Karl Yngve) +Solution: Don't set the shell size while the GUI is still starting up. + (Christian Brabandt) +Files: src/ui.c + +Patch 7.3.636 (after 7.3.625) +Problem: Not all zero-width matches handled correctly for "gn". +Solution: Move zero-width detection to a separate function. (Christian + Brabandt) +Files: src/search.c + +Patch 7.3.637 +Problem: Cannot catch the error caused by a foldopen when there is no fold. + (ZyX, Issue 48) +Solution: Do not break out of the loop early when inside try/catch. + (Christian Brabandt) Except when there is a syntax error. +Files: src/ex_docmd.c, src/globals.h + +Patch 7.3.638 +Problem: Unnecessary redraw of the previous character. +Solution: Check if the character is double-width. (Jon Long) +Files: src/screen.c + +Patch 7.3.639 +Problem: It's not easy to build Vim on Windows with XPM support. +Solution: Include the required files, they are quite small. Update the + MSVC makefile to use them. Binary files are in the next patch. + (Sergey Khorev) +Files: src/xpm/COPYRIGHT, src/xpm/README.txt, src/xpm/include/simx.h, + src/xpm/include/xpm.h, src/Make_mvc.mak, src/bigvim.bat, + src/bigvim64.bat, Filelist + +Patch 7.3.640 +Problem: It's not easy to build Vim on Windows with XPM support. +Solution: Binary files for 7.3.639. (Sergey Khorev) +Files: src/xpm/x64/lib/libXpm.lib, src/xpm/x86/lib/libXpm.a, + src/xpm/x86/lib/libXpm.lib + +Patch 7.3.641 +Problem: ":mkview" uses ":normal" instead of ":normal!" for folds. (Dan) +Solution: Add the bang. (Christian Brabandt) +Files: src/fold.c + +Patch 7.3.642 +Problem: Segfault with specific autocommands. Was OK after 7.3.449 and + before 7.3.545. (Richard Brown) +Solution: Pass TRUE for abort_if_last in the call to close_buffer(). + (Christian Brabandt) +Files: src/window.c + +Patch 7.3.643 (after 7.3.635) +Problem: MS-Windows: When starting gvim maximized 'lines' and 'columns' are + wrong. (Christian Robinson) +Solution: Move the check for gui.starting from ui_get_shellsize() to + check_shellsize(). +Files: src/ui.c, src/term.c + +Patch 7.3.644 +Problem: Dead code for BeOS GUI. +Solution: Remove unused __BEOS__ stuff. +Files: src/gui.c + +Patch 7.3.645 +Problem: No tests for patch 7.3.625 and 7.3.637. +Solution: Add more tests for the "gn" command and try/catch. (Christian + Brabandt) +Files: src/testdir/test53.in, src/testdir/test53.ok, + src/testdir/test55.in, src/testdir/test55.ok + +Patch 7.3.646 +Problem: When reloading a buffer the undo file becomes unusable unless ":w" + is executed. (Dmitri Frank) +Solution: After reloading the buffer write the undo file. (Christian + Brabandt) +Files: src/fileio.c + +Patch 7.3.647 +Problem: "gnd" doesn't work correctly in Visual mode. +Solution: Handle Visual mode differently in "gn". (Christian Brabandt) +Files: src/search.c, src/testdir/test53.in, src/testdir/test53.ok + +Patch 7.3.648 +Problem: Crash when using a very long file name. (ZyX) +Solution: Properly check length of buffer space. +Files: src/buffer.c + +Patch 7.3.649 +Problem: When 'clipboard' is set to "unnamed" small deletes end up in the + numbered registers. (Ingo Karkat) +Solution: Use the original register name to decide whether to put a delete + in a numbered register. (Christian Brabandt) +Files: src/ops.c + +Patch 7.3.650 +Problem: Completion after ":help \{-" gives an error message and messes up + the command line. +Solution: Cancel the tag search if the pattern can't be compiled. (Yasuhiro + Matsumoto) +Files: src/tag.c + +Patch 7.3.651 +Problem: Completion after ":help \{-" gives an error message. +Solution: Prepend a backslash. +Files: src/ex_cmds.c + +Patch 7.3.652 +Problem: Workaround for Python crash isn't perfect. +Solution: Change the type of the length argument. (Sean Estabrooks) +Files: src/if_py_both.h + +Patch 7.3.653 +Problem: MingW needs build rule for included XPM files. Object directory + for 32 and 64 builds is the same, also for MSVC. +Solution: Add MingW build rule to use included XPM files. Add the CPU or + architecture to the object directory name. (Sergey Khorev) +Files: src/Make_ming.mak, src/Make_mvc.mak, src/xpm/README.txt + +Patch 7.3.654 +Problem: When creating a Vim dictionary from Python objects an empty key + might be used. +Solution: Do not use empty keys, throw an IndexError. (ZyX) +Files: src/if_py_both.h + +Patch 7.3.655 +Problem: 64 bit MingW xpm .a file is missing. +Solution: Add the file. (Sergey Khorev) +Files: src/xpm/x64/lib/libXpm.a + +Patch 7.3.656 +Problem: Internal error in :pyeval. +Solution: Handle failed object conversion. (ZyX) +Files: src/if_python.c, src/if_python3.c + +Patch 7.3.657 +Problem: Python bindings silently truncate string values containing NUL. +Solution: Fail when a string contains NUL. (ZyX) +Files: src/if_python.c, src/if_python3.c + +Patch 7.3.658 +Problem: NUL bytes truncate strings when converted from Python. +Solution: Handle truncation as an error. (ZyX) +Files: src/if_py_both.h, src/if_python3.c + +Patch 7.3.659 +Problem: Recent Python changes are not tested. +Solution: Add tests for Python bindings. (ZyX) +Files: src/testdir/test86.in, src/testdir/test86.ok, + src/testdir/test87.in, src/testdir/test87.ok + +Patch 7.3.660 +Problem: ":help !" jumps to help for ":!". +Solution: Adjust check for tag header line. (Andy Wokula) +Files: src/tag.c + +Patch 7.3.661 (after 7.3.652) +Problem: SEGV in Python code. +Solution: Initialize len to zero. Use the right function depending on + version. (Maxim Philippov) +Files: src/if_py_both.h, src/if_python.c, src/if_python3.c + +Patch 7.3.662 +Problem: Can't build Ruby interface with Ruby 1.9.3. +Solution: Add missing functions. (V. Ondruch) +Files: src/if_ruby.c + +Patch 7.3.663 +Problem: End of color scheme name not clear in E185. (Aaron Lewis) +Solution: Put the name in single quotes. +Files: src/ex_docmd.c + +Patch 7.3.664 +Problem: Buffer overflow in unescaping text. (Raymond Ko) +Solution: Limit check for multibyte character to 4 bytes. +Files: src/mbyte.c + +Patch 7.3.665 +Problem: MSVC 11 is not supported. (Raymond Ko) +Solution: Recognize MSVC 11. (Gary Willoughby) +Files: src/Make_mvc.mak + +Patch 7.3.666 +Problem: With MSVC 11 Win32.mak is not found. +Solution: Add the SDK_INCLUDE_DIR variable. (Raymond Ko) +Files: src/Make_mvc.mak + +Patch 7.3.667 +Problem: Unused variables in Perl interface. +Solution: Adjust #ifdefs. +Files: src/if_perl.xs + +Patch 7.3.668 +Problem: Building with Perl loaded dynamically still uses static library. +Solution: Adjust use of PL_thr_key. (Ken Takata) +Files: src/if_perl.xs + +Patch 7.3.669 +Problem: When building with Cygwin loading Python dynamically fails. +Solution: Use DLLLIBRARY instead of INSTSONAME. (Ken Takata) +Files: src/configure.in, src/auto/configure + +Patch 7.3.670 +Problem: Python: memory leaks when there are exceptions. +Solution: Add DICTKEY_UNREF in the right places. (ZyX) +Files: src/if_py_both.h + +Patch 7.3.671 +Problem: More Python code can be shared between Python 2 and 3. +Solution: Move code to if_py_both.h. (ZyX) +Files: src/if_py_both.h, src/if_python.c, src/if_python3.c + +Patch 7.3.672 +Problem: Not possible to lock/unlock lists in Python interface. +Solution: Add .locked and .scope attributes. (ZyX) +Files: runtime/doc/if_pyth.txt, src/if_py_both.h, src/if_python.c, + src/if_python3.c, src/testdir/test86.in, src/testdir/test86.ok, + src/testdir/test87.in, src/testdir/test87.ok + +Patch 7.3.673 +Problem: Using "gN" while 'selection' is "exclusive" misses one character. + (Ben Fritz) +Solution: Check the direction when compensating for exclusive selection. + (Christian Brabandt) +Files: src/search.c + +Patch 7.3.674 +Problem: Can't compile with Lua/dyn on Cygwin. +Solution: Adjust configure to use the right library name. (Ken Takata) +Files: src/configure.in, src/auto/configure + +Patch 7.3.675 +Problem: Using uninitialized memory with very long file name. +Solution: Put NUL after text when it is truncated. (ZyX) +Files: src/buffer.c + +Patch 7.3.676 +Problem: Ruby compilation on Windows 32 bit doesn't work. +Solution: Only use some functions for 64 bit. (Ken Takata) +Files: src/if_ruby.c + +Patch 7.3.677 +Problem: buf_spname() is used inconsistently. +Solution: Make the return type a char_u pointer. Check the size of the + returned string. +Files: src/buffer.c, src/proto/buffer.pro, src/ex_cmds2.c, + src/ex_docmd.c, src/memline.c, src/screen.c + +Patch 7.3.678 +Problem: Ruby .so name may not be correct. +Solution: Use the LIBRUBY_SO entry from the config. (Vit Ondruch) +Files: src/configure.in, src/auto/configure + +Patch 7.3.679 +Problem: Ruby detection uses Config, newer Ruby versions use RbConfig. +Solution: Detect the need to use RbConfig. (Vit Ondruch) +Files: src/configure.in, src/auto/configure + +Patch 7.3.680 +Problem: Some files missing in the list of distributed files. +Solution: Add lines for new files. +Files: Filelist + +Patch 7.3.681 (after 7.3.680) +Problem: List of distributed files picks up backup files. +Solution: Make tutor patterns more specific. +Files: Filelist + +Patch 7.3.682 (after 7.3.677) +Problem: Compiler complains about incompatible types. +Solution: Remove type casts. (hint by Danek Duvall) +Files: src/edit.c + +Patch 7.3.683 +Problem: ":python" may crash when vimbindeval() returns None. +Solution: Check for v_string to be NULL. (Yukihiro Nakadaira) +Files: src/if_py_both.h + +Patch 7.3.684 +Problem: "make test" does not delete lua.vim. +Solution: Add lua.vim to the clean target. (Simon Ruderich) +Files: src/testdir/Makefile, src/testdir/Make_dos.mak, + src/testdir/Make_ming.mak, src/testdir/Make_vms.mms + +Patch 7.3.685 +Problem: No test for what patch 7.3.673 fixes. +Solution: Add a test. (Christian Brabandt) +Files: src/testdir/test53.in, src/testdir/test53.ok + +Patch 7.3.686 +Problem: Using CTRL-\ e mappings is useful also when entering an + expression, but it doesn't work. (Marcin Szamotulski) +Solution: Allow using CTRL-\ e when entering an expression if it was not + typed. +Files: src/ex_getln.c + +Patch 7.3.687 +Problem: Test 16 fails when $DISPLAY is not set. +Solution: Skip the test when $DISPLAY is not set. +Files: src/testdir/test16.in + +Patch 7.3.688 +Problem: Python 3.3 is not supported. +Solution: Add Python 3.3 support (Ken Takata) +Files: src/if_python3.c + +Patch 7.3.689 +Problem: MzScheme and Lua may use a NULL string. +Solution: Use an empty string instead of NULL. (Yukihiro Nakadaira) +Files: src/if_lua.c, src/if_mzsch.c + +Patch 7.3.690 +Problem: When the current directory name is exactly the maximum path length + Vim may crash. +Solution: Only add "/" when there is room. (Danek Duvall) +Files: src/os_unix.c + +Patch 7.3.691 +Problem: State specific to the Python thread is discarded. +Solution: Keep state between threads. (Paul) +Files: src/if_python.c + +Patch 7.3.692 +Problem: Can't build GTK version with GTK 2.0. +Solution: Put GtkFileFilter declaration in the right place. (Yegappan + Lakshmanan) +Files: src/gui_gtk.c + +Patch 7.3.693 +Problem: Can't make 'softtabstop' follow 'shiftwidth'. +Solution: When 'softtabstop' is negative use the value of 'shiftwidth'. + (so8res) +Files: src/edit.c, src/option.c, src/proto/option.pro + +Patch 7.3.694 +Problem: Now that 'shiftwidth' may use the value of 'tabstop' it is not so + easy to use in indent files. +Solution: Add the shiftwidth() function. (so8res) +Files: runtime/doc/eval.txt, src/eval.c + +Patch 7.3.695 +Problem: Balloon cannot show multibyte text. +Solution: Properly deal with multibyte characters. (Dominique Pelle) +Files: src/gui_beval.c, src/ui.c + +Patch 7.3.696 +Problem: Message about added spell language can be wrong. +Solution: Give correct message. Add g:menutrans_set_lang_to to allow for + translation. (Jiri Sedlak) +Files: runtime/menu.vim + +Patch 7.3.697 +Problem: Leaking resources when setting GUI font. +Solution: Free the font. (Ken Takata) +Files: src/syntax.c + +Patch 7.3.698 +Problem: Python 3 does not preserve state between commands. +Solution: Preserve the state. (Paul Ollis) +Files: src/if_python.c, src/if_python3.c + +Patch 7.3.699 +Problem: When 'ttymouse' is set to "sgr" manually, it is overruled by + automatic detection. +Solution: Do not use automatic detection when 'ttymouse' was set manually. + (Hayaki Saito) +Files: src/term.c + +Patch 7.3.700 +Problem: Cannot detect URXVT and SGR mouse support. +Solution: add +mouse_urxvt and +mouse_sgr. (Hayaki Saito) +Files: src/feature.h, src/eval.c + +Patch 7.3.701 +Problem: MS-Windows: Crash with stack overflow when setting 'encoding'. +Solution: Handle that loading the iconv library may be called recursively. + (Jiri Sedlak) +Files: src/os_win32.c + +Patch 7.3.702 +Problem: Nmake from VS6 service pack 6 is not recognized. +Solution: Detect the version number. (Jiri Sedlak) +Files: src/Make_mvc.mak + +Patch 7.3.703 +Problem: When 'undofile' is reset the hash is computed unnecessarily. +Solution: Only compute the hash when the option was set. (Christian Brabandt) +Files: src/option.c + +Patch 7.3.704 +Problem: Repeating "cgn" does not always work correctly. +Solution: Also fetch the operator character. (Christian Brabandt) +Files: src/normal.c + +Patch 7.3.705 +Problem: Mouse features are not sorted properly. (Tony Mechelynck) +Solution: Put the mouse features in alphabetical order. +Files: src/version.c + +Patch 7.3.706 (after 7.3.697) +Problem: Can't build Motif version. +Solution: Fix wrongly named variable. (Ike Devolder) +Files: src/syntax.c + +Patch 7.3.707 (after 7.3.701) +Problem: Problems loading a library for a file name with non-latin + characters. +Solution: Use wide system functions when possible. (Ken Takata) +Files: src/os_win32.c, src/os_win32.h + +Patch 7.3.708 +Problem: Filler lines above the first line may be hidden when opening Vim. +Solution: Change how topfill is computed. (Christian Brabandt) +Files: src/diff.c, src/testdir/test47.in, src/testdir/test47.ok + +Patch 7.3.709 +Problem: Compiler warning for unused argument. +Solution: Add UNUSED. +Files: src/eval.c + +Patch 7.3.710 (after 7.3.704) +Problem: Patch 7.3.704 breaks "fn". +Solution: Add check for ca.cmdchar. (Christian Brabandt) +Files: src/normal.c + +Patch 7.3.711 (after 7.3.688) +Problem: vim.current.buffer is not available. (lilydjwg) +Solution: Use py3_PyUnicode_AsUTF8 instead of py3_PyUnicode_AsUTF8String. + (Ken Takata) +Files: src/if_python3.c + +Patch 7.3.712 +Problem: Nmake from VS2010 SP1 is not recognized. +Solution: Add the version number. (Ken Takata) +Files: src/Make_mvc.mak + +Patch 7.3.713 +Problem: printf() can only align to bytes, not characters. +Solution: Add the "S" item. (Christian Brabandt) +Files: runtime/doc/eval.txt, src/message.c + +Patch 7.3.714 +Problem: Inconsistency: :set can be used in the sandbox, but :setlocal and + :setglobal cannot. (Michael Henry) +Solution: Fix the flags for :setlocal and :setglobal. (Christian Brabandt) +Files: src/ex_cmds.h + +Patch 7.3.715 +Problem: Crash when calling setloclist() in BufUnload autocmd. (Marcin + Szamotulski) +Solution: Set w_llist to NULL when it was freed. Also add a test. + (Christian Brabandt) +Files: src/quickfix.c, src/testdir/test49.ok, src/testdir/test49.vim + +Patch 7.3.716 +Problem: Error on exit when using Python 3. +Solution: Remove PythonIO_Fini(). (Roland Puntaier) +Files: src/if_python3.c + +Patch 7.3.717 +Problem: When changing the font size, only MS-Windows limits the window + size. +Solution: Also limit the window size on other systems. (Roland Puntaier) +Files: src/gui.c + +Patch 7.3.718 +Problem: When re-using the current buffer the buffer-local options stay. +Solution: Re-initialize the buffer-local options. (Christian Brabandt) +Files: src/buffer.c + +Patch 7.3.719 +Problem: Cannot run new version of cproto, it fails on missing include + files. +Solution: Add lots of #ifndef PROTO +Files: src/os_amiga.c, src/os_amiga.h, src/gui_w16.c, src/gui_w48.c, + src/gui_w32.c, src/vimio.h, src/os_msdos.c, src/os_msdos.h, + src/os_win16.h, src/os_win16.c, src/os_win32.h, src/os_win32.c, + src/os_mswin.c, src/gui_photon.c, src/os_unix.h, src/os_beos.c, + src/os_beos.h + +Patch 7.3.720 +Problem: Proto files are outdated. +Solution: Update the newly generated proto files. +Files: src/proto/digraph.pro, src/proto/fold.pro, src/proto/misc1.pro, + src/proto/move.pro, src/proto/screen.pro, src/proto/search.pro, + src/proto/os_win32.pro, src/proto/os_mswin.pro, + src/proto/os_beos.pro + +Patch 7.3.721 +Problem: Ruby interface defines local functions globally. +Solution: Make the functions static. +Files: src/if_ruby.c + +Patch 7.3.722 +Problem: Perl flags may contain "-g", which breaks "make proto". +Solution: Filter out the "-g" flag for cproto. (Ken Takata) +Files: src/Makefile + +Patch 7.3.723 +Problem: Various tiny problems. +Solution: Various tiny fixes. +Files: src/gui_mac.c, src/xpm_w32.c, src/netbeans.c, src/sha256.c, + src/if_sniff.c, README.txt + +Patch 7.3.724 +Problem: Building with Ruby and Tcl on MS-Windows 64 bit does not work. +Solution: Remove Ruby and Tcl from the big MS-Windows build. +Files: src/bigvim64.bat + +Patch 7.3.725 +Problem: :aboveleft and :belowright have no effect on :copen. +Solution: Check for cmdmod.split. (Christian Brabandt) +Files: src/quickfix.c + +Patch 7.3.726 +Problem: Typos and duplicate info in README. +Solution: Fix the text. +Files: README.txt + +Patch 7.3.727 +Problem: Can't always find Win32.mak when building GvimExt. +Solution: Use same mechanism as in Make_mvc.mak. (Cade Foster) +Files: src/GvimExt/Makefile + +Patch 7.3.728 +Problem: Cannot compile with MzScheme interface on Ubuntu 12.10. +Solution: Find the collects directory under /usr/share. +Files: src/configure.in, src/auto/configure + +Patch 7.3.729 +Problem: Building with Ruby fails on some systems. +Solution: Remove "static" and add #ifndef PROTO. (Ken Takata) +Files: src/if_ruby.c + +Patch 7.3.730 +Problem: Crash in PHP file when using syntastic. (Ike Devolder) +Solution: Avoid using NULL pointer. (Christian Brabandt) +Files: src/quickfix.c + +Patch 7.3.731 +Problem: Py3Init_vim() is exported unnecessarily. +Solution: Make it static. (Ken Takata) +Files: src/if_python3.c + +Patch 7.3.732 +Problem: Compiler warnings for function arguments. +Solution: Use inteptr_t instead of long. +Files: src/if_mzsch.c, src/main.c + +Patch 7.3.733 +Problem: Tests fail when including MzScheme. +Solution: Change #ifdefs for vim_main2(). +Files: src/main.c + +Patch 7.3.734 +Problem: Cannot put help files in a sub-directory. +Solution: Make :helptags work for sub-directories. (Charles Campbell) +Files: src/ex_cmds.c + +Patch 7.3.735 +Problem: Cannot build Ruby 1.9 with MingW or Cygwin. +Solution: Add another include directory. (Ken Takata) +Files: src/Make_cyg.mak, src/Make_ming.mak + +Patch 7.3.736 +Problem: File name completion in input() escapes white space. (Frederic + Hardy) +Solution: Do not escape white space. (Christian Brabandt) +Files: src/ex_getln.c + +Patch 7.3.737 +Problem: When using do_cmdline() recursively did_endif is not reset, + causing messages to be overwritten. +Solution: Reset did_endif. (Christian Brabandt) +Files: src/ex_docmd.c + +Patch 7.3.738 (after 7.3.730) +Problem: Unused function argument. +Solution: Remove it. (Christian Brabandt) +Files: src/quickfix.c + +Patch 7.3.739 +Problem: Computing number of lines may have an integer overflow. +Solution: Check for MAXCOL explicitly. (Dominique Pelle) +Files: src/move.c + +Patch 7.3.740 +Problem: IOC tool complains about undefined behavior for int. +Solution: Change to unsigned int. (Dominique Pelle) +Files: src/hashtab.c, src/misc2.c + +Patch 7.3.741 (after 7.3.737) +Problem: Tiny build fails. +Solution: Move #ifdef. (Ike Devolder) +Files: src/ex_docmd.c + +Patch 7.3.742 +Problem: Leaking memory when :vimgrep restores the directory. +Solution: Free the allocated memory. (Christian Brabandt) +Files: src/quickfix.c + +Patch 7.3.743 (after 7.3.741) +Problem: Tiny build still fails. +Solution: Add #else in the right place. +Files: src/ex_docmd.c + +Patch 7.3.744 +Problem: 64 bit compiler warning. +Solution: Add type cast. (Mike Williams) +Files: src/ex_cmds.c + +Patch 7.3.745 +Problem: Automatically setting 'ttymouse' doesn't work. +Solution: Reset the "option was set" flag when using the default. +Files: src/option.c, src/proto/option.pro, src/term.c + +Patch 7.3.746 +Problem: Memory leaks when using location lists. +Solution: Set qf_title to something. (Christian Brabandt) +Files: src/eval.c, src/quickfix.c + +Patch 7.3.747 +Problem: When characters are concealed text aligned with tabs are no longer + aligned, e.g. at ":help :index". +Solution: Compensate space for tabs for concealed characters. (Dominique + Pelle) +Files: src/screen.c + +Patch 7.3.748 +Problem: Cannot properly test conceal mode. +Solution: Add the screencol() and screenrow() functions. Use them in + test88. (Simon Ruderich) +Files: runtime/doc/eval.txt, src/eval.c, src/proto/screen.pro, + 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/test88.in, + src/testdir/test88.ok, + +Patch 7.3.749 +Problem: Python interface doesn't build without the multibyte feature. +Solution: Add #ifdef. (Ken Takata) +Files: src/if_py_both.h + +Patch 7.3.750 +Problem: The justify macro does not always work correctly. +Solution: Fix off-by-one error (James McCoy) +Files: runtime/macros/justify.vim + +Patch 7.3.751 +Problem: Test 61 is flaky, it fails once in a while. +Solution: When it fails retry once. +Files: src/testdir/Makefile + +Patch 7.3.752 +Problem: Test 49 script file doesn't fold properly. +Solution: Add a colon. +Files: src/testdir/test49.vim + +Patch 7.3.753 +Problem: When there is a QuitPre autocommand using ":q" twice does not work + for exiting when there are more files to edit. +Solution: Do not decrement quitmore in an autocommand. (Techlive Zheng) +Files: src/ex_docmd.c, src/fileio.c, src/proto/fileio.pro + +Patch 7.3.754 +Problem: Latest nmake is not recognized. +Solution: Add nmake version 11.00.51106.1. (Raymond Ko) +Files: src/Make_mvc.mak + +Patch 7.3.755 +Problem: Autoconf doesn't find Python 3 if it's called "python". +Solution: Search for "python2" and "python3" first, then "python". +Files: src/configure.in, src/auto/configure + +Patch 7.3.756 +Problem: A location list can get a wrong count in :lvimgrep. +Solution: Check if the list was changed by autocommands. (mostly by + Christian Brabandt) +Files: src/quickfix.c + +Patch 7.3.757 +Problem: Issue 96: May access freed memory when a put command triggers + autocommands. (Dominique Pelle) +Solution: Call u_save() before getting y_array. +Files: src/ops.c + +Patch 7.3.758 +Problem: Matchit plugin does not handle space in #ifdef. +Solution: Change matching pattern to allow spaces. (Mike Morearty) +Files: runtime/macros/matchit.vim + +Patch 7.3.759 +Problem: MS-Windows: Updating the tabline is slow when there are many tabs. +Solution: Disable redrawing while performing the update. (Arseny Kapoulkine) +Files: src/gui_w48.c + +Patch 7.3.760 +Problem: dv_ deletes the white space before the line. +Solution: Move the cursor to the first non-white. (Christian Brabandt) +Files: src/normal.c, src/testdir/test19.in, src/testdir/test19.ok + +Patch 7.3.761 +Problem: In Visual mode a "-p does not work. (Marcin Szamotulski) +Solution: Avoid writing to "- before putting it. (Christian Brabandt) +Files: src/normal.c, src/testdir/test48.in, src/testdir/test48.ok + +Patch 7.3.762 (after 7.3.759) +Problem: On some systems the tabline is not redrawn. +Solution: Call RedrawWindow(). (Charles Peacech) +Files: src/gui_w48.c + +Patch 7.3.763 +Problem: Jumping to a mark does not open a fold if it is in the same line. + (Wiktor Ruben) +Solution: Also compare the column after the jump. (Christian Brabandt) +Files: src/normal.c + +Patch 7.3.764 +Problem: Not all message translation files are installed. +Solution: Also install the converted files. +Files: src/po/Makefile + +Patch 7.3.765 +Problem: Segfault when doing "cclose" on BufUnload in a python function. + (Sean Reifschneider) +Solution: Skip window with NULL buffer. (Christian Brabandt) +Files: src/main.c, src/window.c + +Patch 7.3.766 +Problem: ":help cpo-*" jumps to the wrong place. +Solution: Make it equivalent to ":help cpo-star". +Files: src/ex_cmds.c + +Patch 7.3.767 +Problem: (Win32) The _errno used for iconv may be the wrong one. +Solution: Use the _errno from iconv.dll. (Ken Takata) +Files: src/mbyte.c + +Patch 7.3.768 +Problem: settabvar() and setwinvar() may move the cursor. +Solution: Save and restore the cursor position when appropriate. (idea by + Yasuhiro Matsumoto) +Files: src/edit.c + +Patch 7.3.769 +Problem: 'matchpairs' does not work with multibyte characters. +Solution: Make it work. (Christian Brabandt) +Files: src/misc1.c, src/option.c, src/proto/option.pro, src/search.c, + src/testdir/test69.in, src/testdir/test69.ok + +Patch 7.3.770 +Problem: Vim.h indentation is inconsistent. +Solution: Adjust the indentation. (Elias Diem) +Files: src/vim.h + +Patch 7.3.771 (after 7.3.769) +Problem: Uninitialized variable. (Yasuhiro Matsumoto) +Solution: Set x2 to -1. +Files: src/option.c + +Patch 7.3.772 +Problem: Cursor is at the wrong location and below the end of the file + after doing substitutions with confirm flag: %s/x/y/c + (Dominique Pelle) +Solution: Update the cursor position. (Christian Brabandt & Dominique) +Files: src/ex_cmds.c + +Patch 7.3.773 (after 7.3.767) +Problem: Crash when OriginalFirstThunk is zero. +Solution: Skip items with OriginalFirstThunk not set. (Ken Takata) +Files: src/mbyte.c + +Patch 7.3.774 +Problem: Tiny GUI version misses console dialog feature. +Solution: Define FEAT_CON_DIALOG when appropriate. (Christian Brabandt) +Files: src/feature.h, src/gui.h + +Patch 7.3.775 +Problem: Cygwin and Mingw builds miss dependency on gui_w48.c. +Solution: Add a build rule. (Ken Takata) +Files: src/Make_cyg.mak, src/Make_ming.mak + +Patch 7.3.776 +Problem: ml_get error when searching, caused by curwin not matching curbuf. +Solution: Avoid changing curbuf. (Lech Lorens) +Files: src/charset.c, src/eval.c, src/mark.c, src/proto/charset.pro, + src/proto/mark.pro, src/regexp.c, src/syntax.c, + +Patch 7.3.777 +Problem: When building with Gnome locale gets reset. +Solution: Set locale after gnome_program_init(). (Christian Brabandt) +Files: src/gui_gtk_x11.c + +Patch 7.3.778 +Problem: Compiler error for adding up two pointers. (Titov Anatoly) +Solution: Add a type cast. (Ken Takata) +Files: src/mbyte.c + +Patch 7.3.779 +Problem: Backwards search lands in wrong place when started on a multibyte + character. +Solution: Do not set extra_col for a backwards search. (Sung Pae) +Files: src/search.c, src/testdir/test44.in, src/testdir/test44.ok + +Patch 7.3.780 +Problem: char2nr() and nr2char() always use 'encoding'. +Solution: Add argument to use utf-8 characters. (Yasuhiro Matsumoto) +Files: runtime/doc/eval.txt, src/eval.c + +Patch 7.3.781 +Problem: Drawing with 'guifontwide' can be slow. +Solution: Draw multiple characters at a time. (Taro Muraoka) +Files: src/gui.c + +Patch 7.3.782 +Problem: Windows: IME composition may use a wrong font. +Solution: Use 'guifontwide' for IME when it is set. (Taro Muraoka) +Files: runtime/doc/options.txt, src/gui.c, src/gui_w48.c, + src/proto/gui_w16.pro, src/proto/gui_w32.pro + +Patch 7.3.783 +Problem: Crash when mark is not set. (Dominique Pelle) +Solution: Check for NULL. +Files: src/normal.c + +Patch 7.3.784 (after 7.3.781) +Problem: Error when 'guifontwide' has a comma. +Solution: Use gui.wide_font. (Taro Muraoka) +Files: src/gui_w48.c + +Patch 7.3.785 (after 7.3.776) +Problem: Crash with specific use of search pattern. +Solution: Initialize reg_buf to curbuf. +Files: src/regexp.c + +Patch 7.3.786 +Problem: Python threads don't run in the background (issue 103). +Solution: Move the statements to manipulate thread state. +Files: src/if_python.c + +Patch 7.3.787 +Problem: With 'relativenumber' set it is not possible to see the absolute + line number. +Solution: For the cursor line show the absolute line number instead of a + zero. (Nazri Ramliy) +Files: src/screen.c + +Patch 7.3.788 +Problem: When only using patches build fails on missing nl.po. +Solution: Create an empty nl.po file. +Files: src/po/Makefile + +Patch 7.3.789 (after 7.3.776) +Problem: "\k" in regexp does not work in other window. +Solution: Use the right buffer. (Yukihiro Nakadaira) +Files: src/mbyte.c, src/proto/mbyte.pro, src/regexp.c + +Patch 7.3.790 +Problem: After reloading a buffer the modelines are not processed. +Solution: call do_modelines(). (Ken Takata) +Files: src/fileio.c + +Patch 7.3.791 +Problem: MzScheme interface doesn't work properly. +Solution: Make it work better. (Sergey Khorev) +Files: runtime/doc/if_mzsch.txt, src/configure.in, src/auto/configure, + src/eval.c, src/if_mzsch.c, src/if_mzsch.h, src/Make_ming.mak, + src/Make_mvc.mak, src/os_unix.c, src/proto/eval.pro, + src/testdir/test70.in, src/testdir/test70.ok + +Patch 7.3.792 +Problem: ":substitute" works differently without confirmation. +Solution: Do not change the text when asking for confirmation, only display + it. +Files: src/ex_cmds.c + +Patch 7.3.793 (after 7.3.792) +Problem: New interactive :substitute behavior is not tested. +Solution: Add tests. (Christian Brabandt) +Files: src/testdir/test80.in, src/testdir/test80.ok + +Patch 7.3.794 +Problem: Tiny build fails. (Tony Mechelynck) +Solution: Adjust #ifdefs. +Files: src/charset.c + +Patch 7.3.795 +Problem: MzScheme does not build with tiny features. +Solution: Add #ifdefs. Also add UNUSED to avoid warnings. And change + library ordering. +Files: src/if_mzsch.c, src/Makefile + +Patch 7.3.796 +Problem: "/[^\n]" does match at a line break. +Solution: Make it do the same as "/.". (Christian Brabandt) +Files: src/regexp.c, src/testdir/test79.in, src/testdir/test79.ok + +Patch 7.3.797 (after 7.3.792) +Problem: Compiler warning for size_t to int conversion. (Skeept) +Solution: Add type casts. +Files: src/ex_cmds.c + +Patch 7.3.798 (after 7.3.791) +Problem: MzScheme: circular list does not work correctly. +Solution: Separate Mac-specific code from generic code. (Sergey Khorev) +Files: src/if_mzsch.c, src/testdir/test70.in + +Patch 7.3.799 +Problem: The color column is not correct when entering a buffer. (Ben + Fritz) +Solution: Call check_colorcolumn() if 'textwidth' changed. (Christian + Brabandt) +Files: src/buffer.c + +Patch 7.3.800 +Problem: The " mark is not adjusted when inserting lines. (Roland Eggner) +Solution: Adjust the line number. (Christian Brabandt) +Files: src/mark.c + +Patch 7.3.801 +Problem: ":window set nu?" displays the cursor line. (Nazri Ramliy) +Solution: Do not update the cursor line when conceallevel is zero or the + screen has scrolled. (partly by Christian Brabandt) +Files: src/window.c + +Patch 7.3.802 +Problem: After setting 'isk' to a value ending in a comma appending to the + option fails. +Solution: Disallow a trailing comma for 'isk' and similar options. +Files: src/charset.c + +Patch 7.3.803 (after 7.3.792) +Problem: Substitute with confirmation and then "q" does not replace + anything. (John McGowan) +Solution: Do not break the loop, skip to the end. +Files: src/ex_cmds.c, src/testdir/test80.in, src/testdir/test80.ok + +Patch 7.3.804 (after 7.3.799) +Problem: Compiler warning for tiny build. (Tony Mechelynck) +Solution: Add #ifdefs around variable. +Files: src/buffer.c + +Patch 7.3.805 +Problem: Lua version 5.2 is not detected properly on Arch Linux. +Solution: Adjust autoconf. (lilydjwg) +Files: src/configure.in, src/auto/configure + +Patch 7.3.806 +Problem: Compiler warnings in Perl code when building with Visual Studio + 2012. (skeept) +Solution: Add type casts. (Christian Brabandt, 2013 Jan 30) +Files: src/if_perl.xs + +Patch 7.3.807 +Problem: Popup menu does not work properly with the preview window, folds + and 'cursorcolumn'. +Solution: Redraw the popup menu after redrawing windows. (Christian + Brabandt) +Files: src/screen.c + +Patch 7.3.808 +Problem: Python threads still do not work properly. +Solution: Fix both Python 2 and 3. Add tests. (Ken Takata) +Files: src/if_python.c, src/if_python3.c, src/testdir/test86.in, + src/testdir/test86.ok, src/testdir/test87.in, + src/testdir/test87.ok + +Patch 7.3.809 +Problem: The dosinst.c program has a buffer overflow. (Thomas Gwae) +Solution: Ignore $VIMRUNTIME if it is too long. +Files: src/dosinst.c + +Patch 7.3.810 +Problem: 'relativenumber' is reset unexpectedly. (François Ingelrest) +Solution: After an option was reset also reset the global value. Add a test. + (Christian Brabandt) +Files: src/option.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/test89.in, + src/testdir/test89.ok + +Patch 7.3.811 +Problem: Useless termresponse parsing for SGR mouse. +Solution: Skip the parsing. (Hayaki Saito) +Files: src/term.c + +Patch 7.3.812 +Problem: When 'indentexpr' moves the cursor "curswant" not restored. +Solution: Restore "curswant". (Sung Pae) +Files: src/misc1.c + +Patch 7.3.813 +Problem: The CompleteDone event is not triggered when there are no pattern + matches. (Jianjun Mao) +Solution: Trigger the event. (Christian Brabandt) +Files: src/edit.c + +Patch 7.3.814 +Problem: Can't input multibyte characters on Win32 console if 'encoding' is + different from current codepage. +Solution: Use convert_input_safe() instead of convert_input(). Make + string_convert_ext() return an error for incomplete input. (Ken + Takata) +Files: src/mbyte.c, src/os_win32.c + +Patch 7.3.815 +Problem: Building with Cygwin and Ruby doesn't work. +Solution: Copy some things from the MingW build file. (Ken Takata) +Files: src/Make_cyg.mak + +Patch 7.3.816 +Problem: Can't compute a hash. +Solution: Add the sha256() function. (Tyru, Hirohito Higashi) +Files: runtime/doc/eval.txt, src/eval.c, src/proto/sha256.pro, + src/sha256.c, src/testdir/test90.in, src/testdir/test90.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.3.817 +Problem: Test 89 fails with tiny and small features. +Solution: Add sourcing small.vim. +Files: src/testdir/test89.in + +Patch 7.3.818 +Problem: When test 40 fails because of a bad build it may leave files + behind that cause it to fail later. +Solution: Let the file names start with "X". +Files: src/testdir/test40.in + +Patch 7.3.819 +Problem: Compiling without +eval and with Python isn't working. +Solution: Add the eval feature when building with Python. +Files: src/if_py_both.h, src/feature.h, src/eval.c, src/ex_docmd.c, + src/normal.c, src/ex_docmd.c, src/gui_gtk_x11.c + +Patch 7.3.820 +Problem: Build errors and warnings when building with small features and + Lua, Perl or Ruby. +Solution: Add #ifdefs and UNUSED. +Files: src/if_perl.xs, src/if_lua.c, src/if_ruby.c + +Patch 7.3.821 +Problem: Build with OLE and Cygwin is broken. (Steve Hall) +Solution: Select static or shared stdc library. (Ken Takata) +Files: src/Make_cyg.mak + +Patch 7.3.822 (after 7.3.799) +Problem: Crash when accessing freed buffer. +Solution: Get 'textwidth' in caller of enter_buffer(). (Christian Brabandt) +Files: src/buffer.c + +Patch 7.3.823 (after 7.3.821) +Problem: Building with Cygwin: '-lsupc++' is not needed. +Solution: Remove it. (Ken Takata) +Files: src/Make_cyg.mak + +Patch 7.3.824 +Problem: Can redefine builtin functions. (ZyX) +Solution: Disallow adding a function to g:. +Files: src/eval.c + +Patch 7.3.825 +Problem: With Python errors are not always clear. +Solution: Print the stack trace, unless :silent is used. (ZyX) +Files: src/if_python3.c, src/if_python.c + +Patch 7.3.826 +Problem: List of features in :version output is hard to read. +Solution: Make columns. (Nazri Ramliy) +Files: src/version.c + +Patch 7.3.827 (after 7.3.825) +Problem: Python tests fail. +Solution: Adjust the output for the stack trace. +Files: src/testdir/test86.in, src/testdir/test86.ok, + src/testdir/test87.ok + +Patch 7.3.828 +Problem: Mappings are not aware of wildmenu mode. +Solution: Add wildmenumode(). (Christian Brabandt) +Files: src/eval.c, runtime/doc/eval.txt + +Patch 7.3.829 +Problem: When compiled with the +rightleft feature 'showmatch' also shows a + match for the opening paren. When 'revins' is set the screen may + scroll. +Solution: Only check the opening paren when the +rightleft feature was + enabled. Do not show a match that is not visible. (partly by + Christian Brabandt) +Files: src/search.c + +Patch 7.3.830 +Problem: :mksession confuses bytes, columns and characters when positioning + the cursor. +Solution: Use w_virtcol with "|" instead of w_cursor.col with "l". +Files: src/ex_docmd.c + +Patch 7.3.831 +Problem: Clumsy to handle the situation that a variable does not exist. +Solution: Add default value to getbufvar() et al. (Shougo Matsushita, + Hirohito Higashi) +Files: runtime/doc/eval.txt, src/eval.c src/testdir/test91.in, + src/testdir/test91.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.3.832 +Problem: Compiler warning. +Solution: Add type cast. (Mike Williams) +Files: src/version.c + +Patch 7.3.833 +Problem: In the terminal the scroll wheel always scrolls the active window. +Solution: Scroll the window under the mouse pointer, like in the GUI. + (Bradie Rao) +Files: src/edit.c, src/normal.c + +Patch 7.3.834 +Problem: Ruby 2.0 has a few API changes. +Solution: Add handling of Ruby 2.0. (Yasuhiro Matsumoto) +Files: src/if_ruby.c + +Patch 7.3.835 +Problem: "xxd -i" fails on an empty file. +Solution: Do output the closing } for an empty file. (partly by Lawrence + Woodman) +Files: src/xxd/xxd.c + +Patch 7.3.836 +Problem: Clipboard does not work on Win32 when compiled with Cygwin. +Solution: Move the Win32 clipboard code to a separate file and use it when + building with os_unix.c. (Frodak Baksik, Ken Takata) +Files: src/Make_bc5.mak, src/Make_cyg.mak, src/Make_ivc.mak, + src/Make_ming.mak, src/Make_mvc.mak, src/Make_w16.mak, + src/Makefile, src/config.h.in, src/configure.in, + src/auto/configure, src/feature.h, src/globals.h, src/mbyte.c, + src/os_mswin.c, src/os_unix.c, src/os_win32.c, src/proto.h, + src/proto/os_mswin.pro, src/proto/winclip.pro, src/term.c, + src/vim.h, src/winclip.c + +Patch 7.3.837 (after 7.3.826) +Problem: Empty lines in :version output when 'columns' is 320. +Solution: Simplify the logic of making columns. (Nazri Ramliy, Roland + Eggner) +Files: src/version.c + +Patch 7.3.838 (after 7.3.830) +Problem: Insufficient testing for mksession. +Solution: Add tests. (mostly by Roland Eggner) +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/test92.in, src/testdir/test92.ok, + src/testdir/test93.in, src/testdir/test93.ok, + src/ex_docmd.c + +Patch 7.3.839 +Problem: Some files missing in the list of distributed files. +Solution: Add lines for new files. +Files: Filelist + +Patch 7.3.840 +Problem: "\@<!" in regexp does not work correctly with multibyte + characters, especially cp932. +Solution: Move column to start of multibyte character. (Yasuhiro Matsumoto) +Files: src/regexp.c + +Patch 7.3.841 +Problem: When a "cond ? one : two" expression has a subscript it is not + parsed correctly. (Andy Wokula) +Solution: Handle a subscript also when the type is unknown. (Christian + Brabandt) +Files: src/eval.c + +Patch 7.3.842 +Problem: Compiler warning for signed/unsigned pointer. +Solution: Add type cast. (Christian Brabandt) +Files: src/eval.c + +Patch 7.3.843 (after 7.3.841) +Problem: Missing test file changes. +Solution: Change the tests. +Files: src/testdir/test49.vim, src/testdir/test49.ok + +Patch 7.3.844 +Problem: Enum is not indented correctly with "public" etc. +Solution: Skip "public", "private" and "protected". (Hong Xu) +Files: src/misc1.c + +Patch 7.3.845 (after 7.3.844) +Problem: Enum indenting is not tested. +Solution: Add tests. (Hong Xu) +Files: src/testdir/test3.in, src/testdir/test3.ok + +Patch 7.3.846 +Problem: Missing proto files. +Solution: Add the files. +Files: Filelist, src/proto/os_beos.pro + +Patch 7.3.847 +Problem: Test 55 fails when messages are translated. +Solution: Set language to C. (Ken Takata) +Files: src/testdir/test55.in + +Patch 7.3.848 +Problem: Can't build with Ruby 2.0 when using MinGW x64 or MSVC10. +Solution: Fix it. Also detect RUBY_PLATFORM and RUBY_INSTALL_NAME for x64. + (Ken Takata) +Files: src/Make_cyg.mak, src/Make_ming.mak, src/if_ruby.c + +Patch 7.3.849 +Problem: ":g//" gives "Pattern not found error" with E486. Should not use + the error number, it's not a regular error message. +Solution: Use a normal message. (David Bürgin) +Files: src/ex_cmds.c + +Patch 7.3.850 +Problem: ":vimgrep //" matches everywhere. +Solution: Make it use the previous search pattern. (David Bürgin) +Files: runtime/doc/quickfix.txt, src/quickfix.c + +Patch 7.3.851 +Problem: Using an empty pattern with :sort silently continues when there is + no previous search pattern. +Solution: Give an error message. (David Bürgin) +Files: src/ex_cmds.c + +Patch 7.3.852 +Problem: system() breaks clipboard text. (Yukihiro Nakadaira) +Solution: Use Xutf8TextPropertyToTextList(). (Christian Brabandt) + Also do not put the text in the clip buffer if conversion fails. +Files: src/ui.c, src/ops.c + +Patch 7.3.853 +Problem: Using "ra" in multiple lines on multibyte characters leaves a few + characters not replaced. +Solution: Adjust the end column only in the last line. (Yasuhiro Matsumoto) +Files: src/testdir/test69.in, src/testdir/test69.ok, src/ops.c + +Patch 7.3.854 +Problem: After using backspace in insert mode completion, CTRL-N and CTRL-P + do not highlight the right entry. (Olivier Teuliere) +Solution: Set the current item to the shown item after using backspace. +Files: src/edit.c + +Patch 7.3.855 +Problem: Compiler warnings. +Solution: Add type casts. (Mike Williams) +Files: src/misc1.c + +Patch 7.3.856 +Problem: When calling system() multibyte clipboard contents is garbled. +Solution: Save and restore the clipboard contents. (Yukihiro Nakadaira) +Files: src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro, src/ops.c, + src/proto/ops.pro, src/os_unix.c, src/proto/ui.pro, src/ui.c + +Patch 7.3.857 +Problem: The QuitPre autocommand event does not trigger for :qa and :wq. +Solution: Trigger the event. (Tatsuro Fujii) +Files: src/ex_docmd.c + +Patch 7.3.858 +Problem: "gv" selects the wrong area after some operators. +Solution: Save and restore the type of selection. (Christian Brabandt) +Files: src/testdir/test66.in, src/testdir/test66.ok, src/normal.c + +Patch 7.3.859 +Problem: 'ambiwidth' must be set by the user. +Solution: Detects East Asian ambiguous width (UAX #11) state of the terminal + at the start-up time and 'ambiwidth' accordingly. (Hayaki Saito) +Files: src/main.c, src/option.c, src/term.c, src/term.h, + src/proto/term.pro + +Patch 7.3.860 +Problem: When using --remote-expr try/catch does not work. (Andrey Radev) +Solution: Set emsg_silent instead of emsg_skip. +Files: src/main.c + +Patch 7.3.861 +Problem: ":setlocal number" clears global value of 'relativenumber'. +Solution: Do it properly. (Markus Heidelberg) +Files: src/testdir/test89.in, src/testdir/test89.ok, src/option.c + +Patch 7.3.862 +Problem: Dragging the status line can be slow. +Solution: Look ahead and drop the drag event if there is a next one. +Files: src/eval.c, src/misc1.c, src/proto/misc1.pro, src/normal.c + +Patch 7.3.863 (after 7.3.859) +Problem: Problem with 'ambiwidth' detection for ANSI terminal. +Solution: Work around not recognizing a term response. (Hayaki Saito) +Files: src/term.c + +Patch 7.3.864 (after 7.3.862) +Problem: Can't build without the mouse feature. +Solution: Add an #ifdef. (Ike Devolder) +Files: src/misc1.c + +Patch 7.3.865 (after 7.3.862) +Problem: Mouse position may be wrong. +Solution: Let vungetc() restore the mouse position. +Files: src/getchar.c + +Patch 7.3.866 +Problem: Not serving the X selection during system() isn't nice. +Solution: When using fork() do not loose the selection, keep serving it. + Add a loop similar to handling I/O. (Yukihiro Nakadaira) +Files: src/os_unix.c + +Patch 7.3.867 +Problem: Matchparen does not update match when using auto-indenting. + (Marc Aldorasi) +Solution: Add the TextChanged and TextChangedI autocommand events. +Files: runtime/plugin/matchparen.vim, src/main.c, src/edit.c, + src/globals.h, src/vim.h, src/fileio.c, src/proto/fileio.pro, + runtime/doc/autocmd.txt + +Patch 7.3.868 +Problem: When at the hit-return prompt and using "k" while no text has + scrolled off screen, then using "j", an empty line is displayed. +Solution: Only act on "k" when text scrolled off screen. Also accept + page-up and page-down. (cptstubing) +Files: src/message.c + +Patch 7.3.869 +Problem: bufwinnr() matches buffers in other tabs. +Solution: For bufwinnr() and ? only match buffers in the current tab. + (Alexey Radkov) +Files: src/buffer.c, src/diff.c, src/eval.c, src/ex_docmd.c, + src/if_perl.xs, src/proto/buffer.pro + +Patch 7.3.870 +Problem: Compiler warnings when using MingW 4.5.3. +Solution: Do not use MAKEINTRESOURCE. Adjust #if. (Ken Takata) +Files: src/gui_w32.c, src/gui_w48.c, src/os_mswin.c, src/os_win32.c, + src/os_win32.h + +Patch 7.3.871 +Problem: search('^$', 'c') does not use the empty match under the cursor. +Solution: Special handling of the 'c' flag. (Christian Brabandt) + Add tests. +Files: src/search.c, src/testdir/test14.in, src/testdir/test14.ok + +Patch 7.3.872 +Problem: On some systems case of file names is always ignored, on others + never. +Solution: Add the 'fileignorecase' option to control this at runtime. + Implies 'wildignorecase'. +Files: src/buffer.c, src/edit.c, src/ex_cmds2.c, src/ex_getln.c, + src/fileio.c, src/misc1.c, src/misc2.c, src/option.c, + src/option.h, src/vim.h, runtime/doc/options.txt + +Patch 7.3.873 +Problem: Cannot easily use :s to make title case. +Solution: Have "\L\u" result in title case. (James McCoy) +Files: src/regexp.c, src/testdir/test79.in, src/testdir/test79.ok, + src/testdir/test80.in, src/testdir/test80.ok + +Patch 7.3.874 +Problem: Comparing file names does not handle multibyte characters + properly. +Solution: Implement multibyte handling. +Files: src/misc1.c, src/misc2.c + +Patch 7.3.875 (after 7.3.866) +Problem: Build problem with some combination of features. +Solution: Use FEAT_XCLIPBOARD instead of FEAT_CLIPBOARD. +Files: src/os_unix.c + +Patch 7.3.876 +Problem: #if indents are off. +Solution: Insert a space where appropriate. (Taro Muraoka) +Files: src/gui.c + +Patch 7.3.877 (after 7.3.871) +Problem: Forward searching with search() is broken. +Solution: Fix it and add tests. (Sung Pae) +Files: src/search.c, src/testdir/test14.in, src/testdir/test14.ok + +Patch 7.3.878 +Problem: 'fileignorecase' is missing in options window and quickref. +Solution: Add the option. +Files: runtime/optwin.vim, runtime/doc/quickref.txt + +Patch 7.3.879 +Problem: When using an ex command in operator pending mode, using Esc to + abort the command still executes the operator. (David Bürgin) +Solution: Clear the operator when the ex command fails. (Christian Brabandt) +Files: src/normal.c + +Patch 7.3.880 +Problem: When writing viminfo, old history lines may replace lines written + more recently by another Vim instance. +Solution: Mark history entries that were read from viminfo and overwrite + them when merging with the current viminfo. +Files: src/ex_getln.c + +Patch 7.3.881 +Problem: Python list does not work correctly. +Solution: Fix it and add a test. (Yukihiro Nakadaira) +Files: src/testdir/test86.in, src/testdir/test86.ok, src/if_py_both.h + +Patch 7.3.882 +Problem: CursorHold may trigger after receiving the termresponse. +Solution: Set the did_cursorhold flag. (Hayaki Saito) +Files: src/term.c + +Patch 7.3.883 (after 7.3.880) +Problem: Can't build with some combination of features. +Solution: Adjust #ifdefs. +Files: src/ex_getln.c + +Patch 7.3.884 +Problem: Compiler warning for variable shadowing another. (John Little) +Solution: Rename the variable. (Christian Brabandt) +Files: src/term.c + +Patch 7.3.885 +Problem: Double free for list and dict in Lua. (Shougo Matsu) +Solution: Do not unref list and dict. (Yasuhiro Matsumoto) +Files: src/if_lua.c + +Patch 7.3.886 +Problem: Can't build with multibyte on Solaris 10. +Solution: Add #ifdef X_HAVE_UTF8_STRING. (Laurent Blume) +Files: src/ui.c + +Patch 7.3.887 +Problem: No tests for Visual mode operators, what 7.3.879 fixes. +Solution: Add a new test file. (David Bürgin) +Files: src/testdir/test94.in, src/testdir/test94.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.3.888 +Problem: Filename completion with 'fileignorecase' does not work for + multibyte characters. +Solution: Make 'fileignorecase' work properly. (Hirohito Higashi) +Files: src/misc2.c + +Patch 7.3.889 +Problem: Can't build with Ruby 2.0 on a 64 bit system. +Solution: Define rb_fix2int and rb_num2int. (Kohei Suzuki) +Files: src/if_ruby.c + +Patch 7.3.890 +Problem: Test 79 fails on Windows. (Michael Soyka) +Solution: Add comment below line causing an error. +Files: src/testdir/test79.in + +Patch 7.3.891 +Problem: Merging viminfo history doesn't work well. +Solution: Don't stop when one type of history is empty. Don't merge history + when writing viminfo. +Files: src/ex_getln.c + +Patch 7.3.892 (after 7.3.891) +Problem: Still merging problems for viminfo history. +Solution: Do not merge lines when writing, don't write old viminfo lines. +Files: src/ex_getln.c, src/ex_cmds.c, src/proto/ex_getln.pro + +Patch 7.3.893 +Problem: Crash when using b:, w: or t: after closing the buffer, window or + tabpage. +Solution: Allocate the dictionary instead of having it part of the + buffer/window/tabpage struct. (Yukihiro Nakadaira) +Files: src/buffer.c, src/eval.c, src/fileio.c, src/structs.h, + src/window.c, src/proto/eval.pro + +Patch 7.3.894 +Problem: Using wrong RUBY_VER causing Ruby build to break. +Solution: Correct the RUBY_VER value. (Yongwei Wu) +Files: src/bigvim.bat + +Patch 7.3.895 +Problem: Valgrind error in test 91. (Issue 128) +Solution: Pass scope name to find_var_in_ht(). +Files: src/eval.c + +Patch 7.3.896 +Problem: Memory leaks in Lua interface. +Solution: Fix the leaks, add tests. (Yukihiro Nakadaira) +Files: src/testdir/test85.in, src/testdir/test85.ok, src/if_lua.c + +Patch 7.3.897 +Problem: Configure doesn't always find the shared library. +Solution: Change the configure script. (Ken Takata) +Files: src/configure.in, src/auto/configure + +Patch 7.3.898 +Problem: Memory leak reported by valgrind in test 91. +Solution: Only use default argument when needed. +Files: src/eval.c, src/testdir/test91.in, src/testdir/test91.ok + +Patch 7.3.899 +Problem: #if indents are off. +Solution: Fix the indents. +Files: src/os_unix.c + +Patch 7.3.900 +Problem: Not obvious that some mouse features are mutual-exclusive. +Solution: Add a comment. +Files: src/feature.h + +Patch 7.3.901 +Problem: Outdated comment, ugly condition. +Solution: Update a few comments, break line. +Files: src/getchar.c, src/misc1.c, src/undo.c + +Patch 7.3.902 +Problem: When deleting last buffer in other tab the tabline is not updated. +Solution: Set the redraw_tabline flag. (Yukihiro Nakadaira) +Files: src/window.c + +Patch 7.3.903 (after 7.3.892) +Problem: Crash on exit writing viminfo. (Ron Aaron) +Solution: Check for the history to be empty. +Files: src/ex_getln.c + +Patch 7.3.904 (after 7.3.893) +Problem: Using memory freed by the garbage collector. +Solution: Mark items in aucmd_win as used. +Files: src/eval.c + +Patch 7.3.905 (after 7.3.903) +Problem: Crash when writing viminfo. (Ron Aaron) +Solution: Prevent freed history info to be used. +Files: src/ex_getln.c + +Patch 7.3.906 +Problem: The "sleep .2" for running tests does not work on Solaris. +Solution: Fall back to using "sleep 1". (Laurent Blume) +Files: src/testdir/Makefile + +Patch 7.3.907 +Problem: Python uses IndexError when a dict key is not found. +Solution: Use KeyError instead. (ZyX) +Files: src/if_py_both.h, src/if_python3.c, src/if_python.c, + src/testdir/test86.ok, src/testdir/test87.ok + +Patch 7.3.908 +Problem: Possible crash when using a list in Python. +Solution: Return early if the list is NULL. (ZyX) +Files: src/if_py_both.h + +Patch 7.3.909 +Problem: Duplicate Python code. +Solution: Move more items to if_py_both.h. (ZyX) Also avoid compiler + warnings for missing initializers. +Files: src/if_py_both.h, src/if_python3.c, src/if_python.c + +Patch 7.3.910 +Problem: Python code in #ifdef branches with only minor differences. +Solution: Merge the #ifdef branches. (ZyX) +Files: src/if_py_both.h, src/if_python.c + +Patch 7.3.911 +Problem: Python: Access to Vim variables is not so easy. +Solution: Define vim.vars and vim.vvars. (ZyX) +Files: runtime/doc/if_pyth.txt, src/eval.c, src/globals.h, + src/if_py_both.h, src/if_python3.c, src/if_python.c, + src/testdir/test86.in, src/testdir/test86.ok, + src/testdir/test87.in, src/testdir/test87.ok + +Patch 7.3.912 +Problem: Typing a ":" command at the hit-enter dialog does not work if the + "file changed" dialog happens next. +Solution: Check for changed files before giving the hit-enter dialog. +Files: src/message.c + +Patch 7.3.913 (after 7.3.905) +Problem: Still a crash when writing viminfo. +Solution: Add checks for NULL pointers. (Ron Aaron) +Files: src/ex_getln.c + +Patch 7.3.914 +Problem: ~/.viminfo is messed up when running tests. +Solution: Set the viminfo filename. +Files: src/testdir/test89.in, src/testdir/test94.in + +Patch 7.3.915 +Problem: When reading a file with encoding conversion fails at the end the + next encoding in 'fencs' is not used. +Solution: Retry with another encoding when possible. (Taro Muraoka) +Files: src/fileio.c + +Patch 7.3.916 +Problem: Using freed memory when pasting with the mouse (Issue 130). +Solution: Get the byte value early. (hint by Dominique Pelle) +Files: src/buffer.c + +Patch 7.3.917 +Problem: When a path ends in a backslash appending a comma has the wrong + effect. +Solution: Replace a trailing backslash with a slash. (Nazri Ramliy) +Files: src/misc1.c, src/testdir/test73.in, src/testdir/test73.ok + +Patch 7.3.918 +Problem: Repeating an Ex command after using a Visual motion does not work. +Solution: Check for an Ex command being used. (David Bürgin) +Files: src/normal.c + +Patch 7.3.919 (after 7.3.788) +Problem: An empty nl.po file does not work with an old msgfmt. +Solution: Put a single # in the file. (Laurent Blume) +Files: src/po/Makefile + +Patch 7.3.920 +Problem: Compiler warning for size_t to int. +Solution: Add a type cast. (Mike Williams) +Files: src/misc1.c + +Patch 7.3.921 (after 7.3.697) +Problem: Trying to create a fontset handle when 'guifontset' is not set. +Solution: Add curly braces around the code block. (Max Kirillov) +Files: src/syntax.c + +Patch 7.3.922 +Problem: No test for what 7.3.918 fixes. +Solution: Add a test. (David Bürgin) +Files: src/testdir/test94.in, src/testdir/test94.ok + +Patch 7.3.923 +Problem: Check for X11 header files fails on Solaris. +Solution: Only use -Werror for gcc. (Laurent Blume) +Files: src/configure.in, src/auto/configure + +Patch 7.3.924 +Problem: Python interface can't easily access options. +Solution: Add vim.options, vim.window.options and vim.buffer.options. (ZyX) +Files: runtime/doc/if_pyth.txt, src/eval.c, src/if_py_both.h, + src/if_python.c, src/if_python3.c, src/option.c, + src/proto/eval.pro, src/proto/option.pro, src/testdir/test86.in, + src/testdir/test86.ok, src/testdir/test87.in, + src/testdir/test87.ok, src/vim.h + +Patch 7.3.925 +Problem: Typos in source files. +Solution: Fix the typos. (Ken Takata) +Files: runtime/plugin/matchparen.vim, runtime/tools/vim_vs_net.cmd, + src/GvimExt/gvimext.cpp, src/INSTALLvms.txt, src/Make_cyg.mak, + src/Make_mvc.mak, src/Make_sas.mak, src/Make_vms.mms, + src/Make_w16.mak, src/Makefile, src/VisVim/OleAut.cpp, + src/VisVim/README_VisVim.txt, src/auto/configure, src/buffer.c, + src/configure.in, src/diff.c, src/dosinst.c, src/edit.c, + src/eval.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_eval.c, + src/farsi.c, src/feature.h, src/fileio.c, src/glbl_ime.cpp, + src/gui.c, src/gui_athena.c, src/gui_beval.c, src/gui_gtk_x11.c, + src/gui_mac.c, src/gui_motif.c, src/gui_photon.c, src/gui_w16.c, + src/gui_w32.c, src/gui_w48.c, src/gui_xmebw.c, src/gui_xmebwp.h, + src/hardcopy.c, src/if_cscope.c, src/if_mzsch.c, src/if_ole.cpp, + src/if_perl.xs, src/if_py_both.h, src/if_python.c, + src/if_python3.c, src/if_ruby.c, src/main.aap, src/mbyte.c, + src/memfile.c, src/memline.c, src/misc1.c, src/misc2.c, + src/nbdebug.c, src/normal.c, src/ops.c, src/os_amiga.c, + src/os_mac.h, src/os_msdos.c, src/os_mswin.c, src/os_win16.h, + src/os_win32.c, src/os_win32.h, src/quickfix.c, src/screen.c, + src/search.c, src/spell.c, src/structs.h, src/syntax.c, + src/window.c, vimtutor.com + + +Patch 7.3.926 +Problem: Autocommands are triggered by setwinvar() et al. Missing BufEnter + on :tabclose. Duplicate WinEnter on :tabclose. Wrong order of + events for :tablose and :tabnew. +Solution: Fix these autocommand events. (ZyX) +Files: runtime/doc/eval.txt, src/buffer.c, src/eval.c, src/ex_cmds2.c, + src/fileio.c, src/proto/window.pro, src/testdir/test62.in, + src/testdir/test62.ok, src/window.c + +Patch 7.3.927 +Problem: Missing combining characters when putting text in a register. +Solution: Include combining characters. (David Bürgin) +Files: src/getchar.c, src/testdir/test44.in, src/testdir/test44.ok + +Patch 7.3.928 (after 7.3.924) +Problem: Can't build with strict C compiler. +Solution: Move declaration to start of block. (Taro Muraoka) +Files: src/if_py_both.h + +Patch 7.3.929 (after 7.3.924) +Problem: Compiler warning for unused variable. Not freeing unused string. +Solution: Remove the variable. Clear the options. +Files: src/option.c + +Patch 7.3.930 +Problem: MSVC 2012 update is not recognized. +Solution: Update the version in the makefile. (Raymond Ko) +Files: src/Make_mvc.mak + +Patch 7.3.931 +Problem: No completion for :xmap and :smap. (Yukihiro Nakadaira) +Solution: Add the case statements. (Christian Brabandt) +Files: src/ex_docmd.c + +Patch 7.3.932 +Problem: Compiler warning for uninitialized variable. (Tony Mechelynck) +Solution: Initialize the variable. +Files: src/option.c + +Patch 7.3.933 +Problem: Ruby on Mac crashes due to GC failure. +Solution: Init the stack from main(). (Hiroshi Shirosaki) +Files: src/main.c, src/if_ruby.c, src/proto/if_ruby.pro + +Patch 7.3.934 +Problem: E381 and E380 make the user think nothing happened. +Solution: Display the message indicating what error list is now active. + (Christian Brabandt) +Files: src/quickfix.c + +Patch 7.3.935 (after 7.3.933) +Problem: Ruby: Init stack works differently on 64 bit systems. +Solution: Handle 64 bit systems and also static library. (Yukihiro + Nakadaira) +Files: src/if_ruby.c + +Patch 7.3.936 (after 7.3.935) +Problem: Ruby 1.8: Missing piece for static linking on 64 bit systems. +Solution: Define ruby_init_stack() (Hiroshi Shirosaki) + Also fix preprocessor indents. +Files: src/if_ruby.c + +Patch 7.3.937 +Problem: More can be shared between Python 2 and 3. +Solution: Move code to if_py_both.h. (ZyX) +Files: src/if_python.c, src/if_python3.c, src/if_py_both.h + +Patch 7.3.938 +Problem: Python: not easy to get to window number. +Solution: Add vim.window.number. (ZyX) +Files: runtime/doc/if_pyth.txt, src/if_py_both.h, src/proto/window.pro, + src/window.c + +Patch 7.3.939 +Problem: Using Py_BuildValue is inefficient sometimes. +Solution: Use PyLong_FromLong(). (ZyX) +Files: src/if_py_both.h + +Patch 7.3.940 +Problem: Python: Can't get position of window. +Solution: Add window.row and window.col. (ZyX) +Files: runtime/doc/if_pyth.txt, src/if_py_both.h + +Patch 7.3.941 +Problem: Stuff in if_py_both.h is ordered badly. +Solution: Reorder by type. (ZyX) +Files: src/if_py_both.h, src/if_python.c + +Patch 7.3.942 +Problem: Python: SEGV in Buffer functions. +Solution: Call CheckBuffer() at the right time. (ZyX) +Files: src/if_py_both.h, src/if_python.c, src/if_python3.c + +Patch 7.3.943 +Problem: Python: Negative indices were failing. +Solution: Fix negative indices. Add tests. (ZyX) +Files: src/if_py_both.h, src/if_python3.c, src/testdir/test86.in, + src/testdir/test86.ok, src/testdir/test87.in, + src/testdir/test87.ok + +Patch 7.3.944 +Problem: External program receives the termresponse. +Solution: Insert a delay and discard input. (Hayaki Saito) +Files: src/term.c + +Patch 7.3.945 +Problem: Python: List of buffers is not very useful. +Solution: Make vim.buffers a map. No iterator yet. (ZyX) +Files: runtime/doc/if_pyth.txt, src/if_py_both.h, src/if_python3.c, + src/if_python.c, src/testdir/test86.ok, src/testdir/test87.ok + +Patch 7.3.946 +Problem: Sometimes get stuck in waiting for cursor position report, + resulting in keys starting with <Esc>[ not working. +Solution: Only wait for more characters after <Esc>[ if followed by '?', '>' + or a digit. +Files: src/term.c + +Patch 7.3.947 +Problem: Python: No iterator for vim.list and vim.bufferlist. +Solution: Add the iterators. Also fix name of FunctionType. Add tests for + vim.buffers. (ZyX) +Files: runtime/doc/if_pyth.txt, src/eval.c, src/if_py_both.h, + src/if_python3.c, src/if_python.c, src/proto/eval.pro, + src/testdir/test86.in, src/testdir/test86.ok, + src/testdir/test87.in, src/testdir/test87.ok + +Patch 7.3.948 +Problem: Cannot build with Python 2.2 +Solution: Make Python interface work with Python 2.2 + Make 2.2 the first supported version. (ZyX) +Files: src/if_py_both.h, src/if_python3.c, src/if_python.c, + src/testdir/test86.in, src/testdir/test86.ok, + src/testdir/test87.ok, src/configure.in, src/auto/configure + +Patch 7.3.949 +Problem: Python: no easy access to tabpages. +Solution: Add vim.tabpages and vim.current.tabpage. (ZyX) +Files: runtime/doc/if_pyth.txt, src/if_py_both.h, src/if_python3.c, + src/if_python.c, src/proto/if_python3.pro, + src/proto/if_python.pro, src/proto/window.pro, src/structs.h, + src/window.c + +Patch 7.3.950 +Problem: Python: Stack trace printer can't handle messages. +Solution: Make KeyErrors use PyErr_SetObject. (ZyX) +Files: src/if_py_both.h, src/if_python3.c, src/if_python.c + +Patch 7.3.951 +Problem: Python exceptions have problems. +Solution: Change some IndexErrors to TypeErrors. Make “line number out of + range” an IndexError. Make “unable to get option value” a + RuntimeError. Make all PyErr_SetString messages start with + lowercase letter and use _(). (ZyX) +Files: src/if_py_both.h, src/if_python3.c, src/if_python.c, + src/testdir/test86.ok, src/testdir/test87.ok + +Patch 7.3.952 +Problem: Python: It's not easy to change window/buffer/tabpage. +Solution: Add ability to assign to vim.current.{tabpage,buffer,window}. + (ZyX) +Files: runtime/doc/if_pyth.txt, src/if_py_both.h + +Patch 7.3.953 +Problem: Python: string exceptions are deprecated. +Solution: Make vim.error an Exception subclass. (ZyX) +Files: src/if_python.c, src/if_python3.c + +Patch 7.3.954 +Problem: No check if PyObject_IsTrue fails. +Solution: Add a check for -1 value. (ZyX) +Files: src/if_py_both.h + +Patch 7.3.955 +Problem: Python: Not enough tests. +Solution: Add tests for vim.{current,window*,tabpage*}. (ZyX) +Files: src/testdir/test86.in, src/testdir/test86.ok, + src/testdir/test87.in, src/testdir/test87.ok + +Patch 7.3.956 +Problem: Python vim.bindeval() causes SIGABRT. +Solution: Make pygilstate a local variable. (Yukihiro Nakadaira) +Files: src/if_py_both.h, src/if_python.c, src/if_python3.c + +Patch 7.3.957 +Problem: Python does not have a "do" command like Perl or Lua. +Solution: Add the ":py3do" command. (Lilydjwg) +Files: runtime/doc/if_pyth.txt, src/ex_cmds.h, src/ex_docmd.c, + src/if_python3.c, src/proto/if_python3.pro + +Patch 7.3.958 +Problem: Python: Iteration destructor not set. +Solution: Put IterDestructor to use. (ZyX) +Files: src/if_py_both.c + +Patch 7.3.959 (after 7.3.957) +Problem: Missing error number. +Solution: Assign an error number. +Files: src/if_python3.c + +Patch 7.3.960 +Problem: Compiler warning for unused variable. +Solution: Put declaration in #ifdef. +Files: src/window.c + +Patch 7.3.961 +Problem: Tests 86 and 87 fail when using another language than English. +Solution: Set the language to C in the test. (Dominique Pelle) +Files: src/testdir/test86.in, src/testdir/test87.in, + src/testdir/test87.ok + +Patch 7.3.962 +Problem: Python tests are not portable. +Solution: Use shiftwidth instead of iminsert. (ZyX) +Files: src/testdir/test86.in, src/testdir/test86.ok, + src/testdir/test87.in, src/testdir/test87.ok + +Patch 7.3.963 +Problem: Setting curbuf without curwin causes trouble. +Solution: Add switch_buffer() and restore_buffer(). Block autocommands to + avoid trouble. +Files: src/eval.c, src/proto/eval.pro, src/proto/window.pro, + src/if_py_both.h, src/window.c, src/testdir/test86.ok + +Patch 7.3.964 +Problem: Python: not so easy to access tab pages. +Solution: Add window.tabpage, make window.number work with non-current tab + pages. (ZyX) +Files: runtime/doc/if_pyth.txt, src/if_py_both.h, src/if_python3.c, + src/if_python.c, src/testdir/test86.ok, src/testdir/test87.ok + +Patch 7.3.965 +Problem: Python garbage collection not working properly. +Solution: Add support for garbage collection. (ZyX) +Files: src/if_py_both.h + +Patch 7.3.966 +Problem: There is ":py3do" but no ":pydo". +Solution: Add the ":pydo" command. (Lilydjwg) +Files: runtime/doc/if_pyth.txt, src/ex_cmds.h, src/ex_docmd.c, + src/if_py_both.h, src/if_python.c, src/if_python3.c, + src/proto/if_python.pro + +Patch 7.3.967 (after 7.3.965) +Problem: Build fails on Mac OSX. (Greg Novack) +Solution: Undefine clear(). +Files: src/if_py_both.h + +Patch 7.3.968 +Problem: Multi-byte support is only available when compiled with "big" + features. +Solution: Include multibyte by default, with "normal" features. +Files: src/feature.h + +Patch 7.3.969 +Problem: Can't build with Python 3 and without Python 2. +Solution: Adjust #ifdef. (Xavier de Gaye) +Files: src/window.c + +Patch 7.3.970 +Problem: Syntax highlighting can be slow. +Solution: Include the NFA regexp engine. Add the 'regexpengine' option to + select which one is used. (various authors, including Ken Takata, + Andrei Aiordachioaie, Russ Cox, Xiaozhou Liua, Ian Young) +Files: src/Make_cyg.mak, src/Make_ming.mak, src/Make_mvc.mak, + src/Makefile, src/regexp.c, src/regexp.h, src/regexp_nfa.c, + src/structs.h, src/testdir/Makefile, src/testdir/test64.in, + src/testdir/test64.ok, Filelist, runtime/doc/pattern.txt, + runtime/doc/option.txt, src/option.c, src/option.h, + src/testdir/test95.in, src/testdir/test95.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.3.971 +Problem: No support for VS2012 static code analysis. +Solution: Add the ANALYZE option. (Mike Williams) +Files: src/Make_mvc.mak + +Patch 7.3.972 +Problem: Cursor not restored after InsertEnter autocommand if it moved to + another line. +Solution: Also restore if the saved line number is still valid. Allow + setting v:char to skip restoring. +Files: src/edit.c, runtime/doc/autocmd.txt + +Patch 7.3.973 +Problem: Compiler warnings. Crash on startup. (Tony Mechelynck) +Solution: Change EMSG2 to EMSGN. Make array one character longer. +Files: src/regexp_nfa.c + +Patch 7.3.974 +Problem: Can't build with ruby 1.8.5. +Solution: Only use ruby_init_stack() when RUBY_INIT_STACK is defined. + (Yukihiro Nakadaira) +Files: src/if_ruby.c + +Patch 7.3.975 +Problem: Crash in regexp parsing. +Solution: Correctly compute the end of allocated memory. +Files: src/regexp_nfa.c + +Patch 7.3.976 +Problem: Can't build on HP-UX. +Solution: Remove modern initialization. (John Marriott) +Files: src/regexp_nfa.c + +Patch 7.3.977 +Problem: Compiler warnings on 64 bit Windows. +Solution: Add type casts. (Mike Williams) Also fix some white space and + uncomment what was commented-out for testing. +Files: src/regexp_nfa.c + +Patch 7.3.978 +Problem: Regexp debug logs don't have a good name. +Solution: Use clear names and make it possible to write logs for the old and + new engines separately. (Taro Muraoka) +Files: src/regexp.c, src/regexp_nfa.c + +Patch 7.3.979 +Problem: Complex NFA regexp doesn't work. +Solution: Set actual state stack end instead of using an arbitrary number. + (Yasuhiro Matsumoto) +Files: src/regexp_nfa.c + +Patch 7.3.980 +Problem: Regexp logs may contain garbage. Character classes don't work + correctly for multibyte characters. +Solution: Check for end of post list. Only use "is" functions for + characters up to 255. (Ken Takata) +Files: src/regexp_nfa.c + +Patch 7.3.981 +Problem: In the old regexp engine \i, \I, \f and \F don't work on + multibyte characters. +Solution: Dereference pointer properly. +Files: src/regexp.c, src/testdir/test64.in, src/testdir/test64.ok + +Patch 7.3.982 +Problem: In the new regexp engine \p does not work on multibyte + characters. +Solution: Don't point to an integer but the characters. +Files: src/regexp_nfa.c, src/testdir/test95.in, src/testdir/test95.ok + +Patch 7.3.983 +Problem: Unnecessary temp variable. +Solution: Remove the variable. +Files: src/regexp_nfa.c + +Patch 7.3.984 +Problem: A Visual mapping that uses CTRL-G works differently when started + from Insert mode. (Ein Brown) +Solution: Reset old_mapped_len when handling typed text in Select mode. +Files: src/normal.c + +Patch 7.3.985 +Problem: GTK vim not started as gvim doesn't set WM_CLASS property to a + useful value. +Solution: Call g_set_prgname() on startup. (James McCoy) +Files: src/gui_gtk_x11.c + +Patch 7.3.986 +Problem: Test 95 doesn't pass when 'encoding' isn't utf-8. (Yasuhiro + Matsumoto) +Solution: Force 'encoding' to be utf-8. +Files: src/testdir/test95.in + +Patch 7.3.987 +Problem: No easy to run an individual test. Tests 64 fails when + 'encoding' is not utf-8. +Solution: Add individual test targets to the Makefile. Move some lines from + test 64 to 95. +Files: src/Makefile, src/testdir/test64.in, src/testdir/test64.ok, + src/testdir/test95.in, src/testdir/test95.ok + +Patch 7.3.988 +Problem: New regexp engine is slow. +Solution: Break out of the loop when the state list is empty. +Files: src/regexp_nfa.c + +Patch 7.3.989 +Problem: New regexp engine compares negative numbers to character. +Solution: Add missing case statements. +Files: src/regexp_nfa.c + +Patch 7.3.990 +Problem: Memory leak in new regexp engine. +Solution: Jump to end of function to free memory. (Dominique Pelle) +Files: src/regexp_nfa.c + +Patch 7.3.991 +Problem: More can be shared by Python 2 and 3. +Solution: Move more stuff to if_py_both. (ZyX) +Files: src/if_py_both.h, src/if_python3.c, src/if_python.c, + src/testdir/test87.ok + +Patch 7.3.992 +Problem: Python: Too many type casts. +Solution: Change argument types. (ZyX) +Files: src/if_py_both.h, src/if_python3.c, src/if_python.c + +Patch 7.3.993 +Problem: Python: Later patch does things slightly differently. +Solution: Adjusted argument type changes. (ZyX) +Files: src/if_py_both.h, src/if_python3.c, src/if_python.c + +Patch 7.3.994 +Problem: Python: using magic constants. +Solution: Use descriptive values for ml_flags. (ZyX) +Files: src/if_py_both.h, src/if_python3.c + +Patch 7.3.995 +Problem: Python: Module initialization is duplicated. +Solution: Move to shared file. (ZyX) +Files: src/if_py_both.h, src/if_python3.c, src/if_python.c + +Patch 7.3.996 +Problem: Python: Can't check types of what is returned by bindeval(). +Solution: Add vim.List, vim.Dictionary and vim.Function types. (ZyX) +Files: runtime/doc/if_pyth.txt, src/if_py_both.h, src/testdir/test86.in, + src/testdir/test86.ok, src/testdir/test87.in, + src/testdir/test87.ok + +Patch 7.3.997 +Problem: Vim and Python exceptions are different. +Solution: Make Vim exceptions be Python exceptions. (ZyX) +Files: src/if_py_both.h, src/testdir/test86.in, src/testdir/test86.ok, + src/testdir/test87.in, src/testdir/test87.ok + +Patch 7.3.998 +Problem: Python: garbage collection issues. +Solution: Fix the GC issues: Use proper DESTRUCTOR_FINISH: avoids negative + refcounts, use PyObject_GC_* for objects with tp_traverse and + tp_clear, add RangeTraverse and RangeClear, use Py_XDECREF in some + places. (ZyX) +Files: src/if_py_both.h, src/if_python3.c, src/if_python.c + +Patch 7.3.999 +Problem: New regexp engine sets curbuf temporarily. +Solution: Use reg_buf instead, like the old engine. +Files: src/regexp_nfa.c + +Patch 7.3.1000 (whoa!) +Problem: Typo in char value causes out of bounds access. +Solution: Fix character value. (Klemens Baum) +Files: src/regexp.c + +Patch 7.3.1001 +Problem: Duplicate condition in if. +Solution: Remove one condition. +Files: src/regexp_nfa.c + +Patch 7.3.1002 +Problem: Valgrind errors for Python interface. +Solution: Fix memory leaks when running tests. (ZyX) +Files: src/if_py_both.h + +Patch 7.3.1003 +Problem: Python interface does not compile with Python 2.2 +Solution: Fix thread issues and True/False. (ZyX) +Files: src/if_py_both.h, src/if_python3.c, src/if_python.c, + src/testdir/test86.in, src/testdir/test86.ok, + src/testdir/test87.in, src/testdir/test87.ok + +Patch 7.3.1004 +Problem: No error when option could not be set. +Solution: Report an error. (ZyX) +Files: src/if_py_both.h, src/option.c, src/proto/option.pro, + src/testdir/test86.ok, src/testdir/test87.ok + +Patch 7.3.1005 +Problem: Get stuck on regexp "\n*" and on "%s/^\n\+/\r". +Solution: Fix handling of matching a line break. (idea by Hirohito Higashi) +Files: src/regexp_nfa.c + +Patch 7.3.1006 +Problem: NFA engine not used for "\_[0-9]". +Solution: Enable this, fixed in patch 1005. +Files: src/regexp_nfa.c + +Patch 7.3.1007 +Problem: Can't build on Minix 3.2.1. +Solution: Add a condition to an #ifdef. (Gautam Tirumala) +Files: src/memfile.c + +Patch 7.3.1008 +Problem: Test 95 fails on MS-Windows. +Solution: Set 'nomore'. Change \i to \f. Change multibyte character to + something that is not matching \i. (Ken Takata) +Files: src/testdir/test95.in, src/testdir/test95.ok + +Patch 7.3.1009 +Problem: Compiler warning for ambiguous else. +Solution: Add curly braces. +Files: src/if_py_both.h + +Patch 7.3.1010 +Problem: New regexp: adding \Z makes every character match. +Solution: Only apply ireg_icombine for composing characters. + Also add missing change from patch 1008. (Ken Takata) +Files: src/regexp_nfa.c, src/testdir/test95.in, src/testdir/test95.ok + +Patch 7.3.1011 +Problem: New regexp engine is inefficient with multibyte characters. +Solution: Handle a character at a time instead of a byte at a time. Also + make \Z partly work. +Files: src/regexp_nfa.c, src/testdir/test95.in, src/testdir/test95.ok + +Patch 7.3.1012 +Problem: \Z does not work properly with the new regexp engine. +Solution: Make \Z work. Add tests. +Files: src/regexp_nfa.c, src/testdir/test95.in, src/testdir/test95.ok + +Patch 7.3.1013 +Problem: New regexp logging is a bit messy. +Solution: Consistently use #defines, add explanatory comment. (Taro Muraoka) +Files: src/regexp_nfa.c + +Patch 7.3.1014 +Problem: New regexp state dump is hard to read. +Solution: Make the state dump more pretty. (Taro Muraoka) +Files: src/regexp_nfa.c + +Patch 7.3.1015 +Problem: New regexp engine: Matching composing characters is wrong. +Solution: Fix matching composing characters. +Files: src/regexp_nfa.c, src/testdir/test95.in, src/testdir/test95.ok + +Patch 7.3.1016 +Problem: Unused field in nfa_state. +Solution: Remove lastthread. +Files: src/regexp.h, src/regexp_nfa.c + +Patch 7.3.1017 +Problem: Zero width match changes length of match. +Solution: For a zero width match put new states in the current position in + the state list. +Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok, + src/regexp.h + +Patch 7.3.1018 +Problem: New regexp engine wastes memory. +Solution: Allocate prog with actual number of states, not estimated maximum + number of states. +Files: src/regexp_nfa.c + +Patch 7.3.1019 +Problem: These do not work with the new regexp engine: \%o123, \%x123, + \%d123, \%u123 and \%U123. +Solution: Implement these items. +Files: src/regexp_nfa.c + +Patch 7.3.1020 +Problem: Not all patterns are tested with auto / old / new engine. +Solution: Test patterns with three values of 'regexpengine'. +Files: src/testdir/test64.in, src/testdir/test64.ok, + src/testdir/test95.in, src/testdir/test95.ok + +Patch 7.3.1021 +Problem: New regexp engine does not ignore order of composing chars. +Solution: Ignore composing chars order. +Files: src/regexp_nfa.c, src/testdir/test95.in, src/testdir/test95.ok + +Patch 7.3.1022 +Problem: Compiler warning for shadowed variable. (John Little) +Solution: Move declaration, rename variables. +Files: src/regexp_nfa.c + +Patch 7.3.1023 +Problem: Searching for composing char only and using \Z has different + results. +Solution: Make it match the composing char, matching everything is not + useful. +Files: src/regexp_nfa.c, src/testdir/test95.in, src/testdir/test95.ok + +Patch 7.3.1024 +Problem: New regexp: End of matching pattern not set correctly. (Cesar + Romani) +Solution: Quit the loop after finding the match. Store nfa_has_zend in the + program. +Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok, + src/regexp.h + +Patch 7.3.1025 +Problem: New regexp: not matching newline in string. (Marc Weber) +Solution: Check for "\n" character. +Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok + +Patch 7.3.1026 +Problem: New regexp: pattern that includes a new-line matches too early. + (John McGowan) +Solution: Do not start searching in the second line. +Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok + +Patch 7.3.1027 +Problem: New regexp performance: Calling no_Magic() very often. +Solution: Remove magicness inline. +Files: src/regexp_nfa.c + +Patch 7.3.1028 +Problem: New regexp performance: Copying a lot of position state. +Solution: Only copy the sub-expressions that are being used. +Files: src/regexp_nfa.c, src/regexp.h + +Patch 7.3.1029 +Problem: New regexp performance: Unused position state being copied. +Solution: Keep track of which positions are actually valid. +Files: src/regexp_nfa.c + +Patch 7.3.1030 (after 7.3.1028) +Problem: Can't build for debugging. +Solution: Fix struct member names. +Files: src/regexp_nfa.c + +Patch 7.3.1031 +Problem: Compiler warnings for shadowed variable. (John Little) +Solution: Move the variable declarations to the scope where they are used. +Files: src/regexp_nfa.c + +Patch 7.3.1032 +Problem: "\ze" is not supported by the new regexp engine. +Solution: Make "\ze" work. +Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok + +Patch 7.3.1033 +Problem: "\1" .. "\9" are not supported in the new regexp engine. +Solution: Implement them. Add a few more tests. +Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok, + src/regexp.h + +Patch 7.3.1034 +Problem: New regexp code using strange multibyte code. +Solution: Use the normal code to advance and backup pointers. +Files: src/regexp_nfa.c + +Patch 7.3.1035 +Problem: Compiler warning on 64 bit windows. +Solution: Add type cast. (Mike Williams) +Files: src/if_py_both.h + +Patch 7.3.1036 +Problem: Can't build on HP-UX. +Solution: Give the union a name. (John Marriott) +Files: src/regexp_nfa.c + +Patch 7.3.1037 +Problem: Look-behind matching is very slow on long lines. +Solution: Add a byte limit to how far back an attempt is made. +Files: src/regexp.c, src/regexp_nfa.c, src/testdir/test64.in, + src/testdir/test64.ok + +Patch 7.3.1038 +Problem: Crash when using Cscope. +Solution: Avoid negative argument to vim_strncpy(). (Narendran + Gopalakrishnan) +Files: src/if_cscope.c + +Patch 7.3.1039 +Problem: New regexp engine does not support \%23c, \%<23c and the like. +Solution: Implement them. (partly by Yasuhiro Matsumoto) +Files: src/regexp.h, src/regexp_nfa.c, src/testdir/test64.in, + src/testdir/test64.ok + +Patch 7.3.1040 +Problem: Python: Problems with debugging dynamic build. +Solution: Python patch 1. (ZyX) +Files: src/if_python.c, src/if_python3.c + +Patch 7.3.1041 +Problem: Python: Invalid read valgrind errors. +Solution: Python patch 2: defer DICTKEY_UNREF until key is no longer needed. + (ZyX) +Files: src/if_py_both.h + +Patch 7.3.1042 +Problem: Python: can't assign to vim.Buffer.name. +Solution: Python patch 3. (ZyX) +Files: runtime/doc/if_pyth.txt, src/ex_cmds.c, src/if_py_both.h, + src/if_python3.c, src/if_python.c, src/proto/ex_cmds.pro, + src/testdir/test86.in, src/testdir/test86.ok, + src/testdir/test87.in, src/testdir/test87.ok + +Patch 7.3.1043 +Problem: Python: Dynamic compilation with 2.3 fails. +Solution: Python patch 4. (ZyX) +Files: src/if_python.c + +Patch 7.3.1044 +Problem: Python: No {Buffer,TabPage,Window}.valid attributes. +Solution: Python patch 5: add .valid (ZyX) +Files: src/if_py_both.h, src/if_python3.c, src/if_python.c, + src/testdir/test86.in, src/testdir/test86.ok, + src/testdir/test87.in, src/testdir/test87.ok + +Patch 7.3.1045 +Problem: Python: No error handling for VimToPython function. +Solution: Python patch 6. (ZyX) +Files: src/if_py_both.h + +Patch 7.3.1046 +Problem: Python: Using Py_BuildValue for building strings. +Solution: Python patch 7 and 7.5: Replace Py_BuildValue with + PyString_FromString. (ZyX) +Files: src/if_py_both.h + +Patch 7.3.1047 +Problem: Python: dir() does not work properly. +Solution: Python patch 8. Add __dir__ method to all objects with custom + tp_getattr supplemented by __members__ attribute for at least + python-2* versions. __members__ is not mentioned in python-3* + dir() output even if it is accessible. (ZyX) +Files: src/if_py_both.h, src/if_python3.c, src/if_python.c, + src/testdir/test86.in, src/testdir/test86.ok, + src/testdir/test87.in, src/testdir/test87.ok + +Patch 7.3.1048 +Problem: Python: no consistent naming. +Solution: Python patch 9: Rename d to dict and lookupDict to lookup_dict. + (ZyX) +Files: src/if_py_both.h + +Patch 7.3.1049 +Problem: Python: no consistent naming +Solution: Python patch 10: Rename DICTKEY_GET_NOTEMPTY to DICTKEY_GET. (ZyX) +Files: src/if_py_both.h + +Patch 7.3.1050 +Problem: Python: Typo in pyiter_to_tv. +Solution: Python patch 11. (ZyX) +Files: src/if_py_both.h + +Patch 7.3.1051 +Problem: Python: possible memory leaks. +Solution: Python patch 12: fix the leaks (ZyX) +Files: src/if_py_both.h + +Patch 7.3.1052 +Problem: Python: possible SEGV and negative refcount. +Solution: Python patch 13: Fix IterIter function. (ZyX) +Files: src/if_py_both.h + +Patch 7.3.1053 +Problem: Python: no flag for types with tp_traverse+tp_clear. +Solution: Python patch 14: Add Py_TPFLAGS_HAVE_GC. (ZyX) +Files: src/if_py_both.h + +Patch 7.3.1054 (after 7.3.1042) +Problem: Can't build without the +autocmd feature. (Elimar Riesebieter) +Solution: Fix use of buf and curbuf. +Files: src/ex_cmds.c, src/testdir/test86.ok, src/testdir/test87.ok + +Patch 7.3.1055 +Problem: Negated collection does not match newline. +Solution: Handle newline differently. (Hiroshi Shirosaki) +Files: src/regexp_nfa.c, src/testdir/test64.ok, src/testdir/test64.in + +Patch 7.3.1056 +Problem: Python: possible memory leaks. +Solution: Python patch 15. (ZyX) Fix will follow later. +Files: src/eval.c, src/if_py_both.h, src/proto/eval.pro + +Patch 7.3.1057 +Problem: Python: not enough compatibility. +Solution: Python patch 16: Make OutputWritelines support any sequence object + (ZyX) Note: tests fail +Files: src/if_py_both.h, src/testdir/test86.in, src/testdir/test86.ok, + src/testdir/test87.in, src/testdir/test87.ok + +Patch 7.3.1058 +Problem: Call of funcref does not succeed in other script. +Solution: Python patch 17: add get_expanded_name(). (ZyX) +Files: src/eval.c, src/proto/eval.pro + +Patch 7.3.1059 +Problem: Python: Using fixed size buffers. +Solution: Python patch 18: Use python's own formatter. (ZyX) +Files: src/if_py_both.h, src/if_python3.c, src/if_python.c + +Patch 7.3.1060 +Problem: Python: can't repr() a function. +Solution: Python patch 19: add FunctionRepr(). (ZyX) +Files: src/if_py_both.h + +Patch 7.3.1061 +Problem: Python: Dictionary is not standard. +Solution: Python patch 20: Add standard methods and fields. (ZyX) +Files: runtime/doc/if_pyth.txt, src/eval.c, src/if_py_both.h, + src/if_python3.c, src/if_python.c, src/proto/eval.pro, + src/testdir/test86.in, src/testdir/test86.ok, + src/testdir/test87.in, src/testdir/test87.ok + +Patch 7.3.1062 +Problem: Python: List is not standard. +Solution: Python patch 21: Add standard methods and fields. (ZyX) +Files: src/if_py_both.h, src/testdir/test86.in, src/testdir/test86.ok, + src/testdir/test87.in, src/testdir/test87.ok + +Patch 7.3.1063 +Problem: Python: Function is not standard. +Solution: Python patch 22: make Function subclassable. (ZyX) +Files: src/eval.c, src/if_py_both.h, src/proto/eval.pro, + src/testdir/test86.in, src/testdir/test86.ok, + src/testdir/test87.in, src/testdir/test87.ok + +Patch 7.3.1064 +Problem: Python: insufficient error checking. +Solution: Python patch 23. (ZyX) +Files: src/if_py_both.h + +Patch 7.3.1065 +Problem: Python: key mapping is not standard. +Solution: Python patch 24: use PyMapping_Keys. (ZyX) +Files: src/if_py_both.h, src/if_python3.c, src/if_python.c + +Patch 7.3.1066 +Problem: Python: Insufficient exception and error testing. +Solution: Python patch 25. (ZyX) +Files: src/testdir/test86.in, src/testdir/test86.ok, + src/testdir/test87.in, src/testdir/test87.ok + +Patch 7.3.1067 +Problem: Python: documentation lags behind. +Solution: Python patch 26. (ZyX) +Files: runtime/doc/if_pyth.txt + +Patch 7.3.1068 +Problem: Python: Script is auto-loaded on function creation. +Solution: Python patch 27. (ZyX) +Files: src/eval.c, src/if_py_both.h, src/proto/eval.pro, + src/testdir/test86.ok, src/testdir/test87.ok, src/vim.h + +Patch 7.3.1069 +Problem: Python: memory leaks. +Solution: Python patch 28: Purge out DICTKEY_CHECK_EMPTY macros. (ZyX) +Files: src/if_py_both.h + +Patch 7.3.1070 +Problem: Vim crashes in Python tests. Compiler warning for unused function. +Solution: Disable the tests for now. Move the function. +Files: src/if_py_both.h, src/if_python.c, src/testdir/test86.in, + src/testdir/test87.in + +Patch 7.3.1071 +Problem: New regexp engine: backreferences don't work correctly. +Solution: Add every possible start/end position on the state stack. +Files: src/regexp_nfa.c, src/regexp.h, src/testdir/test64.in, + src/testdir/test64.ok + +Patch 7.3.1072 +Problem: Compiler warning for uninitialized variable. +Solution: Initialize it. +Files: src/regexp_nfa.c + +Patch 7.3.1073 +Problem: New regexp engine may run out of states. +Solution: Allocate states dynamically. Also make the test report errors. +Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok, + src/testdir/test95.in + +Patch 7.3.1074 +Problem: Compiler warning for printf format. (Manuel Ortega) +Solution: Add type casts. +Files: src/if_py_both.h + +Patch 7.3.1075 +Problem: Compiler warning for storing a long_u in an int. +Solution: Declare the number as an int. (Mike Williams) +Files: src/regexp_nfa.c + +Patch 7.3.1076 +Problem: New regexp engine: \@= and \& don't work. +Solution: Make these items work. Add column info to logging. +Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok + +Patch 7.3.1077 +Problem: Python: Allocating dict the wrong way, causing a crash. +Solution: Use py_dict_alloc(). Fix some exception problems. (ZyX) +Files: src/if_py_both.h + +Patch 7.3.1078 +Problem: New regexp engine: \@! doesn't work. +Solution: Implement the negated version of \@=. +Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok + +Patch 7.3.1079 +Problem: Test 87 fails. +Solution: Fix the test for Python 3.3. (ZyX) Make it pass on 32 bit systems. +Files: src/testdir/test87.in, src/testdir/test87.ok + +Patch 7.3.1080 +Problem: Test 86 fails. +Solution: Comment out the parts that don't work. Make it pass on 32 bit + systems. +Files: src/testdir/test86.in, src/testdir/test86.ok + +Patch 7.3.1081 +Problem: Compiler warnings on 64-bit Windows. +Solution: Change variable types. (Mike Williams) +Files: src/if_py_both.h, src/regexp_nfa.c + +Patch 7.3.1082 +Problem: New regexp engine: Problem with \@= matching. +Solution: Save and restore nfa_match. +Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok + +Patch 7.3.1083 +Problem: New regexp engine: Does not support \%^ and \%$. +Solution: Support matching start and end of file. +Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok + +Patch 7.3.1084 +Problem: New regexp engine: only accepts up to \{,10}. +Solution: Remove upper limit. Remove dead code with NFA_PLUS. +Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok + +Patch 7.3.1085 +Problem: New regexp engine: Non-greedy multi doesn't work. +Solution: Implement \{-}. +Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok + +Patch 7.3.1086 +Problem: Old regexp engine accepts illegal range, new one doesn't. +Solution: Also accept the illegal range with the new engine. +Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok + +Patch 7.3.1087 +Problem: A leading star is not seen as a normal char when \{} follows. +Solution: Save and restore the parse state properly. +Files: src/regexp.c, src/regexp_nfa.c, src/testdir/test64.in, + src/testdir/test64.ok + +Patch 7.3.1088 +Problem: New regexp engine: \@<= and \@<! are not implemented. +Solution: Implement look-behind matching. Fix off-by-one error in old + regexp engine. +Files: src/regexp.c, src/regexp_nfa.c, src/testdir/test64.in, + src/testdir/test64.ok + +Patch 7.3.1089 +Problem: Tests 86 and 87 fail on MS-Windows. (Ken Takata) +Solution: Fix platform-specific stuff. (ZyX) +Files: src/testdir/test86.in, src/testdir/test86.ok, + src/testdir/test87.in, src/testdir/test87.ok + +Patch 7.3.1090 +Problem: New regexp engine does not support \z1 .. \z9 and \z(. +Solution: Implement the syntax submatches. +Files: src/regexp.h, src/regexp_nfa.c + +Patch 7.3.1091 +Problem: New regexp engine: no error when using \z1 or \z( where it does + not work. +Solution: Give an error message. +Files: src/regexp.c, src/regexp_nfa.c + +Patch 7.3.1092 +Problem: Can't build with regexp debugging. NFA debug output shows wrong + pattern. +Solution: Fix debugging code for recent changes. Add the pattern to the + program. +Files: src/regexp_nfa.c, src/regexp.h + +Patch 7.3.1093 +Problem: New regexp engine: When a sub expression is empty \1 skips a + character. +Solution: Make \1 try the current position when the match is empty. +Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok + +Patch 7.3.1094 +Problem: New regexp engine: Attempts to match "^" at every character. +Solution: Only try "^" at the start of a line. +Files: src/regexp_nfa.c + +Patch 7.3.1095 +Problem: Compiler warnings for shadowed variables. (Christian Brabandt) +Solution: Rename new_state() to alloc_state(). Remove unnecessary + declaration. +Files: src/regexp_nfa.c + +Patch 7.3.1096 +Problem: Python: popitem() was not defined in a standard way. +Solution: Remove the argument from popitem(). (ZyX) +Files: runtime/doc/if_pyth.txt, src/if_py_both.h, src/testdir/test86.in, + src/testdir/test86.ok, src/testdir/test87.in, + src/testdir/test87.ok + +Patch 7.3.1097 +Problem: Python: a few recently added items are not documented. +Solution: Update the documentation. (ZyX) +Files: runtime/doc/if_pyth.txt + +Patch 7.3.1098 +Problem: Python: Possible memory leaks +Solution: Add Py_XDECREF() calls. (ZyX) +Files: src/if_py_both.h + +Patch 7.3.1099 +Problem: Python: Changing directory with os.chdir() causes problems for + Vim's notion of directories. +Solution: Add vim.chdir() and vim.fchdir(). (ZyX) +Files: runtime/doc/if_pyth.txt, src/ex_docmd.c, src/if_py_both.h, + src/if_python3.c, src/if_python.c, src/proto/ex_docmd.pro, + src/testdir/test86.in, src/testdir/test86.ok, + src/testdir/test87.in, src/testdir/test87.ok + +Patch 7.3.1100 +Problem: Python: a few more memory problems. +Solution: Add and remove Py_XDECREF(). (ZyX) +Files: src/if_py_both.h, src/testdir/test86.in, src/testdir/test86.ok, + src/testdir/test87.in, src/testdir/test87.ok + +Patch 7.3.1101 +Problem: Configure doesn't find Python 3 on Ubuntu 13.04. +Solution: First try distutils.sysconfig. Also fix some indents. (Ken + Takata) +Files: src/configure.in, src/auto/configure + +Patch 7.3.1102 +Problem: Completion of ":py3do" and ":py3file" does not work after ":py3". +Solution: Make completion work. (Taro Muraoka) +Files: src/ex_docmd.c + +Patch 7.3.1103 +Problem: New regexp engine: overhead in saving and restoring. +Solution: Make saving and restoring list IDs faster. Don't copy or check \z + subexpressions when they are not used. +Files: src/regexp_nfa.c + +Patch 7.3.1104 +Problem: New regexp engine does not handle "~". +Solution: Add support for "~". +Files: src/regexp_nfa.c, src/testdir/test24.in, src/testdir/test24.ok + +Patch 7.3.1105 +Problem: New regexp engine: too much code in one function. Dead code. +Solution: Move the recursive nfa_regmatch call to a separate function. + Remove the dead code. +Files: src/regexp_nfa.c + +Patch 7.3.1106 +Problem: New regexp engine: saving and restoring lastlist in the states + takes a lot of time. +Solution: Use a second lastlist value for the first recursive call. +Files: src/regexp.h, src/regexp_nfa.c + +Patch 7.3.1107 +Problem: Compiler warnings for unused variables. +Solution: Put the variables inside #ifdef. +Files: src/regexp.c, src/regexp_nfa.c + +Patch 7.3.1108 +Problem: Error message for os.fchdir() (Charles Peacech) +Solution: Clear the error. (ZyX) +Files: src/if_py_both.h + +Patch 7.3.1109 +Problem: Building on MS-Windows doesn't see changes in if_py_both.h. +Solution: Add a dependency. (Ken Takata) +Files: src/Make_bc5.mak, src/Make_cyg.mak, src/Make_ming.mak, + src/Make_mvc.mak + +Patch 7.3.1110 +Problem: New regexp matching: Using \@= and the like can be slow. +Solution: Decide whether to first try matching the zero-width part or what + follows, whatever is more likely to fail. +Files: src/regexp_nfa.c + +Patch 7.3.1111 +Problem: nfa_recognize_char_class() implementation is inefficient. +Solution: Use bits in an int instead of chars in a string. (Dominique Pelle) +Files: src/regexp_nfa.c, src/testdir/test36.in, src/testdir/test36.ok + +Patch 7.3.1112 +Problem: New regexp engine: \%V not supported. +Solution: Implement \%V. Add tests. +Files: src/regexp.c, src/regexp_nfa.c, src/testdir/test64.in, + src/testdir/test64.ok + +Patch 7.3.1113 +Problem: New regexp engine: \%'m not supported. +Solution: Implement \%'m. Add tests. +Files: src/regexp.c, src/regexp_nfa.c, src/testdir/test64.in, + src/testdir/test64.ok + +Patch 7.3.1114 (after 7.3.1110) +Problem: Can't build without the syntax feature. +Solution: Add #ifdefs. (Erik Falor) +Files: src/regexp_nfa.c + +Patch 7.3.1115 +Problem: Many users don't like the cursor line number when 'relativenumber' + is set. +Solution: Have four combinations with 'number' and 'relativenumber'. + (Christian Brabandt) +Files: runtime/doc/options.txt, src/option.c, src/screen.c, + src/testdir/test89.in, src/testdir/test89.ok + +Patch 7.3.1116 +Problem: Can't build without Visual mode. +Solution: Add #ifdefs. +Files: src/regexp_nfa.c + +Patch 7.3.1117 +Problem: New regexp engine: \%[abc] not supported. +Solution: Implement \%[abc]. Add tests. +Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok + +Patch 7.3.1118 +Problem: Match failure rate is not very specific. +Solution: Tune the failure rate for match items. +Files: src/regexp_nfa.c + +Patch 7.3.1119 +Problem: Flags in 'cpo' are search for several times. +Solution: Store the result and re-use the flags. +Files: src/regexp.c, src/regexp_nfa.c + +Patch 7.3.1120 +Problem: Crash when regexp logging is enabled. +Solution: Avoid using NULL pointers. Advance over count argument. +Files: src/regexp.c, src/regexp_nfa.c + +Patch 7.3.1121 +Problem: New regexp engine: adding states that are not used. +Solution: Don't add the states. +Files: src/regexp_nfa.c + +Patch 7.3.1122 +Problem: New regexp engine: \@> not supported. +Solution: Implement \%>. +Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok + +Patch 7.3.1123 +Problem: Can't build tiny Vim on MS-Windows. +Solution: Adjust #ifdef around using modif_fname(). (Mike Williams) +Files: src/misc1.c + +Patch 7.3.1124 +Problem: Python: Crash on MS-Windows when os.fchdir() is not available. +Solution: Check for _chdir to be NULL. (Ken Takata) +Files: src/if_py_both.h + +Patch 7.3.1125 +Problem: Error for using \%V in a pattern in tiny Vim. +Solution: Allow using \%V but never match. (Dominique Pelle) +Files: src/regexp_nfa.c + +Patch 7.3.1126 +Problem: Compiler warning for uninitialized variable. (Tony Mechelynck) +Solution: Assign something to the variable. +Files: src/regexp_nfa.c + +Patch 7.3.1127 +Problem: No error for using empty \%[]. +Solution: Give error message. +Files: src/regexp.c, src/regexp_nfa.c + +Patch 7.3.1128 +Problem: Now that the NFA engine handles everything every failure is a + syntax error. +Solution: Remove the syntax_error flag. +Files: src/regexp.c, src/regexp_nfa.c + +Patch 7.3.1129 +Problem: Can't see what pattern in syntax highlighting is slow. +Solution: Add the ":syntime" command. +Files: src/structs.h, src/syntax.c, src/ex_cmds.h, src/ex_docmd.c, + src/proto/syntax.pro, src/ex_cmds2.c, src/proto/ex_cmds2.pro, + runtime/doc/syntax.txt + +Patch 7.3.1130 (after 7.3.1129) +Problem: Can't build with anything but huge features. +Solution: Check for FEAT_PROFILE. (Yasuhiro Matsumoto) +Files: src/ex_docmd.c, src/structs.h, src/syntax.c + +Patch 7.3.1131 +Problem: New regexp engine is a bit slow. +Solution: Do not clear the state list. Don't copy syntax submatches when + not used. +Files: src/regexp_nfa.c + +Patch 7.3.1132 +Problem: Crash when debugging regexp. +Solution: Do not try to dump subexpr that were not set. Skip over count of + \% items. +Files: src/regexp.c, src/regexp_nfa.c + +Patch 7.3.1133 +Problem: New regexp engine is a bit slow. +Solution: Skip ahead to a character that must match. Don't try matching a + "^" patter past the start of line. +Files: src/regexp_nfa.c, src/regexp.h + +Patch 7.3.1134 +Problem: Running test 49 takes a long time. +Solution: Don't have it grep all files. +Files: src/testdir/test49.vim + +Patch 7.3.1135 +Problem: Compiler warning for unused argument. +Solution: Add UNUSED. +Files: src/syntax.c + +Patch 7.3.1136 +Problem: ":func Foo" does not show attributes. +Solution: Add "abort", "dict" and "range". (Yasuhiro Matsumoto) +Files: src/eval.c + +Patch 7.3.1137 +Problem: New regexp engine: collections are slow. +Solution: Handle all characters in one go. +Files: src/regexp_nfa.c + +Patch 7.3.1138 +Problem: New regexp engine: neglist no longer used. +Solution: Remove the now unused neglist. +Files: src/regexp_nfa.c + +Patch 7.3.1139 +Problem: New regexp engine: negated flag is hardly used. +Solution: Add separate _NEG states, remove negated flag. +Files: src/regexp_nfa.c, src/regexp.h + +Patch 7.3.1140 +Problem: New regexp engine: trying expensive match while the result is not + going to be used. +Solution: Check for output state already being in the state list. +Files: src/regexp_nfa.c + +Patch 7.3.1141 +Problem: Win32: Check for available memory is not reliable and adds + overhead. +Solution: Remove mch_avail_mem(). (Mike Williams) +Files: src/os_win32.c, src/os_win32.h + +Patch 7.3.1142 +Problem: Memory leak in ":syntime report". +Solution: Clear the grow array. (Dominique Pelle) +Files: src/syntax.c + +Patch 7.3.1143 +Problem: When mapping NUL it is displayed as an X. +Solution: Check for KS_ZERO instead of K_ZERO. (Yasuhiro Matsumoto) +Files: src/message.c + +Patch 7.3.1144 +Problem: "RO" is not translated everywhere. +Solution: Put inside _(). (Sergey Alyoshin) +Files: src/buffer.c, src/screen.c + +Patch 7.3.1145 +Problem: New regexp engine: addstate() is called very often. +Solution: Optimize adding the start state. +Files: src/regexp_nfa.c + +Patch 7.3.1146 +Problem: New regexp engine: look-behind match not checked when followed by + zero-width match. +Solution: Do the look-behind match before adding the zero-width state. +Files: src/regexp_nfa.c + +Patch 7.3.1147 +Problem: New regexp engine: regstart is only used to find the first match. +Solution: Use regstart whenever adding the start state. +Files: src/regexp_nfa.c + +Patch 7.3.1148 +Problem: No command line completion for ":syntime". +Solution: Implement the completion. (Dominique Pelle) +Files: runtime/doc/map.txt, src/ex_cmds.h, src/ex_docmd.c, + src/ex_getln.c, src/proto/syntax.pro, src/syntax.c, src/vim.h + +Patch 7.3.1149 +Problem: New regexp engine: Matching plain text could be faster. +Solution: Detect a plain text match and handle it specifically. Add + vim_regfree(). +Files: src/regexp.c, src/regexp.h, src/regexp_nfa.c, + src/proto/regexp.pro, src/buffer.c, src/edit.c, src/eval.c, + src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_eval.c, + src/ex_getln.c, src/fileio.c, src/gui.c, src/misc1.c, src/misc2.c, + src/option.c, src/syntax.c, src/quickfix.c, src/search.c, + src/spell.c, src/tag.c, src/window.c, src/screen.c, src/macros.h, + src/testdir/test64.in, src/testdir/test64.ok + +Patch 7.3.1150 +Problem: New regexp engine: Slow when a look-behind match does not have a + width specified. +Solution: Try to compute the maximum width. +Files: src/regexp_nfa.c + +Patch 7.3.1151 +Problem: New regexp engine: Slow when a look-behind match is followed by a + zero-width match. +Solution: Postpone the look-behind match more often. +Files: src/regexp_nfa.c + +Patch 7.3.1152 +Problem: In tiny build ireg_icombine is undefined. (Tony Mechelynck) +Solution: Add #ifdef. +Files: src/regexp_nfa.c + +Patch 7.3.1153 +Problem: New regexp engine: Some look-behind matches are very expensive. +Solution: Postpone invisible matches further, until a match is almost found. +Files: src/regexp_nfa.c + +Patch 7.3.1154 +Problem: New regexp_nfa engine: Unnecessary code. +Solution: Remove unnecessary code. +Files: src/regexp_nfa.c + +Patch 7.3.1155 +Problem: MS-DOS: "make test" uses external rmdir command. +Solution: Rename "rmdir" to "rd". (Taro Muraoka) +Files: src/testdir/Make_dos.mak + +Patch 7.3.1156 +Problem: Compiler warnings. (dv1445) +Solution: Initialize variables, even when the value isn't really used. +Files: src/regexp_nfa.c, src/eval.c + +Patch 7.3.1157 +Problem: New regexp engine fails on "\(\<command\)\@<=.*" +Solution: Fix rule for postponing match. Further tune estimating whether + postponing works better. Add test. +Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok + +Patch 7.3.1158 +Problem: Crash when running test 86. (Jun Takimoto) +Solution: Define PY_SSIZE_T_CLEAN early. (Elimar Riesebieter) +Files: src/if_python.c, src/if_python3.c + +Patch 7.3.1159 +Problem: The round() function is not always available. (Christ van + Willegen) +Solution: Use the solution from f_round(). +Files: src/ex_cmds2.c, src/eval.c, src/proto/eval.pro + +Patch 7.3.1160 +Problem: Mixing long and pointer doesn't always work. +Solution: Avoid cast to pointer. +Files: src/undo.c + +Patch 7.3.1161 +Problem: Python: PyList_SetItem() is inefficient. +Solution: Use PyList_SET_ITEM() (ZyX) +Files: src/if_py_both.h + +Patch 7.3.1162 +Problem: Python: Memory leaks +Solution: Add more Py_DECREF(). (ZyX) +Files: src/if_py_both.h, src/if_python.c + +Patch 7.3.1163 +Problem: Not easy to load Python modules. +Solution: Search "python2", "python3" and "pythonx" directories in + 'runtimepath' for Python modules. (ZyX) +Files: runtime/doc/if_pyth.txt, src/configure.in, src/ex_cmds2.c, + src/if_py_both.h, src/if_python.c, src/if_python3.c, + src/testdir/test86.in, src/testdir/test87.in, src/auto/configure + +Patch 7.3.1164 +Problem: Can't test what is actually displayed on screen. +Solution: Add the screenchar() and screenattr() functions. +Files: src/eval.c, runtime/doc/eval.txt + +Patch 7.3.1165 +Problem: HP-UX compiler can't handle zero size array. (Charles Cooper) +Solution: Make the array one item big. +Files: src/regexp.h, src/regexp_nfa.c + +Patch 7.3.1166 +Problem: Loading Python modules is not tested. +Solution: Enable commented-out tests, add missing files. (ZyX) +Files: src/testdir/test86.in, src/testdir/test86.ok, + src/testdir/test87.in, src/testdir/test87.ok, + src/testdir/python2/module.py, src/testdir/python3/module.py, + src/testdir/pythonx/module.py, src/testdir/pythonx/modulex.py, + Filelist + +Patch 7.3.1167 +Problem: Python configure check doesn't reject Python 2 when requesting + Python 3. Some systems need -pthreads instead of -pthread. +Solution: Adjust configure accordingly. (Andrei Olsen) +Files: src/configure.in, src/auto/configure + +Patch 7.3.1168 +Problem: Python "sane" configure checks give a warning message. +Solution: Use single quotes instead of escaped double quotes. (Ben Fritz) +Files: src/configure.in, src/auto/configure + +Patch 7.3.1169 +Problem: New regexp engine: some work is done while executing a pattern, + even though the result is predictable. +Solution: Do the work while compiling the pattern. +Files: src/regexp_nfa.c + +Patch 7.3.1170 +Problem: Patch 7.3.1058 breaks backwards compatibility, not possible to use + a function reference as a string. (lilydjwg) +Solution: Instead of translating the function name only translate "s:". +Files: src/eval.c + +Patch 7.3.1171 +Problem: Check for digits and ascii letters can be faster. +Solution: Use a trick with one comparison. (Dominique Pelle) +Files: src/macros.h + +Patch 7.3.1172 +Problem: Python 2: loading modules doesn't work well. +Solution: Fix the code. Add more tests. (ZyX) +Files: runtime/doc/if_pyth.txt, src/if_py_both.h, src/if_python.c, + src/testdir/python2/module.py, src/testdir/python3/module.py, + src/testdir/python_after/after.py, + src/testdir/python_before/before.py, src/testdir/test86.in, + src/testdir/test86.ok, src/testdir/test87.in, + src/testdir/test87.ok, Filelist + +Patch 7.3.1173 +Problem: Python 2 tests don't have the same output everywhere. +Solution: Make the Python 2 tests more portable. (ZyX) +Files: src/testdir/test86.in, src/testdir/test86.ok + +Patch 7.3.1174 +Problem: Python 2 and 3 use different ways to load modules. +Solution: Use the same method. (ZyX) +Files: runtime/doc/if_pyth.txt, src/if_py_both.h, src/if_python3.c, + src/if_python.c + +Patch 7.3.1175 +Problem: Using isalpha() and isalnum() can be slow. +Solution: Use range checks. (Mike Williams) +Files: src/ex_docmd.c, src/macros.h + +Patch 7.3.1176 +Problem: Compiler warnings on 64 bit system. +Solution: Add type casts. (Mike Williams) +Files: src/eval.c, src/if_py_both.h + +Patch 7.3.1177 +Problem: Wasting memory on padding. +Solution: Reorder struct fields. (Dominique Pelle) +Files: src/structs.h, src/fileio.c + +Patch 7.3.1178 +Problem: Can't put all Vim config files together in one directory. +Solution: Load ~/.vim/vimrc if ~/.vimrc does not exist. (Lech Lorens) +Files: runtime/doc/gui.txt, runtime/doc/starting.txt, src/gui.c, + src/main.c, src/os_amiga.h, src/os_dos.h, src/os_unix.h + +Patch 7.3.1179 +Problem: When a global mapping starts with the same characters as a + buffer-local mapping Vim waits for a character to be typed to find + out whether the global mapping is to be used. (Andy Wokula) +Solution: Use the local mapping without waiting. (Michael Henry) +Files: runtime/doc/map.txt, src/getchar.c + +Patch 7.3.1180 +Problem: When current directory changes, path from cscope may no longer be + valid. (AS Budden) +Solution: Always store the absolute path. (Christian Brabandt) +Files: src/if_cscope.c + +Patch 7.3.1181 +Problem: Wrong error message for 1.0[0]. +Solution: Check for funcref and float separately. (Yasuhiro Matsumoto) +Files: src/eval.c + +Patch 7.3.1182 +Problem: 'backupcopy' default on MS-Windows does not work for hard and soft + links. +Solution: Check for links. (David Pope, Ken Takata) +Files: src/fileio.c, src/os_win32.c, src/proto/os_win32.pro + +Patch 7.3.1183 +Problem: Python tests 86 and 87 fail. +Solution: Add "empty" files. (ZyX) +Files: src/testdir/python_before/before_1.py, + src/testdir/python_before/before_2.py + +Patch 7.3.1184 +Problem: Highlighting is sometimes wrong. (Axel Bender) +Solution: Fetch regline again when returning from recursive regmatch. +Files: src/regexp_nfa.c + +Patch 7.3.1185 +Problem: New regexp engine: no match with ^ after \n. (SungHyun Nam) +Solution: Fix it, add a test. +Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok + +Patch 7.3.1186 +Problem: Python 3: test 87 may crash. +Solution: Use _PyArg_Parse_SizeT instead of PyArg_Parse. (Jun Takimoto) +Files: src/if_python3.c + +Patch 7.3.1187 (after 7.3.1170) +Problem: "s:" is recognized but "<SID>" is not. (ZyX) +Solution: Translate "<SID>" like "s:". +Files: src/eval.c + +Patch 7.3.1188 +Problem: Newline characters messing up error message. +Solution: Remove the newlines. (Kazunobu Kuriyama) +Files: src/gui_x11.c + +Patch 7.3.1189 (after 7.3.1185) +Problem: Highlighting is still wrong sometimes. (Dominique Pelle) +Solution: Also restore reginput properly. +Files: src/regexp_nfa.c + +Patch 7.3.1190 +Problem: Compiler warning for parentheses. (Christian Wellenbrock) +Solution: Change #ifdef. +Files: src/ex_docmd.c + +Patch 7.3.1191 +Problem: Backreference to previous line doesn't work. (Lech Lorens) +Solution: Implement looking in another line. +Files: src/regexp.c, src/regexp_nfa.c, src/testdir/test64.in, + src/testdir/test64.ok + +Patch 7.3.1192 +Problem: Valgrind reports errors when using backreferences. (Dominique + Pelle) +Solution: Do not check the end of submatches. +Files: src/regexp_nfa.c + +Patch 7.3.1193 +Problem: fail_if_missing not used for Python 3. +Solution: Give an error when Python 3 can't be configured. (Andrei Olsen) +Files: src/configure.in, src/auto/configure + +Patch 7.3.1194 +Problem: Yaml highlighting is slow. +Solution: Tune the estimation of pattern failure chance. +Files: src/regexp_nfa.c + +Patch 7.3.1195 +Problem: Compiler warning for uninitialized variable. (Tony Mechelynck) +Solution: Set the length to the matching backref. +Files: src/regexp.c + +Patch 7.3.1196 +Problem: Old regexp engine does not match pattern with backref correctly. + (Dominique Pelle) +Solution: Fix setting status. Test multi-line patterns better. +Files: src/regexp.c, src/testdir/test64.in, src/testdir/test64.ok + +Patch 7.3.1197 +Problem: ":wviminfo!" does not write history previously read from a viminfo + file. (Roland Eggner) +Solution: When not merging history write all entries. +Files: src/ex_cmds.c, src/ex_getln.c, src/proto/ex_getln.pro + +Patch 7.3.1198 +Problem: Build error when using Perl 5.18.0 and dynamic loading. +Solution: Change #ifdefs for Perl_croak_xs_usage. (Ike Devolder) +Files: src/if_perl.xs + +Patch 7.3.1199 +Problem: When evaluating 'foldexpr' causes an error this is silently + ignored and evaluation is retried every time. +Solution: Set emsg_silent instead of emsg_off. Stop evaluating 'foldexpr' is + it is causing errors. (Christian Brabandt) +Files: src/fold.c + +Patch 7.3.1200 +Problem: When calling setline() from Insert mode, using CTRL-R =, undo does + not work properly. (Israel Chauca) +Solution: Sync undo after evaluating the expression. (Christian Brabandt) +Files: src/edit.c, src/testdir/test61.in, src/testdir/test61.ok + +Patch 7.3.1201 +Problem: When a startup script creates a preview window, it probably + becomes the current window. +Solution: Make another window the current one. (Christian Brabandt) +Files: src/main.c + +Patch 7.3.1202 (after 7.3.660) +Problem: Tags are not found in case-folded tags file. (Darren cole, Issue + 90) +Solution: Take into account that when case folding was used for the tags + file "!rm" sorts before the "!_TAG" header lines. +Files: src/tag.c + +Patch 7.3.1203 +Problem: Matches from matchadd() might be highlighted incorrectly when they + are at a fixed position and inserting lines. (John Szakmeister) +Solution: Redraw all lines below a change if there are highlighted matches. + (idea by Christian Brabandt) +Files: src/screen.c + +Patch 7.3.1204 +Problem: Calling gettabwinvar() in 'tabline' cancels Visual mode. (Hirohito + Higashi) +Solution: Don't always use goto_tabpage_tp(). +Files: src/window.c, src/proto/window.pro, src/eval.c, src/if_py_both.h + +Patch 7.3.1205 +Problem: logtalk.dict is not removed on uninstall. +Solution: Remove the file. (Kazunobu Kuriyama) +Files: src/Makefile + +Patch 7.3.1206 +Problem: Inconsistent function argument declarations. +Solution: Use ANSI style. +Files: src/if_py_both.h + +Patch 7.3.1207 +Problem: New regexp engine: no match found on "#if FOO". (Lech Lorens) +Solution: When adding a state gets skipped don't adjust the index. +Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok + +Patch 7.3.1208 +Problem: Compiler warnings on MS-Windows. +Solution: Add type cast. Move variable declaration. (Mike Williams) +Files: src/option.c, src/os_mswin.c + +Patch 7.3.1209 +Problem: No completion for ":tabdo". +Solution: Add tabdo to the list of modifiers. (Dominique Pelle) +Files: src/ex_docmd.c + +Patch 7.3.1210 (after 7.3.1182) +Problem: 'backupcopy' default on MS-Windows is wrong when 'encoding' equals + the current codepage. +Solution: Change the #else block. (Ken Takata) +Files: src/os_win32.c + +Patch 7.3.1211 +Problem: MS-Windows: When 'encoding' differs from the current codepage + ":hardcopy" does not work properly. +Solution: Use TextOutW() and SetDlgItemTextW(). (Ken Takata) +Files: src/os_mswin.c, src/vim.rc + +Patch 7.3.1212 +Problem: "make test" on MS-Windows does not report failure like Unix does. +Solution: Make it work like on Unix. (Taro Muraoka) +Files: src/testdir/Make_dos.mak + +Patch 7.3.1213 +Problem: Can't build with small features and Python. +Solution: Adjust #ifdefs. +Files: src/eval.c, src/buffer.c, src/eval.c, src/window.c + +Patch 7.3.1214 +Problem: Missing declaration for init_users() and realloc_post_list(). + (Salman Halim) +Solution: Add the declarations. +Files: src/misc1.c, src/regexp_nfa.c + +Patch 7.3.1215 +Problem: Compiler warning for function not defined. +Solution: Add #ifdef. +Files: src/misc1.c + +Patch 7.3.1216 +Problem: Configure can't find Motif on Ubuntu. +Solution: Search for libXm in /usr/lib/*-linux-gnu. +Files: src/configure.in, src/auto/configure + +Patch 7.3.1217 +Problem: New regexp engine: Can't handle \%[[ao]]. (Yukihiro Nakadaira) +Solution: Support nested atoms inside \%[]. +Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok + +Patch 7.3.1218 +Problem: "make test" on MS-Windows does not clean all temporary files and + gives some unnecessary message. +Solution: Clean the right files. Create .failed files. (Ken Takata) +Files: src/testdir/Make_dos.mak + +Patch 7.3.1219 +Problem: No test for using []] inside \%[]. +Solution: Add a test. +Files: src/testdir/test64.in, src/testdir/test64.ok + +Patch 7.3.1220 +Problem: MS-Windows: When using wide font italic and bold are not included. +Solution: Support wide-bold, wide-italic and wide-bold-italic. (Ken Takata, + Taro Muraoka) +Files: src/gui.c, src/gui.h, src/gui_w48.c + +Patch 7.3.1221 +Problem: When build flags change "make distclean" run into a configure + error. +Solution: When CFLAGS changes delete auto/config.cache. Also avoid adding + duplicate text to flags. (Ken Takata) +Files: src/Makefile, src/configure.in, src/auto/configure + +Patch 7.3.1222 +Problem: Cannot execute some tests from the src directly. +Solution: Add missing targets. +Files: src/Makefile + +Patch 7.3.1223 +Problem: Tests fail on MS-Windows. +Solution: Avoid depending on OS version. Use DOS commands instead of Unix + commands. (Taro Muraoka, Ken Takata) +Files: src/testdir/test17.in, src/testdir/test50.in, + src/testdir/test71.in, src/testdir/test77.in + +Patch 7.3.1224 +Problem: Clang gives warnings on xxd. +Solution: Change how to use part of a string. (Dominique Pelle) Also avoid + warning for return not reached. +Files: src/xxd/xxd.c, src/regexp_nfa.c + +Patch 7.3.1225 +Problem: Compiler warnings when building with Motif. +Solution: Change set_label() argument. (Kazunobu Kuriyama) +Files: src/gui_motif.c + +Patch 7.3.1226 +Problem: Python: duplicate code. +Solution: Share code between OutputWrite() and OutputWritelines(). (ZyX) +Files: src/if_py_both.h, src/testdir/test86.ok, src/testdir/test87.ok + +Patch 7.3.1227 +Problem: Inconsistent string conversion. +Solution: Use 'encoding' instead of utf-8. Use METH_O in place of + METH_VARARGS where appropriate. (ZyX) +Files: src/if_py_both.h, src/testdir/test86.ok, src/testdir/test87.ok + +Patch 7.3.1228 +Problem: Python: various inconsistencies and problems. +Solution: StringToLine now supports both bytes() and unicode() objects. + Make function names consistent. Fix memory leak fixed in + StringToLine. (ZyX) +Files: src/if_py_both.h, src/if_python3.c, src/if_python.c + +Patch 7.3.1229 +Problem: Python: not so easy to delete/restore translating. +Solution: Make macros do translation of exception messages. (ZyX) + Note: this breaks translations! +Files: src/if_py_both.h, src/if_python3.c + +Patch 7.3.1230 +Problem: Python: Exception messages are not clear. +Solution: Make exception messages more verbose. (ZyX) +Files: src/if_py_both.h, src/if_python3.c, src/if_python.c, + src/testdir/test86.ok, src/testdir/test87.ok + +Patch 7.3.1231 +Problem: Python: use of numbers not consistent. +Solution: Add support for Number protocol. (ZyX) +Files: src/if_py_both.h, src/if_python3.c, src/if_python.c, + src/testdir/test86.ok, src/testdir/test87.ok + +Patch 7.3.1232 +Problem: Python: inconsistencies in variable names. +Solution: Rename variables. (ZyX) +Files: src/eval.c, src/if_py_both.h + +Patch 7.3.1233 +Problem: Various Python problems. +Solution: Fix VimTryEnd. Crash with debug build and PYTHONDUMPREFS=1. Memory + leaks in StringToLine(), BufferMark() and convert_dl. (ZyX) +Files: src/if_py_both.h, src/testdir/test86.in, src/testdir/test86.ok, + src/testdir/test87.in, src/testdir/test87.ok + +Patch 7.3.1234 (after 7.3.1229) +Problem: Python: Strings are not marked for translation. +Solution: Add N_() where appropriate. (ZyX) +Files: src/if_py_both.h + +Patch 7.3.1235 +Problem: In insert mode CTRL-] is not inserted, on the command-line it is. +Solution: Don't insert CTRL-] on the command line. (Yukihiro Nakadaira) +Files: src/ex_getln.c + +Patch 7.3.1236 +Problem: Python: WindowSetattr() missing support for NUMBER_UNSIGNED. +Solution: Add NUMBER_UNSIGNED, add more tests. Various fixes. (ZyX) +Files: src/if_py_both.h, src/if_python3.c, src/if_python.c, + src/testdir/pythonx/failing.py, + src/testdir/pythonx/failing_import.py, src/testdir/test86.in, + src/testdir/test86.ok, src/testdir/test87.in, + src/testdir/test87.ok, src/testdir/pythonx/topmodule/__init__.py, + src/testdir/pythonx/topmodule/submodule/__init__.py, + src/testdir/pythonx/topmodule/submodule/subsubmodule/__init__.py, + src/testdir/pythonx/topmodule/submodule/subsubmodule/subsubsubmodule.py + +Patch 7.3.1237 +Problem: Python: non-import errors not handled correctly. +Solution: Let non-ImportError exceptions pass the finder. (ZyX) +Files: src/if_py_both.h, src/testdir/test86.ok, src/testdir/test87.ok + +Patch 7.3.1238 +Problem: Crash in Python interface on 64 bit machines. +Solution: Change argument type of PyString_AsStringAndSize. (Taro Muraoka, + Jun Takimoto) +Files: src/if_python.c + +Patch 7.3.1239 +Problem: Can't build with Python and MSVC10. +Solution: Move #if outside of macro. (Taro Muraoka) +Files: src/if_py_both.h + +Patch 7.3.1240 +Problem: Memory leak in findfile(). +Solution: Free the memory. (Christian Brabandt) +Files: src/eval.c + +Patch 7.3.1241 (after 7.3.1236) +Problem: Some test files missing from the distribution. +Solution: Update the list of files. +Files: Filelist + +Patch 7.3.1242 +Problem: No failure when trying to use a number as a string. +Solution: Give an error when StringToLine() is called with an instance of + the wrong type. (Jun Takimoto) +Files: src/if_py_both.h + +Patch 7.3.1243 +Problem: New regexp engine: back references in look-behind match don't + work. (Lech Lorens) +Solution: Copy the submatches before a recursive match. Also fix function + prototypes. +Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok + +Patch 7.3.1244 +Problem: MS-Windows: confirm() dialog text may not fit. +Solution: Use GetTextWidthEnc() instead of GetTextWidth(). (Yasuhiro + Matsumoto) +Files: src/gui_w32.c + +Patch 7.3.1245 +Problem: MS-Windows: confirm() dialog text may still not fit. +Solution: Use GetTextWidthEnc() instead of GetTextWidth() in two more + places. (Yasuhiro Matsumoto) +Files: src/gui_w32.c + +Patch 7.3.1246 +Problem: When setting 'winfixheight' and resizing the window causes the + window layout to be wrong. +Solution: Add frame_check_height() and frame_check_width() (Yukihiro + Nakadaira) +Files: src/window.c + +Patch 7.3.1247 +Problem: New regexp engine: '[ ]\@!\p\%([ ]\@!\p\)*:' does not always match. +Solution: When there is a PIM add a duplicate state that starts at another + position. +Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok + +Patch 7.3.1248 +Problem: Still have old hacking code for Input Method. +Solution: Add 'imactivatefunc' and 'imstatusfunc' as a generic solution to + Input Method activation. (Yukihiro Nakadaira) +Files: runtime/doc/options.txt, src/fileio.c, src/mbyte.c, src/option.c, + src/option.h, src/proto/fileio.pro + +Patch 7.3.1249 +Problem: Modeline not recognized when using "Vim" instead of "vim". +Solution: Also accept "Vim". +Files: src/buffer.c + +Patch 7.3.1250 +Problem: Python tests fail on MS-Windows. +Solution: Change backslashes to slashes. (Taro Muraoka) +Files: src/testdir/test86.in, src/testdir/test87.in + +Patch 7.3.1251 +Problem: Test 61 messes up viminfo. +Solution: Specify a separate viminfo file. +Files: src/testdir/test61.in + +Patch 7.3.1252 +Problem: gvim does not find the toolbar bitmap files in ~/vimfiles/bitmaps + if the corresponding menu command contains additional characters + like the shortcut marker '&' or if you use a non-english locale. +Solution: Use menu->en_dname or menu->dname. (Martin Gieseking) +Files: src/gui_w32.c + +Patch 7.3.1253 (after 7.3.1200) +Problem: Still undo problem after using CTRL-R = setline(). (Hirohito + Higashi) +Solution: Set the ins_need_undo flag. +Files: src/edit.c + +Patch 7.3.1254 (after 7.3.1252) +Problem: Can't build without the multi-lang feature. (John Marriott) +Solution: Add #ifdef. +Files: src/gui_w32.c + +Patch 7.3.1255 +Problem: Clang warnings when building with Athena. +Solution: Add type casts. (Dominique Pelle) +Files: src/gui_at_fs.c + +Patch 7.3.1256 +Problem: Can't build without eval or autocmd feature. +Solution: Add #ifdefs. +Files: src/mbyte.c, src/window.c + +Patch 7.3.1257 +Problem: With GNU gettext() ":lang de_DE.utf8" does not always result in + German messages. +Solution: Clear the $LANGUAGE environment variable. +Files: src/ex_cmds2.c + +Patch 7.3.1258 +Problem: Using submatch() may crash Vim. (Ingo Karkat) +Solution: Restore the number of subexpressions used. +Files: src/regexp_nfa.c + +Patch 7.3.1259 +Problem: No test for patch 7.3.1258 +Solution: Add a test entry. +Files: src/testdir/test64.in, src/testdir/test64.ok + +Patch 7.3.1260 +Problem: User completion does not get the whole command line in the command + line window. +Solution: Pass on the whole command line. (Daniel Thau) +Files: src/ex_getln.c, src/structs.h + +Patch 7.3.1261 (after patch 7.3.1179) +Problem: A buffer-local language mapping from a keymap stops a global + insert mode mapping from working. (Ron Aaron) +Solution: Do not wait for more characters to be typed only when the mapping + was defined with <nowait>. +Files: runtime/doc/map.txt, src/eval.c, src/getchar.c, + src/testdir/test75.in, src/testdir/test75.ok + +Patch 7.3.1262 +Problem: Crash and compilation warnings with Cygwin. +Solution: Check return value of XmbTextListToTextProperty(). Add type casts. + Adjust #ifdefs. (Lech Lorens) +Files: src/main.c, src/os_unix.c, src/ui.c + +Patch 7.3.1263 +Problem: Typo in short option name. +Solution: Change "imse" to "imsf". +Files: src/option.c + +Patch 7.3.1264 (after 7.3.1261) +Problem: Missing m_nowait. +Solution: Include missing part of the patch. +Files: src/structs.h + +Patch 7.3.1265 (after 7.3.1249) +Problem: Accepting "Vim:" for a modeline causes errors too often. +Solution: Require "Vim:" to be followed by "set". +Files: src/buffer.c + +Patch 7.3.1266 +Problem: QNX: GUI fails to start. +Solution: Remove the QNX-specific #ifdef. (Sean Boudreau) +Files: src/gui.c + +Patch 7.3.1267 +Problem: MS-Windows ACL support doesn't work well. +Solution: Implement more ACL support. (Ken Takata) +Files: src/os_win32.c + +Patch 7.3.1268 +Problem: ACL support doesn't work when compiled with MingW. +Solution: Support ACL on MingW. (Ken Takata) +Files: src/os_win32.c, src/os_win32.h + +Patch 7.3.1269 +Problem: Insert completion keeps entry selected even though the list has + changed. (Olivier Teuliere) +Solution: Reset compl_shown_match and compl_curr_match. (Christian Brabandt) +Files: src/edit.c + +Patch 7.3.1270 +Problem: Using "Vp" in an empty buffer can't be undone. (Hauke Petersen) +Solution: Save one line in an empty buffer. (Christian Brabandt) +Files: src/ops.c + +Patch 7.3.1271 (after 7.3.1260) +Problem: Command line completion does not work. +Solution: Move setting xp_line down. (Daniel Thau) +Files: src/ex_getln.c + +Patch 7.3.1272 +Problem: Crash when editing Ruby file. (Aliaksandr Rahalevich) +Solution: Reallocate the state list when necessary. +Files: src/regexp_nfa.c + +Patch 7.3.1273 +Problem: When copying a location list the index might be wrong. +Solution: Set the index to one when using the first entry. (Lech Lorens) +Files: src/quickfix.c + +Patch 7.3.1274 +Problem: When selecting an entry from a location list it may pick an + arbitrary window or open a new one. +Solution: Prefer using a window related to the location list. (Lech Lorens) +Files: src/quickfix.c + +Patch 7.3.1275 +Problem: "gn" does not work when the match is a single character. +Solution: Fix it, add a test. (Christian Brabandt) +Files: src/search.c, src/testdir/test53.in, src/testdir/test53.ok + +Patch 7.3.1276 +Problem: When using a cscope connection resizing the window may send + SIGWINCH to cscope and it quits. +Solution: Call setpgid(0, 0) in the child process. (Narendran Gopalakrishnan) +Files: src/if_cscope.c + +Patch 7.3.1277 +Problem: In diff mode 'cursorline' also draws in the non-active window. + When 'nu' and 'sbr' are set the 'sbr' string is not underlined. +Solution: Only draw the cursor line in the current window. Combine the + 'cursorline' and other highlighting attributes. (Christian + Brabandt) +Files: src/screen.c + +Patch 7.3.1278 +Problem: When someone sets the screen size to a huge value with "stty" Vim + runs out of memory before reducing the size. +Solution: Limit Rows and Columns in more places. +Files: src/gui.c, src/gui_gtk_x11.c, src/option.c, src/os_unix.c, + src/proto/term.pro, src/term.c + +Patch 7.3.1279 +Problem: Compiler warning for variable uninitialized. (Tony Mechelynck) +Solution: Add an init. +Files: src/ex_getln.c + +Patch 7.3.1280 +Problem: Reading memory already freed since patch 7.3.1247. (Simon + Ruderich, Dominique Pelle) +Solution: Copy submatches before reallocating the state list. +Files: src/regexp_nfa.c + +Patch 7.3.1281 +Problem: When 'ttymouse' is set to "xterm2" clicking in column 123 moves + the cursor to column 96. (Kevin Goodsell) +Solution: Decode KE_CSI. +Files: src/term.c + +Patch 7.3.1282 (after 7.3.1277) +Problem: 'cursorline' not drawn in any other window. (Charles Campbell) +Solution: Do draw the cursor line in other windows. +Files: src/screen.c + +Patch 7.3.1283 +Problem: Test 71 fails on MS-Windows. +Solution: Put the binary data in a separate file. (Ken Takata) +Files: src/testdir/test71.in, src/testdir/test71a.in + +Patch 7.3.1284 +Problem: Compiler warnings in MS-Windows clipboard handling. +Solution: Add type casts. (Ken Takata) +Files: src/winclip.c + +Patch 7.3.1285 +Problem: No tests for picking a window when selecting an entry in a + location list. Not picking the right window sometimes. +Solution: Add test 96. Set usable_win appropriately. (Lech Lorens) +Files: src/quickfix.c, src/testdir/Makefile, src/testdir/test96.in, + src/testdir/test96.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.3.1286 +Problem: Check for screen size missing for Athena and Motif. +Solution: Add call to limit_screen_size(). +Files: src/gui_x11.c + +Patch 7.3.1287 +Problem: Python SystemExit exception is not handled properly. +Solution: Catch the exception and give an error. (Yasuhiro Matsumoto, Ken + Takata) +Files: runtime/doc/if_pyth.txt, src/if_py_both.h, src/if_python.c, + src/if_python3.c + +Patch 7.3.1288 +Problem: The first ":echo 'hello'" command output doesn't show. Mapping + for <S-F3> gets triggered during startup. +Solution: Add debugging code for the termresponse. When receiving the "Co" + entry and when setting 'ambiwidth' redraw right away if possible. + Add redraw_asap(). Don't set 'ambiwidth' if it already had the + right value. Do the 'ambiwidth' check in the second row to avoid + confusion with <S-F3>. +Files: src/term.c, src/screen.c, src/proto/screen.pro + +Patch 7.3.1289 +Problem: Get GLIB warning when removing a menu item. +Solution: Reference menu-id and also call gtk_container_remove(). (Ivan + Krasilnikov) +Files: src/gui_gtk.c + +Patch 7.3.1290 (after 7.3.1253) +Problem: CTRL-R = in Insert mode changes the start of the insert position. + (Ingo Karkat) +Solution: Only break undo, don't start a new insert. +Files: src/edit.c + +Patch 7.3.1291 (after 7.3.1288) +Problem: Compiler warnings for uninitialized variables. (Tony Mechelynck) +Solution: Initialize the variables. +Files: src/screen.c + +Patch 7.3.1292 +Problem: Possibly using invalid pointer when searching for window. (Raichoo) +Solution: Use "firstwin" instead of "tp_firstwin" for current tab. +Files: src/window.c + +Patch 7.3.1293 +Problem: Put in empty buffer cannot be undone. +Solution: Save one more line for undo. (Ozaki) +Files: src/ops.c + +Patch 7.3.1294 +Problem: ":diffoff" resets options. +Solution: Save and restore option values. (Christian Brabandt) +Files: src/diff.c, src/structs.h, src/option.c + +Patch 7.3.1295 +Problem: glob() and globpath() do not handle escaped special characters + properly. +Solution: Handle escaped characters differently. (Adnan Zafar) +Files: src/testdir/Makefile, src/testdir/test97.in, + src/testdir/test97.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/fileio.c, + src/misc1.c + +Patch 7.3.1296 +Problem: Only MS-Windows limits the GUI window size to what fits on the + monitor. +Solution: Limit the size for all systems. (Daniel Harding) +Files: src/ui.c + +Patch 7.3.1297 +Problem: findfile() directory matching does not work when a star follows + text. (Markus Braun) +Solution: Make a wildcard work properly. (Christian Brabandt) +Files: src/misc2.c, src/testdir/test89.in, src/testdir/test89.ok + +Patch 7.3.1298 (after 7.3.1297) +Problem: Crash. +Solution: Use STRCPY() instead of STRCAT() and allocate one more byte. +Files: src/misc2.c + +Patch 7.3.1299 +Problem: Errors when doing "make proto". Didn't do "make depend" for a + while. +Solution: Add #ifdefs. Update dependencies. Update proto files. +Files: src/if_python3.c, src/os_win32.c, src/Makefile, + src/proto/ex_docmd.pro, src/proto/if_python.pro, + src/proto/if_python3.pro, src/proto/gui_w16.pro, + src/proto/gui_w32.pro, src/proto/os_win32.pro + +Patch 7.3.1300 +Problem: Mac: tiny and small build fails. +Solution: Don't include os_macosx.m in tiny build. Include mouse support in + small build. (Kazunobu Kuriyama) +Files: src/configure.in, src/auto/configure, src/vim.h + +Patch 7.3.1301 +Problem: Some tests fail on MS-Windows. +Solution: Fix path separators in test 89 and 96. Omit test 97, escaping + works differently. Make findfile() work on MS-Windows. +Files: src/testdir/Make_dos.mak, src/testdir/Make_ming.mak, + src/testdir/Make_os2.mak, src/testdir/test89.in, + src/testdir/test96.in, src/misc2.c + +Patch 7.3.1302 +Problem: Test 17 fails on MS-Windows. Includes line break in file name + everywhere. +Solution: Fix 'fileformat'. Omit CR-LF from a line read from an included + file. +Files: src/search.c, src/testdir/test17.in, src/testdir/test17.ok + +Patch 7.3.1303 (after 7.3.1290) +Problem: Undo is synced whenever CTRL-R = is called, breaking some plugins. +Solution: Only break undo when calling setline() or append(). +Files: src/globals.h, src/eval.c, src/edit.c, src/testdir/test61.in, + src/testdir/test61.ok + +Patch 7.3.1304 +Problem: Test 89 still fails on MS-Windows. +Solution: Set 'shellslash'. (Taro Muraoka) +Files: src/testdir/test89.in + +Patch 7.3.1305 +Problem: Warnings from 64 bit compiler. +Solution: Add type casts. +Files: src/misc2.c + +Patch 7.3.1306 +Problem: When redrawing the screen during startup the intro message may be + cleared. +Solution: Redisplay the intro message when appropriate. +Files: src/screen.c, src/version.c, src/proto/version.pro + +Patch 7.3.1307 +Problem: MS-Windows build instructions are outdated. +Solution: Adjust for building on Windows 7. Drop Windows 95/98/ME support. +Files: Makefile, nsis/gvim.nsi + +Patch 7.3.1308 +Problem: Typos in MS-Windows build settings and README. +Solution: Minor changes to MS-Windows files. +Files: src/msvc2008.bat, src/msvc2010.bat, src/VisVim/README_VisVim.txt + +Patch 7.3.1309 +Problem: When a script defines a function the flag to wait for the user to + hit enter is reset. +Solution: Restore the flag. (Yasuhiro Matsumoto) Except when the user was + typing the function. +Files: src/eval.c + +Patch 7.3.1310 +Problem: Typos in nsis script. Can use better compression. +Solution: Fix typos. Use lzma compression. (Ken Takata) +Files: nsis/gvim.nsi + +Patch 7.3.1311 +Problem: Compiler warnings on Cygwin. +Solution: Add type casts. Add windows include files. (Ken Takata) +Files: src/mbyte.c, src/ui.c + +Patch 7.3.1312 (after 7.3.1287) +Problem: Not giving correct error messages for SystemExit(). +Solution: Move E858 into an else. (Ken Takata) +Files: src/if_py_both.h + +Patch 7.3.1313 +Problem: :py and :py3 don't work when compiled with Cygwin or MingW with 64 + bit. +Solution: Add -DMS_WIN64 to the build command. (Ken Takata) +Files: src/Make_cyg.mak, src/Make_ming.mak + +Patch 7.3.1314 +Problem: Test 87 fails with Python 3.3. +Solution: Filter the error messages. (Taro Muraoka) +Files: src/testdir/test87.in + +Patch 7.4a.001 +Problem: Script to update syntax menu is outdated. +Solution: Add the missing items. +Files: runtime/makemenu.vim + +Patch 7.4a.002 +Problem: Valgrind errors in test 89. (Simon Ruderich) +Solution: Allocate one more byte. (Dominique Pelle) +Files: src/misc2.c + +Patch 7.4a.003 +Problem: Copyright year is outdated. +Solution: Only use the first year. +Files: src/vim.rc, src/vim16.rc + +Patch 7.4a.004 +Problem: MSVC 2012 Update 3 is not recognized. +Solution: Add the version number. (Raymond Ko) +Files: src/Make_mvc.mak + +Patch 7.4a.005 +Problem: Scroll binding causes unexpected scroll. +Solution: Store the topline after updating scroll binding. Add a test. + (Lech Lorens) +Files: src/testdir/test98.in, src/testdir/test98a.in, + src/testdir/test98.ok, src/option.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 + +Patch 7.4a.006 +Problem: Failure in po file check goes unnoticed. +Solution: Fail "make test" if the po file check fails. +Files: src/Makefile + +Patch 7.4a.007 +Problem: After "g$" with 'virtualedit' set, "k" moves to a different + column. (Dimitar Dimitrov) +Solution: Set w_curswant. (Christian Brabandt) +Files: src/normal.c + +Patch 7.4a.008 +Problem: Python 3 doesn't handle multibyte characters properly when + 'encoding' is not utf-8. +Solution: Use PyUnicode_Decode() instead of PyUnicode_FromString(). (Ken + Takata) +Files: src/if_python3.c + +Patch 7.4a.009 +Problem: Compiler warnings for function prototypes. +Solution: Add "void". Move list_features() prototype. (Ken Takata) +Files: src/gui_w48.c, src/if_py_both.h, src/version.c + +Patch 7.4a.010 +Problem: Test 86 and 87 fail when building with Python or Python 3 and + using a static library. +Solution: Add configure check to add -fPIE compiler flag. +Files: src/configure.in, src/auto/configure + +Patch 7.4a.011 +Problem: Configure check for Python 3 config name isn't right. +Solution: Always include vi_cv_var_python3_version. (Tim Harder) +Files: src/configure.in, src/auto/configure + +Patch 7.4a.012 +Problem: "make test" fails when using a shadow directory. +Solution: Create links for files in src/po. (James McCoy) +Files: src/Makefile + +Patch 7.4a.013 +Problem: Setting/resetting 'lbr' in the main help file changes alignment + after a Tab. (Dimitar Dimitrov) +Solution: Also use the code for conceal mode where n_extra is computed for + 'lbr'. +Files: src/screen.c, src/testdir/test88.in, src/testdir/test88.ok + +Patch 7.4a.014 +Problem: Test 86 and 89 have a problem with using a shadow dir. +Solution: Adjust for the different directory structure. (James McCoy) +Files: src/testdir/test89.in, src/testdir/test86.in, src/Makefile + +Patch 7.4a.015 +Problem: No Japanese man pages. +Solution: Add Japanese translations of man pages. (Ken Takata, Yukihiro + Nakadaira, et al.) +Files: Filelist, src/Makefile, runtime/doc/evim-ja.UTF-8.1, + runtime/doc/vim-ja.UTF-8.1, runtime/doc/vimdiff-ja.UTF-8.1, + runtime/doc/vimtutor-ja.UTF-8.1, runtime/doc/xxd-ja.UTF-8.1 + +Patch 7.4a.016 (after 7.4a.014) +Problem: Features enabled in Makefile. +Solution: Undo accidental changes. +Files: src/Makefile + +Patch 7.4a.017 +Problem: When 'foldmethod' is "indent", using ">>" on a line just above a + fold makes the cursor line folded. (Evan Laforge) +Solution: Call foldOpenCursor(). (Christian Brabandt) +Files: src/ops.c + +Patch 7.4a.018 +Problem: Compiler warning for code unreachable. (Charles Campbell) +Solution: Use "while" instead of endless loop. Change break to continue. +Files: src/regexp_nfa.c, src/ui.c + +Patch 7.4a.019 +Problem: Invalid closing parenthesis in test 62. Command truncated at + double quote. +Solution: Remove the parenthesis. Change double quote to ''. (ZyX) +Files: src/testdir/test62.in, src/testdir/test62.ok + +Patch 7.4a.020 +Problem: Superfluous mb_ptr_adv(). +Solution: Remove the call. (Dominique Pelle) +Files: src/regexp_nfa.c + +Patch 7.4a.021 +Problem: Using feedkeys() doesn't always work. +Solution: Omit feedkeys(). (Ken Takata) +Files: src/testdir/test98a.in + +Patch 7.4a.022 +Problem: Using "d2g$" does not delete the last character. (ZyX) +Solution: Set the "inclusive" flag properly. +Files: src/normal.c + +Patch 7.4a.023 (after 7.4a.019) +Problem: Still another superfluous parenthesis. (ZyX) +Solution: Remove it. +Files: src/testdir/test62.in + +Patch 7.4a.024 +Problem: X11 GUI: Checking icon height twice. +Solution: Check height and width. (Dominique Pelle) +Files: src/gui_x11.c + +Patch 7.4a.025 +Problem: Get the press-Enter prompt even after using :redraw. +Solution: Clear need_wait_return when executing :redraw. +Files: src/ex_docmd.c + +Patch 7.4a.026 +Problem: ":diffoff" does not remove folds. (Ramel) +Solution: Do not restore 'foldenable' when 'foldmethod' is "manual". +Files: src/diff.c + +Patch 7.4a.027 +Problem: When Python adds lines to another buffer the cursor position is + wrong, it might be below the last line causing ml_get errors. + (Vlad Irnov) +Solution: Temporarily change the current window, so that marks are corrected + properly. +Files: src/if_py_both.h, src/window.c, src/proto/buffer.pro + +Patch 7.4a.028 +Problem: Crash when spell checking in new buffer. +Solution: Set the b_p_key field. (Mike Williams) +Files: src/spell.c, src/testdir/test58.in + +Patch 7.4a.029 +Problem: Can't build with MzScheme on Ubuntu 13.04. +Solution: Add configure check for the "ffi" library. +Files: src/configure.in, src/auto/configure + +Patch 7.4a.030 (after 7.4.027) +Problem: Missing find_win_for_buf(). (toothpik) +Solution: Add missing changes. +Files: src/buffer.c + +Patch 7.4a.031 +Problem: Compiler warnings. (Charles Campbell) +Solution: Initialize variables even when not needed. +Files: src/regexp_nfa.c, src/search.c + +Patch 7.4a.032 +Problem: New regexp engine: Does not match shorter alternative. (Ingo + Karkat) +Solution: Do not drop a new state when the PIM info is different. +Files: src/regexp_nfa.c + +Patch 7.4a.033 +Problem: Test 98 always passes. +Solution: Include test98a.in in test98.in, execute the crucial command in + one line. (Yukihiro Nakadaira) +Files: src/testdir/test98.in, src/testdir/test98a.in + +Patch 7.4a.034 +Problem: The tabline may flicker when opening a new tab after 7.3.759 on + Win32. +Solution: Move call to TabCtrl_SetCurSel(). (Ken Takata) +Files: src/gui_w48.c + +Patch 7.4a.035 +Problem: Fix in patch 7.4a.032 is not tested. +Solution: Add test. +Files: src/testdir/test64.in, src/testdir/test64.ok + +Patch 7.4a.036 +Problem: "\p" in a regexp does not match double-width characters. + (Yukihiro Nakadaira) +Solution: Don't count display cells, use vim_isprintc(). +Files: src/regexp.c, src/regexp_nfa.c, src/testdir/test64.in, + src/testdir/test64.ok, src/testdir/test95.in, + src/testdir/test95.ok + +Patch 7.4a.037 +Problem: Win32: When mouse is hidden and in the toolbar, moving it won't + make it appear. (Sami Salonen) +Solution: Add tabline_wndproc() and toolbar_wndproc(). (Ken Takata) +Files: src/gui_w32.c, src/gui_w48.c + +Patch 7.4a.038 +Problem: When using MSVC 2012 there are various issues, including GUI size + computations. +Solution: Use SM_CXPADDEDBORDER. (Mike Williams) +Files: src/gui_w32.c, src/gui_w48.c, src/os_win32.h + +Patch 7.4a.039 +Problem: New regexp engine doesn't match pattern. (Ingo Karkat) +Solution: When adding a state also check for different PIM if the list of + states has any state with a PIM. +Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok + +Patch 7.4a.040 +Problem: Win32: using uninitialized variable. +Solution: (Yukihiro Nakadaira) +Files: src/os_win32.c + +Patch 7.4a.041 +Problem: When using ":new ++ff=unix" and "dos" is first in 'fileformats' + then 'ff' is set to "dos" instead of "unix". (Ingo Karkat) +Solution: Create set_file_options() and invoke it from do_ecmd(). +Files: src/fileio.c, src/proto/fileio.pro, src/ex_cmds.c, + src/testdir/test91.in, src/testdir/test91.ok + +Patch 7.4a.042 +Problem: Crash when BufUnload autocommands close all buffers. (Andrew + Pimlott) +Solution: Set curwin->w_buffer to curbuf to avoid NULL. +Files: src/window.c, src/testdir/test8.in, src/testdir/test8.ok + +Patch 7.4a.043 +Problem: More ml_get errors when adding or deleting lines from Python. + (Vlad Irnov) +Solution: Switch to a window with the buffer when possible. +Files: src/if_py_both.h + +Patch 7.4a.044 +Problem: Test 96 sometimes fails. +Solution: Clear window from b_wininfo in win_free(). (Suggestion by + Yukihiro Nakadaira) +Files: src/window.c + +Patch 7.4a.045 +Problem: Configure does not always find the right library for Lua. Missing + support for LuaJit. +Solution: Improve the configure detection of Lua. (Hiroshi Shirosaki) +Files: src/Makefile, src/configure.in, src/auto/configure + +Patch 7.4a.046 +Problem: Can't build without mbyte feature. +Solution: Add #ifdefs. +Files: src/ex_cmds.c + +Patch 7.4a.047 +Problem: Some comments are not so nice. +Solution: Change the comments. +Files: src/ex_docmd.c, src/message.c, src/ops.c, src/option.c + +Patch 7.4b.001 +Problem: Win32: dialog may extend off-screen. +Solution: Reduce the size, use correct borders. (Andrei Olsen) +Files: src/gui_w32.c + +Patch 7.4b.002 +Problem: Crash searching for \%(\%(\|\d\|-\|\.\)*\|\*\). (Marcin + Szamotulski) Also for \(\)*. +Solution: Do add a state for opening parenthesis, so that we can check if it + was added before at the same position. +Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok + +Patch 7.4b.003 +Problem: Regexp code is not nicely aligned. +Solution: Adjust white space. (Ken Takata) +Files: src/regexp_nfa.c + +Patch 7.4b.004 +Problem: Regexp crash on pattern "@\%[\w\-]*". (Axel Kielhorn) +Solution: Add \%(\) around \%[] internally. +Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok + +Patch 7.4b.005 +Problem: Finding %s in shellpipe and shellredir does not ignore %%s. +Solution: Skip over %%. (lcd 47) +Files: src/ex_cmds.c + +Patch 7.4b.006 (after 7.3.1295) +Problem: Using \{n,m} in an autocommand pattern no longer works. + Specifically, mutt temp files are not recognized. (Gary Johnson) +Solution: Make \\\{n,m\} work. +Files: runtime/doc/autocmd.txt, src/fileio.c + +Patch 7.4b.007 +Problem: On 32 bit MS-Windows :perldo does not work. +Solution: Make sure time_t uses 32 bits. (Ken Takata) +Files: src/if_perl.xs, src/vim.h + +Patch 7.4b.008 +Problem: 'autochdir' causes setbufvar() to change the current directory. + (Ben Fritz) +Solution: When disabling autocommands also reset 'acd' temporarily. + (Christian Brabandt) +Files: src/fileio.c + +Patch 7.4b.009 +Problem: When setting the Visual area manually and 'selection' is + exclusive, a yank includes one character too much. (Ingo Karkat) +Solution: Default the Visual operation to "v". (Christian Brabandt) +Files: src/mark.c + +Patch 7.4b.010 +Problem: Win32: Tcl library load does not use standard mechanism. +Solution: Call vimLoadLib() instead of LoadLibraryEx(). (Ken Takata) +Files: src/if_perl.xs, src/if_tcl.c + +Patch 7.4b.011 +Problem: ":he \%(\)" does not work. (ZyX) +Solution: Add an exception to the list. +Files: src/ex_cmds.c + +Patch 7.4b.012 +Problem: Output from a shell command is truncated at a NUL. (lcd 47) +Solution: Change every NUL into an SOH. +Files: src/misc1.c + +Patch 7.4b.013 +Problem: Install dir for JP man pages is wrong. +Solution: Remove ".UTF-8" from the directory name. (Ken Takata) +Files: src/Makefile + +Patch 7.4b.014 (after 7.4b.012) +Problem: Stupid mistake. +Solution: Changle "len" to "i". +Files: src/misc1.c + +Patch 7.4b.015 (after 7.4b.008) +Problem: Can't compile without the 'acd' feature. +Solution: Add #ifdefs. (Kazunobu Kuriyama) +Files: src/fileio.c + +Patch 7.4b.016 +Problem: Ruby detection fails on Fedora 19. +Solution: Use one way to get the Ruby version. (Michael Henry) +Files: src/configure.in, src/auto/configure + +Patch 7.4b.017 +Problem: ":he \^x" gives a strange error message. (glts) +Solution: Do not translate \^x to \_CTRL-x. +Files: src/ex_cmds.c + +Patch 7.4b.018 (after 7.4b.001) +Problem: Win32: Dialog can still be too big. +Solution: Move the check for height further down. (Andrei Olsen) +Files: src/gui_w32.c + +Patch 7.4b.019 (after 7.4a.034) +Problem: Tabline is not updated properly when closing a tab on Win32. +Solution: Only reduce flickering when adding a tab. (Ken Takata) +Files: src/gui_w48.c + +Patch 7.4b.020 +Problem: "g~ap" changes first character of next paragraph. (Manuel Ortega) +Solution: Avoid subtracting (0 - 1) from todo. (Mike Williams) +Files: src/ops.c, src/testdir/test82.in, src/testdir/test82.ok + +Patch 7.4b.021 +Problem: Pressing "u" after an external command results in multiple + press-enter messages. (glts) +Solution: Don't call hit_return_msg() when we have K_IGNORE. (Christian + Brabandt) +Files: src/message.c + +Patch 7.4b.022 +Problem: Not waiting for a character when the tick count overflows. +Solution: Subtract the unsigned numbers and cast to int. (Ken Takata) +Files: src/os_win32.c + + + + vim:tw=78:ts=8:noet:ft=help:norl: |