Install vim73
[git/jnareb-git.git] / share / vim / vim73 / doc / version7.txt
blob1d559f7cdd3ddf37e956877c8282f9ad851cb381
1 *version7.txt*  For Vim version 7.3.  Last change: 2010 Aug 15
4                   VIM REFERENCE MANUAL    by Bram Moolenaar
6                                         *vim7* *version-7.0* *version7.0*
7 Welcome to Vim 7!  A large number of features has been added.  This file
8 mentions all the new items, changes to existing features and bug fixes
9 since Vim 6.x.  Use this command to see the version you are using: >
10         :version
12 See |vi_diff.txt| for an overview of differences between Vi and Vim 7.0.
13 See |version4.txt| for differences between Vim 3.x and Vim 4.x.
14 See |version5.txt| for differences between Vim 4.x and Vim 5.x.
15 See |version6.txt| for differences between Vim 5.x and Vim 6.x.
17 INCOMPATIBLE CHANGES                    |incompatible-7|
19 NEW FEATURES                            |new-7|
21 Vim script enhancements                 |new-vim-script|
22 Spell checking                          |new-spell|
23 Omni completion                         |new-omni-completion|
24 MzScheme interface                      |new-MzScheme|
25 Printing multi-byte text                |new-print-multi-byte|
26 Tab pages                               |new-tab-pages|
27 Undo branches                           |new-undo-branches|
28 Extended Unicode support                |new-more-unicode|
29 More highlighting                       |new-more-highlighting|
30 Translated manual pages                 |new-manpage-trans|
31 Internal grep                           |new-vimgrep|
32 Scroll back in messages                 |new-scroll-back|
33 Cursor past end of the line             |new-onemore|
34 POSIX compatibility                     |new-posix|
35 Debugger support                        |new-debug-support|
36 Remote file explorer                    |new-netrw-explore|
37 Define an operator                      |new-define-operator|
38 Mapping to an expression                |new-map-expression|
39 Visual and Select mode mappings         |new-map-select|
40 Location list                           |new-location-list|
41 Various new items                       |new-items-7|
43 IMPROVEMENTS                            |improvements-7|
45 COMPILE TIME CHANGES                    |compile-changes-7|
47 BUG FIXES                               |bug-fixes-7|
49 VERSION 7.1                     |version-7.1|
50 Changed                                 |changed-7.1|
51 Added                                   |added-7.1|
52 Fixed                                   |fixed-7.1|
54 VERSION 7.2                     |version-7.2|
55 Changed                                 |changed-7.2|
56 Added                                   |added-7.2|
57 Fixed                                   |fixed-7.2|
59 VERSION 7.3                     |version-7.3|
61 Persistent undo                         |new-persistent-undo|
62 More encryption                         |new-more-encryption|
63 Conceal text                            |new-conceal|
64 Lua interface                           |new-lua|
65 Python3 interface                       |new-python3|
67 Changed                                 |changed-7.3|
68 Added                                   |added-7.3|
69 Fixed                                   |fixed-7.3|
71 ==============================================================================
72 INCOMPATIBLE CHANGES                            *incompatible-7*
74 These changes are incompatible with previous releases.  Check this list if you
75 run into a problem when upgrading from Vim 6.x to 7.0.
77 A ":write file" command no longer resets the 'modified' flag of the buffer,
78 unless the '+' flag is in 'cpoptions' |cpo-+|.  This was illogical, since the
79 buffer is still modified compared to the original file.  And when undoing
80 all changes the file would actually be marked modified.  It does mean that
81 ":quit" fails now.
83 ":helpgrep" now uses a help window to display a match.
85 In an argument list double quotes could be used to include spaces in a file
86 name.  This caused a difference between ":edit" and ":next" for escaping
87 double quotes and it is incompatible with some versions of Vi.
88         Command                 Vim 6.x file name       Vim 7.x file name ~
89         :edit foo\"888          foo"888                 foo"888
90         :next foo\"888          foo888                  foo"888
91         :next a\"b c\"d         ab cd                   a"b  and  c"d
93 In a |literal-string| a single quote can be doubled to get one.
94 ":echo 'a''b'" would result in "a b", but now that two quotes stand for one it
95 results in "a'b".
97 When overwriting a file with ":w! fname" there was no warning for when "fname"
98 was being edited by another Vim.  Vim now gives an error message |E768|.
100 The support for Mac OS 9 has been removed.
102 Files ending in .tex now have 'filetype' set to "context", "plaintex", or
103 "tex".  |ft-tex-plugin|
106 Minor incompatibilities:
108 For filetype detection: For many types, use */.dir/filename instead of
109 ~/.dir/filename, so that it also works for other user's files.
111 For quite a few filetypes the indent settings have been moved from the
112 filetype plugin to the indent plugin.  If you used: >
113         :filetype plugin on
114 Then some indent settings may be missing.  You need to use: >
115         :filetype plugin indent on
117 ":0verbose" now sets 'verbose' to zero instead of one.
119 Removed the old and incomplete "VimBuddy" code.
121 Buffers without a name report "No Name" instead of "No File".  It was
122 confusing for buffers with a name and 'buftype' set to "nofile".
124 When ":file xxx" is used in a buffer without a name, the alternate file name
125 isn't set.  This avoids creating buffers without a name, they are not useful.
127 The "2html.vim" script now converts closed folds to HTML.  This means the HTML
128 looks like it's displayed, with the same folds open and closed.  Use "zR", or
129 "let html_ignore_folding=1", if no folds should appear in the HTML. (partly by
130 Carl Osterwisch)
131 Diff mode is now also converted to HTML as it is displayed.
133 Win32: The effect of the <F10> key depended on 'winaltkeys'.  Now it depends
134 on whether <F10> has been mapped or not.  This allows mapping <F10> without
135 changing 'winaltkeys'.
137 When 'octal' is in 'nrformats' and using CTRL-A on "08" it became "018", which
138 is illogical.  Now it becomes "9".  The leading zero(s) is(are) removed to
139 avoid the number becoming octal after incrementing "009" to "010".
141 When 'encoding' is set to a Unicode encoding, the value for 'fileencodings'
142 now includes "default" before "latin1".  This means that for files with 8-bit
143 encodings the default is to use the encoding specified by the environment, if
144 possible.  Previously latin1 would always be used, which is wrong in a
145 non-latin1 environment, such as Russian.
147 Previously Vim would exit when there are two windows, both of them displaying
148 a help file, and using ":quit".  Now only the window is closed.
150 "-w {scriptout}" only works when {scriptout} doesn't start with a digit.
151 Otherwise it's used to set the 'window' option.
153 Previously <Home> and <xHome> could be mapped separately.  This had the
154 disadvantage that all mappings (with modifiers) had to be duplicated, since
155 you can't be sure what the keyboard generates.  Now all <xHome> are internally
156 translated to <Home>, both for the keys and for mappings.  Also for <xEnd>,
157 <xF1>, etc.
159 ":put" now leaves the cursor on the last inserted line.
161 When a .gvimrc file exists then 'compatible' is off, just like when a ".vimrc"
162 file exists.
164 When making a string upper-case with "vlllU" or similar then the German sharp
165 s is replaced with "SS".  This does not happen with "~" to avoid backwards
166 compatibility problems and because "SS" can't be changed back to a sharp s.
168 "gd" previously found the very first occurrence of a variable in a function,
169 that could be the function argument without type.  Now it finds the position
170 where the type is given.
172 The line continuation in functions was not taken into account, line numbers in
173 errors were logical lines, not lines in the sourced file.  That made it
174 difficult to locate errors.  Now the line number in the sourced file is
175 reported, relative to the function start.  This also means that line numbers
176 for ":breakadd func" are different.
178 When defining a user command with |:command| the special items could be
179 abbreviated.  This caused unexpected behavior, such as <li> being recognized
180 as <line1>.  The items can no longer be abbreviated.
182 When executing a FileChangedRO autocommand it is no longer allowed to switch
183 to another buffer or edit another file.  This is to prevent crashes (the event
184 is triggered deep down in the code where changing buffers is not anticipated).
185 It is still possible to reload the buffer.
187 At the |more-prompt| and the |hit-enter-prompt|, when the 'more' option is
188 set, the 'k', 'u', 'g' and 'b' keys are now used to scroll back to previous
189 messages.  Thus they are no longer used as typeahead.
191 ==============================================================================
192 NEW FEATURES                                            *new-7*
194 Vim script enhancements                                 *new-vim-script*
195 -----------------------
197 In Vim scripts the following types have been added:
199         |List|          ordered list of items
200         |Dictionary|    associative array of items
201         |Funcref|       reference to a function
203 Many functions and commands have been added to support the new types.
205 The |string()| function can be used to get a string representation of a
206 variable.  Works for Numbers, Strings and composites of them.  Then |eval()|
207 can be used to turn the string back into the variable value.
209 The |:let| command can now use "+=", "-=" and ".=": >
210         :let var += expr        " works like :let var = var + expr
211         :let var -= expr        " works like :let var = var - expr
212         :let var .= string      " works like :let var = var . string
214 With the |:profile| command you can find out where your function or script
215 is wasting time.
217 In the Python interface vim.eval() also handles Dictionaries and Lists.
218 |python-eval| (G. Sumner Hayes)
220 The |getscript| plugin was added as a convenient way to update scripts from
221 www.vim.org automatically. (Charles Campbell)
223 The |vimball| plugin was added as a convenient way to distribute a set of
224 files for a plugin (plugin file, autoload script, documentation). (Charles
225 Campbell)
228 Spell checking                                          *new-spell*
229 --------------
231 Spell checking has been integrated in Vim.  There were a few implementations
232 with scripts, but they were slow and/or required an external program.
234 The 'spell'        option is used to switch spell checking on or off
235 The 'spelllang'    option is used to specify the accepted language(s)
236 The 'spellfile'    option specifies where new words are added
237 The 'spellsuggest' option specifies the methods used for making suggestions
239 The |]s| and |[s| commands can be used to move to the next or previous error
240 The |zg| and |zw| commands can be used to add good and wrong words
241 The |z=|          command can be used to list suggestions and correct the word
242 The |:mkspell|    command is used to generate a Vim spell file from word lists
244 The "undercurl" highlighting attribute was added to nicely point out spelling
245 mistakes in the GUI (based on patch from Marcin Dalecki).
246 The "guisp" color can be used to give it a color different from foreground and
247 background.
248 The number of possible different highlight attributes was raised from about
249 220 to over 30000.  This allows for the attributes of spelling to be combined
250 with syntax highlighting attributes.  This is also used for syntax
251 highlighting and marking the Visual area.
253 Much more info here: |spell|.
256 Omni completion                                 *new-omni-completion*
257 ---------------
259 This could also be called "intellisense", but that is a trademark.  It is a
260 smart kind of completion.  The text in front of the cursor is inspected to
261 figure out what could be following.  This may suggest struct and class
262 members, system functions, etc.
264 Use CTRL-X CTRL-O in Insert mode to start the completion.  |i_CTRL-X_CTRL-O|
266 The 'omnifunc' option is set by filetype plugins to define the function that
267 figures out the completion.
269 Currently supported languages:
270         C                                       |ft-c-omni|
271         (X)HTML with CSS                        |ft-html-omni|
272         JavaScript                              |ft-javascript-omni|
273         PHP                                     |ft-php-omni|
274         Python
275         Ruby                                    |ft-ruby-omni|
276         SQL                                     |ft-sql-omni|
277         XML                                     |ft-xml-omni|
278         any language with syntax highlighting   |ft-syntax-omni|
280 You can add your own omni completion scripts.
282 When the 'completeopt' option contains "menu" then matches for Insert mode
283 completion are displayed in a (rather primitive) popup menu.
286 MzScheme interface                                      *new-MzScheme*
287 ------------------
289 The MzScheme interpreter is supported. |MzScheme|
291 The |:mzscheme| command can be used to execute MzScheme commands
292 The |:mzfile|   command can be used to execute an MzScheme script file
294 This depends on Vim being compiled with the |+mzscheme| feature.
297 Printing multi-byte text                                *new-print-multi-byte*
298 ------------------------
300 The |:hardcopy| command now supports printing multi-byte characters when using
301 PostScript.
303 The 'printmbcharset' and 'printmbfont' options are used for this.
304 Also see |postscript-cjk-printing|.  (Mike Williams)
307 Tab pages                                               *new-tab-pages*
308 ---------
310 A tab page is a page with one or more windows with a label (aka tab) at the top.
311 By clicking on the label you can quickly switch between the tab pages.  And
312 with the keyboard, using the |gt| (Goto Tab) command.  This is a convenient
313 way to work with many windows.
315 To start Vim with each file argument in a separate tab page use the |-p|
316 argument.  The maximum number of pages can be set with 'tabpagemax'.
318 The line with tab labels is either made with plain text and highlighting or
319 with a GUI mechanism.  The GUI labels look better but are only available on a
320 few systems.  The line can be customized with 'tabline', 'guitablabel' and
321 'guitabtooltip'.  Whether it is displayed is set with 'showtabline'.  Whether
322 to use the GUI labels is set with the "e" flag in 'guioptions'.
324 The |:tab| command modifier can be used to have most commands that open a new
325 window open a new tab page instead.
327 The |--remote-tab| argument can be used to edit a file in a new tab page in an
328 already running Vim server.
330 Variables starting with "t:" are local to a tab page.
332 More info here: |tabpage|
333 Most of the GUI stuff was implemented by Yegappan Lakshmanan.
336 Undo branches                                           *new-undo-branches*
337 -------------
339 Previously there was only one line of undo-redo.  If, after undoing a number
340 of changes, a new change was made all the undone changes were lost.  This
341 could lead to accidentally losing work.
343 Vim now makes an undo branch in this situation.  Thus you can go back to the
344 text after any change, even if they were undone.  So long as you do not run
345 into 'undolevels', when undo information is freed up to limit the memory used.
347 To be able to navigate the undo branches each change is numbered sequentially.
348 The commands |g-| and |:earlier| go back in time, to older changes.  The
349 commands |g+| and |:later| go forward in time, to newer changes.
351 The changes are also timestamped.  Use ":earlier 10m" to go to the text as it
352 was about ten minutes earlier.
354 The |:undolist| command can be used to get an idea of which undo branches
355 exist.  The |:undo| command now takes an argument to directly jump to a
356 specific position in this list.  The |changenr()| function can be used to
357 obtain the change number.
359 There is no graphical display of the tree with changes, navigation can be
360 quite confusing.
363 Extended Unicode support                                *new-more-unicode*
364 ------------------------
366 Previously only two combining characters were displayed.  The limit is now
367 raised to 6.  This can be set with the 'maxcombine' option.  The default is
368 still 2.
370 |ga| now shows all combining characters, not just the first two.
372 Previously only 16 bit Unicode characters were supported for displaying.  Now
373 the full 32 bit character set can be used.  Unless manually disabled at
374 compile time to save a bit of memory.
376 For pattern matching it is now possible to search for individual composing
377 characters. |patterns-composing|
379 The |8g8| command searches for an illegal UTF-8 byte sequence.
382 More highlighting                               *new-more-highlighting*
383 -----------------
385 Highlighting matching parens:
387 When moving the cursor through the text and it is on a paren, then the
388 matching paren can be highlighted.  This uses the new |CursorMoved|
389 autocommand event.
391 This means some commands are executed every time you move the cursor.  If this
392 slows you down too much switch it off with: >
393         :NoMatchParen
395 See |matchparen| for more information.
397 The plugin uses the |:match| command.  It now supports three match patterns.
398 The plugin uses the third one.  The first one is for the user and the second
399 one can be used by another plugin.
401 Highlighting the cursor line and column:
403 The 'cursorline' and 'cursorcolumn' options have been added.  These highlight
404 the screen line and screen column of the cursor.  This makes the cursor
405 position easier to spot.  'cursorcolumn' is also useful to align text.  This
406 may make screen updating quite slow.  The CursorColumn and CursorLine
407 highlight groups allow changing the colors used.  |hl-CursorColumn|
408 |hl-CursorLine|
410 The number of possible different highlight attributes was raised from about
411 220 to over 30000.  This allows for the attributes of spelling to be combined
412 with syntax highlighting attributes.  This is also used for syntax
413 highlighting, marking the Visual area, CursorColumn, etc.
416 Translated manual pages                                 *new-manpage-trans*
417 -----------------------
419 The manual page of Vim and associated programs is now also available in
420 several other languages.
422 French  - translated by David Blanchet
423 Italian - translated by Antonio Colombo
424 Russian - translated by Vassily Ragosin
425 Polish  - translated by Mikolaj Machowski
427 The Unix Makefile installs the Italian manual pages in .../man/it/man1/,
428 .../man/it.ISO8859-1/man1/ and .../man/it.UTF-8/man1/.  There appears to be no
429 standard for what encoding goes in the "it" directory, the 8-bit encoded file
430 is used there as a best guess.
431 Other languages are installed in similar places.
432 The translated pages are not automatically installed when Vim was configured
433 with "--disable-nls", but "make install-languages install-tool-languages" will
434 do it anyway.
437 Internal grep                                           *new-vimgrep*
438 -------------
440 The ":vimgrep" command can be used to search for a pattern in a list of files.
441 This is like the ":grep" command, but no external program is used.  Besides
442 better portability, handling of different file encodings and using multi-line
443 patterns, this also allows grepping in compressed and remote files.
444 |:vimgrep|.
446 If you want to use the search results in a script you can use the
447 |getqflist()| function.
449 To grep files in various directories the "**" pattern can be used.  It expands
450 into an arbitrary depth of directories.  "**" can be used in all places where
451 file names are expanded, thus also with |:next| and |:args|.
454 Scroll back in messages                                 *new-scroll-back*
455 -----------------------
457 When displaying messages, at the |more-prompt| and the |hit-enter-prompt|, The
458 'k', 'u', 'g' and 'b' keys can be used to scroll back to previous messages.
459 This is especially useful for commands such as ":syntax", ":autocommand" and
460 ":highlight".  This is implemented in a generic way thus it works for all
461 commands and highlighting is kept.  Only works when the 'more' option is set.
462 Previously it only partly worked for ":clist".
464 The |g<| command can be used to see the last page of messages after you have
465 hit <Enter> at the |hit-enter-prompt|.  Then you can scroll further back.
468 Cursor past end of the line                             *new-onemore*
469 ---------------------------
471 When the 'virtualedit' option contains "onemore" the cursor can move just past
472 the end of the line.  As if it's on top of the line break.
474 This makes some commands more consistent.  Previously the cursor was always
475 past the end of the line if the line was empty.  But it is far from Vi
476 compatible.  It may also break some plugins or Vim scripts.  Use with care!
478 The patch was provided by Mattias Flodin.
481 POSIX compatibility                                     *new-posix*
482 -------------------
484 The POSIX test suite was used to verify POSIX compatibility.  A number of
485 problems have been fixed to make Vim more POSIX compatible.  Some of them
486 conflict with traditional Vi or expected behavior.  The $VIM_POSIX environment
487 variable can be set to get POSIX compatibility.  See |posix|.
489 Items that were fixed for both Vi and POSIX compatibility:
490 - repeating "R" with a count only overwrites text once; added the 'X' flag to
491   'cpoptions' |cpo-X|
492 - a vertical movement command that moves to a non-existing line fails; added
493   the '-' flag to 'cpoptions' |cpo--|
494 - when preserving a file and doing ":q!" the file can be recovered; added the
495   '&' flag to 'cpoptions' |cpo-&|
496 - The 'window' option is partly implemented.  It specifies how much CTRL-F and
497   CTRL-B scroll when there is one window.  The "-w {number}" argument is now
498   accepted.  "-w {scriptout}" only works when {scriptout} doesn't start with a
499   digit.
500 - Allow "-c{command}" argument, no space between "-c" and {command}.
501 - When writing a file with ":w!" don't reset 'readonly' when 'Z' is present in
502   'cpoptions'.
503 - Allow 'l' and '#' flags for ":list", ":print" and ":number".
504 - Added the '.' flag to 'cpoptions': ":cd" fails when the buffer is modified.
505 - In Ex mode with an empty buffer ":read file" doesn't keep an empty line
506   above or below the new lines.
507 - Remove a backslash before a NL for the ":global" command.
508 - When ":append", ":insert" or ":change" is used with ":global", get the
509   inserted lines from the command.  Can use backslash-NL to separate lines.
510 - Can use ":global /pat/ visual" to execute Normal mode commands at each
511   matched line.  Use "Q" to continue and go to the next line.
512 - The |:open| command has been partially implemented.  It stops Ex mode, but
513   redraws the whole screen, not just one line as open mode is supposed to do.
514 - Support using a pipe to read the output from and write input to an external
515   command.  Added the 'shelltemp' option and has("filterpipe").
516 - In ex silent mode the ":set" command output is displayed.
517 - The ":@@" and ":**" give an error message when no register was used before.
518 - The search pattern "[]-`]" matches ']', '^', '_' and '`'.
519 - Autoindent for ":insert" is using the line below the insert.
520 - Autoindent for ":change" is using the first changed line.
521 - Editing Ex command lines is not done in cooked mode, because CTRL-D and
522   CTRL-T cannot be handled then.
523 - In Ex mode, "1,3" prints three lines.  "%" prints all lines.
524 - In Ex mode "undo" would undo all changes since Ex mode was started.
525 - Implemented the 'prompt' option.
528 Debugger support                                        *new-debug-support*
529 ----------------
531 The 'balloonexpr' option has been added.  This is a generic way to implement
532 balloon functionality.  You can use it to show info for the word under the
533 mouse pointer.
536 Remote file explorer                                    *new-netrw-explore*
537 --------------------
539 The netrw plugin now also supports viewing a directory, when "scp://" is used.
540 Deleting and renaming files is possible.
542 To avoid duplicating a lot of code, the previous file explorer plugin has been
543 integrated in the netrw plugin.  This means browsing local and remote files
544 works the same way.
546 ":browse edit" and ":browse split" use the netrw plugin when it's available
547 and a GUI dialog is not possible.
549 The netrw plugin is maintained by Charles Campbell.
552 Define an operator                                      *new-define-operator*
553 ------------------
555 Previously it was not possible to define your own operator; a command that is
556 followed by a {motion}.  Vim 7 introduces the 'operatorfunc' option and the
557 |g@| operator.  This makes it possible to define a mapping that works like an
558 operator.  The actual work is then done by a function, which is invoked
559 through the |g@| operator.
561 See |:map-operator| for the explanation and an example.
564 Mapping to an expression                                *new-map-expression*
565 ------------------------
567 The {rhs} argument of a mapping can be an expression.  That means the
568 resulting characters can depend on the context.  Example: >
569         :inoremap <expr> . InsertDot()
570 Here the dot will be mapped to whatever InsertDot() returns.
572 This also works for abbreviations.  See |:map-<expr>| for the details.
575 Visual and Select mode mappings                         *new-map-select*
576 -------------------------------
578 Previously Visual mode mappings applied both to Visual and Select mode.  With
579 a trick to have the mappings work in Select mode like they would in Visual
580 mode.
582 Commands have been added to define mappings for Visual and Select mode
583 separately: |:xmap| and |:smap|.  With the associated "noremap" and "unmap"
584 commands.
586 The same is done for menus: |:xmenu|, |:smenu|, etc.
589 Location list                                           *new-location-list*
590 -------------
592 The support for a per-window quickfix list (location list) is added. The
593 location list can be displayed in a location window (similar to the quickfix
594 window).  You can open more than one location list window.  A set of commands
595 similar to the quickfix commands are added to browse the location list.
596 (Yegappan Lakshmanan)
599 Various new items                                       *new-items-7*
600 -----------------
602 Normal mode commands: ~
604 a", a' and a`           New text objects to select quoted strings. |a'|
605 i", i' and i`           (Taro Muraoka)
607 CTRL-W <Enter>          In the quickfix window: opens a new window to show the
608                         location of the error under the cursor.
610 |at| and |it| text objects select a block of text between HTML or XML tags.
612 <A-LeftMouse> ('mousemodel' "popup" or "popup-setpos")
613 <A-RightMouse> ('mousemodel' "extend")
614                         Make a blockwise selection. |<A-LeftMouse>|
616 gF                      Start editing the filename under the cursor and jump
617                         to the line number following the file name.
618                         (Yegappan Lakshmanan)
620 CTRL-W F                Start editing the filename under the cursor in a new
621                         window and jump to the line number following the file
622                         name.  (Yegappan Lakshmanan)
624 Insert mode commands: ~
626 CTRL-\ CTRL-O           Execute a Normal mode command.  Like CTRL-O but
627                         without moving the cursor. |i_CTRL-\_CTRL-O|
629 Options: ~
631 'balloonexpr'           expression for text to show in evaluation balloon
632 'completefunc'          The name of the function used for user-specified
633                         Insert mode completion.  CTRL-X CTRL-U can be used in
634                         Insert mode to do any kind of completion.  (Taro
635                         Muraoka)
636 'completeopt'           Enable popup menu and other settings for Insert mode
637                         completion.
638 'cursorcolumn'          highlight column of the cursor
639 'cursorline'            highlight line of the cursor
640 'formatexpr'            expression for formatting text with |gq| and when text
641                         goes over 'textwidth' in Insert mode.
642 'formatlistpat'         pattern to recognize a numbered list for formatting.
643                         (idea by Hugo Haas)
644 'fsync'                 Whether fsync() is called after writing a file.
645                         (Ciaran McCreesh)
646 'guitablabel'           expression for text to display in GUI tab page label
647 'guitabtooltip'         expression for text to display in GUI tab page tooltip
648 'macatsui'              Mac: use ATSUI text display functions
649 'maxcombine'            maximum number of combining characters displayed
650 'maxmempattern'         maximum amount of memory to use for pattern matching
651 'mkspellmem'            parameters for |:mkspell| memory use
652 'mzquantum'             Time in msec to schedule MzScheme threads.
653 'numberwidth'           Minimal width of the space used for the 'number' and
654                         'relativenumber' option. (Emmanuel Renieris)
655 'omnifunc'              The name of the function used for omni completion.
656 'operatorfunc'          function to be called for |g@| operator
657 'printmbcharset'        CJK character set to be used for :hardcopy
658 'printmbfont'           font names to be used for CJK output of :hardcopy
659 'pumheight'             maximum number of items to show in the popup menu
660 'quoteescape'           Characters used to escape quotes inside a string.
661                         Used for the a", a' and a` text objects. |a'|
662 'shelltemp'             whether to use a temp file or pipes for shell commands
663 'showtabline'           whether to show the tab pages line
664 'spell'                 switch spell checking on/off
665 'spellcapcheck'         pattern to locate the end of a sentence
666 'spellfile'             file where good and wrong words are added
667 'spelllang'             languages to check spelling for
668 'spellsuggest'          methods for spell suggestions
669 'synmaxcol'             maximum column to look for syntax items; avoids very
670                         slow redrawing when there are very long lines
671 'tabline'               expression for text to display in the tab pages line
672 'tabpagemax'            maximum number of tab pages to open for |-p|
673 'verbosefile'           Log messages in a file.
674 'wildoptions'           "tagfile" value enables listing the file name of
675                         matching tags for CTRL-D command line completion.
676                         (based on an idea from Yegappan Lakshmanan)
677 'winfixwidth'           window with fixed width, similar to 'winfixheight'
680 Ex commands: ~
682 Win32: The ":winpos" command now also works in the console. (Vipin Aravind)
684 |:startreplace|         Start Replace mode. (Charles Campbell)
685 |:startgreplace|        Start Virtual Replace mode.
687 |:0file|                Removes the name of the buffer. (Charles Campbell)
689 |:diffoff|              Switch off diff mode in the current window or in all
690                         windows.
692 |:delmarks|             Delete marks.
694 |:exusage|              Help for Ex commands (Nvi command).
695 |:viusage|              Help for Vi commands (Nvi command).
697 |:sort|                 Sort lines in the buffer without depending on an
698                         external command. (partly by Bryce Wagner)
700 |:vimgrep|              Internal grep command, search for a pattern in files.
701 |:vimgrepadd|           Like |:vimgrep| but don't make a new list.
703 |:caddfile|             Add error messages to an existing quickfix list
704                         (Yegappan Lakshmanan).
705 |:cbuffer|              Read error lines from a buffer. (partly by Yegappan
706                         Lakshmanan)
707 |:cgetbuffer|           Create a quickfix list from a buffer but don't jump to
708                         the first error.
709 |:caddbuffer|           Add errors from the current buffer to the quickfix
710                         list.
711 |:cexpr|                Read error messages from a Vim expression (Yegappan
712                         Lakshmanan).
713 |:caddexpr|             Add error messages from a Vim expression to an
714                         existing quickfix list. (Yegappan Lakshmanan).
715 |:cgetexpr|             Create a quickfix list from a Vim expression, but
716                         don't jump to the first error. (Yegappan Lakshmanan).
718 |:lfile|                Like |:cfile| but use the location list.
719 |:lgetfile|             Like |:cgetfile| but use the location list.
720 |:laddfile|             Like |:caddfile| but use the location list.
721 |:lbuffer|              Like |:cbuffer| but use the location list.
722 |:lgetbuffer|           Like |:cgetbuffer| but use the location list.
723 |:laddbuffer|           Like |:caddbuffer| but use the location list.
724 |:lexpr|                Like |:cexpr| but use the location list.
725 |:lgetexpr|             Like |:cgetexpr| but use the location list.
726 |:laddexpr|             Like |:caddexpr| but use the location list.
727 |:ll|                   Like |:cc| but use the location list.
728 |:llist|                Like |:clist| but use the location list.
729 |:lnext|                Like |:cnext| but use the location list.
730 |:lprevious|            Like |:cprevious| but use the location list.
731 |:lNext|                Like |:cNext| but use the location list.
732 |:lfirst|               Like |:cfirst| but use the location list.
733 |:lrewind|              Like |:crewind| but use the location list.
734 |:llast|                Like |:clast| but use the location list.
735 |:lnfile|               Like |:cnfile| but use the location list.
736 |:lpfile|               Like |:cpfile| but use the location list.
737 |:lNfile|               Like |:cNfile| but use the location list.
738 |:lolder|               Like |:colder| but use the location list.
739 |:lnewer|               Like |:cnewer| but use the location list.
740 |:lwindow|              Like |:cwindow| but use the location list.
741 |:lopen|                Like |:copen| but use the location list.
742 |:lclose|               Like |:cclose| but use the location list.
743 |:lmake|                Like |:make| but use the location list.
744 |:lgrep|                Like |:grep| but use the location list.
745 |:lgrepadd|             Like |:grepadd| but use the location list.
746 |:lvimgrep|             Like |:vimgrep| but use the location list.
747 |:lvimgrepadd|          Like |:vimgrepadd| but use the location list.
748 |:lhelpgrep|            Like |:helpgrep| but use the location list.
749 |:lcscope|              Like |:cscope| but use the location list.
750 |:ltag|                 Jump to a tag and add matching tags to a location list.
752 |:undojoin|             Join a change with the previous undo block.
753 |:undolist|             List the leafs of the undo tree.
755 |:earlier|              Go back in time for changes in the text.
756 |:later|                Go forward in time for changes in the text.
758 |:for|                  Loop over a |List|.
759 |:endfor|
761 |:lockvar|              Lock a variable, prevents it from being changed.
762 |:unlockvar|            Unlock a locked variable.
764 |:mkspell|              Create a Vim spell file.
765 |:spellgood|            Add a word to the list of good words.
766 |:spellwrong|           Add a word to the list of bad words
767 |:spelldump|            Dump list of good words.
768 |:spellinfo|            Show information about the spell files used.
769 |:spellrepall|          Repeat a spelling correction for the whole buffer.
770 |:spellundo|            Remove a word from list of good and bad words.
772 |:mzscheme|             Execute MzScheme commands.
773 |:mzfile|               Execute an MzScheme script file.
775 |:nbkey|                Pass a key to NetBeans for processing.
777 |:profile|              Commands for Vim script profiling.
778 |:profdel|              Stop profiling for specified items.
780 |:smap|                 Select mode mapping.
781 |:smapclear|
782 |:snoremap|
783 |:sunmap|
785 |:xmap|                 Visual mode mapping, not used for Select mode.
786 |:xmapclear|
787 |:xnoremap|
788 |:xunmap|
790 |:smenu|                Select mode menu.
791 |:snoremenu|
792 |:sunmenu|
794 |:xmenu|                Visual mode menu, not used for Select mode.
795 |:xnoremenu|
796 |:xunmenu|
798 |:tabclose|             Close the current tab page.
799 |:tabdo|                Perform a command in every tab page.
800 |:tabedit|              Edit a file in a new tab page.
801 |:tabnew|               Open a new tab page.
802 |:tabfind|              Search for a file and open it in a new tab page.
803 |:tabnext|              Go to the next tab page.
804 |:tabprevious|          Go to the previous tab page.
805 |:tabNext|              Go to the previous tab page.
806 |:tabfirst|             Go to the first tab page.
807 |:tabrewind|            Go to the first tab page.
808 |:tablast|              Go to the last tab page.
809 |:tabmove|              Move the current tab page elsewhere.
810 |:tabonly|              Close all other tab pages.
811 |:tabs|                 List the tab pages and the windows they contain.
813 Ex command modifiers: ~
815 |:keepalt|              Do not change the alternate file.
817 |:noautocmd|            Do not trigger autocommand events.
819 |:sandbox|              Execute a command in the sandbox.
821 |:tab|                  When opening a new window create a new tab page.
824 Ex command arguments: ~
826 |++bad|                 Specify what happens with characters that can't be
827                         converted and illegal bytes. (code example by Yasuhiro
828                         Matsumoto)
829                         Also, when a conversion error occurs or illegal bytes
830                         are found include the line number in the error
831                         message.
834 New and extended functions: ~
836 |add()|                 append an item to a List
837 |append()|              append List of lines to the buffer
838 |argv()|                without an argument return the whole argument list
839 |browsedir()|           dialog to select a directory
840 |bufnr()|               takes an extra argument: create buffer
841 |byteidx()|             index of a character (Ilya Sher)
842 |call()|                call a function with List as arguments
843 |changenr()|            number of current change
844 |complete()|            set matches for Insert mode completion
845 |complete_add()|        add match for 'completefunc'
846 |complete_check()|      check for key pressed, for 'completefunc'
847 |copy()|                make a shallow copy of a List or Dictionary
848 |count()|               count nr of times a value is in a List or Dictionary
849 |cursor()|              also accepts an offset for 'virtualedit', and
850                         the first argument can be a list: [lnum, col, off]
851 |deepcopy()|            make a full copy of a List or Dictionary
852 |diff_filler()|         returns number of filler lines above line {lnum}.
853 |diff_hlID()|           returns the highlight ID for diff mode
854 |empty()|               check if List or Dictionary is empty
855 |eval()|                evaluate {string} and return the result
856 |extend()|              append one List to another or add items from one
857                         Dictionary to another
858 |feedkeys()|            put characters in the typeahead buffer
859 |filter()|              remove selected items from a List or Dictionary
860 |finddir()|             find a directory in 'path'
861 |findfile()|            find a file in 'path' (Johannes Zellner)
862 |foldtextresult()|      the text displayed for a closed fold at line "lnum"
863 |function()|            make a Funcref out of a function name
864 |garbagecollect()|      cleanup unused |Lists| and |Dictionaries| with circular
865                         references
866 |get()|                 get an item from a List or Dictionary
867 |getbufline()|          get a list of lines from a specified buffer
868                         (Yegappan Lakshmanan)
869 |getcmdtype()|          return the current command-line type
870                         (Yegappan Lakshmanan)
871 |getfontname()|         get actual font name being used
872 |getfperm()|            get file permission string (Nikolai Weibull)
873 |getftype()|            get type of file (Nikolai Weibull)
874 |getline()|             with second argument: get List with buffer lines
875 |getloclist()|          list of location list items (Yegappan Lakshmanan)
876 |getpos()|              return a list with the position of cursor, mark, etc.
877 |getqflist()|           list of quickfix errors (Yegappan Lakshmanan)
878 |getreg()|              get contents of a register
879 |gettabwinvar()|        get variable from window in specified tab page.
880 |has_key()|             check whether a key appears in a Dictionary
881 |haslocaldir()|         check if current window used |:lcd|
882 |hasmapto()|            check for a mapping to a string
883 |index()|               index of item in List
884 |inputlist()|           prompt the user to make a selection from a list
885 |insert()|              insert an item somewhere in a List
886 |islocked()|            check if a variable is locked
887 |items()|               get List of Dictionary key-value pairs
888 |join()|                join List items into a String
889 |keys()|                get List of Dictionary keys
890 |len()|                 number of items in a List or Dictionary
891 |map()|                 change each List or Dictionary item
892 |maparg()|              extra argument: use abbreviation
893 |mapcheck()|            extra argument: use abbreviation
894 |match()|               extra argument: count
895 |matcharg()|            return arguments of |:match| command
896 |matchend()|            extra argument: count
897 |matchlist()|           list with match and submatches of a pattern in a string
898 |matchstr()|            extra argument: count
899 |max()|                 maximum value in a List or Dictionary
900 |min()|                 minimum value in a List or Dictionary
901 |mkdir()|               create a directory
902 |pathshorten()|         reduce directory names to a single character
903 |printf()|              format text
904 |pumvisible()|          check whether the popup menu is displayed
905 |range()|               generate a List with numbers
906 |readfile()|            read a file into a list of lines
907 |reltime()|             get time value, possibly relative
908 |reltimestr()|          turn a time value into a string
909 |remove()|              remove one or more items from a List or Dictionary
910 |repeat()|              repeat "expr" "count" times (Christophe Poucet)
911 |reverse()|             reverse the order of a List
912 |search()|              extra argument:
913 |searchdecl()|          search for declaration of variable
914 |searchpair()|          extra argument: line to stop searching
915 |searchpairpos()|       return a List with the position of the match
916 |searchpos()|           return a List with the position of the match
917 |setloclist()|          modify a location list (Yegappan Lakshmanan)
918 |setpos()|              set cursor or mark to a position
919 |setqflist()|           modify a quickfix list (Yegappan Lakshmanan)
920 |settabwinvar()|        set variable in window of specified tab page
921 |sort()|                sort a List
922 |soundfold()|           get the sound-a-like equivalent of a word
923 |spellbadword()|        get a badly spelled word
924 |spellsuggest()|        get suggestions for correct spelling
925 |split()|               split a String into a List
926 |str2nr()|              convert a string to a number, base 8, 10 or 16
927 |stridx()|              extra argument: start position
928 |strridx()|             extra argument: start position
929 |string()|              string representation of a List or Dictionary
930 |system()|              extra argument: filters {input} through a shell command
931 |tabpagebuflist()|      List of buffers in a tab page
932 |tabpagenr()|           number of current or last tab page
933 |tabpagewinnr()|        window number in a tab page
934 |tagfiles()|            List with tags file names
935 |taglist()|             get list of matching tags (Yegappan Lakshmanan)
936 |tr()|                  translate characters (Ron Aaron)
937 |values()|              get List of Dictionary values
938 |winnr()|               takes an argument: what window to use
939 |winrestview()|         restore the view of the current window
940 |winsaveview()|         save the view of the current window
941 |writefile()|           write a list of lines into a file
943 User defined functions can now be loaded automatically from the "autoload"
944 directory in 'runtimepath'.  See |autoload-functions|.
947 New Vim variables: ~
949 |v:insertmode|          used for |InsertEnter| and |InsertChange| autocommands
950 |v:val|                 item value in a |map()| or |filter()| function
951 |v:key|                 item key in a |map()| or |filter()| function
952 |v:profiling|           non-zero after a ":profile start" command
953 |v:fcs_reason|          the reason why |FileChangedShell| was triggered
954 |v:fcs_choice|          what should happen after |FileChangedShell|
955 |v:beval_bufnr|         buffer number for 'balloonexpr'
956 |v:beval_winnr|         window number for 'balloonexpr'
957 |v:beval_lnum|          line number for 'balloonexpr'
958 |v:beval_col|           column number for 'balloonexpr'
959 |v:beval_text|          text under the mouse pointer for 'balloonexpr'
960 |v:scrollstart|         what caused the screen to be scrolled up
961 |v:swapname|            name of the swap file for the |SwapExists| event
962 |v:swapchoice|          what to do for an existing swap file
963 |v:swapcommand|         command to be executed after handling |SwapExists|
964 |v:char|                argument for evaluating 'formatexpr'
967 New autocommand events: ~
969 |ColorScheme|           after loading a color scheme
971 |CursorHoldI|           the user doesn't press a key for a while in Insert mode
972 |CursorMoved|           the cursor was moved in Normal mode
973 |CursorMovedI|          the cursor was moved in Insert mode
975 |FileChangedShellPost|  after handling a file changed outside of Vim
977 |InsertEnter|           starting Insert or Replace mode
978 |InsertChange|          going from Insert to Replace mode or back
979 |InsertLeave|           leaving Insert or Replace mode
981 |MenuPopup|             just before showing popup menu
983 |QuickFixCmdPre|        before :make, :grep et al. (Ciaran McCreesh)
984 |QuickFixCmdPost|       after :make, :grep et al. (Ciaran McCreesh)
986 |SessionLoadPost|       after loading a session file. (Yegappan Lakshmanan)
988 |ShellCmdPost|          after executing a shell command
989 |ShellFilterPost|       after filtering with a shell command
991 |SourcePre|             before sourcing a Vim script
993 |SpellFileMissing|      when a spell file can't be found
995 |SwapExists|            found existing swap file when editing a file
997 |TabEnter|              just after entering a tab page
998 |TabLeave|              just before leaving a tab page
1000 |VimResized|            after the Vim window size changed (Yakov Lerner)
1003 New highlight groups: ~
1005 Pmenu                   Popup menu: normal item |hl-Pmenu|
1006 PmenuSel                Popup menu: selected item |hl-PmenuSel|
1007 PmenuThumb              Popup menu: scrollbar |hl-PmenuThumb|
1008 PmenuSbar               Popup menu: Thumb of the scrollbar |hl-PmenuSbar|
1010 TabLine                 tab pages line, inactive label |hl-TabLine|
1011 TabLineSel              tab pages line, selected label |hl-TabLineSel|
1012 TabLineFill             tab pages line, filler |hl-TabLineFill|
1014 SpellBad                badly spelled word |hl-SpellBad|
1015 SpellCap                word with wrong caps |hl-SpellCap|
1016 SpellRare               rare word |hl-SpellRare|
1017 SpellLocal              word only exists in other region |hl-SpellLocal|
1019 CursorColumn            'cursorcolumn' |hl-CursorColumn|
1020 CursorLine              'cursorline' |hl-CursorLine|
1022 MatchParen              matching parens |pi_paren.txt| |hl-MatchParen|
1025 New items in search patterns: ~
1026 |/\%d| \%d123           search for character with decimal number
1027 |/\]|  [\d123]          idem, in a collection
1028 |/\%o| \%o103           search for character with octal number
1029 |/\]|  [\o1o3]          idem, in a collection
1030 |/\%x| \%x1a            search for character with 2 pos. hex number
1031 |/\]|  [\x1a]           idem, in a collection
1032 |/\%u| \%u12ab          search for character with 4 pos. hex number
1033 |/\]|  [\u12ab]         idem, in a collection
1034 |/\%U| \%U1234abcd      search for character with 8 pos. hex number
1035 |/\]|  [\U1234abcd]     idem, in a collection
1036                             (The above partly by Ciaran McCreesh)
1038 |/[[=| [[=a=]]          an equivalence class (only for latin1 characters)
1039 |/[[.| [[.a.]]          a collation element (only works with single char)
1041 |/\%'m|  \%'m           match at mark m
1042 |/\%<'m| \%<'m          match before mark m
1043 |/\%>'m| \%>'m          match after mark m
1044 |/\%V|   \%V            match in Visual area
1046 Nesting |/multi| items no longer is an error when an empty match is possible.
1048 It is now possible to use \{0}, it matches the preceding atom zero times.  Not
1049 useful, just for compatibility.
1052 New Syntax/Indent/FTplugin files: ~
1054 Moved all the indent settings from the filetype plugin to the indent file.
1055 Implemented b:undo_indent to undo indent settings when setting 'filetype' to a
1056 different value.
1058 a2ps syntax and ftplugin file. (Nikolai Weibull)
1059 ABAB/4 syntax file. (Marius van Wyk)
1060 alsaconf ftplugin file. (Nikolai Weibull)
1061 AppendMatchGroup ftplugin file. (Dave Silvia)
1062 arch ftplugin file. (Nikolai Weibull)
1063 asterisk and asteriskvm syntax file. (Tilghman Lesher)
1064 BDF ftplugin file. (Nikolai Weibull)
1065 BibTeX indent file. (Dorai Sitaram)
1066 BibTeX Bibliography Style syntax file. (Tim Pope)
1067 BTM ftplugin file. (Bram Moolenaar)
1068 calendar ftplugin file. (Nikolai Weibull)
1069 Changelog indent file. (Nikolai Weibull)
1070 ChordPro syntax file. (Niels Bo Andersen)
1071 Cmake indent and syntax file. (Andy Cedilnik)
1072 conf ftplugin file. (Nikolai Weibull)
1073 context syntax and ftplugin file. (Nikolai Weibull)
1074 CRM114 ftplugin file. (Nikolai Weibull)
1075 cvs RC ftplugin file. (Nikolai Weibull)
1076 D indent file. (Jason Mills)
1077 Debian Sources.list syntax file. (Matthijs Mohlmann)
1078 dictconf and dictdconf syntax, indent and ftplugin files. (Nikolai Weibull)
1079 diff ftplugin file. (Bram Moolenaar)
1080 dircolors ftplugin file. (Nikolai Weibull)
1081 django and htmldjango syntax file. (Dave Hodder)
1082 doxygen syntax file. (Michael Geddes)
1083 elinks ftplugin file. (Nikolai Weibull)
1084 eterm ftplugin file. (Nikolai Weibull)
1085 eviews syntax file. (Vaidotas Zemlys)
1086 fetchmail RC ftplugin file. (Nikolai Weibull)
1087 FlexWiki syntax and ftplugin file. (George Reilly)
1088 Generic indent file. (Dave Silvia)
1089 gpg ftplugin file. (Nikolai Weibull)
1090 gretl syntax file. (Vaidotas Zemlys)
1091 groovy syntax file. (Alessio Pace)
1092 group syntax and ftplugin file. (Nikolai Weibull)
1093 grub ftplugin file. (Nikolai Weibull)
1094 Haskell ftplugin file. (Nikolai Weibull)
1095 help ftplugin file. (Nikolai Weibull)
1096 indent ftplugin file. (Nikolai Weibull)
1097 Javascript ftplugin file. (Bram Moolenaar)
1098 Kconfig ftplugin and syntax file. (Nikolai Weibull)
1099 ld syntax, indent and ftplugin file. (Nikolai Weibull)
1100 lftp ftplugin file. (Nikolai Weibull)
1101 libao config ftplugin file. (Nikolai Weibull)
1102 limits syntax and ftplugin file. (Nikolai Weibull)
1103 Lisp indent file. (Sergey Khorev)
1104 loginaccess and logindefs syntax and ftplugin file. (Nikolai Weibull)
1105 m4 ftplugin file. (Nikolai Weibull)
1106 mailaliases syntax file. (Nikolai Weibull)
1107 mailcap ftplugin file. (Nikolai Weibull)
1108 manconf syntax and ftplugin file. (Nikolai Weibull)
1109 matlab ftplugin file. (Jake Wasserman)
1110 Maxima syntax file. (Robert Dodier)
1111 MGL syntax file. (Gero Kuhlmann)
1112 modconf ftplugin file. (Nikolai Weibull)
1113 mplayer config ftplugin file. (Nikolai Weibull)
1114 Mrxvtrc syntax and ftplugin file. (Gautam Iyer)
1115 MuPAD source syntax, indent and ftplugin. (Dave Silvia)
1116 mutt RC ftplugin file. (Nikolai Weibull)
1117 nanorc syntax and ftplugin file. (Nikolai Weibull)
1118 netrc ftplugin file. (Nikolai Weibull)
1119 pamconf syntax and ftplugin file. (Nikolai Weibull)
1120 Pascal indent file. (Neil Carter)
1121 passwd syntax and ftplugin file. (Nikolai Weibull)
1122 PHP compiler plugin. (Doug Kearns)
1123 pinfo ftplugin file. (Nikolai Weibull)
1124 plaintex syntax and ftplugin files. (Nikolai Weibull, Benji Fisher)
1125 procmail ftplugin file. (Nikolai Weibull)
1126 prolog ftplugin file. (Nikolai Weibull)
1127 protocols syntax and ftplugin file. (Nikolai Weibull)
1128 quake ftplugin file. (Nikolai Weibull)
1129 racc syntax and ftplugin file. (Nikolai Weibull)
1130 readline ftplugin file. (Nikolai Weibull)
1131 rhelp syntax file. (Johannes Ranke)
1132 rnoweb syntax file. (Johannes Ranke)
1133 Relax NG compact ftplugin file. (Nikolai Weibull)
1134 Scheme indent file. (Sergey Khorev)
1135 screen ftplugin file. (Nikolai Weibull)
1136 sensors syntax and ftplugin file. (Nikolai Weibull)
1137 services syntax and ftplugin file. (Nikolai Weibull)
1138 setserial syntax and ftplugin file. (Nikolai Weibull)
1139 sieve syntax and ftplugin file. (Nikolai Weibull)
1140 SiSU syntax file (Ralph Amissah)
1141 Sive syntax file. (Nikolai Weibull)
1142 slp config, reg and spi syntax and ftplugin files. (Nikolai Weibull)
1143 SML indent file. (Saikat Guha)
1144 SQL anywhere syntax and indent file. (David Fishburn)
1145 SQL indent file.
1146 SQL-Informix syntax file. (Dean L Hill)
1147 SQL: Handling of various variants. (David Fishburn)
1148 sshconfig ftplugin file. (Nikolai Weibull)
1149 Stata and SMCL syntax files. (Jeff Pitblado)
1150 sudoers ftplugin file. (Nikolai Weibull)
1151 sysctl syntax and ftplugin file. (Nikolai Weibull)
1152 terminfo ftplugin file. (Nikolai Weibull)
1153 trustees syntax file. (Nima Talebi)
1154 Vera syntax file. (David Eggum)
1155 udev config, permissions and rules syntax and ftplugin files. (Nikolai Weibull)
1156 updatedb syntax and ftplugin file. (Nikolai Weibull)
1157 VHDL indent file (Gerald Lai)
1158 WSML syntax file. (Thomas Haselwanter)
1159 Xdefaults ftplugin file. (Nikolai Weibull)
1160 XFree86 config ftplugin file. (Nikolai Weibull)
1161 xinetd syntax, indent and ftplugin file. (Nikolai Weibull)
1162 xmodmap ftplugin file. (Nikolai Weibull)
1163 Xquery syntax file. (Jean-Marc Vanel)
1164 xsd (XML schema) indent file.
1165 YAML ftplugin file. (Nikolai Weibull)
1166 Zsh ftplugin file. (Nikolai Weibull)
1169 New Keymaps: ~
1171 Sinhala (Sri Lanka) (Harshula Jayasuriya)
1172 Tamil in TSCII encoding (Yegappan Lakshmanan)
1173 Greek in cp737 (Panagiotis Louridas)
1174 Polish-slash (HS6_06)
1175 Ukrainian-jcuken (Anatoli Sakhnik)
1176 Kana (Edward L. Fox)
1179 New message translations: ~
1181 The Ukrainian messages are now also available in cp1251.
1182 Vietnamese message translations and menu. (Phan Vinh Thinh)
1185 Others: ~
1187 The |:read| command has the |++edit| argument.  This means it will use the
1188 detected 'fileformat', 'fileencoding' and other options for the buffer.  This
1189 also fixes the problem that editing a compressed file didn't set these
1190 options.
1192 The Netbeans interface was updated for Sun Studio 10.  The protocol number
1193 goes from 2.2 to 2.3. (Gordon Prieur)
1195 Mac: When starting up Vim will load the $VIMRUNTIME/macmap.vim script to
1196 define default command-key mappings. (mostly by Benji Fisher)
1198 Mac: Add the selection type to the clipboard, so that Block, line and
1199 character selections can be used between two Vims. (Eckehard Berns)
1200 Also fixes the problem that setting 'clipboard' to "unnamed" breaks using
1201 "yyp".
1203 Mac: GUI font selector. (Peter Cucka)
1205 Mac: support for multi-byte characters. (Da Woon Jung)
1206 This doesn't always work properly.  If you see text drawing problems try
1207 switching the 'macatsui' option off.
1209 Mac: Support the xterm mouse in the non-GUI version.
1211 Mac: better integration with Xcode.  Post a fake mouse-up event after the odoc
1212 event and the drag receive handler to work around a stall after Vim loads a
1213 file.  Fixed an off-by-one line number error. (Da Woon Jung)
1215 Mac: When started from Finder change directory to the file being edited or the
1216 user home directory.
1218 Added the t_SI and t_EI escape sequences for starting and ending Insert mode.
1219 To be used to set the cursor shape to a bar or a block.  No default values,
1220 they are not supported by termcap/terminfo.
1222 GUI font selector for Motif. (Marcin Dalecki)
1224 Nicer toolbar buttons for Motif. (Marcin Dalecki)
1226 Mnemonics for the Motif find/replace dialog. (Marcin Dalecki)
1228 Included a few improvements for Motif from Marcin Dalecki.  Draw label
1229 contents ourselves to make them handle fonts in a way configurable by Vim and
1230 a bit less dependent on the X11 font management.
1232 Autocommands can be defined local to a buffer.  This means they will also work
1233 when the buffer does not have a name or no specific name.  See
1234 |autocmd-buflocal|.  (Yakov Lerner)
1236 For xterm most combinations of modifiers with function keys are recognized.
1237 |xterm-modifier-keys|
1239 When 'verbose' is set the output of ":highlight" will show where a highlight
1240 item was last set.
1241 When 'verbose' is set the output of the ":map", ":abbreviate", ":command",
1242 ":function" and ":autocmd" commands will show where it was last defined.
1243 (Yegappan Lakshmanan)
1245 ":function /pattern" lists functions matching the pattern.
1247 "1gd" can be used like "gd" but ignores matches in a {} block that ends before
1248 the cursor position.  Likewise for "1gD" and "gD".
1250 'scrolljump' can be set to a negative number to scroll a percentage of the
1251 window height.
1253 The |v:scrollstart| variable has been added to help find the location in
1254 your script that causes the hit-enter prompt.
1256 To make it possible to handle the situation that a file is being edited that
1257 is already being edited by another Vim instance, the |SwapExists| event has
1258 been added.  The |v:swapname|, |v:swapchoice| and |v:swapcommand| variables
1259 can be used, for example to use the |client-server| functionality to bring the
1260 other Vim to the foreground.
1261 When starting Vim with a "-t tag" argument, there is an existing swapfile and
1262 the user selects "quit" or "abort" then exit Vim.
1264 Undo now also restores the '< and '> marks.  "gv" selects the same area as
1265 before the change and undo.
1267 When editing a search pattern for a "/" or "?" command and 'incsearch' is set
1268 CTRL-L can be used to add a character from the current match.  CTRL-R CTRL-W
1269 will add a word, but exclude the part of the word that was already typed.
1271 Ruby interface: add line number methods. (Ryan Paul)
1273 The $MYVIMRC environment variable is set to the first found vimrc file.
1274 The $MYGVIMRC environment variable is set to the first found gvimrc file.
1276 ==============================================================================
1277 IMPROVEMENTS                                            *improvements-7*
1279 ":helpgrep" accepts a language specifier after the pattern: "pat@it".
1281 Moved the help for printing to a separate help file.  It's quite a lot now.
1283 When doing completion for ":!cmd", ":r !cmd" or ":w !cmd" executable files are
1284 found in $PATH instead of looking for ordinary files in the current directory.
1286 When ":silent" is used and a backwards range is given for an Ex command the
1287 range is swapped automatically instead of asking if that is OK.
1289 The pattern matching code was changed from a recursive function to an
1290 iterative mechanism.  This avoids out-of-stack errors.  State is stored in
1291 allocated memory, running out of memory can always be detected.  Allows
1292 matching more complex things, but Vim may seem to hang while doing that.
1294 Previously some options were always evaluated in the |sandbox|.  Now that only
1295 happens when the option was set from a modeline or in secure mode.  Applies to
1296 'balloonexpr', 'foldexpr', 'foldtext' and 'includeexpr'. (Sumner Hayes)
1298 Some commands and expressions could have nasty side effects, such as using
1299 CTRL-R = while editing a search pattern and the expression invokes a function
1300 that jumps to another window.  The |textlock| has been added to prevent this
1301 from happening.
1303 ":breakadd here" and ":breakdel here" can be used to set or delete a
1304 breakpoint at the cursor.
1306 It is now possible to define a function with: >
1307         :exe "func Test()\n ...\n endfunc"
1309 The tutor was updated to make it simpler to use and text was added to explain
1310 a few more important commands.  Used ideas from Gabriel Zachmann.
1312 Unix: When libcall() fails obtain an error message with dlerror() and display
1313 it. (Johannes Zellner)
1315 Mac and Cygwin: When editing an existing file make the file name the same case
1316 of the edited file.  Thus when typing ":e os_UNIX.c" the file name becomes
1317 "os_unix.c".
1319 Added "nbsp" in 'listchars'. (David Blanchet)
1321 Added the "acwrite" value for the 'buftype' option.  This is for a buffer that
1322 does not have a name that refers to a file and is written with BufWriteCmd
1323 autocommands.
1325 For lisp indenting and matching parenthesis: (Sergey Khorev)
1326 - square brackets are recognized properly
1327 - #\(, #\), #\[ and #\] are recognized as character literals
1328 - Lisp line comments (delimited by semicolon) are recognized
1330 Added the "count" argument to match(), matchend() and matchstr(). (Ilya Sher)
1332 winnr() takes an optional "$" or "#" argument.  (Nikolai Weibull, Yegappan
1333 Lakshmanan)
1335 Added 's' flag to search(): set ' mark if cursor moved. (Yegappan Lakshmanan)
1336 Added 'n' flag to search(): don't move the cursor. (Nikolai Weibull)
1337 Added 'c' flag to search(): accept match at the cursor.
1338 Added 'e' flag to search(): move to end of the match. (Benji Fisher)
1339 Added 'p' flag to search(): return number of sub-pattern. (Benji Fisher)
1340 These also apply to searchpos(), searchpair() and searchpairpos().
1342 The search() and searchpair() functions have an extra argument to specify
1343 where to stop searching.  Speeds up searches that should not continue too far.
1345 When uncompressing fails in the gzip plugin, give an error message but don't
1346 delete the raw text.  Helps if the file has a .gz extension but is not
1347 actually compressed. (Andrew Pimlott)
1349 When C, C++ or IDL syntax is used, may additionally load doxygen syntax.
1350 (Michael Geddes)
1352 Support setting 'filetype' and 'syntax' to "aaa.bbb" for "aaa" plus "bbb"
1353 filetype or syntax.
1355 The ":registers" command now displays multi-byte characters properly.
1357 VMS: In the usage message mention that a slash can be used to make a flag
1358 upper case.  Add color support to the builtin vt320 terminal codes.
1359 (Zoltan Arpadffy)
1361 For the '%' item in 'viminfo', allow a number to set a maximum for the number
1362 of buffers.
1364 For recognizing the file type: When a file looks like a shell script, check
1365 for an "exec" command that starts the tcl interpreter. (suggested by Alexios
1366 Zavras)
1368 Support conversion between utf-8 and latin9 (iso-8859-15) internally, so that
1369 digraphs still work when iconv is not available.
1371 When a session file is loaded while editing an unnamed, empty buffer that
1372 buffer is wiped out.  Avoids that there is an unused buffer in the buffer
1373 list.
1375 Win32: When libintl.dll supports bind_textdomain_codeset(), use it.
1376 (NAKADAIRA Yukihiro)
1378 Win32: Vim was not aware of hard links on NTFS file systems.  These are
1379 detected now for when 'backupcopy' is "auto".  Also fixed a bogus "file has
1380 been changed since reading it" error for links.
1382 When foldtext() finds no text after removing the comment leader, use the
1383 second line of the fold.  Helps for C-style /* */ comments where the first
1384 line is just "/*".
1386 When editing the same file from two systems (e.g., Unix and MS-Windows) there
1387 mostly was no warning for an existing swap file, because the name of the
1388 edited file differs (e.g., y:\dir\file vs /home/me/dir/file).  Added a flag to
1389 the swap file to indicate it is in the same directory as the edited file.  The
1390 used path then doesn't matter and the check for editing the same file is much
1391 more reliable.
1393 Unix: When editing a file through a symlink the swap file would use the name
1394 of the symlink.  Now use the name of the actual file, so that editing the same
1395 file twice is detected. (suggestions by Stefano Zacchiroli and James Vega)
1397 Client-server communication now supports 'encoding'.  When setting 'encoding'
1398 in a Vim server to "utf-8", and using "vim --remote fname" in a console,
1399 "fname" is converted from the console encoding to utf-8.  Also allows Vims
1400 with different 'encoding' settings to exchange messages.
1402 Internal: Changed ga_room into ga_maxlen, so that it doesn't need to be
1403 incremented/decremented each time.
1405 When a register is empty it is not stored in the viminfo file.
1407 Removed the tcltags script, it's obsolete.
1409 ":redir @*>>" and ":redir @+>>" append to the clipboard.  Better check for
1410 invalid characters after the register name. |:redir|
1412 ":redir => variable" and ":redir =>> variable" write or append to a variable.
1413 (Yegappan Lakshmanan) |:redir|
1415 ":redir @{a-z}>>" appends to register a to z. (Yegappan Lakshmanan)
1417 The 'verbosefile' option can be used to log messages in a file.  Verbose
1418 messages are not displayed then.  The "-V{filename}" argument can be used to
1419 log startup messages.
1421 ":let g:" lists global variables.
1422 ":let b:" lists buffer-local variables.
1423 ":let w:" lists window-local variables.
1424 ":let v:" lists Vim variables.
1426 The stridx() and strridx() functions take a third argument, where to start
1427 searching.  (Yegappan Lakshmanan)
1429 The getreg() function takes an extra argument to be able to get the expression
1430 for the '=' register instead of the result of evaluating it.
1432 The setline() function can take a List argument to set multiple lines.  When
1433 the line number is just below the last line the line is appended.
1435 g CTRL-G also shows the number of characters if it differs from the number of
1436 bytes.
1438 Completion for ":debug" and entering an expression for the '=' register.  Skip
1439 ":" between range and command name. (Peter winters)
1441 CTRL-Q in Insert mode now works like CTRL-V by default.  Previously it was
1442 ignored.
1444 When "beep" is included in 'debug' a function or script that causes a beep
1445 will result in a message with the source of the error.
1447 When completing buffer names, match with "\(^\|[\/]\)" instead of "^", so that
1448 ":buf stor<Tab>" finds both "include/storage.h" and "storage/main.c".
1450 To count items (pattern matches) without changing the buffer the 'n' flag has
1451 been added to |:substitute|.  See |count-items|.
1453 In a |:substitute| command the \u, \U, \l and \L items now also work for
1454 multi-byte characters.
1456 The "screen.linux" $TERM name is recognized to set the default for
1457 'background' to "dark". (Ciaran McCreesh)  Also for "cygwin" and "putty".
1459 The |FileChangedShell| autocommand event can now use the |v:fcs_reason|
1460 variable that specifies what triggered the event.  |v:fcs_choice| can be used
1461 to reload the buffer or ask the user what to do.
1463 Not all modifiers were recognized for xterm function keys.  Added the
1464 possibility in term codes to end in ";*X" or "O*X", where X is any character
1465 and the * stands for the modifier code.
1466 Added the <xUp>, <xDown>, <xLeft> and <xRight> keys, to be able to recognize
1467 the two forms that xterm can send their codes in and still handle all possible
1468 modifiers.
1470 getwinvar() now also works to obtain a buffer-local option from the specified
1471 window.
1473 Added the "%s" item to 'errorformat'. (Yegappan Lakshmanan)
1474 Added the "%>" item to 'errorformat'.
1476 For 'errorformat' it was not possible to have a file name that contains the
1477 character that follows after "%f".  For example, in "%f:%l:%m" the file name
1478 could not contain ":".  Now include the first ":" where the rest of the
1479 pattern matches.  In the example a ":" not followed by a line number is
1480 included in the file name. (suggested by Emanuele Giaquinta)
1482 GTK GUI: use the GTK file dialog when it's available.  Mix from patches by
1483 Grahame Bowland and Evan Webb.
1485 Added ":scriptnames" to bugreport.vim, so that we can see what plugins were
1486 used.
1488 Win32: If the user changes the setting for the number of lines a scroll wheel
1489 click scrolls it is now used immediately.  Previously Vim would need to be
1490 restarted.
1492 When using @= in an expression the value is expression @= contains.  ":let @=
1493 = value" can be used to set the register contents.
1495 A ! can be added to ":popup" to have the popup menu appear at the mouse
1496 pointer position instead of the text cursor.
1498 The table with encodings has been expanded with many MS-Windows codepages,
1499 such as cp1250 and cp737, so that these can also be used on Unix without
1500 prepending "8bit-".
1501 When an encoding name starts with "microsoft-cp" ignore the "microsoft-" part.
1503 Added the "customlist" completion argument to a user-defined command.  The
1504 user-defined completion function should return the completion candidates as a
1505 Vim List and the returned results are not filtered by Vim. (Yegappan
1506 Lakshmanan)
1508 Win32: Balloons can have multiple lines if common controls supports it.
1509 (Sergey Khorev)
1511 For command-line completion the matches for various types of arguments are now
1512 sorted: user commands, variables, syntax names, etc.
1514 When no locale is set, thus using the "C" locale, Vim will work with latin1
1515 characters, using its own isupper()/toupper()/etc. functions.
1517 When using an rxvt terminal emulator guess the value of 'background' using the
1518 COLORFGBG environment variable. (Ciaran McCreesh)
1520 Also support t_SI and t_EI on Unix with normal features. (Ciaran McCreesh)
1522 When 'foldcolumn' is one then put as much info in it as possible.  This allows
1523 closing a fold with the mouse by clicking on the '-'.
1525 input() takes an optional completion argument to specify the type of
1526 completion supported for the input. (Yegappan Lakshmanan)
1528 "dp" works with more than two buffers in diff mode if there is only one where
1529 'modifiable' is set.
1531 The 'diffopt' option has three new values: "horizontal", "vertical" and
1532 "foldcolumn".
1534 When the 'include' option contains \zs the file name found is what is being
1535 matched from \zs to the end or \ze.  Useful to pass more to 'includeexpr'.
1537 Loading plugins on startup now supports subdirectories in the plugin
1538 directory. |load-plugins|
1540 In the foldcolumn always show the '+' for a closed fold, so that it can be
1541 opened easily.  It may overwrite another character, esp. if 'foldcolumn' is 1.
1543 It is now possible to get the W10 message again by setting 'readonly'.  Useful
1544 in the FileChangedRO autocommand when checking out the file fails.
1546 Unix: When open() returns EFBIG give an appropriate message.
1548 ":mksession" sets the SessionLoad variable to notify plugins.  A modeline is
1549 added to the session file to set 'filetype' to "vim".
1551 In the ATTENTION prompt put the "Delete it" choice before "Quit" to make it
1552 more logical.  (Robert Webb)
1554 When appending to a file while the buffer has no name the name of the appended
1555 file would be used for the current buffer.  But the buffer contents is
1556 actually different from the file content.  Don't set the file name, unless the
1557 'P' flag is present in 'cpoptions'.
1559 When starting to edit a new file and the directory for the file doesn't exist
1560 then Vim will report "[New DIRECTORY]" instead of "[New File] to give the user
1561 a hint that something might be wrong.
1563 Win32: Preserve the hidden attribute of the viminfo file.
1565 In Insert mode CTRL-A didn't keep the last inserted text when using CTRL-O and
1566 then a cursor key.  Now keep the previously inserted text if nothing is
1567 inserted after the CTRL-O.  Allows using CTRL-O commands to move the cursor
1568 without losing the last inserted text.
1570 The exists() function now supports checking for autocmd group definition
1571 and for supported autocommand events. (Yegappan Lakshmanan)
1573 Allow using ":global" in the sandbox, it doesn't do anything harmful by
1574 itself.
1576 ":saveas asdf.c" will set 'filetype' to c when it's empty.  Also for ":w
1577 asdf.c" when it sets the filename for the buffer.
1579 Insert mode completion for whole lines now also searches unloaded buffers.
1581 The colortest.vim script can now be invoked directly with ":source" or
1582 ":runtime syntax/colortest.vim".
1584 The 'statusline' option can be local to the window, so that each window can
1585 have a different value.  (partly by Yegappan Lakshmanan)
1587 The 'statusline' option and other options that support the same format can now
1588 use these new features:
1589 - When it starts with "%!" the value is first evaluated as an expression
1590   before parsing the value.
1591 - "%#HLname#" can be used to start highlighting with HLname.
1593 When 'statusline' is set to something that causes an error message then it is
1594 made empty to avoid an endless redraw loop.  Also for other options, such at
1595 'tabline' and 'titlestring'.  ":verbose set statusline" will mention that it
1596 was set in an error handler.
1598 When there are several matching tags, the ":tag <name>" and CTRL-] commands
1599 jump to the [count] matching tag. (Yegappan Lakshmanan)
1601 Win32: In the batch files generated by the install program, use $VIMRUNTIME or
1602 $VIM if it's set.  Example provided by Mathias Michaelis.
1603 Also create a vimtutor.bat batch file.
1605 The 'balloonexpr' option is now |global-local|.
1607 The system() function now runs in cooked mode, thus can be interrupted by
1608 CTRL-C.
1610 ==============================================================================
1611 COMPILE TIME CHANGES                                    *compile-changes-7*
1613 Dropped the support for the BeOS and Amiga GUI.  They were not maintained and
1614 probably didn't work.  If you want to work on this: get the Vim 6.x version
1615 and merge it back in.
1617 When running the tests and one of them fails to produce "test.out" the
1618 following tests are still executed.  This helps when running out of memory.
1620 When compiling with EXITFREE defined and the ccmalloc library it is possible
1621 to detect memory leaks.  Some memory will always reported as leaked, such as
1622 allocated by X11 library functions and the memory allocated in alloc_cmdbuff()
1623 to store the ":quit" command.
1625 Moved the code for printing to src/hardcopy.c.
1627 Moved some code from main() to separate functions to make it easier to see
1628 what is being done.  Using a structure to avoid a lot of arguments to the
1629 functions.
1631 Moved unix_expandpath() to misc1.c, so that it can also be used by os_mac.c
1632 without copying the code.
1634 --- Mac ---
1636 "make" now creates the Vim.app directory and "make install" copies it to its
1637 final destination. (Raf)
1639 Put the runtime directory not directly in Vim.app but in
1640 Vim.app/Contents/Resources/vim, so that it's according to Mac specs.
1642 Made it possible to compile with Motif, Athena or GTK without tricks and still
1643 being able to use the MacRoman conversion.  Added the os_mac_conv.c file.
1645 When running "make install" the runtime files are installed as for Unix.
1646 Avoids that too many files are copied.  When running "make" a link to the
1647 runtime files is created to avoid a recursive copy that takes much time.
1649 Configure will attempt to build Vim for both Intel and PowerPC.  The
1650 --with-mac-arch configure argument can change it.
1652 --- Win32 ---
1654 The Make_mvc.mak file was adjusted to work with the latest MS compilers,
1655 including the free version of Visual Studio 2005. (George Reilly)
1657 INSTALLpc.txt was updated for the recent changes. (George Reilly)
1659 The distributed executable is now produced with the free Visual C++ Toolkit
1660 2003 and other free SDK chunks.  msvcsetup.bat was added to support this.
1662 Also generate the .pdb file that can be used to generate a useful crash report
1663 on MS-Windows. (George Reilly)
1665 ==============================================================================
1666 BUG FIXES                                               *bug-fixes-7*
1668 When using PostScript printing on MS-DOS the default 'printexpr' used "lpr"
1669 instead of "copy".  When 'printdevice' was empty the copy command did not
1670 work.  Use "LPT1" then.
1672 The GTK font dialog uses a font size zero when the font name doesn't include a
1673 size.  Use a default size of 10.
1675 This example in the documentation didn't work:
1676     :e `=foo . ".c" `
1677 Skip over the expression in `=expr` when looking for comments, |, % and #.
1679 When ":helpgrep" doesn't find anything there is no error message.
1681 "L" and "H" did not take closed folds into account.
1683 Win32: The "-P title" argument stopped at the first title that matched, even
1684 when it doesn't support MDI.
1686 Mac GUI: CTRL-^ and CTRL-@ did not work.
1688 "2daw" on "word." at the end of a line didn't include the preceding white
1689 space.
1691 Win32: Using FindExecutable() doesn't work to find a program.  Use
1692 SearchPath() instead.  For executable() use $PATHEXT when the program searched
1693 for doesn't have an extension.
1695 When 'virtualedit' is set, moving the cursor up after appending a character
1696 may move it to a different column.  Was caused by auto-formatting moving the
1697 cursor and not putting it back where it was.
1699 When indent was added automatically and then moving the cursor, the indent was
1700 not deleted (like when pressing ESC).  The "I" flag in 'cpoptions' can be used
1701 to make it work the old way.
1703 When opening a command-line window, 'textwidth' gets set to 78 by the Vim
1704 filetype plugin.  Reset 'textwidth' to 0 to avoid lines are broken.
1706 After using cursor(line, col) moving up/down doesn't keep the same column.
1708 Win32: Borland C before 5.5 requires using ".u." for LowPart and HighPart
1709 fields. (Walter Briscoe)
1711 On Sinix SYS_NMLN isn't always defined.  Define it ourselves. (Cristiano De
1712 Michele)
1714 Printing with PostScript may keep the printer waiting for more.  Append a
1715 CTRL-D to the printer output. (Mike Williams)
1717 When converting a string with a hex or octal number the leading '-' was
1718 ignored.  ":echo '-05' + 0" resulted in 5 instead of -5.
1720 Using "@:" to repeat a command line didn't work when it contains control
1721 characters.  Also remove "'<,'>" when in Visual mode to avoid that it appears
1722 twice.
1724 When using file completion for a user command, it would not expand environment
1725 variables like for a regular command with a file argument.
1727 'cindent': When the argument of a #define looks like a C++ class the next line
1728 is indented too much.
1730 When 'comments' includes multi-byte characters inserting the middle part and
1731 alignment may go wrong.  'cindent' also suffers from this for right-aligned
1732 items.
1734 Win32: when 'encoding' is set to "utf-8" getenv() still returns strings in the
1735 active codepage.  Convert to utf-8.  Also for $HOME.
1737 The default for 'helplang' was "zh" for both "zh_cn" and "zh_tw".  Now use
1738 "cn" or "tw" as intended.
1740 When 'bin' is set and 'eol' is not set then line2byte() added the line break
1741 after the last line while it's not there.
1743 Using foldlevel() in a WinEnter autocommand may not work.  Noticed when
1744 resizing the GUI shell upon startup.
1746 Python: Using buffer.append(f.readlines()) didn't work.  Allow appending a
1747 string with a trailing newline.  The newline is ignored.
1749 When using the ":saveas f2" command for buffer "f1", the Buffers menu would
1750 contain "f2" twice, one of them leading to "f1".  Also trigger the BufFilePre
1751 and BufFilePost events for the alternate buffer that gets the old name.
1753 strridx() did not work well when the needle is empty. (Ciaran McCreesh)
1755 GTK: Avoid a potential hang in gui_mch_wait_for_chars() when input arrives
1756 just before it is invoked
1758 VMS: Occasionally CR characters were inserted in the file.  Expansion of
1759 environment variables was not correct. (Zoltan Arpadffy)
1761 UTF-8: When 'delcombine' is set "dw" only deleted the last combining character
1762 from the first character of the word.
1764 When using ":sball" in an autocommand only the filetype in one buffer was
1765 detected.  Reset did_filetype in enter_buffer().
1767 When using ":argdo" and the window already was at the first argument index,
1768 but not actually editing it, the current buffer would be used instead.
1770 When ":next dir/*" includes many matches, adding the names to the argument
1771 list may take an awful lot of time and can't be interrupted.  Allow
1772 interrupting this.
1774 When editing a file that was already loaded in a buffer, modelines were not
1775 used.  Now window-local options in the modeline are set.  Buffer-local options
1776 and global options remain unmodified.
1778 Win32: When 'encoding' is set to "utf-8" in the vimrc file, files from the
1779 command line with non-ASCII characters are not used correctly.  Recode the
1780 file names when 'encoding' is set, using the Unicode command line.
1782 Win32 console: When the default for 'encoding' ends up to be "latin1", the
1783 default value of 'isprint' was wrong.
1785 When an error message is given while waiting for a character (e.g., when an
1786 xterm reports the number of colors), the hit-enter prompt overwrote the last
1787 line.  Don't reset msg_didout in normal_cmd() for K_IGNORE.
1789 Mac GUI: Shift-Tab didn't work.
1791 When defining tooltip text, don't translate terminal codes, since it's not
1792 going to be used like a command.
1794 GTK 2: Check the tooltip text for valid utf-8 characters to avoid getting a
1795 GTK error.  Invalid characters may appear when 'encoding' is changed.
1797 GTK 2: Add a safety check for invalid utf-8 sequences, they can crash pango.
1799 Win32: When 'encoding' is changed while starting up, use the Unicode command
1800 line to convert the file arguments to 'encoding'.  Both for the GUI and the
1801 console version.
1803 Win32 GUI: latin9 text (iso-8859-15) was not displayed correctly, because
1804 there is no codepage for latin9.  Do our own conversion from latin9 to UCS2.
1806 When two versions of GTK+ 2 are installed it was possible to use the header
1807 files from one and the library from the other.  Use GTK_LIBDIR to put the
1808 directory for the library early in the link flags.
1810 With the GUI find/replace dialog a replace only worked if the pattern was
1811 literal text.  Now it works for any pattern.
1813 When 'equalalways' is set and 'eadirection' is "hor", ":quit" would still
1814 cause equalizing window heights in the vertical direction.
1816 When ":emenu" is used in a startup script the command was put in the typeahead
1817 buffer, causing a prompt for the crypt key to be messed up.
1819 Mac OS/X: The default for 'isprint' included characters 128-160, causes
1820 problems for Terminal.app.
1822 When a syntax item with "containedin" is used, it may match in the start or
1823 end of a region with a matchgroup, while this doesn't happen for a "contains"
1824 argument.
1826 When a transparent syntax items matches in another item where the highlighting
1827 has already stopped (because of a he= argument), the highlighting would come
1828 back.
1830 When cscope is used to set the quickfix error list, it didn't get set if there
1831 was only one match. (Sergey Khorev)
1833 When 'confirm' is set and using ":bdel" in a modified buffer, then selecting
1834 "cancel", would still give an error message.
1836 The PopUp menu items that started Visual mode didn't work when not in Normal
1837 mode.  Switching between selecting a word and a line was not possible.
1839 Win32: The keypad decimal point always resulted in a '.', while on some
1840 keyboards it's a ','.  Use MapVirtualKey(VK_DECIMAL, 2).
1842 Removed unused function DisplayCompStringOpaque() from gui_w32.c
1844 In Visual mode there is not always an indication whether the line break is
1845 selected or not.  Highlight the character after the line when the line break
1846 is included, e.g., after "v$o".
1848 GTK: The <F10> key can't be mapped, it selects the menu.  Disable that with a
1849 GTK setting and do select the menu when <F10> isn't mapped. (David Necas)
1851 After "Y" '[ and '] were not at start/end of the yanked text.
1853 When a telnet connection is dropped Vim preserves files and exits.  While
1854 doing that a SIGHUP may arrive and disturb us, thus ignore it. (Scott
1855 Anderson)  Also postpone SIGHUP, SIGQUIT and SIGTERM until it's safe to
1856 handle.  Added handle_signal().
1858 When completing a file name on the command line backslashes are required for
1859 white space.  Was only done for a space, not for a Tab.
1861 When configure could not find a terminal library, compiling continued for a
1862 long time before reporting the problem.  Added a configure check for tgetent()
1863 being found in a library.
1865 When the cursor is on the first char of the last line a ":g/pat/s///" command
1866 may cause the cursor to be displayed below the text.
1868 Win32: Editing a file with non-ASCII characters doesn't work when 'encoding'
1869 is "utf-8".  use _wfullpath() instead of _fullpath(). (Yu-sung Moon)
1871 When recovering the 'fileformat' and 'fileencoding' were taken from the
1872 original file instead of from the swapfile.  When the file didn't exist, was
1873 empty or the option was changed (e.g., with ":e ++fenc=cp123 file") it could
1874 be wrong.  Now store 'fileformat' and 'fileencoding' in the swapfile and use
1875 the values when recovering.
1877 ":bufdo g/something/p" overwrites each last printed text line with the file
1878 message for the next buffer.  Temporarily clear 'shortmess' to avoid that.
1880 Win32: Cannot edit a file starting with # with --remote.  Do escape % and #
1881 when building the ":drop" command.
1883 A comment or | just after an expression-backtick argument was not recognized.
1884 E.g. in :e `="foo"`"comment.
1886 "(" does not stop at an empty sentence (single dot and white space) while ")"
1887 does.  Also breaks "das" on that dot.
1889 When doing "yy" with the cursor on a TAB the ruler could be wrong and "k"
1890 moved the cursor to another column.
1892 When 'commentstring' is '"%s' and there is a double quote in the line a double
1893 quote before the fold marker isn't removed in the text displayed for a  closed
1894 fold.
1896 In Visual mode, when 'bin' and 'eol' set, g CTRL-G counted the last line
1897 break, resulting in "selected 202 of 201 bytes".
1899 Motif: fonts were not used for dialog components. (Marcin Dalecki)
1901 Motif: After using a toolbar button the keyboard focus would be on the toolbar
1902 (Lesstif problem). (Marcin Dalecki)
1904 When using "y<C-V>`x" where mark x is in the first column, the last line was
1905 not included.
1907 Not all test scripts work properly on MS-Windows when checked out from CVS.
1908 Use a Vim command to fix all fileformats to dos before executing the tests.
1910 When using ":new" and the file fits in the window, lines could still be above
1911 the window.  Now remove empty lines instead of keeping the relative position.
1913 Cmdline completion didn't work after ":let var1 var<Tab>".
1915 When using ":startinsert" or ":startreplace" when already in Insert mode
1916 (possible when using CTRL-R =), pressing Esc would directly restart Insert
1917 mode. (Peter Winters)
1919 "2daw" didn't work at end of file if the last word is a single character.
1921 Completion for ":next a'<Tab>" put a backslash before single quote, but it was
1922 not removed when editing a file.  Now halve backslashes in save_patterns().
1923 Also fix expanding a file name with the shell that contains "\'".
1925 When doing "1,6d|put" only "fewer lines" was reported.  Now a following "more
1926 lines" overwrites the message.
1928 Configure could not handle "-Dfoo=long\ long" in the TCL config output.
1930 When searching backwards, using a pattern that matches a newline and uses \zs
1931 after that, didn't find a match.  Could also get a hang or end up in the right
1932 column in the wrong line.
1934 When $LANG is "sl" for slovenian, the slovak menu was used, since "slovak"
1935 starts with "sl".
1937 When 'paste' is set in the GUI the Paste toolbar button doesn't work.  Clear
1938 'paste' when starting the GUI.
1940 A message about a wrong viminfo line included the trailing NL.
1942 When 'paste' is set in the GUI the toolbar button doesn't work in Insert mode.
1943 Use ":exe" in menu.vim to avoid duplicating the commands, instead of using a
1944 mapping.
1946 Treat "mlterm" as an xterm-like terminal. (Seiichi Sato)
1948 ":z.4" and ":z=4" didn't work Vi compatible.
1950 When sourcing a file, editing it and sourcing it again, it could appear twice
1951 in ":scriptnames" and get a new <SID>, because the inode has changed.
1953 When $SHELL is set but empty the 'shell' option would be empty.  Don't use an
1954 empty $SHELL value.
1956 A command "w! file" in .vimrc or $EXINIT didn't work.  Now it writes an empty
1957 file.
1959 When a CTRL-F command at the end of the file failed, the cursor was still
1960 moved to the start of the line.  Now it remains where it is.
1962 When using ":s" or "&" to repeat the last substitute and "$" was used to put
1963 the cursor in the last column, put the cursor in the last column again.  This
1964 is Vi compatible.
1966 Vim is not fully POSIX compliant but sticks with traditional Vi behavior.
1967 Added a few flags in 'cpoptions' to behave the POSIX way when wanted.  The
1968 $VIM_POSIX environment variable is checked to set the default.
1970 Appending to a register didn't insert a line break like Vi.  Added the '>'
1971 flag to 'cpoptions' for this.
1973 Using "I" in a line with only blanks appended to the line.  This is not Vi
1974 compatible.  Added the 'H' flag in 'coptions' for this.
1976 When joining multiple lines the cursor would be at the last joint, but Vi
1977 leaves it at the position where "J" would put it.  Added the 'q' flag in
1978 'cpoptions' for this.
1980 Autoindent didn't work for ":insert" and ":append".
1982 Using ":append" in an empty buffer kept the dummy line.  Now it's deleted to
1983 be Vi compatible.
1985 When reading commands from a file and stdout goes to a terminal, would still
1986 request the xterm version.  Vim can't read it, thus the output went to the
1987 shell and caused trouble there.
1989 When redirecting to a register with an invalid name the redirection would
1990 still be done (after an error message).  Now reset "redir_reg". (Yegappan
1991 Lakshmanan)
1993 It was not possible to use a NL after a backslash in Ex mode.  This is
1994 sometimes used to feed multiple lines to a shell command.
1996 When 'cmdheight' is set to 2 in .vimrc and the GUI uses the number of lines
1997 from the terminal we actually get 3 lines for the cmdline in gvim.
1999 When setting $HOME allocated memory would leak.
2001 Win32: bold characters may sometimes write in another character cell.  Use
2002 unicodepdy[] as for UTF-8. (Taro Muraoka)
2004 ":w fname" didn't work for files with 'buftype' set to "nofile".
2006 The method used to locate user commands for completion differed from when they
2007 are executed.  Ambiguous command names were not completed properly.
2009 Incremental search may cause a crash when there is a custom statusline that
2010 indirectly invokes ":normal".
2012 Diff mode failed when $DIFF_OPTIONS was set in the environment.  Unset it
2013 before invoking "diff".
2015 Completion didn't work after ":argdo", ":windo" and ":bufdo".  Also for ":set
2016 &l:opt" and ":set &g:opt". (Peter Winters)
2018 When setting 'ttymouse' to "dec" in an xterm that supports the DEC mouse
2019 locator it doesn't work.  Now switch off the mouse before selecting another
2020 mouse model.
2022 When the CursorHold event is triggered and the commands peek for typed
2023 characters the typeahead buffer may be messed up, e.g., when a mouse-up event
2024 is received.  Avoid invoking the autocommands from the function waiting for a
2025 character, let it put K_CURSORHOLD in the input buffer.
2027 Removed the "COUNT" flag from ":argadd", to avoid ":argadd 1*" to be used like
2028 ":1argadd *".  Same for ":argdelete" and ":argedit".
2030 Avoid that $LANG is used for the menus when LC_MESSAGES is "en_US".
2032 Added backslashes before dashes in the vim.1 manual page to make the appear as
2033 real dashes. (Pierr Habouzit)
2035 Where "gq" left the cursor depended on the value of 'formatprg'.  Now "gq"
2036 always leaves the cursor at the last line of the formatted text.
2038 When editing a compressed file, such as "changelog.Debian.gz" file, filetype
2039 detection may try to check the contents of the file while it's still
2040 compressed.  Skip setting 'filetype' for compressed files until they have been
2041 decompressed.  Required for patterns that end in a "*".
2043 Starting with an argument "+cmd" or "-S script" causes the cursor the be moved
2044 to the first line.  That breaks a BufReadPost autocommand that uses g`".
2045 Don't move the cursor if it's somewhere past the first line.
2047 "gg=G" while 'modifiable' is off was uninterruptible.
2049 When 'encoding' is "sjis" inserting CTRL-V u d800 a few times causes a crash.
2050 Don't insert a DBCS character with a NUL second byte.
2052 In Insert mode CTRL-O <Home> didn't move the cursor.  Made "ins_at_eol" global
2053 and reset it in nv_home().
2055 Wildcard expansion failed: ":w /tmp/$$.`echo test`".  Don't put quotes around
2056 spaces inside backticks.
2058 After this sequence of commands: Y V p gv: the wrong line is selected.  Now
2059 let "gv" select the text that was put, since the original text is deleted.
2060 This should be the most useful thing to do.
2062 ":sleep 100u" sleeps for 100 seconds, not 100 usec as one might expect.  Give
2063 an error message when the argument isn't recognized.
2065 In gui_mch_draw_string() in gui_w32.c "unibuflen" wasn't static, resulting in
2066 reallocating the buffer every time. (Alexei Alexandrov)
2068 When using a Python "atexit" function it was not invoked when Vim exits.  Now
2069 call Py_Finalize() for that. (Ugo Di Girolamo)
2070 This breaks the thread stuff though, fixed by Ugo.
2072 GTK GUI: using a .vimrc with "set cmdheight=2 lines=43" and ":split" right
2073 after startup, the window layout is messed up. (Michael Schaap)  Added
2074 win_new_shellsize() call in gui_init() to fix the topframe size.
2076 Trick to get ...MOUSE_NM not used when there are vertical splits.  Now pass
2077 column -1 for the left most window and add MOUSE_COLOFF for others.  Limits
2078 mouse column to 10000.
2080 searchpair() may hang when the end pattern has "\zs" at the end.  Check that
2081 we find the same position again and advance one character.
2083 When in diff mode and making a change that causes the "changed" highlighting
2084 to disappear or reappear, it was still highlighted in another window.
2086 When a ":next" command fails because the user selects "Abort" at the ATTENTION
2087 prompt the argument index was advanced anyway.
2089 When "~" is in 'iskeyword' the "gd" doesn't work, it's used for the previous
2090 substitute pattern.  Put "\V" in the pattern to avoid that.
2092 Use of sprintf() sometimes didn't check properly for buffer overflow.  Also
2093 when using smsg().  Included code for snprintf() to avoid having to do size
2094 checks where invoking them
2096 ":help \=<Tab>" didn't find "sub-replace-\=".  Wild menu for help tags didn't
2097 show backslashes.  ":he :s\=" didn't work.
2099 When reading an errorfile "~/" in a file name was not expanded.
2101 GTK GUI: When adding a scrollbar (e.g. when using ":vsplit") in a script or
2102 removing it the window size may change.  GTK sends us resize events when we
2103 change the window size ourselves, but they may come at an unexpected moment.
2104 Peek for a character to get any window resize events and fix 'columns' and
2105 'lines' to undo this.
2107 When using the GTK plug mechanism, resizing and focus was not working
2108 properly. (Neil Bird)
2110 After deleting files from the argument list a session file generated with
2111 ":mksession" may contain invalid ":next" commands.
2113 When 'shortmess' is empty and 'keymap' set to accents, in Insert mode CTRL-N
2114 may cause the hit-enter prompt.  Typing 'a then didn't result in the accented
2115 character.  Put the character typed at the prompt back in the typeahead buffer
2116 so that mapping is done in the right mode.
2118 setbufvar() and setwinvar() did not give error messages.
2120 It was possible to set a variable with an illegal name, e.g. with setbufvar().
2121 It was possible to define a function with illegal name, e.t. ":func F{-1}()"
2123 CTRL-W F and "gf" didn't use the same method to get the file name.
2125 When reporting a conversion error the line number of the last error could be
2126 given.  Now report the first encountered error.
2128 When using ":e ++enc=name file" and iconv() was used for conversion an error
2129 caused a fall-back to no conversion.  Now replace a character with '?' and
2130 continue.
2132 When opening a new buffer the local value of 'bomb' was not initialized from
2133 the global value.
2135 Win32: When using the "Edit with Vim" entry the file name was limited to about
2136 200 characters.
2138 When using command line completion for ":e *foo" and the file "+foo" exists
2139 the resulting command ":e +foo" doesn't work.  Now insert a backslash: ":e
2140 \+foo".
2142 When the translation of "-- More --" was not 10 characters long the following
2143 message would be in the wrong position.
2145 At the more-prompt the last character in the last line wasn't drawn.
2147 When deleting non-existing text while 'virtualedit' is set the '[ and '] marks
2148 were not set.
2150 Win32: Could not use "**/" in 'path', it had to be "**\".
2152 The search pattern "\n" did not match at the end of the last line.
2154 Searching for a pattern backwards, starting on the NUL at the end of the line
2155 and 'encoding' is "utf-8" would match the pattern just before it incorrectly.
2156 Affected searchpair('/\*', '', '\*/').
2158 For the Find/Replace dialog it was possible that not finding the text resulted
2159 in an error message while redrawing, which cleared the syntax highlighting
2160 while it was being used, resulting in a crash.  Now don't clear syntax
2161 highlighting, disable it with b_syn_error.
2163 Win32: Combining UTF-8 characters were drawn on the previous character.
2164 Could be noticed with a Thai font.
2166 Output of ":function" could leave some of the typed text behind. (Yegappan
2167 Lakshmanan)
2169 When the command line history has only a few lines the command line window
2170 would be opened with these lines above the first window line.
2172 When using a command line window for search strings ":qa" would result in
2173 searching for "qa" instead of quitting all windows.
2175 GUI: When scrolling with the scrollbar and there is a line that doesn't fit
2176 redrawing may fail.  Make sure w_skipcol is valid before redrawing.
2178 Limit the values of 'columns' and 'lines' to avoid an overflow in Rows *
2179 Columns.  Fixed bad effects when running out of memory (command line would be
2180 reversed, ":qa!" resulted in ":!aq").
2182 Motif: "gvim -iconic" opened the window anyway.  (David Harrison)
2184 There is a tiny chance that a symlink gets created between checking for an
2185 existing file and creating a file.  Use the O_NOFOLLOW for open() if it's
2186 available.
2188 In an empty line "ix<CTRL-O>0" moved the cursor to after the line instead of
2189 sticking to the first column.
2191 When using ":wq" and a BufWriteCmd autocmd uses inputsecret() the text was
2192 echoed anyway.  Set terminal to raw mode in getcmdline().
2194 Unix: ":w a;b~c" caused an error in expanding wildcards.
2196 When appending to a file with ":w >>fname" in a buffer without a name, causing
2197 the buffer to use "fname", the modified flag was reset.
2199 When appending to the current file the "not edited" flag would be reset.
2200 ":w" would overwrite the file accidentally.
2202 Unix: When filtering text with an external command Vim would still read input,
2203 causing text typed for the command (e.g., a password) to be eaten and echoed.
2204 Don't read input when the terminal is in cooked mode.
2206 The Cygwin version of xxd used CR/LF line separators. (Corinna Vinschen)
2208 Unix: When filtering text through a shell command some resulting text may be
2209 dropped.  Now after detecting that the child has exited try reading some more
2210 of its output.
2212 When inside input(), using "CTRL-R =" and the expression throws an exception
2213 the command line was not abandoned but it wasn't used either.  Now abandon
2214 typing the command line.
2216 'delcombine' was also used in Visual and Select mode and for commands like
2217 "cl".  That was illogical and has been disabled.
2219 When recording while a CursorHold autocommand was defined special keys would
2220 appear in the register.  Now the CursorHold event is not triggered while
2221 recording.
2223 Unix: the src/configure script used ${srcdir-.}, not all shells understand
2224 that.  Use ${srcdir:-.} instead.
2226 When editing file "a" which is a symlink to file "b" that doesn't exist,
2227 writing file "a" to create "b" and then ":split b" resulted in two buffers on
2228 the same file with two different swapfile names.  Now set the inode in the
2229 buffer when creating a new file.
2231 When 'esckeys' is not set don't send the xterm code to request the version
2232 string, because it may cause trouble in Insert mode.
2234 When evaluating an expression for CTRL-R = on the command line it was possible
2235 to call a function that opens a new window, resulting in errors for
2236 incremental search, and many other nasty things were possible.  Now use the
2237 |textlock| to disallow changing the buffer or jumping to another window
2238 to protect from unexpected behavior.  Same for CTRL-\ e.
2240 "d(" deleted the character under the cursor, while the documentation specified
2241 an exclusive motion.  Vi also doesn't delete the character under the cursor.
2243 Shift-Insert in Insert mode could put the cursor before the last character
2244 when it just fits in the window.  In coladvance() don't stop at the window
2245 edge when filling with spaces and when in Insert mode.  In mswin.vim avoid
2246 getting a beep from the "l" command.
2248 Win32 GUI: When Alt-F4 is used to close the window and Cancel is selected in
2249 the dialog then Vim would insert <M-F4> in the text.  Now it's ignored.
2251 When ":silent! {cmd}" caused the swap file dialog, which isn't displayed,
2252 there would still be a hit-enter prompt.
2254 Requesting the termresponse (|t_RV|) early may cause problems with "-c"
2255 arguments that invoke an external command or even "-c quit".  Postpone it
2256 until after executing "-c" arguments.
2258 When typing in Insert mode so that a new line is started, using CTRL-G u to
2259 break undo and start a new change, then joining the lines with <BS> caused
2260 undo info to be missing.  Now reset the insertion start point.
2262 Syntax HL: When a region start match has a matchgroup and an offset that
2263 happens to be after the end of the line then it continued in the next line and
2264 stopped at the region end match, making the region continue after that.
2265 Now check for the column being past the end of the line in syn_add_end_off().
2267 When changing a file, setting 'swapfile' off and then on again, making another
2268 change and killing Vim, then some blocks may be missing from the swapfile.
2269 When 'swapfile' is switched back on mark all blocks in the swapfile as dirty.
2270 Added mf_set_dirty().
2272 Expanding wildcards in a command like ":e aap;<>!" didn't work.  Put
2273 backslashes before characters that are special to the shell. (Adri Verhoef)
2275 A CursorHold autocommand would cause a message to be cleared.  Don't show the
2276 special key for the event for 'showcmd'.
2278 When expanding a file name for a shell command, as in "!cmd foo<Tab>" or ":r
2279 !cmd foo<Tab>" also escape characters that are special for the shell:
2280 "!;&()<>".
2282 When the name of the buffer was set by a ":r fname" command |cpo-f| no
2283 autocommands were triggered to notify about the change in the buffer list.
2285 In the quickfix buffer 'bufhidden' was set to "delete", which caused closing
2286 the quickfix window to leave an unlisted "No Name" buffer behind every time.
2288 Win32: when using two screens of different size, setting 'lines' to a large
2289 value didn't fill the whole screen. (SungHyun Nam)
2291 Win32 installer: The generated _vimrc contained an absolute path to diff.exe.
2292 After upgrading it becomes invalid.  Now use $VIMRUNTIME instead.
2294 The command line was cleared to often when 'showmode' was set and ":silent
2295 normal vy" was used.  Don't clear the command line unless the mode was
2296 actually displayed.  Added the "mode_displayed" variable.
2298 The "load session" toolbar item could not handle a space or other special
2299 characters in v:this_session.
2301 ":set sta ts=8 sw=4 sts=2" deleted 4 spaces halfway a line instead of 2.
2303 In a multi-byte file the foldmarker could be recognized in the trail byte.
2304 (Taro Muraoka)
2306 Pasting with CTRL-V and menu didn't work properly when some commands are
2307 mapped.  Use ":normal!" instead of ":normal". (Tony Apuzzo)
2309 Crashed when expanding a file name argument in backticks.
2311 In some situations the menu and scrollbar didn't work, when the value contains
2312 a CSI byte. (Yukihiro Nakadaira)
2314 GTK GUI: When drawing the balloon focus changes and we might get a key release
2315 event that removed the balloon again.  Ignore the key release event.
2317 'titleold' was included in ":mkexrc" and ":mksession" files.
2319 ":set background&" didn't use the same logic as was used when starting up.
2321 When "umask" is set such that nothing is writable then the viminfo file would
2322 be written without write permission. (Julian Bridle)
2324 Motif: In diff mode dragging one scrollbar didn't update the scrollbar of the
2325 other diff'ed window.
2327 When editing in an xterm with a different number of colors than expected the
2328 screen would be cleared and redrawn, causing the message about the edited file
2329 to be cleared.  Now set "keep_msg" to redraw the last message.
2331 For a color terminal: When the Normal HL uses bold, possibly to make the color
2332 lighter, and another HL group specifies a color it might become light as well.
2333 Now reset bold if a HL group doesn't specify bold itself.
2335 When using 256 color xterm the color 255 would show up as color 0.  Use a
2336 short instead of a char to store the color number.
2338 ml_get errors when searching for "\n\zs" in an empty file.
2340 When selecting a block and using "$" to select until the end of every line and
2341 not highlighting the character under the cursor the first character of the
2342 block could be unhighlighted.
2344 When counting words for the Visual block area and using "$" to select until
2345 the end of every line only up to the length of the last line was counted.
2347 "dip" in trailing empty lines left one empty line behind.
2349 The script ID was only remembered globally for each option. When a buffer- or
2350 window-local option was set the same "last set" location was changed for all
2351 buffers and windows.  Now remember the script ID for each local option
2352 separately.
2354 GUI: The "Replace All" button didn't handle backslashes in the replacement in
2355 the same way as "Replace".  Escape backslashes so that they are taken
2356 literally.
2358 When using Select mode from Insert mode and typing a key, causing lines to be
2359 deleted and a message displayed, delayed the effect of inserting the key.
2360 Now overwrite the message without delay.
2362 When 'whichwrap' includes "l" then "dl" and "yl" on a single letter line
2363 worked differently.  Now recognize all operators when using "l" at the end of
2364 a line.
2366 GTK GUI: when the font selector returned a font name with a comma in it then
2367 it would be handled like two font names.  Now put a backslash before the
2368 comma.
2370 MS-DOS, Win32: When 'encoding' defaults to "latin1" then the value for
2371 'iskeyword' was still for CPxxx.  And when 'nocompatible' was set 'isprint'
2372 would also be the wrong value.
2374 When a command was defined not to take arguments and no '|' no warning message
2375 would be given for using a '|'.  Also with ":loadkeymap".
2377 Motif: When using a fontset and 'encoding' is "utf-8" and sizeof(wchar_t) !=
2378 sizeof(XChar2b) then display was wrong. (Yukihiro Nakadaira)
2380 ":all" always set the current window to the first window, even when it
2381 contains a buffer that is not in the argument list (can't be closed because it
2382 is modified).  Now go to the window that has the first item of the argument
2383 list.
2385 GUI: To avoid left-over pixels from bold text all characters after a character
2386 with special attributes were redrawn.  Now only do this for characters that
2387 actually are bold.  Speeds up displaying considerably.
2389 When only highlighting changes and the text is scrolled at the same time
2390 everything is redraw instead of using a scroll and updating the changed text.
2391 E.g., when using ":match" to highlight a paren that the cursor landed on.
2392 Added SOME_VALID: Redraw the whole window but also try to scroll to minimize
2393 redrawing.
2395 Win32: When using Korean IME making it active didn't work properly. (Moon,
2396 Yu-sung, 2005 March 21)
2398 Ruby interface: when inserting/deleting lines display wasn't updated. (Ryan
2399 Paul)
2401 --- fixes since Vim 7.0b ---
2403 Getting the GCC version in configure didn't work with Solaris sed.  First
2404 strip any "darwin." and then get the version number.
2406 The "autoload" directory was missing from the self-installing executable for
2407 MS-Windows.
2409 The MS-Windows install program would find "vimtutor.bat" in the install
2410 directory.  After changing to "c:" also change to "\" to avoid looking in the
2411 install directory.
2413 To make the 16 bit DOS version compile exclude not used highlight
2414 initializations and build a tiny instead of small version.
2416 finddir() and findfile() accept a negative count and return a List then.
2418 The Python indent file contained a few debugging statements, removed.
2420 Expanding {} for a function name, resulting in a name starting with "s:" was
2421 not handled correctly.
2423 Spelling: renamed COMPOUNDMAX to COMPOUNDWORDMAX.  Added several items to be
2424 able to handle the new Hungarian dictionary.
2426 Mac: Default to building for the current platform only, that is much faster
2427 than building a universal binary.  Also, using Perl/Python/etc. only works for
2428 the current platform.
2430 The time on undo messages disappeared for someone.  Using %T for strftime()
2431 apparently doesn't work everywhere.  Use %H:%M:%S instead.
2433 Typing BS at the "z=" prompt removed the prompt.
2435 --- fixes and changes since Vim 7.0c ---
2437 When jumping to another tab page the Vim window size was always set, even when
2438 nothing in the layout changed.
2440 Win32 GUI tab pages line wasn't always enabled.  Do a proper check for the
2441 compiler version.
2443 Win32: When switching between tab pages the Vim window was moved when part of
2444 it was outside of the screen.  Now only do that in the direction of a size
2445 change.
2447 Win32: added menu to GUI tab pages line. (Yegappan Lakshmanan)
2449 Mac: Added document icons. (Benji Fisher)
2451 Insert mode completion: Using Enter to accept the current match causes
2452 confusion.  Use CTRL-Y instead.  Also, use CTRL-E to go back to the typed
2453 text.
2455 GUI: When there are left and right scrollbars, ":tabedit" kept them instead of
2456 using the one that isn't needed.
2458 Using "gP" to replace al the text could leave the cursor below the last line,
2459 causing ml_get errors.
2461 When 'cursorline' is set don't use the highlighting when Visual mode is
2462 active, otherwise it's difficult to see the selected area.
2464 The matchparen plugin restricts the search to 100 lines, to avoid a long delay
2465 when there are closed folds.
2467 Sometimes using CTRL-X s to list spelling suggestions used text from another
2468 line.
2470 Win32: Set the default for 'isprint' back to the wrong default "@,~-255",
2471 because many people use Windows-1252 while 'encoding' is "latin1".
2473 GTK: Added a workaround for gvim crashing when used over an untrusted ssh
2474 link, caused by GTK doing something nasty. (Ed Catmur)
2476 Win32: The font used for the tab page labels is too big.  Use the system menu
2477 font. (George Reilly)
2479 Win32: Adjusting the window position and size to keep it on the screen didn't
2480 work properly when the taskbar is on the left or top of the screen.
2482 The installman.sh and installml.sh scripts use ${10}, that didn't work with
2483 old shells.  And use "test -f" instead of "test -e".
2485 Win32: When 'encoding' was set in the vimrc then a directory argument for diff
2486 mode didn't work.
2488 GUI: at the inputlist() prompt the cursorshape was adjusted as if the windows
2489 were still at their old position.
2491 The parenmatch plugin didn't remember the highlighting per window.
2493 Using ":bd" for a buffer that's the current window in another tab page caused
2494 a crash.
2496 For a new tab page the 'scroll' option wasn't set to a good default.
2498 Using an end offset for a search "/pat/e" didn't work properly for multi-byte
2499 text. (Yukihiro Nakadaira)
2501 ":s/\n/,/" doubled the text when used on the last line.
2503 When "search" is in 'foldopen' "[s" and "]s" now open folds.
2505 When using a numbered function "dict" can be omitted, but "self" didn't work
2506 then.  Always add FC_DICT to the function flags when it's part of a
2507 dictionary.
2509 When "--remote-tab" executes locally it left an empty tab page.
2511 "gvim -u NONE", ":set cursorcolumn", "C" in the second line didn't update
2512 text.  Do update further lines even though the "$" is displayed.
2514 VMS: Support GTK better, also enable +clientserver. (Zoltan Arpadffy)
2516 When highlighting of statusline or tabline is changed there was no redraw to
2517 show the effect.
2519 Mac: Added "CFBundleIdentifier" to infplist.xml.
2521 Added tabpage-local variables t:var.
2523 Win32: Added double-click in tab pages line creates new tab. (Yegappan
2524 Lakshmanan)
2526 Motif: Added GUI tab pages line. (Yegappan Lakshmanan)
2528 Fixed crash when 'lines' was set to 1000 in a modeline.
2530 When init_spellfile() finds a writable directory in 'runtimepath' but it
2531 doesn't contain a "spell" directory, create one.
2533 Win32: executable() also finds "xxd" in the directory where Vim was started,
2534 but "!xxd" doesn't work.  Append the Vim starting directory to $PATH.
2536 The tab page labels are shortened, directory names are reduced to a single
2537 letter by default.  Added the pathshorten() function to allow a user to do the
2538 same.
2540 ":saveas" now resets 'readonly' if the file was successfully written.
2542 Set $MYVIMRC file to the first found .vimrc file.
2543 Set $MYGVIMRC file to the first found .gvimrc file.
2544 Added menu item "Startup Settings" that edits the $MYVIMRC file
2546 Added matcharg().
2548 Error message E745 appeared twice.  Renamed one to E786.
2550 Fixed crash when using "au BufRead * Sexplore" and doing ":help".  Was wiping
2551 out a buffer that's still in a window.
2553 ":hardcopy" resulted in an error message when 'encoding' is "utf-8" and
2554 'printencoding' is empty.  Now it assumes latin1. (Mike Williams)
2556 The check for the toolbar feature for Motif, depending on certain included
2557 files, wasn't detailed enough, causing building to fail in gui_xmebw.c.
2559 Using CTRL-E in Insert mode completion after CTRL-P inserted the first match
2560 instead of the original text.
2562 When displaying a UTF-8 character with a zero lower byte Vim might think the
2563 previous character is double-wide.
2565 The "nbsp" item of 'listchars' didn't work when 'encoding' was utf-8.
2567 Motif: when Xm/xpm.h is missing gui_xmebw.c would not compile.
2568 HAVE_XM_UNHIGHLIGHTT_H was missing a T.
2570 Mac: Moved the .icns files into src/os_mac_rsrc, so that they can all be
2571 copied at once.  Adjusted the Info.plist file for three icons.
2573 When Visual mode is active while switching to another tabpage could get ml_get
2574 errors.
2576 When 'list' is set, 'nowrap' the $ in the first column caused 'cursorcolumn'
2577 to move to the right.
2579 When a line wraps, 'cursorcolumn' was never displayed past the end of the
2580 line.
2582 'autochdir' was only available when compiled with NetBeans and GUI.  Now it's
2583 a separate feature, also available in the "big" version.
2585 Added CTRL-W gf: open file under cursor in new tab page.
2587 When using the menu in the tab pages line, "New Tab" opens the new tab before
2588 where the click was.  Beyond the labels the new tab appears at the end instead
2589 of after the current tab page.
2591 Inside a mapping with an expression getchar() could not be used.
2593 When vgetc is used recursively vgetc_busy protects it from being used
2594 recursively.  But after a ":normal" command the protection was reset.
2596 ":s/a/b/n" didn't work when 'modifiable' was off.
2598 When $VIMRUNTIME includes a multi-byte character then rgb.txt could not be
2599 found. (Yukihiro Nakadaira)
2601 ":mkspell" didn't work correctly for non-ASCII affix flags when conversion is
2602 needed on the spell file.
2604 glob('/dir/\$ABC/*') didn't work.
2606 When using several tab pages and changing 'cmdheight' the display could become
2607 messed up.  Now store the value of 'cmdheight' separately for each tab page.
2609 The user of the Enter key while the popup menu is visible was still confusing.
2610 Now use Enter to select the match after using a cursor key.
2612 Added "usetab" to 'switchbuf'.
2615 --- fixes and changes since Vim 7.0d ---
2617 Added CTRL-W T: move a window to a new tab page.
2619 Using CTRL-X s in Insert mode to complete spelling suggestions and using BS
2620 deleted characters before the bad word.
2622 A few small fixes for the VMS makefile. (Zoltan Arpadffy)
2624 With a window of 91 lines 45 cols, ":vsp" scrolled the window.  Copy w_wrow
2625 when splitting a window and skip setting the height when it's already at the
2626 right value.
2628 Using <silent> in a mapping with a shell command and the GUI caused redraw
2629 to use wrong attributes.
2631 Win32: Using MSVC 4.1 for install.exe resulted in the start menu items to be
2632 created in the administrator directory instead of "All Users".  Define the
2633 CSIDL_ items if they are missing.
2635 Motif: The GUI tabline did not use the space above the right scrollbar.  Work
2636 around a bug in the Motif library. (Yegappan Lakshmanan)
2638 The extra files for XML Omni completion are now also installed.
2639 |xml-omni-datafile|
2641 GTK GUI: when 'm' is missing from 'guioptions' during startup and pressing
2642 <F10> GTK produced error messages.  Now do create the menu but disable it just
2643 after the first gui_mch_update().
2645 ":mkspell" doesn't work well with the Hungarian dictionary from the Hunspell
2646 project.  Back to the Myspell dictionary.
2648 In help files hide the | used around tags.
2650 Renamed pycomplete to pythoncomplete.
2652 Added "tabpages" to 'sessionoptions'.
2654 When 'guitablabel' is set the effect wasn't visible right away.
2656 Fixed a few 'cindent' errors.
2658 When completing menu names, e.g., after ":emenu", don't sort the entries but
2659 keep them in the original order.
2661 Fixed a crash when editing a directory in diff mode.  Don't trigger
2662 autocommands when executing the diff command.
2664 Getting a keystroke could get stuck if 'encoding' is a multi-byte encoding and
2665 typing a special key.
2667 When 'foldignore' is set the folds were not updated right away.
2669 When a list is indexed with [a : b] and b was greater than the length an error
2670 message was given.  Now silently truncate the result.
2672 When using BS during Insert mode completion go back to the original text, so
2673 that CTRL-N selects the first matching entry.
2675 Added the 'M' flag to 'cinoptions'.
2677 Win32: Make the "gvim --help" window appear in the middle of the screen
2678 instead of at an arbitrary position. (Randall W. Morris)
2680 Added gettabwinvar() and settabwinvar().
2682 Command line completion: pressing <Tab> after ":e /usr/*" expands the whole
2683 tree, because it becomes ":e /usr/**".  Don't add a star if there already is
2684 one.
2686 Added grey10 to grey90 to all GUIs, so that they can all be used for
2687 initializing highlighting.  Use grey40 for CursorColumn and CursorLine when
2688 'background' is "dark".
2690 When reading a file and using iconv for conversion, an incomplete byte
2691 sequence at the end caused problems. (Yukihiro Nakadaira)
2694 --- fixes and changes since Vim 7.0e ---
2696 Default color for MatchParen when 'background' is "dark" is now DarkCyan.
2698 ":syn off" had to be used twice in a file that sets 'syntax' in a modeline.
2699 (Michael Geddes)
2701 When using ":vsp" or ":sp" the available space wasn't used equally between
2702 windows. (Servatius Brandt)
2704 Expanding <cWORD> on a trailing blank resulted in the first word in the line
2705 if 'encoding' is a multi-byte encoding.
2707 Spell checking: spellbadword() didn't see a missing capital in the first word
2708 of a line.  Popup menu now only suggest the capitalized word when appropriate.
2710 When using whole line completion CTRL-L moves through the matches but it
2711 didn't work when at the original text.
2713 When completion finds the longest match, don't go to the first match but stick
2714 at the original text, so that CTRL-N selects the first one.
2716 Recognize "zsh-beta" like "zsh" for setting the 'shellpipe' default. (James
2717 Vega)
2719 When using ":map <expr>" and the expression results in something with a
2720 special byte (NUL or CSI) then it didn't work properly.  Now escape special
2721 bytes.
2723 The default Visual highlighting for a color xterm with 8 colors was a magenta
2724 background, which made magenta text disappear.  Now use reverse in this
2725 specific situation.
2727 After completing the longest match "." didn't insert the same text.  Repeating
2728 also didn't work correctly for multi-byte text.
2730 When using Insert mode completion and BS the whole word that was completed
2731 would result in all possible matches.  Now stop completion.  Also fixes that
2732 for spell completion the previous word was deleted.
2734 GTK: When 'encoding' is "latin1" and using non-ASCII characters in a file name
2735 the tab page label was wrong and an error message would be given.
2737 The taglist() function could hang on a tags line with a non-ASCII character.
2739 Win32: When 'encoding' differs from the system encoding tab page labels with
2740 non-ASCII characters looked wrong. (Yegappan Lakshmanan)
2742 Motif: building failed when Xm/Notebook.h doesn't exist.  Added a configure
2743 check, disable GUI tabline when it's missing.
2745 Mac: When compiled without multi-byte feature the clipboard didn't work.
2747 It was possible to switch to another tab page when the cmdline window is open.
2749 Completion could hang when 'lines' is 6 and a preview window was opened.
2751 Added CTRL-W gF: open file under cursor in new tab page and jump to the line
2752 number following the file name.
2753 Added 'guitabtooltip'.  Implemented for Win32 (Yegappan Lakshmanan).
2755 Added "throw" to 'debug' option: throw an exception for error messages even
2756 whey they would otherwise be ignored.
2758 When 'keymap' is set and a line contains an invalid entry could get a "No
2759 mapping found" warning instead of a proper error message.
2761 Motif: default to using XpmAttributes instead of XpmAttributes_21.
2763 A few more changes for 64 bit MS-Windows. (George Reilly)
2765 Got ml_get errors when doing "o" and selecting in other window where there are
2766 less lines shorter than the cursor position in the other window.  ins_mouse()
2767 was using position in wrong window.
2769 Win32 GUI: Crash when giving a lot of messages during startup.  Allocate twice
2770 as much memory for the dialog template.
2772 Fixed a few leaks and wrong pointer use reported by coverity.
2774 When showing menus the mode character was sometimes wrong.
2776 Added feedkeys(). (Yakov Lerner)
2778 Made matchlist() always return all submatches.
2780 Moved triggering QuickFixCmdPost to before jumping to the first location.
2782 Mac: Added the 'macatsui' option as a temporary work around for text drawing
2783 problems.
2785 Line completion on "/**" gave error messages when scanning an unloaded buffer.
2787 --- fixes and changes since Vim 7.0f ---
2789 Win32: The height of the tab page labels is now adjusted to the font height.
2790 (Yegappan Lakshmanan)
2792 Win32: selecting the tab label was off by one. (Yegappan Lakshmanan)
2794 Added tooltips for Motif and GTK tab page labels. (Yegappan Lakshmanan)
2796 When 'encoding' is "utf-8" then ":help spell" would report an illegal byte and
2797 the file was not converted from latin1 to utf-8.  Now retry with latin1 if
2798 reading the file as utf-8 results in illegal bytes.
2800 Escape the argument of feedkeys() before putting it in the typeahead buffer.
2801 (Yukihiro Nakadaira)
2803 Added the v:char variable for evaluating 'formatexpr'. (Yukihiro Nakadaira)
2805 With 8 colors Search highlighting combined with Statement highlighted text
2806 made the text disappear.
2808 VMS: avoid warnings for redefining MAX and MIN. (Zoltan Arpadffy)
2810 When 'virtualedit' includes "onemore", stopping Visual selection would still
2811 move the cursor left.
2813 Prevent that using CTRL-R = in Insert mode can start Visual mode.
2815 Fixed a crash that occurred when in Insert mode with completion active and a
2816 mapping caused edit() to be called recursively.
2818 When using CTRL-O in Insert mode just after the last character while
2819 'virtualedit' is "all", then typing CR moved the last character to the next
2820 line.  Call coladvance() before starting the new line.
2822 When using |:shell| ignore clicks on the tab page labels.  Also when using the
2823 command line window.
2825 When 'eventignore' is "all" then adding more to ignoring some events, e.g.,
2826 for ":vimgrep", would actually trigger more events.
2828 Win32: When a running Vim uses server name GVIM1 then "gvim --remote fname"
2829 didn't find it.  When looking for a server name that doesn't end in a digit
2830 and it is not found then use another server with that name and a number (just
2831 like on Unix).
2833 When using "double" in 'spellsuggest' when the language doesn't support sound
2834 folding resulted in too many suggestions.
2836 Win32: Dropping a shortcut on the Vim icon didn't edit the referred file like
2837 editing it in another way would.  Use fname_expand() in buf_set_name() instead
2838 of simply make the file name a full path.
2840 Using feedkeys() could cause Vim to hang.
2842 When closing another tab page from the tabline menu in Insert mode the tabline
2843 was not updated right away.
2845 The syntax menu didn't work in compatible mode.
2847 After using ":tag id" twice with the same "id", ":ts" and then ":pop" a ":ts"
2848 reported no matching tag.  Clear the cached tag name.
2850 In Insert mode the matchparen plugin highlighted the wrong paren when there is
2851 a string just next to a paren.
2853 GTK: After opening a new tab page the text was sometimes not drawn correctly.
2854 Flush output and catch up with events when updating the tab page labels.
2856 In the GUI, using CTRL-W q to close the last window of a tab page could cause
2857 a crash.
2859 GTK: The tab pages line menu was not converted from 'encoding' to utf-8.
2861 Typing a multi-byte character or a special key at the hit-enter prompt did not
2862 work.
2864 When 'virtualedit' contains "onemore" CTRL-O in Insert mode still moved the
2865 cursor left when it was after the end of the line, even though it's allowed to
2866 be there.
2868 Added test for using tab pages.
2870 towupper() and towlower() were not used, because of checking for
2871 __STDC__ISO_10646__ instead of __STDC_ISO_10646__. (sertacyildiz)
2873 For ":map <expr>" forbid changing the text, jumping to another buffer and
2874 using ":normal" to avoid nasty side effects.
2876 --- fixes and changes since Vim 7.0g ---
2878 Compilation error on HP-UX, use of "dlerr" must be inside a #ifdef.
2879 (Gary Johnson)
2881 Report +reltime feature in ":version" output.
2883 The tar and zip plugins detect failure to get the contents of the archive and
2884 edit the file as-is.
2886 When the result of 'guitablabel' is empty fall back to the default label.
2888 Fixed crash when using ":insert" in a while loop and missing "endwhile".
2890 "gt" and other commands could move to another window when |textlock| active
2891 and when the command line window was open.
2893 Spell checking a file with syntax highlighting and a bad word at the end of
2894 the line is ignored could make "]s" hang.
2896 Mac: inputdialog() didn't work when compiled with big features.
2898 Interrupting ":vimgrep" while it is busy loading a file left a modified and
2899 hidden buffer behind.  Use enter_cleanup() and leave_cleanup() around
2900 wipe_buffer().
2902 When making 'keymap' empty the b:keymap_name variable wasn't deleted.
2904 Using CTRL-N that searches a long time, pressing space to interrupt the
2905 searching and accept the first match, the popup menu was still displayed
2906 briefly.
2908 When setting the Vim window height with -geometry the 'window' option could be
2909 at a value that makes CTRL-F behave differently.
2911 When opening a quickfix window in two tabs they used different buffers,
2912 causing redrawing problems later.  Now use the same buffer for all quickfix
2913 windows. (Yegappan Lakshmanan)
2915 When 'mousefocus' is set moving the mouse to the text tab pages line would
2916 move focus to the first window.  Also, the mouse pointer would jump to the
2917 active window.
2919 In a session file, when an empty buffer is wiped out, do this silently.
2921 When one window has the cursor on the last line and another window is resized
2922 to make that window smaller, the cursor line could go below the displayed
2923 lines.  In win_new_height() subtract one from the available space.
2924 Also avoid that using "~" lines makes the window scroll down.
2926 Mac: When sourcing the "macmap.vim" script and then finding a .vimrc file the
2927 'cpo' option isn't set properly, because it was already set and restored.
2928 Added the <special> argument to ":map", so that 'cpo' doesn't need to be
2929 changed to be able to use <> notation.  Also do this for ":menu" for
2930 consistency.
2932 When using "/encoding=abc" in a spell word list, only "bc" was used.
2934 When 'encoding' and 'printencoding' were both "utf-8" then ":hardcopy" didn't
2935 work. (Mike Williams)
2937 Mac: When building with "--disable-gui" the install directory would still be
2938 "/Applications" and Vim.app would be installed.  Now install in /usr/local as
2939 usual for a console application.
2941 GUI: when doing completion and there is one match and still searching for
2942 another, the cursor was displayed at the end of the line instead of after the
2943 match.  Now show the cursor after the match while still searching for matches.
2945 GUI: The mouse shape changed on the statusline even when 'mouse' was empty and
2946 they can't be dragged.
2948 GTK2: Selecting a button in the confirm() dialog with Tab or cursor keys and
2949 hitting Enter didn't select that button.  Removed GTK 1 specific code. (Neil
2950 Bird)
2952 When evaluating 'balloonexpr' takes a long time it could be called
2953 recursively, which could cause a crash.
2955 exists() could not be used to detect whether ":2match" is supported.  Added a
2956 check for it specifically.
2958 GTK1: Tab page labels didn't work. (Yegappan Lakshmanan)
2960 Insert mode completion: When finding matches use 'ignorecase', but when adding
2961 matches to the list don't use it, so that all words with different case are
2962 added, "word", "Word" and "WORD".
2964 When 'cursorline' and 'hlsearch' are set and the search pattern is "x\n"
2965 the rest of the line was highlighted as a match.
2967 Cursor moved while evaluating 'balloonexpr' that invokes ":isearch" and
2968 redirects the output.  Don't move the cursor to the command line if msg_silent
2969 is set.
2971 exists() ignored text after a function name and option name, which could
2972 result in false positives.
2974 exists() ignored characters after the recognized word, which can be wrong when
2975 using a name with non-keyword characters.  Specifically, these calls no longer
2976 allow characters after the name: exists('*funcname') exists('*funcname(...')
2977 exists('&option') exists(':cmd') exists('g:name') exists('g:name[n]')
2978 exists('g:name.n')
2980 Trigger the TabEnter autocommand only after entering the current window of the
2981 tab page, otherwise the commands are executed with an invalid current window.
2983 Win32: When using two monitors and Vim is on the second monitor, changing the
2984 width of the Vim window could make it jump to the first monitor.
2986 When scrolling back at the more prompt and the quitting a line of text would
2987 be left behind when 'cmdheight' is 2 or more.
2989 Fixed a few things for Insert mode completion, especially when typing BS,
2990 CTRL-N or a printable character while still searching for matches.
2993 ==============================================================================
2994 VERSION 7.1                                     *version-7.1* *version7.1*
2996 This section is about improvements made between version 7.0 and 7.1.
2998 This is a bug-fix release, there are no fancy new features.
3001 Changed                                                 *changed-7.1*
3002 -------
3004 Added setting 'mouse' in vimrc_example.vim.
3006 When building with MZscheme also look for include files in the "plt"
3007 subdirectory.  That's where they are for FreeBSD.
3009 The Ruby interface module is now called "Vim" instead of "VIM".  But "VIM" is
3010 an alias, so it's backwards compatible. (Tim Pope)
3013 Added                                                   *added-7.1*
3014 -----
3016 New syntax files:
3017         /var/log/messages (Yakov Lerner)
3018         Autohotkey (Nikolai Weibull)
3019         AutoIt v3 (Jared Breland)
3020         Bazaar commit file "bzr". (Dmitry Vasiliev)
3021         Cdrdao TOC (Nikolai Weibull)
3022         Cmusrc (Nikolai Weibull)
3023         Conary recipe (rPath Inc)
3024         Framescript (Nikolai Weibull)
3025         FreeBasic (Mark Manning)
3026         Hamster (David Fishburn)
3027         IBasic (Mark Manning)
3028         Initng (Elan Ruusamae)
3029         Ldapconf (Nikolai Weibull)
3030         Litestep (Nikolai Weibull)
3031         Privoxy actions file (Doug Kearns)
3032         Streaming Descriptors "sd" (Puria Nafisi Azizi)
3034 New tutor files:
3035         Czech (Lubos Turek)
3036         Hungarian (Arpad Horvath)
3037         Turkish (Serkan kkk)
3038         utf-8 version of Greek tutor.
3039         utf-8 version of Russian tutor.
3040         utf-8 version of Slowak tutor.
3042 New filetype plugins:
3043         Bst (Tim Pope)
3044         Cobol (Tim Pope)
3045         Fvwm (Gautam Iyer)
3046         Hamster (David Fishburn)
3047         Django HTML template (Dave Hodder)
3049 New indent files:
3050         Bst (Tim Pope)
3051         Cobol (Tim Pope)
3052         Hamster (David Fishburn)
3053         Django HTML template (Dave Hodder)
3054         Javascript
3055         JSP (David Fishburn)
3057 New keymap files:
3058         Bulgarian (Boyko Bantchev)
3059         Mongolian (Natsagdorj Shagdar)
3060         Thaana (Ibrahim Fayaz)
3061         Vietnamese (Samuel Thibault)
3063 Other new runtime files:
3064         Ada support files. (Neil Bird, Martin Krischik)
3065         Slovenian menu translations (Mojca Miklavec)
3066         Mono C# compiler plugin (Jarek Sobiecki)
3069 Fixed                                                   *fixed-7.1*
3070 -----
3072 Could not build the Win32s version.  Added a few structure definitions in
3073 src/gui_w32.c
3076 Patch 7.0.001
3077 Problem:    ":set spellsuggest+=10" does not work. (Suresh Govindachar)
3078 Solution:   Add P_COMMA to the 'spellsuggest' flags.
3079 Files:      src/option.c
3081 Patch 7.0.002
3082 Problem:    C omni completion has a problem with tags files with a path
3083             containing "#" or "%".
3084 Solution:   Escape these characters. (Sebastian Baberowski)
3085 Files:      runtime/autoload/ccomplete.vim
3087 Patch 7.0.003
3088 Problem:    GUI: clicking in the lower part of a label in the tab pages line
3089             while 'mousefocus' is set may warp the mouse pointer. (Robert
3090             Webb)
3091 Solution:   Check for a negative mouse position.
3092 Files:      src/gui.c
3094 Patch 7.0.004
3095 Problem:    Compiler warning for debug_saved used before set. (Todd Blumer)
3096 Solution:   Remove the "else" for calling save_dbg_stuff().
3097 Files:      src/ex_docmd.c
3099 Patch 7.0.005 (extra)
3100 Problem:    Win32: The installer doesn't remove the "autoload" and "spell"
3101             directories. (David Fishburn)
3102 Solution:   Add the directories to the list to be removed.
3103 Files:      nsis/gvim.nsi
3105 Patch 7.0.006
3106 Problem:    Mac: "make shadow" doesn't make a link for infplist.xml. (Axel
3107             Kielhorn)
3108 Solution:   Make the link.
3109 Files:      src/Makefile
3111 Patch 7.0.007
3112 Problem:    AIX: compiling fails for message.c. (Ruediger Hornig)
3113 Solution:   Move the #if outside of memchr().
3114 Files:      src/message.c
3116 Patch 7.0.008
3117 Problem:    Can't call a function that uses both <SID> and {expr}. (Thomas)
3118 Solution:   Check both the expanded and unexpanded name for <SID>.
3119 Files:      src/eval.c
3121 Patch 7.0.009
3122 Problem:    ml_get errors with both 'sidescroll' and 'spell' set.
3123 Solution:   Use ml_get_buf() instead of ml_get(), get the line from the right
3124             buffer, not the current one.
3125 Files:      src/spell.c
3127 Patch 7.0.010
3128 Problem:    The spellfile plugin required typing login name and password.
3129 Solution:   Use "anonymous" and "vim7user" by default.  No need to setup a
3130             .netrc file.
3131 Files:      runtime/autoload/spellfile.vim
3133 Patch 7.0.011
3134 Problem:    Can't compile without the folding and with the eval feature.
3135 Solution:   Add an #ifdef. (Vallimar)
3136 Files:      src/option.c
3138 Patch 7.0.012
3139 Problem:    Using the matchparen plugin, moving the cursor in Insert mode to a
3140             shorter line that ends in a brace, changes the preferred column
3141 Solution:   Use winsaveview()/winrestview() instead of getpos()/setpos().
3142 Files:      runtime/plugin/matchparen.vim
3144 Patch 7.0.013
3145 Problem:    Insert mode completion: using CTRL-L to add an extra character
3146             also deselects the current match, making it impossible to use
3147             CTRL-L a second time.
3148 Solution:   Keep the current match.  Also make CTRL-L work at the original
3149             text, using the first displayed match.
3150 Files:      src/edit.c
3152 Patch 7.0.014
3153 Problem:    Compiling gui_xmebw.c fails on Dec Alpha Tru64. (Rolfe)
3154 Solution:   Disable some code for Motif 1.2 and older.
3155 Files:      src/gui_xmebw.c
3157 Patch 7.0.015
3158 Problem:    Athena: compilation problems with modern compiler.
3159 Solution:   Avoid type casts for lvalue. (Alexey Froloff)
3160 Files:      src/gui_at_fs.c
3162 Patch 7.0.016
3163 Problem:    Printing doesn't work for "dec-mcs" encoding.
3164 Solution:   Add "dec-mcs", "mac-roman" and "hp-roman8" to the list of
3165             recognized 8-bit encodings. (Mike Williams)
3166 Files:      src/mbyte.c
3168 Patch 7.0.017 (after 7.0.014)
3169 Problem:    Linking gui_xmebw.c fails on Dec Alpha Tru64. (Rolfe)
3170 Solution:   Adjust defines for Motif 1.2 and older.
3171 Files:      src/gui_xmebw.c
3173 Patch 7.0.018
3174 Problem:    VMS: plugins are not loaded on startup.
3175 Solution:   Remove "**" from the path. (Zoltan Arpadffy)
3176 Files:      src/main.c
3178 Patch 7.0.019
3179 Problem:    Repeating "VjA789" may cause a crash. (James Vega)
3180 Solution:   Check the cursor column after moving it to another line.
3181 Files:      src/ops.c
3183 Patch 7.0.020
3184 Problem:    Crash when using 'mousefocus'. (William Fulton)
3185 Solution:   Make buffer for mouse coordinates 2 bytes longer. (Juergen Weigert)
3186 Files:      src/gui.c
3188 Patch 7.0.021
3189 Problem:    Crash when using "\\[" and "\\]" in 'errorformat'. (Marc Weber)
3190 Solution:   Check for valid submatches after matching the pattern.
3191 Files:      src/quickfix.c
3193 Patch 7.0.022
3194 Problem:    Using buffer.append() in Ruby may append the line to the wrong
3195             buffer. (Alex Norman)
3196 Solution:   Properly switch to the buffer to do the appending.  Also for
3197             buffer.delete() and setting a buffer line.
3198 Files:      src/if_ruby.c
3200 Patch 7.0.023
3201 Problem:    Crash when doing spell completion in an empty line and pressing
3202             CTRL-E.
3203 Solution:   Check for a zero pointer. (James Vega)
3204             Also handle a situation without a matching pattern better, report
3205             "No matches" instead of remaining in undefined CTRL-X mode.  And
3206             get out of CTRL-X mode when typing a letter.
3207 Files:      src/edit.c
3209 Patch 7.0.024
3210 Problem:    It is possible to set arbitrary "v:" variables.
3211 Solution:   Disallow setting "v:" variables that are not predefined.
3212 Files:      src/eval.c
3214 Patch 7.0.025
3215 Problem:    Crash when removing an element of a:000.  (Nikolai Weibull)
3216 Solution:   Mark the a:000 list with VAR_FIXED.
3217 Files:      src/eval.c
3219 Patch 7.0.026
3220 Problem:    Using libcall() may show an old error.
3221 Solution:   Invoke dlerror() to clear a previous error. (Yukihiro Nakadaira)
3222 Files:      src/os_unix.c
3224 Patch 7.0.027 (extra)
3225 Problem:    Win32: When compiled with SNIFF gvim may hang on exit.
3226 Solution:   Translate and dispatch the WM_USER message. (Mathias Michaelis)
3227 Files:      src/gui_w48.c
3229 Patch 7.0.028 (extra)
3230 Problem:    OS/2: Vim doesn't compile with gcc 3.2.1.
3231 Solution:   Add argument to after_pathsep(), don't define vim_handle_signal(),
3232             define HAVE_STDARG_H. (David Sanders)
3233 Files:      src/os_unix.c, src/vim.h, src/os_os2_cfg.h
3235 Patch 7.0.029
3236 Problem:    getchar() may not position the cursor after a space.
3237 Solution:   Position the cursor explicitly.
3238 Files:      src/eval.c
3240 Patch 7.0.030
3241 Problem:    The ":compiler" command can't be used in a FileChangedRO event.
3242             (Hari Krishna Dara)
3243 Solution:   Add the CMDWIN flag to the ":compiler" command.
3244 Files:      src/ex_cmds.h
3246 Patch 7.0.031
3247 Problem:    When deleting a buffer the buffer-local mappings for Select mode
3248             remain.
3249 Solution:   Add the Select mode bit to MAP_ALL_MODES. (Edwin Steiner)
3250 Files:      src/vim.h
3252 Patch 7.0.032 (extra, after 7.0.027)
3253 Problem:    Missing semicolon.
3254 Solution:   Add the semicolon.
3255 Files:      src/gui_w48.c
3257 Patch 7.0.033
3258 Problem:    When pasting text, with the menu or CTRL-V, autoindent is removed.
3259 Solution:   Use "x<BS>" to avoid indent to be removed. (Benji Fisher)
3260 Files:      runtime/autoload/paste.vim
3262 Patch 7.0.034
3263 Problem:    After doing completion and typing more characters or using BS
3264             repeating with "." didn't work properly. (Martin Stubenschrott)
3265 Solution:   Don't put BS and other characters in the redo buffer right away,
3266             do this when finishing completion.
3267 Files:      src/edit.c
3269 Patch 7.0.035
3270 Problem:    Insert mode completion works when typed but not when replayed from
3271             a register. (Hari Krishna Dara)
3272             Also: Mappings for Insert mode completion don't always work.
3273 Solution:   When finding a non-completion key in the input don't interrupt
3274             completion when it wasn't typed.
3275             Do use mappings when checking for typeahead while still finding
3276             completions.  Avoids that completion is interrupted too soon.
3277             Use "compl_pending" in a different way.
3278 Files:      src/edit.c
3280 Patch 7.0.036
3281 Problem:    Can't compile with small features and syntax highlighting or the
3282             diff feature.
3283 Solution:   Define LINE_ATTR whenever syntax highlighting or the diff feature
3284             is enabled.
3285 Files:      src/screen.c
3287 Patch 7.0.037
3288 Problem:    Crash when resizing the GUI window vertically when there is a line
3289             that doesn't fit.
3290 Solution:   Don't redraw while the screen data is invalid.
3291 Files:      src/screen.c
3293 Patch 7.0.038
3294 Problem:    When calling complete() from an Insert mode expression mapping
3295             text could be inserted in an improper way.
3296 Solution:   Make undo_allowed() global and use it in complete().
3297 Files:      src/undo.c, src/proto/undo.pro, src/eval.c
3299 Patch 7.0.039
3300 Problem:    Calling inputdialog() with a third argument in the console doesn't
3301             work.
3302 Solution:   Make a separate function for input() and inputdialog(). (Yegappan
3303             Lakshmanan)
3304 Files:      src/eval.c
3306 Patch 7.0.040
3307 Problem:    When 'cmdheight' is larger than 1 using inputlist() or selecting
3308             a spell suggestion with the mouse gets the wrong entry.
3309 Solution:   Start listing the first alternative on the last line of the screen.
3310 Files:      src/eval.c, src/spell.c
3312 Patch 7.0.041
3313 Problem:    cursor([1, 1]) doesn't work. (Peter Hodge)
3314 Solution:   Allow leaving out the third item of the list and use zero for the
3315             virtual column offset.
3316 Files:      src/eval.c
3318 Patch 7.0.042
3319 Problem:    When pasting a block of text in Insert mode Vim hangs or crashes.
3320             (Noam Halevy)
3321 Solution:   Avoid that the cursor is positioned past the NUL of a line.
3322 Files:      src/ops.c
3324 Patch 7.0.043
3325 Problem:    Using "%!" at the start of 'statusline' doesn't work.
3326 Solution:   Recognize the special item when the option is being set.
3327 Files:      src/option.c
3329 Patch 7.0.044
3330 Problem:    Perl: setting a buffer line in another buffer may result in
3331             changing the current buffer.
3332 Solution:   Properly change to the buffer to be changed.
3333 Files:      src/if_perl.xs
3335 Patch 7.0.045 (extra)
3336 Problem:    Win32: Warnings when compiling OLE version with MSVC 2005.
3337 Solution:   Move including vim.h to before windows.h. (Ilya Bobir)
3338 Files:      src/if_ole.cpp
3340 Patch 7.0.046
3341 Problem:    The matchparen plugin ignores parens in strings, but not in single
3342             quotes, often marked with "character".
3343 Solution:   Also ignore parens in syntax items matching "character".
3344 Files:      runtime/plugin/matchparen.vim
3346 Patch 7.0.047
3347 Problem:    When running configure the exit status is wrong.
3348 Solution:   Handle the exit status properly. (Matthew Woehlke)
3349 Files:      configure, src/configure
3351 Patch 7.0.048
3352 Problem:    Writing a compressed file fails when there are parens in the name.
3353             (Wang Jian)
3354 Solution:   Put quotes around the temp file name.
3355 Files:      runtime/autoload/gzip.vim
3357 Patch 7.0.049
3358 Problem:    Some TCL scripts are not recognized. (Steven Atkinson)
3359 Solution:   Check for "exec wish" in the file.
3360 Files:      runtime/scripts.vim
3362 Patch 7.0.050
3363 Problem:    After using the netbeans interface close command a stale pointer
3364             may be used.
3365 Solution:   Clear the pointer to the closed buffer. (Xaview de Gaye)
3366 Files:      src/netbeans.c
3368 Patch 7.0.051 (after 7.0.44)
3369 Problem:    The Perl interface doesn't compile or doesn't work properly.
3370 Solution:   Remove the spaces before #ifdef and avoid an empty line above it.
3371 Files:      src/if_perl.xs
3373 Patch 7.0.052
3374 Problem:    The user may not be aware that the Vim server allows others more
3375             functionality than desired.
3376 Solution:   When running Vim as root don't become a Vim server without an
3377             explicit --servername argument.
3378 Files:      src/main.c
3380 Patch 7.0.053
3381 Problem:    Shortening a directory name may fail when there are multi-byte
3382             characters.
3383 Solution:   Copy the correct bytes. (Titov Anatoly)
3384 Files:      src/misc1.c
3386 Patch 7.0.054
3387 Problem:    Mac: Using a menu name that only has a mnemonic or accelerator
3388             causes a crash.  (Elliot Shank)
3389 Solution:   Check for an empty menu name.  Also delete empty submenus that
3390             were created before detecting the error.
3391 Files:      src/menu.c
3393 Patch 7.0.055
3394 Problem:    ":startinsert" in a CmdwinEnter autocommand doesn't take immediate
3395             effect. (Bradley White)
3396 Solution:   Put a NOP key in the typeahead buffer.  Also avoid that using
3397             CTRL-C to go back to the command line moves the cursor left.
3398 Files:      src/edit.c, src/ex_getln.c
3400 Patch 7.0.056
3401 Problem:    "#!something" gives an error message.
3402 Solution:   Ignore this line, so that it can be used in an executable Vim
3403             script.
3404 Files:      src/ex_docmd.c
3406 Patch 7.0.057 (extra, after 7.0.45)
3407 Problem:    Win32: Compilation problem with Borland C 5.5.
3408 Solution:   Include vim.h as before. (Mark S. Williams)
3409 Files:      src/if_ole.cpp
3411 Patch 7.0.058
3412 Problem:    The gbk and gb18030 encodings are not recognized.
3413 Solution:   Add aliases to cp936. (Edward L. Fox)
3414 Files:      src/mbyte.c
3416 Patch 7.0.059
3417 Problem:    The Perl interface doesn't compile with ActiveState Perl 5.8.8.
3418 Solution:   Remove the __attribute__() items. (Liu Yubao)
3419 Files:      src/if_perl.xs
3421 Patch 7.0.060 (after 7.0.51)
3422 Problem:    Code for temporarily switching to another buffer is duplicated in
3423             quite a few places.
3424 Solution:   Use aucmd_prepbuf() and aucmd_restbuf() also when FEAT_AUTOCMD is
3425             not defined.
3426 Files:      src/buffer.c, src/eval.c, src/fileio.c, src/if_ruby.c,
3427             src/if_perl.xs, src/quickfix.c, src/structs.h
3429 Patch 7.0.061
3430 Problem:    Insert mode completion for Vim commands may crash if there is
3431             nothing to complete.
3432 Solution:   Instead of freeing the pattern make it empty, so that a "not
3433             found" error is given. (Yukihiro Nakadaira)
3434 Files:      src/edit.c
3436 Patch 7.0.062
3437 Problem:    Mac: Crash when using the popup menu for spell correction.  The
3438             popup menu appears twice when letting go of the right mouse button
3439             early.
3440 Solution:   Don't show the popup menu on the release of the right mouse
3441             button.  Also check that a menu pointer is actually valid.
3442 Files:      src/proto/menu.pro, src/menu.c, src/normal.c, src/term.c
3444 Patch 7.0.063
3445 Problem:    Tiny chance for a memory leak. (coverity)
3446 Solution:   Free pointer when next memory allocation fails.
3447 Files:      src/eval.c
3449 Patch 7.0.064
3450 Problem:    Using uninitialized variable. (Tony Mechelynck)
3451 Solution:   When not used set "temp" to zero.  Also avoid a warning for
3452             "files" in ins_compl_dictionaries().
3453 Files:      src/edit.c
3455 Patch 7.0.065 (extra)
3456 Problem:    Mac: left-right movement of the scrollwheel causes up-down
3457             scrolling.
3458 Solution:   Ignore mouse wheel events that are not up-down. (Nicolas Weber)
3459 Files:      src/gui_mac.c
3461 Patch 7.0.066
3462 Problem:    After the popup menu for Insert mode completion overlaps the tab
3463             pages line it is not completely removed.
3464 Solution:   Redraw the tab pages line after removing the popup menu. (Ori
3465             Avtalion)
3466 Files:      src/popupmnu.c
3468 Patch 7.0.067
3469 Problem:    Undo doesn't always work properly when using "scim" input method.
3470             Undo is split up when using preediting.
3471 Solution:   Reset xim_has_preediting also when preedit_start_col is not
3472             MAXCOL.  Don't split undo when <Left> is used while preediting.
3473             (Yukihiro Nakadaira)
3474 Files:      src/edit.c, src/mbyte.c
3476 Patch 7.0.068
3477 Problem:    When 'ignorecase' is set and using Insert mode completion,
3478             typing characters to change the list of matches, case is not
3479             ignored. (Hugo Ahlenius)
3480 Solution:   Store the 'ignorecase' flag with the matches where needed.
3481 Files:      src/edit.c, src/search.c, src/spell.c
3483 Patch 7.0.069
3484 Problem:    Setting 'guitablabel' to %!expand(\%)  causes Vim to free an
3485             invalid pointer. (Kim Schulz)
3486 Solution:   Don't try freeing a constant string pointer.
3487 Files:      src/buffer.c
3489 Patch 7.0.070
3490 Problem:    Compiler warnings for shadowed variables and uninitialized
3491             variables.
3492 Solution:   Rename variables such as "index", "msg" and "dup".  Initialize
3493             variables.
3494 Files:      src/edit.c, src/eval.c, src/ex_cmds.c, src/ex_cmds2.c,
3495             src/ex_docmd.c, src/gui_beval.c, src/gui_gtk.c, src/gui_gtk_x11.c,
3496             src/hardcopy.c, src/if_cscope.c, src/main.c, src/mbyte.c,
3497             src/memline.c, src/netbeans.c, src/normal.c, src/option.c,
3498             src/os_unix.c, src/quickfix.c, src/regexp.c, src/screen.c,
3499             src/search.c, src/spell.c, src/ui.c, src/undo.c, src/window.c,
3500             src/version.c
3502 Patch 7.0.071
3503 Problem:    Using an empty search pattern may cause a crash.
3504 Solution:   Avoid using a NULL pointer.
3505 Files:      src/search.c
3507 Patch 7.0.072
3508 Problem:    When starting the GUI fails there is no way to adjust settings or
3509             do something else.
3510 Solution:   Add the GUIFailed autocommand event.
3511 Files:      src/fileio.c, src/gui.c, src/vim.h
3513 Patch 7.0.073
3514 Problem:    Insert mode completion: Typing <CR> sometimes selects the original
3515             text instead of keeping what was typed.  (Justin Constantino)
3516 Solution:   Don't let <CR> select the original text if there is no popup menu.
3517 Files:      src/edit.c
3519 Patch 7.0.074 (extra)
3520 Problem:    Win32: tooltips were not converted from 'encoding' to Unicode.
3521 Solution:   Set the tooltip to use Unicode and do the conversion.  Also
3522             cleanup the code for the tab pages tooltips. (Yukihiro Nakadaira)
3523 Files:      src/gui_w32.c, src/gui_w48.c
3525 Patch 7.0.075
3526 Problem:    winsaveview() did not store the actual value of the desired cursor
3527             column.  This could move the cursor in the matchparen plugin.
3528 Solution:   Call update_curswant() before using the value w_curswant.
3529 Files:      src/eval.c
3531 Patch 7.0.076 (after 7.0.010)
3532 Problem:    Automatic downloading of spell files only works for ftp.
3533 Solution:   Don't add login and password for non-ftp URLs. (Alexander Patrakov)
3534 Files:      runtime/autoload/spellfile.vim
3536 Patch 7.0.077
3537 Problem:    ":unlet v:this_session" causes a crash. (Marius Roets)
3538 Solution:   When trying to unlet a fixed variable give an error message.
3539 Files:      src/eval.c
3541 Patch 7.0.078
3542 Problem:    There are two error messages E46.
3543 Solution:   Change the number for the sandbox message to E794.
3544 Files:      src/globals.h
3546 Patch 7.0.079
3547 Problem:    Russian tutor doesn't work when 'encoding' is "utf-8".
3548 Solution:   Use tutor.ru.utf-8 as the master, and generate the other encodings
3549             from it.  Select the right tutor depending on 'encoding'. (Alexey
3550             Froloff)
3551 Files:      runtime/tutor/Makefile, runtime/tutor/tutor.vim,
3552             runtime/tutor/tutor.ru.utf-8
3554 Patch 7.0.080
3555 Problem:    Generating auto/pathdef.c fails for CFLAGS with a backslash.
3556 Solution:   Double backslashes in the string. (Alexey Froloff)
3557 Files:      src/Makefile
3559 Patch 7.0.081
3560 Problem:    Command line completion doesn't work for a shell command with an
3561             absolute path.
3562 Solution:   Don't use $PATH when there is an absolute path.
3563 Files:      src/ex_getln.c
3565 Patch 7.0.082
3566 Problem:    Calling a function that waits for input may cause List and
3567             Dictionary arguments to be freed by the garbage collector.
3568 Solution:   Keep a list of all arguments to internal functions.
3569 Files:      src/eval.c
3571 Patch 7.0.083
3572 Problem:    Clicking with the mouse on an item for inputlist() doesn't work
3573             when 'compatible' is set and/or when 'cmdheight' is more than one.
3574             (Christian J.  Robinson)
3575 Solution:   Also decrement "lines_left" when 'more' isn't set.  Set
3576             "cmdline_row" to zero to get all mouse events.
3577 Files:      src/message.c, src/misc1.c
3579 Patch 7.0.084
3580 Problem:    The garbage collector may do its work while some Lists or
3581             Dictionaries are used internally, e.g., by ":echo" that runs into
3582             the more-prompt or ":echo [garbagecollect()]".
3583 Solution:   Only do garbage collection when waiting for a character at the
3584             toplevel.  Let garbagecollect() set a flag that is handled at the
3585             toplevel before waiting for a character.
3586 Files:      src/eval.c, src/getchar.c, src/globals.h, src/main.c
3588 Patch 7.0.085
3589 Problem:    When doing "make test" the viminfo file is modified.
3590 Solution:   Use another viminfo file after setting 'compatible.
3591 Files:      src/testdir/test56.in
3593 Patch 7.0.086
3594 Problem:    getqflist() returns entries for pattern and text with the number
3595             zero.  Passing these to setqflist() results in the string "0".
3596 Solution:   Use an empty string instead of the number zero.
3597 Files:      src/quickfix.c
3599 Patch 7.0.087
3600 Problem:    After ":file fname" and ":saveas fname" the 'autochdir' option
3601             does not take effect. (Yakov Lerner)
3602             Commands for handling 'autochdir' are repeated many times.
3603 Solution:   Add the DO_AUTOCHDIR macro and do_autochdir().  Use it for
3604             ":file fname" and ":saveas fname".
3605 Files:      src/proto/buffer.pro, src/buffer.c, src/ex_cmds.c, src/macros.h,
3606             src/netbeans.c, src/option.c, src/window.c
3608 Patch 7.0.088
3609 Problem:    When compiled with Perl the generated prototypes have "extern"
3610             unnecessarily added.
3611 Solution:   Remove the "-pipe" argument from PERL_CFLAGS.
3612 Files:      src/auto/configure, src/configure.in
3614 Patch 7.0.089
3615 Problem:    "ga" does not work properly for a non-Unicode multi-byte encoding.
3616 Solution:   Only check for composing chars for utf-8. (Taro Muraoka)
3617 Files:      src/ex_cmds.c
3619 Patch 7.0.090
3620 Problem:    Cancelling the conform() dialog on the console with Esc requires
3621             typing it twice. (Benji Fisher)
3622 Solution:   When the start of an escape sequence is found use 'timeoutlen' or
3623             'ttimeoutlen'.
3624 Files:      src/misc1.c
3626 Patch 7.0.091
3627 Problem:    Using winrestview() while 'showcmd' is set causes the cursor to be
3628             displayed in the wrong position. (Yakov Lerner)
3629 Solution:   Set the window topline properly.
3630 Files:      src/eval.c
3632 Patch 7.0.092 (after 7.0.082 and 7.0.084)
3633 Problem:    The list of internal function arguments is obsolete now that
3634             garbage collection is only done at the toplevel.
3635 Solution:   Remove the list of all arguments to internal functions.
3636 Files:      src/eval.c
3638 Patch 7.0.093
3639 Problem:    The matchparen plugin can't handle a 'matchpairs' value where a
3640             colon is matched.
3641 Solution:   Change the split() that is used to change 'matchpairs' into a
3642             List.
3643 Files:      runtime/plugin/matchparen.vim
3645 Patch 7.0.094
3646 Problem:    When a hidden buffer is made the current buffer and another file
3647             edited later, the file message will still be given.  Using
3648             ":silent" also doesn't prevent the file message. (Marvin Renich)
3649 Solution:   Reset the need_fileinfo flag when reading a file.  Don't set
3650             need_fileinfo when msg_silent is set.
3651 Files:      src/buffer.c, src/fileio.c
3653 Patch 7.0.095
3654 Problem:    The Greek tutor is not available in utf-8.  "el" is used for the
3655             language, only "gr" for the country is recognized.
3656 Solution:   Add the utf-8 Greek tutor.  Use it for conversion to iso-8859-7
3657             and cp737.  (Lefteris Dimitroulakis)
3658 Files:      runtime/tutor/Makefile, runtime/tutor/tutor.gr.utf-8,
3659             runtime/tutor/tutor.vim
3661 Patch 7.0.096
3662 Problem:    taglist() returns the filename relative to the tags file, while
3663             the directory of the tags file is unknown. (Hari Krishna Dara)
3664 Solution:   Expand the file name. (Yegappan Lakshmanan)
3665 Files:      src/tag.c
3667 Patch 7.0.097
3668 Problem:    ":tabclose N" that closes another tab page does not remove the tab
3669             pages line.  Same problem when using the mouse.
3670 Solution:   Adjust the tab pages line when needed in tabpage_close_other().
3671 Files:      src/ex_docmd.c
3673 Patch 7.0.098
3674 Problem:    Redirecting command output in a cmdline completion function
3675             doesn't work. (Hari Krishna Dara)
3676 Solution:   Enable redirection when redirection is started.
3677 Files:      src/ex_docmd.c, src/ex_getln.c
3679 Patch 7.0.099
3680 Problem:    GUI: When the popup menu is visible using the scrollbar messes up
3681             the display.
3682 Solution:   Disallow scrolling the current window.  Redraw the popup menu
3683             after scrolling another window.
3684 Files:      src/gui.c
3686 Patch 7.0.100
3687 Problem:    "zug" may report the wrong filename. (Lawrence Kesteloot)
3688 Solution:   Call home_replace() to fill NameBuff[].
3689 Files:      src/spell.c
3691 Patch 7.0.101
3692 Problem:    When the "~/.vim/spell" directory does not exist "zg" may create
3693             a wrong directory.  "zw" doesn't work.
3694 Solution:   Use the directory of the file name instead of NameBuff.  For "zw"
3695             not only remove a good word but also add the word with "!".
3696 Files:      src/spell.c
3698 Patch 7.0.102
3699 Problem:    Redrawing cmdline is not correct when using SCIM.
3700 Solution:   Don't call im_get_status(). (Yukihiro Nakadaira)
3701 Files:      src/ex_getln.c
3703 Patch 7.0.103 (after 7.0.101)
3704 Problem:    Compiler warning for uninitialized variable. (Tony Mechelynck)
3705 Solution:   Init variable.
3706 Files:      src/spell.c
3708 Patch 7.0.104
3709 Problem:    The CursorHoldI event only triggers once in Insert mode.  It also
3710             triggers after CTRL-V and other two-key commands.
3711 Solution:   Set "did_cursorhold" before getting a second key.  Reset
3712             "did_cursorhold" after handling a command.
3713 Files:      src/edit.c, src/fileio.c
3715 Patch 7.0.105
3716 Problem:    When using incremental search the statusline ruler isn't updated.
3717             (Christoph Koegl)
3718 Solution:   Update the statusline when it contains the ruler.
3719 Files:      src/ex_getln.c
3721 Patch 7.0.106
3722 Problem:    The spell popup menu uses ":amenu", triggering mappings.  Other
3723             PopupMenu autocommands are removed. (John Little)
3724 Solution:   Use ":anoremenu" and use an autocmd group.
3725 Files:      runtime/menu.vim
3727 Patch 7.0.107
3728 Problem:    Incremental search doesn't redraw the text tabline. (Ilya Bobir)
3729             Also happens in other situations with one window in a tab page.
3730 Solution:   Redraw the tabline after clearing the screen.
3731 Files:      src/screen.c
3733 Patch 7.0.108 (extra)
3734 Problem:    Amiga: Compilation problem.
3735 Solution:   Have mch_mkdir() return a failure flag. (Willy Catteau)
3736 Files:      src/os_amiga.c, src/proto/os_amiga.pro
3738 Patch 7.0.109
3739 Problem:    Lisp indenting is confused by escaped quotes in strings. (Dorai
3740             Sitaram)
3741 Solution:   Check for backslash inside strings. (Sergey Khorev)
3742 Files:      src/misc1.c
3744 Patch 7.0.110
3745 Problem:    Amiga: Compilation problems when not using libnix.
3746 Solution:   Change a few #ifdefs. (Willy Catteau)
3747 Files:      src/memfile.c
3749 Patch 7.0.111
3750 Problem:    The gzip plugin can't handle filenames with single quotes.
3751 Solution:   Add and use the shellescape() function. (partly by Alexey Froloff)
3752 Files:      runtime/autoload/gzip.vim, runtime/doc/eval.txt, src/eval.c,
3753             src/mbyte.c, src/misc2.c, src/proto/misc2.pro
3755 Patch 7.0.112
3756 Problem:    Python interface does not work with Python 2.5.
3757 Solution:   Change PyMem_DEL() to Py_DECREF(). (Sumner Hayes)
3758 Files:      src/if_python.c
3760 Patch 7.0.113
3761 Problem:    Using CTRL-L in Insert completion when there is no current match
3762             may cause a crash. (Yukihiro Nakadaira)
3763 Solution:   Check for compl_leader to be NULL
3764 Files:      src/edit.c
3766 Patch 7.0.114
3767 Problem:    When aborting an insert with CTRL-C an extra undo point is
3768             created in the GUI. (Yukihiro Nakadaira)
3769 Solution:   Call gotchars() only when advancing.
3770 Files:      src/getchar.c
3772 Patch 7.0.115
3773 Problem:    When 'ignorecase' is set, Insert mode completion only adds "foo"
3774             and not "Foo" when both are found.
3775             A found match isn't displayed right away when 'completeopt' does
3776             not have "menu" or "menuone".
3777 Solution:   Do not ignore case when checking if a completion match already
3778             exists.  call ins_compl_check_keys() also when not using a popup
3779             menu. (Yukihiro Nakadaira)
3780 Files:      src/edit.c
3782 Patch 7.0.116
3783 Problem:    64 bit Windows version reports "32 bit" in the ":version" output.
3784             (M. Veerman)
3785 Solution:   Change the text for Win64.
3786 Files:      src/version.c
3788 Patch 7.0.117
3789 Problem:    Using "extend" on a syntax item inside a region with "keepend", an
3790             intermediate item may be truncated.
3791             When applying the "keepend" and there is an offset to the end
3792             pattern the highlighting of a contained item isn't adjusted.
3793 Solution:   Use the seen_keepend flag to remember when to apply the "keepend"
3794             flag.  Adjust the keepend highlighting properly. (Ilya Bobir)
3795 Files:      src/syntax.c
3797 Patch 7.0.118
3798 Problem:    printf() does not do zero padding for strings.
3799 Solution:   Do allow zero padding for strings.
3800 Files:      src/message.c
3802 Patch 7.0.119
3803 Problem:    When going back from Insert to Normal mode the CursorHold event
3804             doesn't trigger. (Yakov Lerner)
3805 Solution:   Reset "did_cursorhold" when leaving Insert mode.
3806 Files:      src/edit.c
3808 Patch 7.0.120
3809 Problem:    Crash when using CTRL-R = at the command line and entering
3810             "getreg('=')". (James Vega)
3811 Solution:   Avoid recursiveness of evaluating the = register.
3812 Files:      src/ops.c
3814 Patch 7.0.121
3815 Problem:    GUI: Dragging the last status line doesn't work when there is a
3816             text tabline.  (Markus Wolf)
3817 Solution:   Take the text tabline into account when deciding to start modeless
3818             selection.
3819 Files:      src/gui.c
3821 Patch 7.0.122
3822 Problem:    GUI: When clearing after a bold, double-wide character half a
3823             character may be drawn.
3824 Solution:   Check for double-wide character and redraw it. (Yukihiro Nakadaira)
3825 Files:      src/screen.c
3827 Patch 7.0.123
3828 Problem:    On SCO Openserver configure selects the wrong terminal library.
3829 Solution:   Put terminfo before the other libraries. (Roger Cornelius)
3830             Also fix a small problem compiling on Mac without Darwin.
3831 Files:      src/configure.in, src/auto/configure
3833 Patch 7.0.124
3834 Problem:    getwinvar() obtains a dictionary with window-local variables, but
3835             it's always for the current window.
3836 Solution:   Get the variables of the specified window. (Geoff Reedy)
3837 Files:      src/eval.c
3839 Patch 7.0.125
3840 Problem:    When "autoselect" is in the 'clipboard' option then the '< and '>
3841             marks are set while Visual mode is still active.
3842 Solution:   Don't set the '< and '> marks when yanking the selected area for
3843             the clipboard.
3844 Files:      src/normal.c
3846 Patch 7.0.126
3847 Problem:    When 'formatexpr' uses setline() and later internal formatting is
3848             used undo information is not correct. (Jiri Cerny, Benji Fisher)
3849 Solution:   Set ins_need_undo after using 'formatexpr'.
3850 Files:      src/edit.c
3852 Patch 7.0.127
3853 Problem:    Crash when swap files has invalid timestamp.
3854 Solution:   Check return value of ctime() for being NULL.
3855 Files:      src/memline.c
3857 Patch 7.0.128
3858 Problem:    GUI: when closing gvim is cancelled because there is a changed
3859             buffer the screen isn't updated to show the changed buffer in the
3860             current window.  (Krzysztof Kacprzak)
3861 Solution:   Redraw when closing gvim is cancelled.
3862 Files:      src/gui.c
3864 Patch 7.0.129
3865 Problem:    GTK GUI: the GTK file dialog can't handle a relative path.
3866 Solution:   Make the initial directory a full path before passing it to GTK.
3867             (James Vega)  Also postpone adding the default file name until
3868             after setting the directory.
3869 Files:      src/gui_gtk.c
3871 Patch 7.0.130 (extra)
3872 Problem:    Win32: Trying to edit or write devices may cause Vim to get stuck.
3873 Solution:   Add the 'opendevice' option, default off.  Disallow
3874             reading/writing from/to devices when it's off.
3875             Also detect more devices by the full name starting with "\\.\".
3876 Files:      runtime/doc/options.txt, src/fileio.c, src/option.c, src/option.h,
3877             src/os_win32.c
3879 Patch 7.0.131
3880 Problem:    Win32: "vim -r" does not list all the swap files.
3881 Solution:   Also check for swap files starting with a dot.
3882 Files:      src/memline.c
3884 Patch 7.0.132 (after 7.0.130)
3885 Problem:    Win32: Crash when Vim reads from stdin.
3886 Solution:   Only use mch_nodetype() when there is a file name.
3887 Files:      src/fileio.c
3889 Patch 7.0.133
3890 Problem:    When searching included files messages are added to the history.
3891 Solution:   Set msg_hist_off for messages about scanning included files.
3892             Set msg_silent to avoid message about wrapping around.
3893 Files:      src/edit.c, src/globals.h, src/message.c, src/search.c
3895 Patch 7.0.134
3896 Problem:    Crash when comparing a recursively looped List or Dictionary.
3897 Solution:   Limit recursiveness for comparing to 1000.
3898 Files:      src/eval.c
3900 Patch 7.0.135
3901 Problem:    Crash when garbage collecting list or dict with loop.
3902 Solution:   Don't use DEL_REFCOUNT but don't recurse into Lists and
3903             Dictionaries when freeing them in the garbage collector.
3904             Also add allocated Dictionaries to the list of Dictionaries to
3905             avoid leaking memory.
3906 Files:      src/eval.c, src/proto/eval.pro, src/tag.c
3908 Patch 7.0.136
3909 Problem:    Using "O" while matching parens are highlighted may not remove the
3910             highlighting. (Ilya Bobir)
3911 Solution:   Also trigger CursorMoved when a line is inserted under the cursor.
3912 Files:      src/misc1.c
3914 Patch 7.0.137
3915 Problem:    Configure check for big features is wrong.
3916 Solution:   Change "==" to "=". (Martti Kuparinen)
3917 Files:      src/auto/configure, src/configure.in
3919 Patch 7.0.138 (extra)
3920 Problem:    Mac: modifiers don't work with function keys.
3921 Solution:   Use GetEventParameter() to obtain modifiers. (Nicolas Weber)
3922 Files:      src/gui_mac.c
3924 Patch 7.0.139
3925 Problem:    Using CTRL-PageUp or CTRL-PageDown in Insert mode to go to another
3926             tab page does not prepare for undo properly. (Stefano Zacchiroli)
3927 Solution:   Call start_arrow() before switching tab page.
3928 Files:      src/edit.c
3930 Patch 7.0.140 (after 7.0.134)
3931 Problem:    Comparing recursively looped List or Dictionary doesn't work well.
3932 Solution:   Detect comparing a List or Dictionary with itself.
3933 Files:      src/eval.c
3935 Patch 7.0.141
3936 Problem:    When pasting a while line on the command line an extra CR is added
3937             literally.
3938 Solution:   Don't add the trailing CR when pasting with the mouse.
3939 Files:      src/ex_getln.c, src/proto/ops.pro, src/ops.c
3941 Patch 7.0.142
3942 Problem:    Using the middle mouse button in Select mode to paste text results
3943             in an extra "y". (Kriton Kyrimis)
3944 Solution:   Let the middle mouse button replace the selected text with the
3945             contents of the clipboard.
3946 Files:      src/normal.c
3948 Patch 7.0.143
3949 Problem:    Setting 'scroll' to its default value was not handled correctly.
3950 Solution:   Compare the right field to PV_SCROLL.
3951 Files:      src/option.c
3953 Patch 7.0.144
3954 Problem:    May compare two unrelated pointers when matching a pattern against
3955             a string.  (Dominique Pelle)
3956 Solution:   Avoid calling reg_getline() when REG_MULTI is false.
3957 Files:      src/regexp.c
3959 Patch 7.0.145 (after 7.0.142)
3960 Problem:    Compiler warning.
3961 Solution:   Add type cast.
3962 Files:      src/normal.c
3964 Patch 7.0.146
3965 Problem:    When 'switchbuf' is set to "usetab" and the current tab has only a
3966             quickfix window, jumping to an error always opens a new window.
3967             Also, when the buffer is open in another tab page it's not found.
3968 Solution:   Check for the "split" value of 'switchbuf' properly.  Search in
3969             other tab pages for the desired buffer. (Yegappan Lakshmanan)
3970 Files:      src/buffer.c, src/quickfix.c
3972 Patch 7.0.147
3973 Problem:    When creating a session file and there are several tab pages and
3974             some windows have a local directory a short file name may be used
3975             when it's not valid. (Marius Roets)
3976             A session with multiple tab pages may result in "No Name" buffers.
3977             (Bill McCarthy)
3978 Solution:   Don't enter tab pages when going through the list, only use a
3979             pointer to the first window in each tab page.
3980             Use "tabedit" instead of "tabnew | edit" when possible.
3981 Files:      src/ex_docmd.c
3983 Patch 7.0.148
3984 Problem:    When doing "call a.xyz()" and "xyz" does not exist in dictionary
3985             "a" there is no error message. (Yegappan Lakshmanan)
3986 Solution:   Add the error message.
3987 Files:      src/eval.c
3989 Patch 7.0.149
3990 Problem:    When resizing a window that shows "~" lines the text sometimes
3991             jumps down.
3992 Solution:   Remove code that uses "~" lines in some situations.  Fix the
3993             computation of the screen line of the cursor.  Also set w_skipcol
3994             to handle very long lines.
3995 Files:      src/misc1.c, src/window.c
3997 Patch 7.0.150
3998 Problem:    When resizing the Vim window scrollbinding doesn't work. (Yakov
3999             Lerner)
4000 Solution:   Do scrollbinding in set_shellsize().
4001 Files:      src/term.c
4003 Patch 7.0.151
4004 Problem:    Buttons in file dialog are not according to Gnome guidelines.
4005 Solution:   Swap Cancel and Open buttons. (Stefano Zacchiroli)
4006 Files:      src/gui_gtk.c
4008 Patch 7.0.152
4009 Problem:    Crash when using lesstif 2.
4010 Solution:   Fill in the extension field. (Ben Hutchings)
4011 Files:      src/gui_xmebw.c
4013 Patch 7.0.153
4014 Problem:    When using cscope and opening the temp file fails Vim crashes.
4015             (Kaya Bekiroglu)
4016 Solution:   Check for NULL pointer returned from mch_open().
4017 Files:      src/if_cscope.c
4019 Patch 7.0.154
4020 Problem:    When 'foldnextmax' is negative Vim can hang. (James Vega)
4021 Solution:   Avoid the fold level becoming negative.
4022 Files:      src/fold.c, src/syntax.c
4024 Patch 7.0.155
4025 Problem:    When getchar() returns a mouse button click there is no way to get
4026             the mouse coordinates.
4027 Solution:   Add v:mouse_win, v:mouse_lnum and v:mouse_col.
4028 Files:      runtime/doc/eval.txt, src/eval.c, src/vim.h
4030 Patch 7.0.156 (extra)
4031 Problem:    Vim doesn't compile for Amiga OS 4.
4032 Solution:   Various changes for Amiga OS4. (Peter Bengtsson)
4033 Files:      src/feature.h, src/mbyte.c, src/memfile.c, src/memline.c,
4034             src/os_amiga.c, src/os_amiga.h, src/pty.c
4036 Patch 7.0.157
4037 Problem:    When a function is used recursively the profiling information is
4038             invalid. (Mikolaj Machowski)
4039 Solution:   Put the start time on the stack instead of in the function.
4040 Files:      src/eval.c
4042 Patch 7.0.158
4043 Problem:    In a C file with ":set foldmethod=syntax", typing {<CR> on the
4044             last line results in the cursor being in a closed fold. (Gautam
4045             Iyer)
4046 Solution:   Open fold after inserting a new line.
4047 Files:      src/edit.c
4049 Patch 7.0.159
4050 Problem:    When there is an I/O error in the swap file the cause of the error
4051             cannot be seen.
4052 Solution:   Use PERROR() instead of EMSG() where possible.
4053 Files:      src/memfile.c
4055 Patch 7.0.160
4056 Problem:    ":@a" echoes the command, Vi doesn't do that.
4057 Solution:   Set the silent flag in the typeahead buffer to avoid echoing the
4058             command.
4059 Files:      src/ex_docmd.c, src/normal.c, src/ops.c, src/proto/ops.pro
4061 Patch 7.0.161
4062 Problem:    Win32: Tab pages line popup menu isn't using the right encoding.
4063             (Yongwei Wu)
4064 Solution:   Convert the text when necessary.  Also fixes the Find/Replace
4065             dialog title. (Yegappan Lakshmanan)
4066 Files:      src/gui_w48.c
4068 Patch 7.0.162
4069 Problem:    "vim -o a b" when file "a" triggers the ATTENTION dialog,
4070             selecting "Quit" exits Vim instead of editing "b" only.
4071             When file "b" triggers the ATTENTION dialog selecting "Quit" or
4072             "Abort" results in editing file "a" in that window.
4073 Solution:   When selecting "Abort" exit Vim.  When selecting "Quit" close the
4074             window.  Also avoid hit-enter prompt when selecting Abort.
4075 Files:      src/buffer.c, src/main.c
4077 Patch 7.0.163
4078 Problem:    Can't retrieve the position of a sign after it was set.
4079 Solution:   Add the netbeans interface getAnno command. (Xavier de Gaye)
4080 Files:      runtime/doc/netbeans.txt, src/netbeans.c
4082 Patch 7.0.164
4083 Problem:    ":redir @+" doesn't work.
4084 Solution:   Accept "@+" just like "@*". (Yegappan Lakshmanan)
4085 Files:      src/ex_docmd.c
4087 Patch 7.0.165
4088 Problem:    Using CTRL-L at the search prompt adds a "/" and other characters
4089             without escaping, causing the pattern not to match.
4090 Solution:   Escape special characters with a backslash.
4091 Files:      src/ex_getln.c
4093 Patch 7.0.166
4094 Problem:    Crash in cscope code when connection could not be opened.
4095             (Kaya Bekiroglu)
4096 Solution:   Check for the file descriptor to be NULL.
4097 Files:      src/if_cscope.c
4099 Patch 7.0.167
4100 Problem:    ":function" redefining a dict function doesn't work properly.
4101             (Richard Emberson)
4102 Solution:   Allow a function name to be a number when it's a function
4103             reference.
4104 Files:      src/eval.c
4106 Patch 7.0.168
4107 Problem:    Using uninitialized memory and memory leak. (Dominique Pelle)
4108 Solution:   Use alloc_clear() instead of alloc() for w_lines.  Free
4109             b_ml.ml_stack after recovery.
4110 Files:      src/memline.c, src/window.c
4112 Patch 7.0.169
4113 Problem:    With a Visual block selection, with the cursor in the left upper
4114             corner, pressing "I" doesn't remove the highlighting. (Guopeng
4115             Wen)
4116 Solution:   When checking if redrawing is needed also check if Visual
4117             selection is still active.
4118 Files:      src/screen.c
4120 Patch 7.0.170 (extra)
4121 Problem:    Win32: Using "gvim --remote-tab foo" when gvim is minimized while
4122             it previously was maximized, un-maximizing doesn't work properly.
4123             And the labels are not displayed properly when 'encoding' is
4124             utf-8.
4125 Solution:   When minimized check for SW_SHOWMINIMIZED.  When updating the tab
4126             pages line use TCM_SETITEMW instead of TCM_INSERTITEMW. (Liu
4127             Yubao)
4128 Files:      src/gui_w48.c
4130 Patch 7.0.171 (extra)
4131 Problem:    VMS: A file name with multiple paths is written in the wrong file.
4132 Solution:   Get the actually used file name. (Zoltan Arpadffy)
4133             Also add info to the :version command about compilation.
4134 Files:      src/Make_vms.mms, src/buffer.c, src/os_unix.c, src/version.c
4136 Patch 7.0.172
4137 Problem:    Crash when recovering and quitting at the "press-enter" prompt.
4138 Solution:   Check for "msg_list" to be NULL. (Liu Yubao)
4139 Files:      src/ex_eval.c
4141 Patch 7.0.173
4142 Problem:    ":call f().TT()" doesn't work.  (Richard Emberson)
4143 Solution:   When a function returns a Dictionary or another composite continue
4144             evaluating what follows.
4145 Files:      src/eval.c    
4147 Patch 7.0.174
4148 Problem:    ":mksession" doesn't restore window layout correctly in tab pages
4149             other than the current one. (Zhibin He)
4150 Solution:   Use the correct topframe for producing the window layout commands.
4151 Files:      src/ex_docmd.c
4153 Patch 7.0.175
4154 Problem:    The result of tr() is missing the terminating NUL. (Ingo Karkat)
4155 Solution:   Add the NUL.
4156 Files:      src/eval.c
4158 Patch 7.0.176
4159 Problem:    ":emenu" isn't executed directly, causing the encryption key
4160             prompt to fail. (Life Jazzer)
4161 Solution:   Fix wrong #ifdef.
4162 Files:      src/menu.c
4164 Patch 7.0.177
4165 Problem:    When the press-enter prompt gets a character from a non-remappable
4166             mapping, it's put back in the typeahead buffer as remappable,
4167             which may cause an endless loop.
4168 Solution:   Restore the non-remappable flag and the silent flag when putting a
4169             char back in the typeahead buffer.
4170 Files:      src/getchar.c, src/message.c, src/normal.c
4172 Patch 7.0.178
4173 Problem:    When 'enc' is "utf-8" and 'ignorecase' is set the result of ":echo
4174             ("\xe4" == "\xe4")" varies.
4175 Solution:   In mb_strnicmp() avoid looking past NUL bytes.
4176 Files:      src/mbyte.c
4178 Patch 7.0.179
4179 Problem:    Using ":recover" or "vim -r" without a swapfile crashes Vim.
4180 Solution:   Check for "buf" to be unequal NULL. (Yukihiro Nakadaira)
4181 Files:      src/memline.c
4183 Patch 7.0.180 (extra, after 7.0.171)
4184 Problem:    VMS: build failed.  Problem with swapfiles.
4185 Solution:   Add "compiled_arch".  Always expand path and pass it to
4186             buf_modname().  (Zoltan Arpadffy)
4187 Files:      src/globals.h, src/memline.c, src/os_unix.c, runtime/menu.vim
4189 Patch 7.0.181
4190 Problem:    When reloading a file that starts with an empty line, the reloaded
4191             buffer has an extra empty line at the end. (Motty Lentzitzky)
4192 Solution:   Delete all lines, don't use bufempty().
4193 Files:      src/fileio.c
4195 Patch 7.0.182
4196 Problem:    When using a mix of undo and "g-" it may no longer be possible to
4197             go to every point in the undo tree.  (Andy Wokula)
4198 Solution:   Correctly update pointers in the undo tree.
4199 Files:      src/undo.c
4201 Patch 7.0.183
4202 Problem:    Crash in ":let" when redirecting to a variable that's being
4203             displayed. (Thomas Link)
4204 Solution:   When redirecting to a variable only do the assignment when
4205             stopping redirection to avoid that setting the variable causes a
4206             freed string to be accessed.
4207 Files:      src/eval.c
4209 Patch 7.0.184
4210 Problem:    When the cscope program is called "mlcscope" the Cscope interface
4211             doesn't work.
4212 Solution:   Accept "\S*cscope:" instead of "cscope:". (Frodak D. Baksik)
4213 Files:      src/if_cscope.c
4215 Patch 7.0.185
4216 Problem:    Multi-byte characters in a message are displayed with attributes
4217             from what comes before it.
4218 Solution:   Don't use the attributes for a multi-byte character.  Do use
4219             attributes for special characters. (Yukihiro Nakadaira)
4220 Files:      src/message.c
4222 Patch 7.0.186
4223 Problem:    Get an ml_get error when 'encoding' is "utf-8" and searching for
4224             "/\_s*/e" in an empty buffer.  (Andrew Maykov)
4225 Solution:   Don't try getting the line just below the last line.
4226 Files:      src/search.c
4228 Patch 7.0.187
4229 Problem:    Can't source a remote script properly.
4230 Solution:   Add the SourceCmd event. (Charles Campbell)
4231 Files:      runtime/doc/autocmd.txt, src/ex_cmds2.c, src/fileio.c, src/vim.h
4233 Patch 7.0.188 (after 7.0.186)
4234 Problem:    Warning for wrong pointer type.
4235 Solution:   Add a type cast.
4236 Files:      src/search.c
4238 Patch 7.0.189
4239 Problem:    Translated message about finding matches is truncated. (Yukihiro
4240             Nakadaira)
4241 Solution:   Enlarge the buffer.  Also use vim_snprintf().
4242 Files:      src/edit.c
4244 Patch 7.0.190
4245 Problem:    "syntax spell default" results in an error message.
4246 Solution:   Change 4 to 7 for STRNICMP(). (Raul Nunez de Arenas Coronado)
4247 Files:      src/syntax.c
4249 Patch 7.0.191
4250 Problem:    The items used by getqflist() and setqflist() don't match.
4251 Solution:   Support the "bufnum" item for setqflist(). (Yegappan Lakshmanan)
4252 Files:      runtime/doc/eval.txt, src/quickfix.c
4254 Patch 7.0.192
4255 Problem:    When 'swapfile' is switched off in an empty file it is possible
4256             that not all blocks are loaded into memory, causing ml_get errors
4257             later.
4258 Solution:   Rename "dont_release" to "mf_dont_release" and also use it to
4259             avoid using the cached line and locked block. 
4260 Files:      src/globals.h, src/memfile.c, src/memline.c
4262 Patch 7.0.193
4263 Problem:    Using --remote or --remote-tab with an argument that matches
4264             'wildignore' causes a crash.
4265 Solution:   Check the argument count before using ARGLIST[0].
4266 Files:      src/ex_cmds.c
4268 Patch 7.0.194
4269 Problem:    Once an ml_get error is given redrawing part of the screen may
4270             cause it again, resulting in an endless loop.
4271 Solution:   Don't give the error message for a recursive call.
4272 Files:      src/memline.c
4274 Patch 7.0.195
4275 Problem:    When a buffer is modified and 'autowriteall' is set, ":quit"
4276             results in an endless loop when there is a conversion error while
4277             writing. (Nikolai Weibull)
4278 Solution:   Make autowrite() return FAIL if the buffer is still changed after
4279             writing it.
4280             /* put the cursor on the last char, for 'tw' formatting */
4281 Files:      src/ex_cmds2.c
4283 Patch 7.0.196
4284 Problem:    When using ":vert ball" the computation of the mouse pointer
4285             position may be off by one column. (Stefan Karlsson)
4286 Solution:   Recompute the frame width when moving the vertical separator from
4287             one window to another.
4288 Files:      src/window.c
4290 Patch 7.0.197 (extra)
4291 Problem:    Win32: Compiling with EXITFREE doesn't work.
4292 Solution:   Adjust a few #ifdefs. (Alexei Alexandrof)
4293 Files:      src/misc2.c, src/os_mswin.c
4295 Patch 7.0.198 (extra)
4296 Problem:    Win32: Compiler warnings.  No need to generate gvim.exe.mnf.
4297 Solution:   Add type casts.  Use "*" for processorArchitecture. (George Reilly)
4298 Files:      src/Make_mvc.mak, src/eval.c, src/gvim.exe.mnf, src/misc2.c
4300 Patch 7.0.199
4301 Problem:    When using multi-byte characters the combination of completion and
4302             formatting may result in a wrong cursor position.
4303 Solution:   Don't decrement the cursor column, use dec_cursor(). (Yukihiro
4304             Nakadaira)  Also check for the column to be zero.
4305 Files:      src/edit.c
4307 Patch 7.0.200
4308 Problem:    Memory leaks when out of memory.
4309 Solution:   Free the memory.
4310 Files:      src/edit.c, src/diff.c
4312 Patch 7.0.201
4313 Problem:    Message for ":diffput" about buffer not being in diff mode may be
4314             wrong.
4315 Solution:   Check for buffer in diff mode but not modifiable.
4316 Files:      src/diff.c
4318 Patch 7.0.202
4319 Problem:    Problems on Tandem systems while compiling and at runtime.
4320 Solution:   Recognize root uid is 65535.  Check select() return value for it
4321             not being supported.  Avoid wrong function prototypes.  Mention
4322             use of -lfloss.  (Matthew Woehlke)
4323 Files:      src/Makefile, src/ex_cmds.c, src/fileio.c, src/main.c,
4324             src/osdef1.h.in, src/osdef2.h.in, src/os_unix.c, src/pty.c,
4325             src/vim.h
4327 Patch 7.0.203
4328 Problem:    0x80 characters in a register are not handled correctly for the
4329             "@" command.
4330 Solution:   Escape CSI and 0x80 characters. (Yukihiro Nakadaira)
4331 Files:      src/ops.c
4333 Patch 7.0.204
4334 Problem:    Cscope: Parsing matches for listing isn't done properly.
4335 Solution:   Check for line number being found. (Yu Zhao)
4336 Files:      src/if_cscope.c
4338 Patch 7.0.205 (after 7.0.203)
4339 Problem:    Can't compile.
4340 Solution:   Always include the vim_strsave_escape_csi function.
4341 Files:      src/getchar.c
4343 Patch 7.0.206 (after 7.0.058)
4344 Problem:    Some characters of the "gb18030" encoding are not handled
4345             properly.
4346 Solution:   Do not use "cp936" as an alias for "gb18030" encoding.  Instead
4347             initialize 'encoding' to "cp936".
4348 Files:      src/mbyte.c, src/option.c
4350 Patch 7.0.207
4351 Problem:    After patch 2.0.203 CSI and K_SPECIAL characters are escaped when
4352             recorded and then again when the register is executed.
4353 Solution:   Remove escaping before putting the recorded characters in a
4354             register.  (Yukihiro Nakadaira)
4355 Files:      src/getchar.c, src/ops.c, src/proto/getchar.pro
4357 Patch 7.0.208 (after 7.0.171 and 7.0.180)
4358 Problem:    VMS: changes to path handling cause more trouble than they solve.
4359 Solution:   Revert changes.
4360 Files:      src/buffer.c, src/memline.c, src/os_unix.c
4362 Patch 7.0.209
4363 Problem:    When replacing a line through Python the cursor may end up beyond
4364             the end of the line.
4365 Solution:   Check the cursor column after replacing the line.
4366 Files:      src/if_python.c
4368 Patch 7.0.210
4369 Problem:    ":cbuffer" and ":lbuffer" always fail when the buffer is modified.
4370             (Gary Johnson)
4371 Solution:   Support adding a !. (Yegappan Lakshmanan)
4372 Files:      runtime/doc/quickfix.txt, src/ex_cmds.h
4374 Patch 7.0.211
4375 Problem:    With ":set cindent noai bs=0" using CTRL-U in Insert mode will
4376             delete auto-indent.  After ":set ai" it doesn't.
4377 Solution:   Also check 'cindent' being set. (Ryan Lortie)
4378 Files:      src/edit.c
4380 Patch 7.0.212
4381 Problem:    The GUI can't be terminated with SIGTERM. (Mark Logan)
4382 Solution:   Use the signal protection in the GUI as in the console, allow
4383             signals when waiting for 100 msec or longer.
4384 Files:      src/ui.c
4386 Patch 7.0.213
4387 Problem:    When 'spellfile' has two regions that use the same sound folding
4388             using "z=" will cause memory to be freed twice. (Mark Woodward)
4389 Solution:   Clear the hashtable properly so that the items are only freed once.
4390 Files:      src/spell.c
4392 Patch 7.0.214
4393 Problem:    When using <f-args> in a user command it's not possible to have an
4394             argument end in '\ '.
4395 Solution:   Change the handling of backslashes. (Yakov Lerner)
4396 Files:      runtime/doc/map.txt, src/ex_docmd.c
4398 Patch 7.0.215 (extra)
4399 Problem:    Mac: Scrollbar size isn't set.  Context menu has disabled useless
4400             Help entry.  Call to MoreMasterPointers() is ignored.
4401 Solution:   Call SetControlViewSize() in gui_mch_set_scrollbar_thumb().  Use
4402             kCMHelpItemRemoveHelp for ContextualMenuSelect().  Remove call to
4403             MoreMasterPointers(). (Nicolas Weber)
4404 Files:      src/gui_mac.c
4406 Patch 7.0.216
4407 Problem:    ":tab wincmd ]" does not open a tab page. (Tony Mechelynck)
4408 Solution:   Copy the cmdmod.tab value to postponed_split_tab and use it.
4409 Files:      src/globals.h, src/ex_docmd.c, src/if_cscope.c, src/window.c
4411 Patch 7.0.217
4412 Problem:    This hangs when pressing "n": ":%s/\n/,\r/gc". (Ori Avtalion)
4413 Solution:   Set "skip_match" to advance to the next line.
4414 Files:      src/ex_cmds.c
4416 Patch 7.0.218
4417 Problem:    "%B" in 'statusline' always shows zero in Insert mode. (DervishD)
4418 Solution:   Remove the exception for Insert mode, check the column for being
4419             valid instead.
4420 Files:      src/buffer.c
4422 Patch 7.0.219
4423 Problem:    When using the 'editexisting.vim' script and a file is being
4424             edited in another tab page the window is split.  The "+123"
4425             argument is not used.
4426 Solution:   Make the tab page with the file the current tab page.  Set
4427             v:swapcommand when starting up to the first "+123" or "-c" command
4428             line argument.
4429 Files:      runtime/macros/editexisting.vim, src/main.c
4431 Patch 7.0.220
4432 Problem:    Crash when using winnr('#') in a new tab page. (Andy Wokula)
4433 Solution:   Check for not finding the window.
4434 Files:      src/eval.c
4436 Patch 7.0.221
4437 Problem:    finddir() uses 'path' by default, where "." means relative to the
4438             current file.  But it works relative to the current directory.
4439             (Tye Zdrojewski)
4440 Solution:   Add the current buffer name to find_file_in_path_option() for the
4441             relative file name.
4442 Files:      runtime/doc/eval.txt, src/eval.c
4444 Patch 7.0.222
4445 Problem:    Perl indenting using 'cindent' works almost right.
4446 Solution:   Recognize '#' to start a comment. (Alex Manoussakis)  Added '#'
4447             flag in 'cinoptions'.
4448 Files:      runtime/doc/indent.txt, src/misc1.c
4450 Patch 7.0.223
4451 Problem:    Unprintable characters in completion text mess up the popup menu.
4452             (Gombault Damien)
4453 Solution:   Use strtrans() to make the text printable.
4454 Files:      src/charset.c, src/popupmnu.c
4456 Patch 7.0.224
4457 Problem:    When expanding "##" spaces are escaped twice.  (Pavol Juhas)
4458 Solution:   Don't escape the spaces that separate arguments.
4459 Files:      src/eval.c, src/ex_docmd.c, src/proto/ex_docmd.pro
4461 Patch 7.0.225
4462 Problem:    When using setline() in an InsertEnter autocommand and doing "A"
4463             the cursor ends up on the last byte in the line. (Yukihiro
4464             Nakadaira)
4465 Solution:   Only adjust the column when using setline() for the cursor line.
4466             Move it back to the head byte if necessary.
4467 Files:      src/eval.c, src/misc2.c
4469 Patch 7.0.226
4470 Problem:    Display flickering when updating signs through the netbeans
4471             interface. (Xavier de Gaye)
4472 Solution:   Remove the redraw_later(CLEAR) call.
4473 Files:      src/netbeans.c
4475 Patch 7.0.227
4476 Problem:    Crash when closing a window in the GUI. (Charles Campbell)
4477 Solution:   Don't call out_flush() from win_free().
4478 Files:      src/window.c
4480 Patch 7.0.228
4481 Problem:    Cygwin: problem with symlink to DOS style path.
4482 Solution:   Invoke cygwin_conv_to_posix_path(). (Luca Masini)
4483 Files:      src/os_unix.c
4485 Patch 7.0.229
4486 Problem:    When 'pastetoggle' starts with Esc then pressing Esc in Insert
4487             mode will not time out. (Jeffery Small)
4488 Solution:   Use KL_PART_KEY instead of KL_PART_MAP, so that 'ttimeout' applies
4489             to the 'pastetoggle' key.
4490 Files:      src/getchar.c
4492 Patch 7.0.230
4493 Problem:    After using ":lcd" a script doesn't know how to restore the
4494             current directory.
4495 Solution:   Add the haslocaldir() function. (Bob Hiestand)
4496 Files:      runtime/doc/usr_41.txt, runtime/doc/eval.txt, src/eval.c
4498 Patch 7.0.231
4499 Problem:    When recovering from a swap file the page size is likely to be
4500             different from the minimum.  The block used for the first page
4501             then has a buffer of the wrong size, causing a crash when it's
4502             reused later.  (Zephaniah Hull)
4503 Solution:   Reallocate the buffer when the page size changes.  Also check that
4504             the page size is at least the minimum value.
4505 Files:      src/memline.c
4507 Patch 7.0.232 (extra)
4508 Problem:    Mac: doesn't support GUI tab page labels.
4509 Solution:   Add GUI tab page labels. (Nicolas Weber)
4510 Files:      src/feature.h, src/gui.c, src/gui.h, src/gui_mac.c,
4511             src/proto/gui_mac.pro
4513 Patch 7.0.233 (extra)
4514 Problem:    Mac: code formatted badly.
4515 Solution:   Fix code formatting
4516 Files:      src/gui_mac.c
4518 Patch 7.0.234
4519 Problem:    It's possible to use feedkeys() from a modeline.  That is a
4520             security issue, can be used for a trojan horse.
4521 Solution:   Disallow using feedkeys() in the sandbox.
4522 Files:      src/eval.c
4524 Patch 7.0.235
4525 Problem:    It is possible to use writefile() in the sandbox.
4526 Solution:   Add a few more checks for the sandbox.
4527 Files:      src/eval.c
4529 Patch 7.0.236
4530 Problem:    Linux 2.4 uses sysinfo() with a mem_unit field, which is not
4531             backwards compatible.
4532 Solution:   Add an autoconf check for sysinfo.mem_unit.  Let mch_total_mem()
4533             return Kbyte to avoid overflow.
4534 Files:      src/auto/configure, src/configure.in, src/config.h.in,
4535             src/option.c, src/os_unix.c
4537 Patch 7.0.237
4538 Problem:    For root it is recommended to not use 'modeline', but in
4539             not-compatible mode the default is on.
4540 Solution:   Let 'modeline' default to off for root.
4541 Files:      runtime/doc/options.txt, src/option.c
4543 Patch 7.0.238
4544 Problem:    Crash when ":match" pattern runs into 'maxmempattern'. (Yakov
4545             Lerner)
4546 Solution:   Don't free the regexp program of match_hl.
4547 Files:      src/screen.c
4549 Patch 7.0.239
4550 Problem:    When using local directories and tab pages ":mksession" uses a
4551             short file name when it shouldn't.  Window-local options from a
4552             modeline may be applied to the wrong window. (Teemu Likonen)
4553 Solution:   Add the did_lcd flag, use the full path when it's set.  Don't use
4554             window-local options from the modeline when using the current
4555             window for another buffer in ":doautoall".
4556 Files:      src/fileio.c,  src/ex_docmd.c
4558 Patch 7.0.240
4559 Problem:    Crash when splitting a window in the GUI. (opposite of 7.0.227)
4560 Solution:   Don't call out_flush() from win_alloc().  Also avoid this for
4561             win_delete().  Also block autocommands while the window structure
4562             is invalid.
4563 Files:      src/window.c
4565 Patch 7.0.241
4566 Problem:    ":windo throw 'foo'" loops forever. (Andy Wokula)
4567 Solution:   Detect that win_goto() doesn't work.
4568 Files:      src/ex_cmds2.c
4570 Patch 7.0.242 (extra)
4571 Problem:    Win32: Using "-register" in a Vim that does not support OLE causes
4572             a crash.
4573 Solution:   Don't use EMSG() but mch_errmsg().  Check p_go for being NULL.
4574             (partly by Michael Wookey)
4575 Files:      src/gui_w32.c
4577 Patch 7.0.243 (extra)
4578 Problem:    Win32: When GvimExt is built with MSVC 2005 or later, the "Edit
4579             with vim" context menu doesn't appear in the Windows Explorer.
4580 Solution:   Embed the linker manifest file into the resources of GvimExt.dll.
4581             (Mathias Michaelis)
4582 Files:      src/GvimExt/Makefile
4585 Fixes after Vim 7.1a BETA:
4587 The extra archive had CVS directories included below "farsi" and
4588 "runtime/icons".  CVS was missing the farsi icon files.
4590 Fix compiling with Gnome 2.18, undefine bind_textdomain_codeset. (Daniel
4591 Drake)
4593 Mac: "make install" didn't copy rgb.txt.
4595 When editing a compressed file while there are folds caused "ml_get" errors
4596 and some lines could be missing.  When decompressing failed option values were
4597 not restored.
4600 Patch 7.1a.001
4601 Problem:    Crash when downloading a spell file.  (Szabolcs Horvat)
4602 Solution:   Avoid that did_set_spelllang() is used recursively when a new
4603             window is opened for the download.
4604             Also avoid wiping out the wrong buffer.
4605 Files:      runtime/autoload/spellfile.vim, src/buffer.c, src/ex_cmds.c,
4606             src/spell.c
4608 Patch 7.1a.002 (extra)
4609 Problem:    Compilation error with MingW.
4610 Solution:   Check for LPTOOLTIPTEXT to be defined.
4611 Files:      src/gui_w32.c
4614 Fixes after Vim 7.1b BETA:
4616 Made the Mzscheme interface build both with old and new versions of Mzscheme,
4617 using an #ifdef. (Sergey Khorev)
4618 Mzscheme interface didn't link, missing function.  Changed order of libraries
4619 in the configure script.
4621 Ruby interface didn't compile on Mac.  Changed #ifdef. (Kevin Ballard)
4623 Patch 7.1b.001 (extra)
4624 Problem:    Random text in a source file.  No idea how it got there.
4625 Solution:   Delete the text.
4626 Files:      src/gui_w32.c
4628 Patch 7.1b.002
4629 Problem:    When 'maxmem' is large there can be an overflow in computations.
4630             (Thomas Wiegner)
4631 Solution:   Use the same mechanism as in mch_total_mem(): first reduce the
4632             multiplier as much as possible.
4633 Files:      src/memfile.c
4635 ==============================================================================
4636 VERSION 7.2                                     *version-7.2* *version7.2*
4638 This section is about improvements made between version 7.1 and 7.2.
4640 This is mostly a bug-fix release.  The main new feature is floating point
4641 support. |Float|
4644 Changed                                                 *changed-7.2*
4645 -------
4647 Changed the command line buffer name from "command-line" to "[Command Line]".
4649 Removed optional ! for ":caddexpr", ":cgetexpr", ":cgetfile", ":laddexpr",
4650 ":lgetexpr" and ":lgetfile".  They are not needed.  (Yegappan Lakshmanan)
4652 An offset for syntax matches worked on bytes instead of characters.  That is
4653 inconsistent and can easily be done wrong.  Use character offsets now.
4654 (Yukihiro Nakadaira)
4656 The FileChangedShellPost event was also given when a file didn't change.
4657 (John Little)
4659 When the current line is long (doesn't fit) the popup menu can't be seen.
4660 Display it below the screen line instead of below the text line.
4661 (Francois Ingelrest)
4663 Switched to autoconf version 2.62.
4665 Moved including fcntl.h to vim.h and removed it from all .c files.
4667 Introduce macro STRMOVE(d, s), like STRCPY() for overlapping strings.
4668 Use it instead of mch_memmove(p, p + x, STRLEN(p + x) + 1).
4670 Removed the bulgarian.vim keymap file, two more standard ones replace it.
4671 (Boyko Bantchev)
4673 Increased the maximum number of tag matches for command line completion from
4674 200 to 300.
4676 Renamed help file sql.txt to ft_sql.txt and ada.txt to ft_ada.txt.
4679 Added                                                   *added-7.2*
4680 -----
4682 New syntax files:
4683         CUDA (Timothy B. Terriberry)
4684         Cdrdao config (Nikolai Weibull)
4685         Coco/R (Ashish Shukla)
4686         Denyhosts config (Nikolai Weibull)
4687         Dtrace script (Nicolas Weber)
4688         Git output, commit, config, rebase, send-email (Tim Pope)
4689         HASTE and HastePreProc (M. Tranchero)
4690         Haml (Tim Pope)
4691         Host conf (Nikolai Weibull)
4692         Linden script (Timo Frenay)
4693         MS messages (Kevin Locke)
4694         PDF (Tim Pope)
4695         ProMeLa (Maurizio Tranchero)
4696         Reva Foth (Ron Aaron)
4697         Sass (Tim Pope)
4698         Symbian meta-makefile, MMP (Ron Aaron)
4699         VOS CM macro (Andrew McGill)
4700         XBL (Doug Kearns)
4702 New tutor files:
4703         Made UTF-8 versions of all the tutor files.
4704         Greek renamed from ".gr" to ".el" (Greek vs Greece).
4705         Esperanto (Dominique Pelle)
4706         Croatian (Paul B. Mahol)
4708 New filetype plugins:
4709         Cdrdao config (Nikolai Weibull)
4710         Debian control files (Debian Vim maintainers)
4711         Denyhosts (Nikolai Weibull)
4712         Dos .ini file (Nikolai Weibull)
4713         Dtrace script (Nicolas Weber)
4714         FnameScript (Nikolai Weibull)
4715         Git, Git config, Git commit, Git rebase, Git send-email (Tim Pope)
4716         Haml (Tim Pope)
4717         Host conf (Nikolai Weibull)
4718         Host access (Nikolai Weibull)
4719         Logtalk (Paulo Moura)
4720         MS messages (Kevin Locke)
4721         NSIS script (Nikolai Weibull)
4722         PDF (Tim Pope)
4723         Reva Forth (Ron Aaron)
4724         Sass (Tim Pope)
4726 New indent files:
4727         DTD (Nikolai Weibull)
4728         Dtrace script (Nicolas Weber)
4729         Erlang (Csaba Hoch)
4730         FrameScript (Nikolai Weibull)
4731         Git config (Tim Pope)
4732         Haml (Tim Pope)
4733         Logtalk (Paulo Moura)
4734         Sass (Tim Pope)
4735         Tiny Fugue (Christian J. Robinson)
4737 New compiler plugins:
4738         RSpec (Tim Pope)
4740 New keymap files:
4741         Croatian (Paul B. Mahol)
4742         Russian Dvorak (Serhiy Boiko)
4743         Ukrainian Dvorak (Serhiy Boiko)
4744         Removed plain Bulgarian, "bds" and phonetic are sufficient.
4746 Other new runtime files:
4747         Esperanto menu and message translations. (Dominique Pelle)
4748         Finnish menu and message translations. (Flammie Pirinen)
4749         Brazilian Portuguese message translations. (Eduardo Dobay)
4751 Added floating point support. |Float|
4753 Added argument to mode() to return a bit more detail about the current mode.
4754 (Ben Schmidt)
4756 Added support for BSD console mouse: |sysmouse|.  (Paul B. Mahol)
4758 Added the "newtab" value for the 'switchbuf' option.  (partly by Yegappan
4759 Lakshmanan)
4761 Improved error messages for the netbeans interface. (Philippe Fremy)
4763 Added support for using xterm mouse codes for screen. (Micah Cowan)
4765 Added support for cross compiling:
4766 Adjusted configure.in and added INSTALLcross.txt. (Marc Haisenko)  Fixed
4767 mistakes in configure.in after that.
4768 Don't use /usr/local/include and /usr/local/lib in configure. (Philip
4769 Prindeville)
4770 For cross compiling the Cygwin version on Unix, change VIM.TLB to vim.tlb in
4771 src/vim.rc. (Tsuneo Nakagawa)
4773 Added v:searchforward variable: What direction we're searching in.  (Yakov
4774 Lerner)
4777 Fixed                                                   *fixed-7.2*
4778 -----
4780 Patch 7.1.001
4781 Problem:    Still can't build with Gnome libraries.
4782 Solution:   Fix typo in bind_textdomain_codeset. (Mike Kelly)
4783 Files:      src/gui_gtk.c, src/gui_gtk_x11.c
4785 Patch 7.1.002
4786 Problem:    Oracle Pro*C/C++ files are not detected.
4787 Solution:   Add the missing star. (Micah J. Cowan)
4788 Files:      runtime/filetype.vim
4790 Patch 7.1.003 (extra)
4791 Problem:    The "Tear off this menu" message appears in the message history
4792             when using a menu. (Yongwei Wu)
4793 Solution:   Disable message history when displaying the menu tip.
4794 Files:      src/gui_w32.c
4796 Patch 7.1.004
4797 Problem:    Crash when doing ":next directory". (Raphael Finkel)
4798 Solution:   Do not use "buf", it may be invalid after autocommands.
4799 Files:      src/ex_cmds.c
4801 Patch 7.1.005
4802 Problem:    "cit" used on <foo></foo> deletes <foo>.  Should not delete
4803             anything and start insertion, like "ci'" does on "". (Michal
4804             Bozon)
4805 Solution:   Handle an empty object specifically.  Made it work consistent for
4806             various text objects.
4807 Files:      src/search.c
4809 Patch 7.1.006
4810 Problem:    Resetting 'modified' in a StdinReadPost autocommand doesn't work.
4811 Solution:   Set 'modified' before the autocommands instead of after it.
4812 Files:      src/buffer.c
4814 Patch 7.1.007 (extra)
4815 Problem:    Mac: Context menu doesn't work on Intel Macs.
4816             Scrollbars are not dimmed when Vim is not the active application.
4817 Solution:   Remove the test whether context menus are supported.  They are
4818             always there in OS/X.  Handle the dimming. (Nicolas Weber)
4819 Files:      src/gui_mac.c, src/gui.h
4821 Patch 7.1.008
4822 Problem:    getfsize() returns a negative number for very big files.
4823 Solution:   Check for overflow and return -2.
4824 Files:      runtime/doc/eval.txt, src/eval.c
4826 Patch 7.1.009
4827 Problem:    In diff mode, displaying the difference between a tab and spaces
4828             is not highlighted correctly.
4829 Solution:   Only change highlighting at the end of displaying a tab.
4830 Files:      src/screen.c
4832 Patch 7.1.010
4833 Problem:    The Gnome session file doesn't restore tab pages.
4834 Solution:   Add SSOP_TABPAGES to the session flags. (Matias D'Ambrosio)
4835 Files:      src/gui_gtk_x11.c
4837 Patch 7.1.011
4838 Problem:    Possible buffer overflow when $VIMRUNTIME is very long. (Victor
4839             Stinner)
4840 Solution:   Use vim_snprintf().
4841 Files:      src/main.c
4843 Patch 7.1.012
4844 Problem:    ":let &shiftwidth = 'asdf'" doesn't produce an error message.
4845 Solution:   Check for a string argument. (Chris Lubinski)
4846 Files:      src/option.c
4848 Patch 7.1.013
4849 Problem:    ":syn include" only loads the first file, while it is documented
4850             as doing the equivalent of ":runtime!".
4851 Solution:   Change the argument to source_runtime(). (James Vega)
4852 Files:      src/syntax.c
4854 Patch 7.1.014
4855 Problem:    Crash when doing C indenting. (Chris Monson)
4856 Solution:   Obtain the current line again after invoking cin_islabel().
4857 Files:      src/edit.c
4859 Patch 7.1.015
4860 Problem:    MzScheme interface: current-library-collection-paths produces no
4861             list.  Interface doesn't build on a Mac.
4862 Solution:   Use a list instead of a pair. (Bernhard Fisseni)  Use "-framework"
4863             argument for MZSCHEME_LIBS in configure.
4864 Files:      src/configure.in, src/if_mzsch.c, src/auto/configure
4866 Patch 7.1.016 (after patch 7.1.012)
4867 Problem:    Error message about setting 'diff' to a string.
4868 Solution:   Don't pass an empty string to set_option_value() when setting
4869             'diff'.
4870 Files:      src/quickfix.c, src/popupmnu.c
4872 Patch 7.1.017
4873 Problem:    ":confirm w" does give a prompt when 'readonly' is set, but not
4874             when the file permissions are read-only.  (Michael Schaap)
4875 Solution:   Provide a dialog in both situations.  (Chris Lubinski)
4876 Files:      src/ex_cmds.c, src/fileio.c, src/proto/fileio.pro
4878 Patch 7.1.018
4879 Problem:    When 'virtualedit' is set a "p" of a block just past the end of
4880             the line inserts before the cursor. (Engelke)
4881 Solution:   Check for the cursor being just after the line (Chris Lubinski)
4882 Files:      src/ops.c
4884 Patch 7.1.019
4885 Problem:    ":py" asks for an argument, ":py asd" then gives the error that
4886             ":py" isn't implemented.  Should already happen for ":py".
4887 Solution:   Compare with ex_script_ni. (Chris Lubinski)
4888 Files:      src/ex_docmd.c
4890 Patch 7.1.020
4891 Problem:    Reading from uninitialized memory when using a dialog. (Dominique
4892             Pelle)
4893 Solution:   In msg_show_console_dialog() append a NUL after every appended
4894             character.
4895 Files:      src/message.c
4897 Patch 7.1.021 (after 7.1.015)
4898 Problem:    Mzscheme interface doesn't compile on Win32.
4899 Solution:   Fix the problem that 7.1.015 fixed in a better way. (Sergey Khorev)
4900 Files:      src/if_mzsch.c
4902 Patch 7.1.022
4903 Problem:    When setting 'keymap' twice the b:keymap_name variable isn't set.
4904             (Milan Berta)
4905 Solution:   Don't unlet b:keymap_name for ":loadkeymap". (Martin Toft)
4906 Files:      src/digraph.c
4908 Patch 7.1.023
4909 Problem:    "dw" in a line with one character deletes the line.  Vi and nvi
4910             don't do this.  (Kjell Arne Rekaa)
4911 Solution:   Check for one-character words especially.
4912 Files:      src/search.c
4914 Patch 7.1.024
4915 Problem:    Using a pointer that has become invalid. (Chris Monson)
4916 Solution:   Obtain the line pointer again after we looked at another line.
4917 Files:      src/search.c
4919 Patch 7.1.025
4920 Problem:    search() and searchpos() don't use match under cursor at start of
4921             line when using 'bc' flags. (Viktor Kojouharov)
4922 Solution:   Don't go to the previous line when the 'c' flag is present.
4923             Also fix that "j" doesn't move the cursor to the right column.
4924 Files:      src/eval.c, src/search.c
4926 Patch 7.1.026
4927 Problem:    "[p" doesn't work in Visual mode. (David Brown)
4928 Solution:   Use checkclearop() instead of checkclearopq().
4929 Files:      src/normal.c
4931 Patch 7.1.027
4932 Problem:    On Sun systems opening /dev/fd/N doesn't work, and they are used
4933             by process substitutions.
4934 Solution:   Allow opening specific character special files for Sun systems.
4935             (Gary Johnson)
4936 Files:      src/fileio.c, src/os_unix.h
4938 Patch 7.1.028
4939 Problem:    Can't use last search pattern for ":sort". (Brian McKee)
4940 Solution:   When the pattern is empty use the last search pattern. (Martin
4941             Toft)
4942 Files:      runtime/doc/change.txt, src/ex_cmds.c
4944 Patch 7.1.029 (after 7.1.019)
4945 Problem:    Can't compile when all interfaces are used. (Taylor Venable)
4946 Solution:   Only check for ex_script_ni when it's defined.
4947 Files:      src/ex_docmd.c
4949 Patch 7.1.030
4950 Problem:    The "vimtutor" shell script checks for "vim6" but not for "vim7".
4951             (Christian Robinson)
4952 Solution:   Check for more versions, but prefer using "vim".
4953 Files:      src/vimtutor
4955 Patch 7.1.031
4956 Problem:    virtcol([123, '$']) doesn't work. (Michael Schaap)
4957 Solution:   When '$' is used for the column number get the last column.
4958 Files:      runtime/doc/eval.txt, src/eval.c
4960 Patch 7.1.032
4961 Problem:    Potential crash when editing a command line. (Chris Monson)
4962 Solution:   Check the position to avoid access before the start of an array.
4963 Files:      src/ex_getln.c
4965 Patch 7.1.033
4966 Problem:    A buffer is marked modified when it was first deleted and then
4967             added again using a ":next" command. (John Mullin)
4968 Solution:   When checking if a buffer is modified use the BF_NEVERLOADED flag.
4969 Files:      src/option.c
4971 Patch 7.1.034
4972 Problem:    Win64: A few compiler warnings.  Problems with optimizer.
4973 Solution:   Use int instead of size_t.  Disable the optimizer in one function.
4974             (George V.  Reilly)
4975 Files:      src/eval.c, src/spell.c
4977 Patch 7.1.035
4978 Problem:    After ":s/./&/#" all listed lines have a line number. (Yakov
4979             Lerner)
4980 Solution:   Reset the line number flag when not using the "&" flag.
4981 Files:      src/ex_cmds.c
4983 Patch 7.1.036
4984 Problem:    Completing ":echohl" argument should include "None". (Ori
4985             Avtalion)  ":match" should have "none" too.
4986 Solution:   Add flags to use expand_highlight().  Also fix that when disabling
4987             FEAT_CMDL_COMPL compilation fails.  (Chris Lubinski)
4988 Files:      src/eval.c, src/ex_docmd.c, src/ex_getln.c, src/proto/syntax.pro
4989             src/syntax.c
4991 Patch 7.1.037
4992 Problem:    strcpy() used for overlapping strings. (Chris Monson)
4993 Solution:   Use mch_memmove() instead.
4994 Files:      src/option.c
4996 Patch 7.1.038
4997 Problem:    When 'expandtab' is set then a Tab copied for 'copyindent' is
4998             expanded to spaces, even when 'preserveindent' is set. (Alexei
4999             Alexandrov)
5000 Solution:   Remove the check for 'expandtab'.  Also fix that ">>" doesn't obey
5001             'preserveindent'. (Chris Lubinski)
5002 Files:      src/misc1.c
5004 Patch 7.1.039
5005 Problem:    A tag in a help file that starts with "help-tags" and contains a
5006             percent sign may make Vim crash. (Ulf Harnhammar)
5007 Solution:   Use puts() instead of fprintf().
5008 Files:      src/ex_cmds.c
5010 Patch 7.1.040
5011 Problem:    ":match" only supports three matches.
5012 Solution:   Add functions clearmatches(), getmatches(), matchadd(),
5013             matchdelete() and setmatches().  Changed the data structures for
5014             this.  A small bug in syntax.c is fixed, so newly created
5015             highlight groups can have their name resolved correctly from their
5016             ID.  (Martin Toft)
5017 Files:      runtime/doc/eval.txt, runtime/doc/pattern.txt,
5018             runtime/doc/usr_41.txt, src/eval.c, src/ex_docmd.c,
5019             src/proto/window.pro, src/screen.c, src/structs.h, src/syntax.c,
5020             src/testdir/Makefile, src/testdir/test63.in,
5021             src/testdir/test63.ok, src/window.c
5023 Patch 7.1.041 (extra, after 7.1.040)
5024 Problem:    Some changes for patch 7.1.040 are in extra files.
5025 Solution:   Update the extra files.
5026 Files:      src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
5027             src/testdir/Make_os2.mak, src/testdir/Make_vms.mms
5029 Patch 7.1.042 (after 7.1.040)
5030 Problem:    Internal error when using matchadd(). (David Larson)
5031 Solution:   Check the third argument to be present before using the fourth
5032             argument. (Martin Toft)
5033 Files:      src/eval.c
5035 Patch 7.1.043
5036 Problem:    In Ex mode using CTRL-D twice may cause a crash.  Cursor isn't
5037             positioned properly after CTRL-D.
5038 Solution:   Set prev_char properly.  Position the cursor correctly. (Antony
5039             Scriven)
5040 Files:      src/ex_getln.c
5042 Patch 7.1.044
5043 Problem:    In Insert mode 0 CTRL-T deletes all indent, it should add indent.
5044             (Gautam Iyer)
5045 Solution:   Check for CTRL-D typed.
5046 Files:      src/edit.c
5048 Patch 7.1.045
5049 Problem:    Unnecessary screen redrawing. (Jjgod Jiang)
5050 Solution:   Reset "must_redraw" after clearing the screen.
5051 Files:      src/screen.c
5053 Patch 7.1.046
5054 Problem:    ":s" command removes combining characters. (Ron Aaron)
5055 Solution:   Copy composing characters individually. (Chris Lubinski)
5056 Files:      src/regexp.c
5058 Patch 7.1.047
5059 Problem:    vim_regcomp() called with invalid argument. (Xiaozhou Liu)
5060 Solution:   Change TRUE to RE_MAGIC + RE_STRING.
5061 Files:      src/ex_eval.c
5063 Patch 7.1.048
5064 Problem:    The matchparen plugin doesn't update the match when scrolling with
5065             the mouse wheel. (Ilya Bobir)
5066 Solution:   Set the match highlighting for text that can be scrolled into the
5067             viewable area without moving the cursor. (Chris Lubinski)
5068 Files:      runtime/plugin/matchparen.vim
5070 Patch 7.1.049
5071 Problem:    Cannot compile GTK2 version with Hangul input feature.
5072 Solution:   Don't define FEAT_XFONTSET when using GTK2.
5073 Files:      src/feature.h
5075 Patch 7.1.050
5076 Problem:    Possible crash when using C++ indenting. (Chris Monson)
5077 Solution:   Keep the line pointer to the line to compare with.  Avoid going
5078             past the end of line.
5079 Files:      src/misc1.c
5081 Patch 7.1.051
5082 Problem:    Accessing uninitialized memory when finding spell suggestions.
5083 Solution:   Don't try swapping characters at the end of a word.
5084 Files:      src/spell.c
5086 Patch 7.1.052
5087 Problem:    When creating a new match not all fields are initialized, which
5088             may lead to unpredictable results.
5089 Solution:   Initialise rmm_ic and rmm_maxcol.
5090 Files:      src/window.c
5092 Patch 7.1.053
5093 Problem:    Accessing uninitialized memory when giving a message.
5094 Solution:   Check going the length before checking for a NUL byte.
5095 Files:      src/message.c
5097 Patch 7.1.054
5098 Problem:    Accessing uninitialized memory when displaying the fold column.
5099 Solution:   Add a NUL to the extra array. (Dominique Pelle).  Also do this in
5100             a couple of other situations.
5101 Files:      src/screen.c
5103 Patch 7.1.055
5104 Problem:    Using strcpy() with arguments that overlap.
5105 Solution:   Use mch_memmove() instead.
5106 Files:      src/buffer.c, src/charset.c, src/eval.c, src/ex_getln.c,
5107             src/misc1.c, src/regexp.c, src/termlib.c
5109 Patch 7.1.056
5110 Problem:    More prompt does not behave correctly after scrolling back.
5111             (Randall W. Morris)
5112 Solution:   Avoid lines_left becomes negative. (Chris Lubinski)  Don't check
5113             mp_last when deciding to show the more prompt. (Martin Toft)
5114 Files:      src/message.c
5116 Patch 7.1.057
5117 Problem:    Problem with CursorHoldI when using "r" in Visual mode (Max
5118             Dyckhoff)
5119 Solution:   Ignore CursorHold(I) when getting a second character for a Normal
5120             mode command.  Also abort the "r" command in Visual when a special
5121             key is typed.
5122 Files:      src/normal.c
5124 Patch 7.1.058
5125 Problem:    When 'rightleft' is set the completion menu is positioned wrong.
5126             (Baha-Eddine MOKADEM)
5127 Solution:   Fix the completion menu. (Martin Toft)
5128 Files:      src/popupmnu.c, src/proto/search.pro, src/search.c
5130 Patch 7.1.059
5131 Problem:    When in Ex mode and doing "g/^/vi" and then pressing CTRL-C Vim
5132             hangs and beeps. (Antony Scriven)
5133 Solution:   Clear "got_int" in the main loop to avoid the hang.  When typing
5134             CTRL-C twice in a row abort the ":g" command.  This is Vi
5135             compatible.
5136 Files:      src/main.c
5138 Patch 7.1.060
5139 Problem:    Splitting quickfix window messes up window layout. (Marius
5140             Gedminas)
5141 Solution:   Compute the window size in a smarter way. (Martin Toft)
5142 Files:      src/window.c
5144 Patch 7.1.061
5145 Problem:    Win32: When 'encoding' is "latin1" 'ignorecase' doesn't work for
5146             characters with umlaut. (Joachim Hofmann)
5147 Solution:   Do not use islower()/isupper()/tolower()/toupper() but our own
5148             functions. (Chris Lubinski)
5149 Files:      src/mbyte.c, src/regexp.c, src/vim.h
5151 Patch 7.1.062 (after 7.1.038)
5152 Problem:    Indents of C comments can be wrong. (John Mullin)
5153 Solution:   Adjust ind_len. (Chris Lubinski)
5154 Files:      src/misc1.c
5156 Patch 7.1.063 (after 7.1.040)
5157 Problem:    Warning for uninitialized variable.
5158 Solution:   Initialise it to NULL.
5159 Files:      src/ex_docmd.c
5161 Patch 7.1.064
5162 Problem:    On Interix some files appear not to exist.
5163 Solution:   Remove the top bit from st_mode. (Ligesh)
5164 Files:      src/os_unix.c
5166 Patch 7.1.065 (extra)
5167 Problem:    Win32: Compilation problem for newer version of w32api.
5168 Solution:   Only define __IID_DEFINED__ when needed. (Chris Sutcliffe)
5169 Files:      src/Make_ming.mak, src/iid_ole.c
5171 Patch 7.1.066
5172 Problem:    When 'bomb' is set or reset the file should be considered
5173             modified.  (Tony Mechelynck)
5174 Solution:   Handle like 'endofline'. (Martin Toft)
5175 Files:      src/buffer.c, src/fileio.c, src/option.c, src/structs.h
5177 Patch 7.1.067
5178 Problem:    'thesaurus' doesn't work when 'infercase' is set. (Mohsin)
5179 Solution:   Don't copy the characters being completed but check the case and
5180             apply it to the suggested word.  Also fix that the first word in
5181             the thesaurus line is not used.  (Martin Toft)
5182 Files:      src/edit.c
5184 Patch 7.1.068
5185 Problem:    When 'equalalways' is set and splitting a window, it's possible
5186             that another small window gets bigger.
5187 Solution:   Only equalize window sizes when after a split the windows are
5188             smaller than another window. (Martin Toft)
5189 Files:      runtime/doc/options.txt, runtime/doc/windows.txt, src/window.c
5191 Patch 7.1.069
5192 Problem:    GTK GUI: When using confirm() without a default button there still
5193             is a default choice.
5194 Solution:   Ignore Enter and Space when there is no default button. (Chris
5195             Lubinski)
5196 Files:      src/gui_gtk.c
5198 Patch 7.1.070 (extra)
5199 Problem:    Win32 GUI: When using confirm() without a default button there
5200             still is a default choice.
5201 Solution:   Set focus on something else than a button. (Chris Lubinski)
5202 Files:      src/gui_w32.c
5204 Patch 7.1.071 (after 7.1.040)
5205 Problem:    Regexp patterns are not tested.
5206 Solution:   Add a basic test, to be expanded later.
5207             Also add (commented-out) support for valgrind.
5208 Files:      src/testdir/Makefile, src/testdir/test64.in, src/testdir/test64.ok
5210 Patch 7.1.072 (extra, after 7.1.041 and 7.1.071)
5211 Problem:    Some changes for patch 7.1.071 are in extra files.
5212 Solution:   Update the extra files.  Also fix a few warnings from the DOS test
5213             makefile.
5214 Files:      src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
5215             src/testdir/Make_os2.mak, src/testdir/Make_vms.mms
5217 Patch 7.1.073 (after 7.1.062)
5218 Problem:    Wrong cursor position and crash when 'preserveindent' is set.
5219             (Charles Campbell)
5220 Solution:   Handle the situation that we start without indent. (Chris
5221             Lubinski)
5222 Files:      src/misc1.c
5224 Patch 7.1.074
5225 Problem:    Crash when calling string() on a recursively nested List.
5226 Solution:   Check result value for being NULL. (Yukihiro Nakadaira)
5227 Files:      src/eval.c
5229 Patch 7.1.075
5230 Problem:    ":let v:statusmsg" reads memory already freed.
5231 Solution:   Don't set v:statusmsg when listing it.
5232 Files:      src/eval.c
5234 Patch 7.1.076
5235 Problem:    Another strcpy() with overlapping arguments.
5236 Solution:   Use mch_memmove(). (Dominique Pelle)  And another one.
5237 Files:      src/ex_docmd.c, src/normal.c
5239 Patch 7.1.077
5240 Problem:    Using "can_spell" without initializing it. (Dominique Pelle)
5241 Solution:   Set a default for get_syntax_attr().
5242 Files:      src/syntax.c
5244 Patch 7.1.078
5245 Problem:    Dropping a file name on gvim that contains a CSI byte doesn't work
5246             when editing the command line.
5247 Solution:   Escape the CSI byte when inserting in the input buffer. (Yukihiro
5248             Nakadaira)
5249 Files:      src/gui.c, src/ui.c
5251 Patch 7.1.079
5252 Problem:    When the locale is "C" and 'encoding' is "latin1" then the "@"
5253             character in 'isfname', 'isprint', etc. doesn't pick up accented
5254             characters.
5255 Solution:   Instead of isalpha() use MB_ISLOWER() and MB_ISUPPER().
5256 Files:      src/charset.c, src/macros.h
5258 Patch 7.1.080 (extra)
5259 Problem:    Compiler warnings for using "const char *" for "char *".
5260 Solution:   Add type casts. (Chris Sutcliffe)
5261 Files:      src/GvimExt/gvimext.cpp
5263 Patch 7.1.081
5264 Problem:    Command line completion for a shell command: "cat </tmp/file<Tab>"
5265             doesn't work.
5266 Solution:   Start the file name at any character that can't be in a file name.
5267             (Martin Toft)
5268 Files:      src/ex_docmd.c
5270 Patch 7.1.082
5271 Problem:    After a ":split" the matchparen highlighting isn't there.
5272 Solution:   Install a WinEnter autocommand.  Also fixes that after
5273             ":NoMatchParen" only the current window is updated. (Martin Toft)
5274 Files:      runtime/doc/pi_paren.txt, runtime/plugin/matchparen.vim
5276 Patch 7.1.083 (after 7.1.081)
5277 Problem:    Command line completion doesn't work with wildcards.
5278 Solution:   Add vim_isfilec_or_wc() and use it. (Martin Toft)
5279 Files:      src/charset.c, src/proto/charset.pro, src/ex_docmd.c
5281 Patch 7.1.084
5282 Problem:    Using the "-nb" argument twice causes netbeans not to get
5283             fileOpened events.
5284 Solution:   Change "&" to "&&". (Xavier de Gaye)
5285 Files:      src/ex_cmds.c
5287 Patch 7.1.085
5288 Problem:    ":e fold.c" then ":sp fold.c" results in folds of original window
5289             to disappear. (Akita Noek)
5290 Solution:   Invoke foldUpdateAll() for all windows of the changed buffer.
5291             (Martin Toft)
5292 Files:      src/ex_cmds.c
5294 Patch 7.1.086
5295 Problem:    Crash when using specific Python syntax highlighting.  (Quirk)
5296 Solution:   Check for a negative index, coming from a keyword match at the
5297             start of a line from a saved state.
5298 Files:      src/syntax.c
5300 Patch 7.1.087
5301 Problem:    Reading past ":cscope find" command.  Writing past end of a buffer.
5302 Solution:   Check length of the argument before using the pattern.  Use
5303             vim_strncpy().  (Dominique Pelle)
5304 Files:      if_cscope.c
5306 Patch 7.1.088 (extra)
5307 Problem:    The coordinates used by ":winpos" differ from what getwinposx()
5308             and getwinposy() return.
5309 Solution:   Use MoveWindowStructure() instead of MoveWindow(). (Michael Henry)
5310 Files:      src/gui_mac.c
5312 Patch 7.1.089
5313 Problem:    ":let loaded_getscriptPlugin" doesn't clear to eol, result is
5314             "#1in".
5315 Solution:   Clear to the end of the screen after displaying the first variable
5316             value.
5317 Files:      src/eval.c
5319 Patch 7.1.090
5320 Problem:    Compiler warning on Mac OS X 10.5.
5321 Solution:   Don't redeclare sigaltstack(). (Hisashi T Fujinaka)
5322 Files:      src/os_unix.c
5324 Patch 7.1.091 (extra)
5325 Problem:    Win32: Can't embed Vim inside another application.
5326 Solution:   Add the --windowid argument. (Nageshwar)
5327 Files:      runtime/doc/gui_w32.txt, runtime/doc/starting.txt,
5328             runtime/doc/vi_diff.txt, src/globals.h, src/gui_w32.c, src/main.c
5330 Patch 7.1.092 (extra, after 7.1.088)
5331 Problem:    Wrong arguments for MoveWindowStructure().
5332 Solution:   Remove "TRUE". (Michael Henry)
5333 Files:      src/gui_mac.c
5335 Patch 7.1.093
5336 Problem:    Reading past end of a screen line when determining cell width.
5337             (Dominique Pelle)
5338 Solution:   Add an argument to mb_off2cells() for the maximum offset.
5339 Files:      src/globals.h, src/gui.c, src/mbyte.c, src/proto/mbyte.pro,
5340             src/screen.c
5342 Patch 7.1.094
5343 Problem:    When checking if syntax highlighting is present, looking in the
5344             current buffer instead of the specified one.
5345 Solution:   Use "buf" instead of "curbuf".
5346 Files:      src/syntax.c
5348 Patch 7.1.095
5349 Problem:    The FocusLost and FocusGained autocommands are triggered
5350             asynchronously in the GUI.  This may cause arbitrary problems.
5351 Solution:   Put the focus event in the input buffer and handle it when ready
5352             for it.
5353 Files:      src/eval.c, src/getchar.c, src/gui.c, src/gui_gtk_x11.c,
5354             src/keymap.h
5356 Patch 7.1.096
5357 Problem:    Reading past end of a string when resizing Vim. (Dominique Pelle)
5358 Solution:   Check the string pointer before getting the char it points to.
5359 Files:      src/message.c
5361 Patch 7.1.097
5362 Problem:    ":setlocal stl=%!1+1" does not work.
5363 Solution:   Adjust check for pointer. (Politz)
5364 Files:      src/option.c
5366 Patch 7.1.098
5367 Problem:    ":call s:var()" doesn't work if "s:var" is a Funcref. (Andy Wokula)
5368 Solution:   Before converting "s:" into a script ID, check if it is a Funcref.
5369 Files:      src/eval.c
5371 Patch 7.1.099
5372 Problem:    When the 'keymap' and 'paste' options have a non-default value,
5373             ":mkexrc" and ":mksession" do not correctly set the options.
5374 Solution:   Set the options with side effects before other options.
5375 Files:      src/option.c
5377 Patch 7.1.100
5378 Problem:    Win32: Executing cscope doesn't always work properly.
5379 Solution:   Use another way to invoke cscope. (Mike Williams)
5380 Files:      src/if_cscope.c, src/if_cscope.h, src/main.c,
5381             src/proto/if_cscope.pro
5383 Patch 7.1.101
5384 Problem:    Ruby: The Buffer.line= method does not work.
5385 Solution:   Add the "self" argument to set_current_line(). (Jonathan Hankins)
5386 Files:      src/if_ruby.c
5388 Patch 7.1.102
5389 Problem:    Perl interface doesn't compile with new version of Perl.
5390 Solution:   Add two variables to the dynamic library loading. (Suresh
5391             Govindachar)
5392 Files:      src/if_perl.xs
5394 Patch 7.1.103
5395 Problem:    Using "dw" with the cursor past the end of the last line (using
5396             CTRL-\ CTRL-O from Insert mode) deletes a character. (Tim Chase)
5397 Solution:   Don't move the cursor back when the movement failed.
5398 Files:      src/normal.c
5400 Patch 7.1.104 (after 7.1.095)
5401 Problem:    When 'lazyredraw' is set a focus event causes redraw to be
5402             postponed until a key is pressed.
5403 Solution:   Instead of not returning from vgetc() when a focus event is
5404             encountered return K_IGNORE.  Add plain_vgetc() for when the
5405             caller doesn't want to get K_IGNORE.
5406 Files:      src/digraph.c, src/edit.c, src/ex_cmds.c, src/ex_getln.c,
5407             src/getchar.c, src/normal.c, src/proto/getchar.pro, src/window.c
5409 Patch 7.1.105
5410 Problem:    Internal error when using "0 ? {'a': 1} : {}". (A.Politz)
5411 Solution:   When parsing a dictionary value without using the value, don't try
5412             obtaining the key name.
5413 Files:      src/eval.c
5415 Patch 7.1.106
5416 Problem:    ":messages" doesn't quit listing on ":".
5417 Solution:   Break the loop when "got_int" is set.
5418 Files:      src/message.c
5420 Patch 7.1.107
5421 Problem:    When doing a block selection and using "s" to change the text,
5422             while triggering auto-indenting, causes the wrong text to be
5423             repeated in other lines. (Adri Verhoef)
5424 Solution:   Compute the change of indent and compensate for that.
5425 Files:      src/ops.c
5427 Patch 7.1.108 (after 7.1.100)
5428 Problem:    Win32: Compilation problems in Cscope code. (Jeff Lanzarotta)
5429 Solution:   Use (long) instead of (intptr_t) when it's not defined.
5430 Files:      src/if_cscope.c
5432 Patch 7.1.109
5433 Problem:    GTK: when there are many tab pages, clicking on the arrow left of
5434             the labels moves to the next tab page on the right. (Simeon Bird)
5435 Solution:   Check the X coordinate of the click and pass -1 as value for the
5436             left arrow.
5437 Files:      src/gui_gtk_x11.c, src/term.c
5439 Patch 7.1.110 (after 7.1.102)
5440 Problem:    Win32: Still compilation problems with Perl.
5441 Solution:   Change the #ifdefs. (Suresh Govindachar)
5442 Files:      src/if_perl.xs
5444 Patch 7.1.111
5445 Problem:    When using ":vimgrep" with the "j" flag folds from another buffer
5446             may be displayed. (A.Politz)
5447 Solution:   When not jumping to another buffer update the folds.
5448 Files:      src/quickfix.c
5450 Patch 7.1.112
5451 Problem:    Using input() with a wrong argument may crash Vim. (A.Politz)
5452 Solution:   Init the input() return value to NULL.
5453 Files:      src/eval.c
5455 Patch 7.1.113
5456 Problem:    Using map() to go over an empty list causes memory to be freed
5457             twice. (A.Politz)
5458 Solution:   Don't clear the typeval in restore_vimvar().
5459 Files:      src/eval.c
5461 Patch 7.1.114
5462 Problem:    Memory leak in getmatches().
5463 Solution:   Don't increment the refcount twice.
5464 Files:      src/eval.c
5466 Patch 7.1.115 (after 7.1.105)
5467 Problem:    Compiler warning for uninitialized variable. (Tony Mechelynck)
5468 Solution:   Init variable to NULL.
5469 Files:      src/eval.c
5471 Patch 7.1.116
5472 Problem:    Cannot display Unicode characters above 0x10000.
5473 Solution:   Remove the replacement with a question mark when UNICODE16 is not
5474             defined. (partly by Nicolas Weber)
5475 Files:      src/screen.c
5477 Patch 7.1.117
5478 Problem:    Can't check whether Vim was compiled with Gnome. (Tony Mechelynck)
5479 Solution:   Add gui_gnome to the has() list.
5480 Files:      src/eval.c
5482 Patch 7.1.118 (after 7.1.107)
5483 Problem:    Compiler warning for Visual C compiler.
5484 Solution:   Add typecast. (Mike Williams)
5485 Files:      src/ops.c
5487 Patch 7.1.119
5488 Problem:    Crash when 'cmdheight' set to very large value. (A.Politz)
5489 Solution:   Limit 'cmdheight' to 'lines' minus one.  Store right value of
5490             'cmdheight' when running out of room.
5491 Files:      src/option.c, src/window.c
5493 Patch 7.1.120
5494 Problem:    Can't properly check memory leaks while running tests.
5495 Solution:   Add an argument to garbagecollect().  Delete functions and
5496             variables in the test scripts.
5497 Files:      runtime/doc/eval.txt src/eval.c, src/globals.h, src/main.c,
5498             src/testdir/Makefile, src/testdir/test14.in,
5499             src/testdir/test26.in, src/testdir/test34.in,
5500             src/testdir/test45.in, src/testdir/test47.in,
5501             src/testdir/test49.in, src/testdir/test55.in,
5502             src/testdir/test56.in, src/testdir/test58.in,
5503             src/testdir/test59.in, src/testdir/test60.in,
5504             src/testdir/test60.vim, src/testdir/test62.in,
5505             src/testdir/test63.in, src/testdir/test64.in,
5507 Patch 7.1.121
5508 Problem:    Using ":cd %:h" when editing a file in the current directory
5509             results in an error message for using an empty string.
5510 Solution:   When "%:h" results in an empty string use ".".
5511 Files:      src/eval.c
5513 Patch 7.1.122
5514 Problem:    Mac: building Vim.app fails.  Using wrong architecture.
5515 Solution:   Use line continuation for the gui_bundle dependency.  Detect the
5516             system architecture with "uname -a".
5517 Files:      src/main.aap
5519 Patch 7.1.123
5520 Problem:    Win32: ":edit foo ~ foo" expands "~".
5521 Solution:   Change the call to expand_env().
5522 Files:      src/ex_docmd.c, src/misc1.c, src/proto/misc1.pro, src/option.c
5524 Patch 7.1.124 (extra)
5525 Problem:    Mac: When dropping a file on Vim.app that is already in the buffer
5526             list (from .viminfo) results in editing an empty, unnamed buffer.
5527             (Axel Kielhorn)  Also: warning for unused variable.
5528 Solution:   Move to the buffer of the first argument.  Delete unused variable.
5529 Files:      src/gui_mac.c
5531 Patch 7.1.125
5532 Problem:    The TermResponse autocommand event is not always triggered. (Aron
5533             Griffis)
5534 Solution:   When unblocking autocommands check if v:termresponse changed and
5535             trigger the event then.
5536 Files:      src/buffer.c, src/diff.c, src/ex_getln.c, src/fileio.c,
5537             src/globals.h, src/misc2.c, src/proto/fileio.pro, src/window.c
5539 Patch 7.1.126 (extra)
5540 Problem:    ":vimgrep */*" fails when a BufRead autocommand changes directory.
5541             (Bernhard Kuhn)
5542 Solution:   Change back to the original directory after loading a file.
5543             Also: use shorten_fname1() to avoid duplicating code.
5544 Files:      src/buffer.c, src/ex_docmd.c, src/fileio.c, src/gui_gtk.c,
5545             src/gui_w48.c, src/proto/ex_docmd.pro, src/proto/fileio.pro,
5546             src/quickfix.c
5548 Patch 7.1.127
5549 Problem:    Memory leak when doing cmdline completion. (Dominique Pelle)
5550 Solution:   Free "orig" argument of ExpandOne() when it's not used.
5551 Files:      src/ex_getln.c
5553 Patch 7.1.128 (extra)
5554 Problem:    Build problems with new version of Cygwin.
5555 Solution:   Remove -D__IID_DEFINED__, like with MingW. (Guopeng Wen)
5556 Files:      src/Make_cyg.mak
5558 Patch 7.1.129 (extra)
5559 Problem:    Win32: Can't get the user name when it is longer than 15
5560             characters.
5561 Solution:   Use UNLEN instead of MAX_COMPUTERNAME_LENGTH. (Alexei Alexandrov)
5562 Files:      src/os_win32.c
5564 Patch 7.1.130
5565 Problem:    Crash with specific order of undo and redo. (A.Politz)
5566 Solution:   Clear and adjust pointers properly.  Add u_check() for debugging.
5567 Files:      src/undo.c, src/structs.h
5569 Patch 7.1.131
5570 Problem:    ":mksession" always adds ":setlocal autoread". (Christian J.
5571             Robinson)
5572 Solution:   Skip boolean global/local option using global value.
5573 Files:      src/option.c
5575 Patch 7.1.132
5576 Problem:    getpos("'>") may return a negative column number for a Linewise
5577             selection. (A.Politz)
5578 Solution:   Don't add one to MAXCOL.
5579 Files:      src/eval.c
5581 Patch 7.1.133 (after 7.1.126)
5582 Problem:    shorten_fname1() linked when it's not needed.
5583 Solution:   Add #ifdef.
5584 Files:      src/fileio.c
5586 Patch 7.1.134 (extra)
5587 Problem:    Win32: Can't build with VC8
5588 Solution:   Detect the MSVC version instead of using NMAKE_VER.
5589             (Mike Williams)
5590 Files:      src/Make_mvc.mak
5592 Patch 7.1.135
5593 Problem:    Win32: When editing a file c:\tmp\foo and c:\tmp\\foo we have two
5594             buffers for the same file. (Suresh Govindachar)
5595 Solution:   Invoke FullName_save() when a path contains "//" or "\\".
5596 Files:      src/buffer.c
5598 Patch 7.1.136
5599 Problem:    Memory leak when using Ruby syntax highlighting. (Dominique Pelle)
5600 Solution:   Free the contained-in list.
5601 Files:      src/syntax.c
5603 Patch 7.1.137
5604 Problem:    Build failure when using EXITFREE. (Dominique Pelle)
5605 Solution:   Add an #ifdef around using clip_exclude_prog.
5606 Files:      src/misc2.c
5608 Patch 7.1.138
5609 Problem:    The Perl Msg() function doesn't stop when "q" is typed at the more
5610             prompt. (Hari Krishna Dara)
5611 Solution:   Check got_int.
5612 Files:      src/if_perl.xs
5614 Patch 7.1.139
5615 Problem:    When using marker folding and ending Insert mode with CTRL-C the
5616             current fold is truncated. (Fred Kater)
5617 Solution:   Ignore got_int while updating folds.
5618 Files:      src/fold.c
5620 Patch 7.1.140
5621 Problem:    v:count is set only after typing a non-digit, that makes it
5622             difficult to make a nice mapping.
5623 Solution:   Set v:count while still typing the count.
5624 Files:      src/normal.c
5626 Patch 7.1.141
5627 Problem:    GTK: -geom argument doesn't support a negative offset.
5628 Solution:   Compute position from the right/lower corner.
5629 Files:      src/gui_gtk_x11.c
5631 Patch 7.1.142
5632 Problem:    ":redir @A>" doesn't work.
5633 Solution:   Ignore the extra ">" also when appending. (James Vega)
5634 Files:      src/ex_docmd.c
5636 Patch 7.1.143
5637 Problem:    Uninitialized memory read when diffing three files. (Dominique
5638             Pelle)
5639 Solution:   Remove "+ !notset" so that we don't use fields that were not
5640             computed.
5641 Files:      src/diff.c
5643 Patch 7.1.144
5644 Problem:    After ":diffup" cursor can be in the wrong position.
5645 Solution:   Force recomputing the cursor position.
5646 Files:      src/diff.c
5648 Patch 7.1.145
5649 Problem:    Insert mode completion: When using the popup menu, after
5650             completing a word and typing a non-word character Vim is still
5651             completing the same word, following CTRL-N doesn't work.
5652             Insert mode Completion: When using CTRL-X O and there is only
5653             "struct." before the cursor, typing one char to reduce the
5654             matches, then BS completion stops.
5655 Solution:   When typing a character that is not part of the item being
5656             completed, stop complete mode.  For whole line completion also
5657             accept a space.  For file name completion stop at a path
5658             separator.
5659             For omni completion stay in completion mode even if completing
5660             with empty string.
5661 Files:      src/edit.c
5663 Patch 7.1.146 (extra)
5664 Problem:    VMS: Files with a very rare record organization (VFC) cannot be
5665             properly written by Vim.
5666             On older VAX systems mms runs into a syntax error.
5667 Solution:   Check for this special situation.  Do not wrap a comment, make it
5668             one long line.  (Zoltan Arpadffy)
5669 Files:      src/fileio.c, src/Make_vms.mms
5671 Patch 7.1.147 (after 7.1.127)
5672 Problem:    Freeing memory already freed when completing user name. (Meino
5673             Cramer)
5674 Solution:   Use a flag to remember if "orig" needs to be freed.
5675 Files:      src/ex_getln.c
5677 Patch 7.1.148
5678 Problem:    Some types are not found by configure.
5679 Solution:   Test for the sys/types.h header file. (Sean Boudreau)
5680 Files:      src/configure.in, src/auto/configure
5682 Patch 7.1.149
5683 Problem:    GTK GUI: When the completion popup menu is used scrolling another
5684             window by the scrollbar is OK, but using the scroll wheel it
5685             behaves line <Enter>.
5686 Solution:   Ignore K_MOUSEDOWN and K_MOUSEUP.  Fix redrawing the popup menu.
5687 Files:      src/edit.c, src/gui.c
5689 Patch 7.1.150
5690 Problem:    When 'clipboard' has "unnamed" using "p" in Visual mode doesn't
5691             work correctly. (Jianrong Yu)
5692 Solution:   When 'clipboard' has "unnamed" also obtain the selection when
5693             getting the default register.
5694 Files:      src/ops.c
5696 Patch 7.1.151
5697 Problem:    Using whole line completion with 'ignorecase' and 'infercase' set
5698             and the line is empty get an lalloc(0) error.
5699 Solution:   Don't try changing case for an empty match. (Matthew Wozniski)
5700 Files:      src/edit.c
5702 Patch 7.1.152
5703 Problem:    Display problem when 'hls' and 'cursorcolumn' are set and
5704             searching for "$".  (John Mullin)  Also when scrolling
5705             horizontally when 'wrap' is off.
5706 Solution:   Keep track of the column where highlighting was set.  Check the
5707             column offset when skipping characters.
5708 Files:      src/screen.c
5710 Patch 7.1.153
5711 Problem:    Compiler warnings on SGI.  Undefined XpmAllocColor (Charles
5712             Campbell)
5713 Solution:   Add type casts.  Init st_dev and st_ino separately.  Don't use
5714             type casts for vim_snprintf() when HAVE_STDARG_H is defined.
5715             Define XpmAllocColor when needed.
5716 Files:      src/eval.c, src/ex_cmds.c, src/fileio.c, src/misc2.c,
5717             src/gui_xmebw.c
5719 Patch 7.1.154
5720 Problem:    Compiler warning for signed/unsigned compare.
5721 Solution:   Add type cast.
5722 Files:      src/screen.c
5724 Patch 7.1.155
5725 Problem:    Crash when 'undolevels' is 0 and repeating "udd". (James Vega)
5726 Solution:   When there is only one branch use u_freeheader() to delete it.
5727 Files:      src/undo.c
5729 Patch 7.1.156
5730 Problem:    Overlapping arguments for strcpy() when expanding command line
5731             variables.
5732 Solution:   Use mch_memmove() instead of STRCPY().  Also fix a few typos.
5733             (Dominique Pelle)
5734 Files:      src/ex_docmd.c
5736 Patch 7.1.157
5737 Problem:    In Ex mode, :" gives an error at end-of-file. (Michael Hordijk)
5738 Solution:   Only give an error for an empty line, not for a comment.
5739 Files:      src/ex_docmd.c
5741 Patch 7.1.158 (extra)
5742 Problem:    Win32 console: When 'encoding' is "utf-8" and typing Alt-y the
5743             result is wrong.  Win32 GUI: Alt-y results in "u" when 'encoding'
5744             is "cp1250" (Lukas Cerman)
5745 Solution:   For utf-8 don't set the 7th bit in a byte, convert to the correct
5746             byte sequence.  For cp1250, when conversion to 'encoding' results
5747             in the 7th bit not set, set the 7th bit after conversion.
5748 Files:      src/os_win32.c, src/gui_w48.c
5750 Patch 7.1.159
5751 Problem:    strcpy() has overlapping arguments.
5752 Solution:   Use mch_memmove() instead. (Dominique Pelle)
5753 Files:      src/ex_cmds.c
5755 Patch 7.1.160
5756 Problem:    When a focus autocommand is defined, getting or losing focus
5757             causes the hit-enter prompt to be redrawn. (Bjorn Winckler)
5758 Solution:   Overwrite the last line.
5759 Files:      src/message.c
5761 Patch 7.1.161
5762 Problem:    Compilation errors with tiny features and EXITFREE.
5763 Solution:   Add #ifdefs. (Dominique Pelle)
5764 Files:      src/edit.c, src/misc2.c
5766 Patch 7.1.162
5767 Problem:    Crash when using a modifier before "while" or "for". (A.Politz)
5768 Solution:   Skip modifiers when checking for a loop command.
5769 Files:      src/proto/ex_docmd.pro, src/ex_docmd.c, src/ex_eval.c
5771 Patch 7.1.163
5772 Problem:    Warning for the unknown option 'bufsecret'.
5773 Solution:   Remove the lines .vim that use this option. (Andy Wokula)
5774 Files:      runtime/menu.vim
5776 Patch 7.1.164
5777 Problem:    Reading past end of regexp pattern. (Dominique Pelle)
5778 Solution:   Use utf_ptr2len().
5779 Files:      src/regexp.c
5781 Patch 7.1.165
5782 Problem:    Crash related to getting X window ID. (Dominique Pelle)
5783 Solution:   Don't trust the window ID that we got in the past, check it every
5784             time.
5785 Files:      src/os_unix.c
5787 Patch 7.1.166
5788 Problem:    Memory leak for using "gp" in Visual mode.
5789 Solution:   Free memory in put_register(). (Dominique Pelle)
5790 Files:      src/ops.c
5792 Patch 7.1.167
5793 Problem:    Xxd crashes when using "xxd -b -c 110". (Debian bug 452789)
5794 Solution:   Allocate more memory.  Fix check for maximum number of columns.
5795 Files:      src/xxd/xxd.c
5797 Patch 7.1.168 (extra)
5798 Problem:    Win32 GUI: Since patch 7.1.095, when the Vim window does not have
5799             focus, clicking in it doesn't position the cursor. (Juergen
5800             Kraemer)
5801 Solution:   Don't reset s_button_pending just after receiving focus.
5802 Files:      src/gui_w48.c
5804 Patch 7.1.169
5805 Problem:    Using uninitialized variable when system() fails. (Dominique
5806             Pelle)
5807 Solution:   Let system() return an empty string when it fails.
5808 Files:      src/eval.c
5810 Patch 7.1.170
5811 Problem:    Valgrind warning for overlapping arguments for strcpy().
5812 Solution:   Use mch_memmove() instead. (Dominique Pelle)
5813 Files:      src/getchar.c
5815 Patch 7.1.171
5816 Problem:    Reading one byte before allocated memory.
5817 Solution:   Check index not to become negative. (Dominique Pelle)
5818 Files:      src/ex_getln.c
5820 Patch 7.1.172
5821 Problem:    When 'buftype' is "acwrite" Vim still checks if the file or
5822             directory exists before overwriting.
5823 Solution:   Don't check for overwriting when the buffer name is not a file
5824             name.
5825 Files:      src/ex_cmds.c
5827 Patch 7.1.173
5828 Problem:    Accessing freed memory. (Dominique Pelle)
5829 Solution:   Don't call reg_getline() to check if a line is the first in the
5830             file.
5831 Files:      src/regexp.c
5833 Patch 7.1.174
5834 Problem:    Writing NUL past end of a buffer.
5835 Solution:   Copy one byte less when using strncat(). (Dominique Pelle)
5836 Files:      src/ex_cmds.c, src/ex_docmd.c,
5838 Patch 7.1.175
5839 Problem:    <BS> doesn't work with some combination of 'sts', 'linebreak' and
5840             'backspace'. (Francois Ingelrest)
5841 Solution:   When adding white space results in not moving back delete one
5842             character.
5843 Files:      src/edit.c
5845 Patch 7.1.176
5846 Problem:    Building with Aap fails when the "compiledby" argument contains
5847             '<' or '>' characters. (Alex Yeh)
5848 Solution:   Change how quoting is done in the Aap recipe.
5849 Files:      src/main.aap
5851 Patch 7.1.177
5852 Problem:    Freeing memory twice when in debug mode while reading a script.
5853 Solution:   Ignore script input while in debug mode.
5854 Files:      src/ex_cmds2.c, src/getchar.c, src/globals.h
5856 Patch 7.1.178
5857 Problem:    "%" doesn't work on "/* comment *//* comment */".
5858 Solution:   Don't handle the "//" in "*//*" as a C++ comment. (Markus
5859             Heidelberg)
5860 Files:      src/search.c
5862 Patch 7.1.179
5863 Problem:    Need to check for TCL 8.5.
5864 Solution:   Adjust configure script. (Alexey Froloff)
5865 Files:      src/configure.in, src/auto/configure
5867 Patch 7.1.180
5868 Problem:    Regexp patterns not tested sufficiently.
5869 Solution:   Add more checks to the regexp test.
5870 Files:      src/testdir/test64.in, src/testdir/test64.ok
5872 Patch 7.1.181
5873 Problem:    Accessing uninitialized memory in Farsi mode. (Dominique Pelle)
5874 Solution:   Only invoke lrF_sub() when there is something to do.
5875 Files:      src/ex_cmds.c
5877 Patch 7.1.182
5878 Problem:    When using tab pages and an argument list the session file may
5879             contain wrong "next" commands. (Alexander Bluem)
5880 Solution:   Use "argu" commands and only when needed.
5881 Files:      src/ex_docmd.c
5883 Patch 7.1.183
5884 Problem:    "Internal error" for ":echo matchstr('a', 'a\%[\&]')" (Mitanu
5885             Paul)
5886 Solution:   Inside "\%[]" detect \&, \| and \) as an error.
5887 Files:      src/regexp.c
5889 Patch 7.1.184
5890 Problem:    Crash when deleting backwards over a line break in Insert mode.
5891 Solution:   Don't advance the cursor when it's already on the NUL after a
5892             line. (Matthew Wozniski)
5893 Files:      src/normal.c
5895 Patch 7.1.185
5896 Problem:    Using "gR" with a multi-byte encoding and typing a CR pushes
5897             characters onto the replace stack incorrectly, resulting in BS
5898             putting back the wrong characters. (Paul B. Mahol)
5899 Solution:   Push multi-byte characters onto the replace stack in reverse byte
5900             order.  Add replace_push_mb().
5901 Files:      src/edit.c, src/misc1.c, src/proto/edit.pro
5903 Patch 7.1.186
5904 Problem:    "expand('<afile>')" returns a bogus value after changing
5905             directory. (Dave Fishburn)
5906 Solution:   Copy "autocmd_fname" to allocated memory and expand to full
5907             filename.  Shorten the path when expanding <afile>.
5908 Files:      src/ex_docmd.c, src/fileio.c
5910 Patch 7.1.187
5911 Problem:    Win32 GUI: Custom completion using system() no longer works
5912             after patch 7.1.104. (Erik Falor)
5913 Solution:   Loop when safe_vgetc() returns K_IGNORE.
5914 Files:      src/ex_getln.c
5916 Patch 7.1.188
5917 Problem:    When 'showmode' is off the message for changing a readonly file is
5918             given in the second column instead of the first.  (Payl B. Mahol)
5919 Solution:   Put the W10 message in the first column.
5920 Files:      src/edit.c
5922 Patch 7.1.189 (after 7.1.104)
5923 Problem:    Patch 7.1.104 was incomplete.
5924 Solution:   Also call plain_vgetc() in ask_yesno().
5925 Files:      src/misc1.c
5927 Patch 7.1.190
5928 Problem:    Cursor after end-of-line: "iA sentence.<Esc>)"
5929 Solution:   Move cursor back and make motion inclusive.
5930 Files:      src/normal.c
5932 Patch 7.1.191
5933 Problem:    Win32 GUI: after patch 7.1.168 there is still a problem when
5934             clicking in a scrollbar. (Juergen Jottkaerr)
5935 Solution:   Don't check the input buffer when dragging the scrollbar.
5936 Files:      src/gui.c
5938 Patch 7.1.192
5939 Problem:    With Visual block selection, "s" and typing something, CTRL-C
5940             doesn't stop Vim from repeating the replacement in other lines,
5941             like happens for "I".
5942 Solution:   Check for "got_int" to be set.
5943 Files:      src/ops.c
5945 Patch 7.1.193
5946 Problem:    Some Vim 5.x digraphs are missing in Vim 7, even though the
5947             character pairs are not used. (Philippe de Muyter)
5948 Solution:   Add those Vim 5.x digraphs that don't conflict with others.
5949 Files:      src/digraph.c
5951 Patch 7.1.194
5952 Problem:    ":echo glob('~/{}')" results in /home/user//.
5953 Solution:   Don't add a slash if there already is one.
5954 Files:      src/os_unix.c
5956 Patch 7.1.195
5957 Problem:    '0 mark doesn't work for "~/foo ~ foo".
5958 Solution:   Don't expand the whole file name, only "~/".
5959 Files:      src/mark.c
5961 Patch 7.1.196 (extra)
5962 Problem:    Win32 GUI: "\n" in a tooltip doesn't cause a line break. (Erik
5963             Falor)
5964 Solution:   Use the TTM_SETMAXTIPWIDTH message.
5965 Files:      src/gui_w32.c
5967 Patch 7.1.197
5968 Problem:    Mac: "make install" doesn't work when prefix defined.
5969 Solution:   Pass different arguments to "make installruntime".  (Jjgod Jiang)
5970 Files:      src/Makefile
5972 Patch 7.1.198
5973 Problem:    Hang when using ":s/\n//gn". (Burak Gorkemli)
5974 Solution:   Set "skip_match".
5975 Files:      src/ex_cmds.c
5977 Patch 7.1.199
5978 Problem:    Can't do command line completion for a specific file name
5979             extension.
5980 Solution:   When the pattern ends in "$" don't add a star for completion and
5981             remove the "$" before matching with file names.
5982 Files:      runtime/doc/cmdline.txt, src/ex_getln.c
5984 Patch 7.1.200 (after 7.1.177 and 7.1.182)
5985 Problem:    Compiler warnings for uninitialized variables.
5986 Solution:   Init variables.
5987 Files:      src/ex_cmds2.c, src/ex_docmd.c
5989 Patch 7.1.201
5990 Problem:    When reading stdin 'fenc' and 'ff are not set.
5991 Solution:   Set the options after reading stdin. (Ben Schmidt)
5992 Files:      src/fileio.c
5994 Patch 7.1.202
5995 Problem:    Incomplete utf-8 byte sequence is not checked for validity.
5996 Solution:   Check the bytes that are present for being valid. (Ben Schmidt)
5997 Files:      src/mbyte.c
5999 Patch 7.1.203
6000 Problem:    When 'virtualedit' is "onemore" then "99|" works but ":normal 99|"
6001             doesn't.  (Andy Wokula)
6002 Solution:   Check for "onemore" flag in check_cursor_col().
6003 Files:      src/misc2.c
6005 Patch 7.1.204 (extra)
6006 Problem:    Win32: Using the example at 'balloonexpr' the balloon disappears
6007             after four seconds and then comes back again.  Also moves the
6008             mouse pointer a little bit.  (Yongwei Wu)
6009 Solution:   Set the autopop time to 30 seconds (the max value).  (Sergey
6010             Khorev)  Move the mouse two pixels forward and one back to end up
6011             in the same position (really!).
6012 Files:      src/gui_w32.c
6014 Patch 7.1.205
6015 Problem:    Can't get the operator in an ":omap".
6016 Solution:   Add the "v:operator" variable. (Ben Schmidt)
6017 Files:      runtime/doc/eval.txt, src/eval.c, src/normal.c, src/vim.h
6019 Patch 7.1.206
6020 Problem:    Compiler warnings when using MODIFIED_BY.
6021 Solution:   Add type casts. (Ben Schmidt)
6022 Files:      src/version.c
6024 Patch 7.1.207
6025 Problem:    Netbeans: "remove" cannot delete one line. 
6026 Solution:   Remove partial lines and whole lines properly.  Avoid a memory
6027             leak.  (Xavier de Gaye)
6028 Files:      src/netbeans.c
6030 Patch 7.1.208
6031 Problem:    On Alpha get an unaligned access error.
6032 Solution:   Store the dictitem pointer before using it. (Matthew Luckie)
6033 Files:      src/eval.c
6035 Patch 7.1.209
6036 Problem:    GTK: When using the netrw plugin and doing ":gui" Vim hangs.
6037 Solution:   Stop getting a selection after three seconds.  This is a hack.
6038 Files:      src/gui_gtk_x11.c
6040 Patch 7.1.210
6041 Problem:    Listing mapping for 0xdb fails when 'encoding' is utf-8. (Tony
6042             Mechelynck)
6043 Solution:   Recognize K_SPECIAL KS_EXTRA KE_CSI as a CSI byte.
6044 Files:      src/mbyte.c
6046 Patch 7.1.211
6047 Problem:    The matchparen plugin may take an unexpected amount of time, so
6048             that it looks like Vim hangs.
6049 Solution:   Add a timeout to searchpair(), searchpairpos(), search() and
6050             searchpos().  Use half a second timeout in the plugin.
6051 Files:      runtime/doc/eval.txt, runtime/plugin/matchparen.vim, src/edit.c,
6052             src/eval.c, src/ex_cmds2.c, src/ex_docmd.c, src/normal.c,
6053             src/proto/eval.pro, src/proto/ex_cmds2.pro, src/proto/search.pro,
6054             src/search.c
6056 Patch 7.1.212
6057 Problem:    Accessing a byte before a line.
6058 Solution:   Check that the column is 1 or more. (Dominique Pelle)
6059 Files:      src/edit.c
6061 Patch 7.1.213
6062 Problem:    A ":tabedit" command that results in the "swap file exists" dialog
6063             and selecting "abort" doesn't close the new tab. (Al Budden)
6064 Solution:   Pass "old_curwin" to do_exedit().
6065 Files:      src/ex_docmd.c
6067 Patch 7.1.214
6068 Problem:    ":1s/g\n\zs1//" deletes characters from the first line. (A Politz)
6069 Solution:   Start replacing in the line where the match starts.
6070 Files:      src/ex_cmds.c
6072 Patch 7.1.215
6073 Problem:    It is difficult to figure out what syntax items are nested at a
6074             certain position.
6075 Solution:   Add the synstack() function.
6076 Files:      runtime/doc/eval.txt, src/eval.c, src/proto/syntax.pro,
6077             src/syntax.c
6079 Patch 7.1.216
6080 Problem:    Variants of --remote-tab are not mentioned for "vim --help".
6081 Solution:   Display optional -wait and -silent.
6082 Files:      src/main.c
6084 Patch 7.1.217
6085 Problem:    The "help-tags" tag may be missing from runtime/doc/tags when it
6086             was generated during "make install".
6087 Solution:   Add the "++t" argument to ":helptags" to force adding the tag.
6088 Files:      runtime/doc/Makefile, runtime/doc/various.txt, src/ex_cmds.c,
6089             src/ex_cmds.h
6091 Patch 7.1.218
6092 Problem:    A syntax region without a "keepend", containing a region with
6093             "extend" could be truncated at the end of the containing region.
6094 Solution:   Do not call syn_update_ends() when there are no keepend items.
6095 Files:      src/syntax.c
6097 Patch 7.1.219 (after 7.1.215)
6098 Problem:    synstack() returns situation after the current character, can't
6099             see the state for a one-character region.
6100 Solution:   Don't update ending states in the requested column.
6101 Files:      runtime/doc/eval.txt, src/eval.c, src/hardcopy.c,
6102             src/proto/syntax.pro, src/screen.c, src/spell.c, src/syntax.c
6104 Patch 7.1.220
6105 Problem:    When a ")" or word movement command moves the cursor back from the
6106             end of the line it may end up on the trail byte of a multi-byte
6107             character.  It's also moved back when it isn't needed.
6108 Solution:   Add the adjust_cursor() function.
6109 Files:      src/normal.c
6111 Patch 7.1.221
6112 Problem:    When inserting a "(", triggering the matchparen plugin, the
6113             following highlighting may be messed up.
6114 Solution:   Before triggering the CursorMovedI autocommands update the display
6115             to update the stored syntax stacks for the change.
6116 Files:      src/edit.c
6118 Patch 7.1.222 (after 7.1.217)
6119 Problem:    Wildcards in argument of ":helptags" are not expanded.  (Marcel
6120             Svitalsky)
6121 Solution:   Expand wildcards in the directory name.
6122 Files:      src/ex_cmds.c
6124 Patch 7.1.223
6125 Problem:    glob() doesn't work properly when 'shell' is "sh" or "bash" and
6126             the expanded name contains spaces, '~', single quotes and other
6127             special characters.  (Adri Verhoef, Charles Campbell)
6128 Solution:   For Posix shells define a vimglob() function to list the matches
6129             instead of using "echo" directly.
6130 Files:      src/os_unix.c
6132 Patch 7.1.224
6133 Problem:    When using "vim -F -o file1 file2" only one window is
6134             right-to-left.  Same for "-H".  (Ben Schmidt)
6135 Solution:   use set_option_value() to set 'rightleft'.
6136 Files:      src/main.c
6138 Patch 7.1.225
6139 Problem:    Using uninitialized value when XGetWMNormalHints() fails.
6140 Solution:   Check the return value. (Dominique Pelle)
6141 Files:      src/os_unix.c
6143 Patch 7.1.226
6144 Problem:    Command line completion doesn't work when a file name contains a
6145             '&' character.
6146 Solution:   Accept all characters in a file name, except ones that end a
6147             command or white space.
6148 Files:      src/ex_docmd.c
6150 Patch 7.1.227
6151 Problem:    Hang in syntax HL when moving over a ")". (Dominique Pelle)
6152 Solution:   Avoid storing a syntax state in the wrong position in the list of
6153             remembered states.
6154 Files:      src/syntax.c
6156 Patch 7.1.228
6157 Problem:    When 'foldmethod' is "indent" and a fold is created with ">>" it
6158             can't be closed with "zc".  (Daniel Shahaf)
6159 Solution:   Reset the "small" flag of a fold when adding a line to it.
6160 Files:      src/fold.c
6162 Patch 7.1.229
6163 Problem:    A fold is closed when it shouldn't when 'foldmethod' is "indent"
6164             and backspacing a non-white character so that the indent increases.
6165 Solution:   Keep the fold open after backspacing a character.
6166 Files:      src/edit.c
6168 Patch 7.1.230
6169 Problem:    Memory leak when executing SourceCmd autocommands.
6170 Solution:   Free the memory. (Dominique Pelle)
6171 Files:      src/ex_cmds2.c
6173 Patch 7.1.231
6174 Problem:    When shifting lines the change is acted upon multiple times.
6175 Solution:   Don't have shift_line() call changed_bytes.
6176 Files:      src/edit.c, src/ops.c, src/proto/edit.pro, src/proto/ops.pro
6178 Patch 7.1.232 (after 7.1.207 and 7.1.211)
6179 Problem:    Compiler warnings with MSVC.
6180 Solution:   Add type casts. (Mike Williams)
6181 Files:      src/ex_cmds2.c, src/netbeans.c
6183 Patch 7.1.233
6184 Problem:    Crash when doing Insert mode completion for a user defined
6185             command.  (Yegappan Lakshmanan)
6186 Solution:   Don't use the non-existing command line.
6187 Files:      src/ex_getln.c
6189 Patch 7.1.234
6190 Problem:    When diff'ing three files the third one isn't displayed correctly.
6191             (Gary Johnson)
6192 Solution:   Compute the size of diff blocks correctly when merging blocks.
6193             Compute filler lines correctly when scrolling.
6194 Files:      src/diff.c
6196 Patch 7.1.235
6197 Problem:    Pattern matching is slow when using a lot of simple patterns.
6198 Solution:   Avoid allocating memory by not freeing it when it's not so much.
6199             (Alexei Alexandrov)
6200 Files:      src/regexp.c
6202 Patch 7.1.236
6203 Problem:    When using 'incsearch' and 'hlsearch' a complicated pattern may
6204             make Vim hang until CTRL-C is pressed.
6205 Solution:   Add the 'redrawtime' option.
6206 Files:      runtime/doc/options.txt, src/ex_cmds.c, src/ex_docmd.c,
6207             src/ex_getln.c, src/gui.c, src/misc1.c, src/normal.c,
6208             src/option.c, src/quickfix.c, src/regexp.c, src/proto/regexp.pro,
6209             src/proto/search.pro, src/search.c, src/screen.c,
6210             src/option.h, src/spell.c, src/structs.h, src/syntax.c, src/tag.c,
6211             src/vim.h
6213 Patch 7.1.237
6214 Problem:    Compiler warning on an Alpha processor in Motif code.
6215 Solution:   Change a typecast. (Adri Verhoef)
6216 Files:      src/gui_motif.c
6218 Patch 7.1.238
6219 Problem:    Using the 'c' flag with searchpair() may cause it to fail.  Using
6220             the 'r' flag doesn't work when 'wrapscan' is set.  (A.Politz)
6221 Solution:   Only use the 'c' flag for the first search, not for repeating.
6222             When using 'r' imply 'W'. (Antony Scriven)
6223 Files:      src/eval.c
6225 Patch 7.1.239 (after 7.1.233)
6226 Problem:    Compiler warning for sprintf() argument.
6227 Solution:   Add a typecast. (Nico Weber)
6228 Files:      src/ex_getln.c
6230 Patch 7.1.240
6231 Problem:    When "gUe" turns a German sharp s into SS the operation stops
6232             before the end of the word.  Latin2 has the same sharp s but it's
6233             not changed to SS there.
6234 Solution:   Make sure all the characters are operated upon.  Detect the sharp
6235             s in latin2.  Also fixes that changing case of a multi-byte
6236             character that changes the byte count doesn't always work.
6237 Files:      src/ops.c
6239 Patch 7.1.241
6240 Problem:    Focus change events not always ignored.  (Erik Falor)
6241 Solution:   Ignore K_IGNORE in Insert mode in a few more places.
6242 Files:      src/edit.c
6244 Patch 7.1.242 (after 7.1.005)
6245 Problem:    "cib" doesn't work properly on "(x)". (Tim Pope)
6246 Solution:   Use ltoreq() instead of lt().  Also fix "ciT" on "<a>x</a>".
6247 Files:      src/search.c
6249 Patch 7.1.243 (after 7.1.240)
6250 Problem:    "U" doesn't work on all text in Visual mode. (Adri Verhoef)
6251 Solution:   Loop over all the lines to be changed.  Add tests for this.
6252 Files:      src/ops.c, src/testdir/test39.in, src/testdir/test39.ok
6254 Patch 7.1.244
6255 Problem:    GUI may have part of the command line cut off.
6256 Solution:   Don't round the number of lines up, always round down.
6257             (Tony Houghton, Scott Dillard)
6258 Files:      src/gui.c
6260 Patch 7.1.245
6261 Problem:    Pressing CTRL-\ three times causes Vim to quit.  (Ranganath Rao).
6262             Also for f CTRL-\ CTRL-\.
6263 Solution:   When going to cooked mode in mch_delay() set a flag to ignore
6264             SIGQUIT.
6265 Files:      src/os_unix.c
6267 Patch 7.1.246
6268 Problem:    Configure hangs when the man pager is something strange. (lorien)
6269 Solution:   Set MANPAGER and PAGER to "cat". (Micah Cowan)
6270 Files:      src/auto/configure, src/configure.in
6272 Patch 7.1.247
6273 Problem:    When using Netbeans backspacing in Insert mode skips a character
6274             now and then. (Ankit Jain)
6275 Solution:   Avoid calling netbeans_removed(), it frees the line pointer.
6276             (partly by Dominique Pelle).
6277 Files:      src/misc1.c
6279 Patch 7.1.248
6280 Problem:    Can't set the '" mark.  Can't know if setpos() was successful.
6281 Solution:   Allow setting the '" mark with setpos().  Have setpos() return a
6282             value indicating success/failure.
6283 Files:      runtime/doc/eval.txt, src/eval.c, src/mark.c
6285 Patch 7.1.249
6286 Problem:    After "U" the cursor can be past end of line.  (Adri Verhoef)
6287 Solution:   Adjust the cursor position in u_undoline().
6288 Files:      src/undo.c
6290 Patch 7.1.250
6291 Problem:    ":setglobal fenc=anything" gives an error message in a buffer
6292             where 'modifiable' is off.  (Ben Schmidt)
6293 Solution:   Don't give an error if 'modifiable' doesn't matter.
6294 Files:      src/option.c
6296 Patch 7.1.251
6297 Problem:    Using freed memory when spell checking enabled.
6298 Solution:   Obtain the current line again after calling spell_move_to().
6299             (Dominique Pelle)
6300 Files:      src/screen.c
6302 Patch 7.1.252 (after 7.1.243)
6303 Problem:    Test 39 fails when the environment has a utf-8 locale. (Dominique
6304             Pelle)
6305 Solution:   Force 'encoding' to be latin1.
6306 Files:      src/testdir/test39.in
6308 Patch 7.1.253
6309 Problem:    ":sort" doesn't work in a one line file. (Patrick Texier)
6310 Solution:   Don't sort if there is only one line. (Dominique Pelle)
6311 Files:      src/ex_cmds.c
6313 Patch 7.1.254
6314 Problem:    Tests 49 and 55 fail when the locale is French.
6315 Solution:   Using C messages for test 49.  Filter the error message in test 55
6316             such that it works when the number is halfway the message.
6317 Files:      src/testdir/test49.in, src/testdir/test55.in
6319 Patch 7.1.255
6320 Problem:    Vim doesn't support utf-32. (Yongwei Wu)
6321 Solution:   Add aliases for utf-32, it's the same as ucs-4.
6322 Files:      src/mbyte.c
6324 Patch 7.1.256
6325 Problem:    findfile() also returns directories.
6326 Solution:   Cleanup the code for finding files and directories in a list of
6327             directories.  Remove the ugly global ff_search_ctx.
6328 Files:      src/eval.c, src/misc2.c, src/vim.h, src/tag.c
6330 Patch 7.1.257
6331 Problem:    Configure can't always find the Tcl header files.
6332 Solution:   Also look in /usr/local/include/tcl$tclver and
6333             /usr/include/tcl$tclver (James Vega)
6334 Files:      src/auto/configure, src/configure.in
6336 Patch 7.1.258
6337 Problem:    Crash when doing "d/\n/e" and 'virtualedit' is "all". (Andy Wokula)
6338 Solution:   Avoid that the column becomes negative.  Also fixes other problems
6339             with the end of a pattern match is in column zero. (A.Politz)
6340 Files:      src/search.c
6342 Patch 7.1.259
6343 Problem:    Cursor is in the wrong position when 'rightleft' is set,
6344             'encoding' is "utf-8" and on an illegal byte.  (Dominique Pelle)
6345 Solution:   Only put the cursor in the first column when actually on a
6346             double-wide character.  (Yukihiro Nakadaira)
6347 Files:      src/screen.c
6349 Patch 7.1.260
6350 Problem:    Cursor positioning problem after ^@ wrapping halfway when
6351             'encoding' is utf-8.
6352 Solution:   Only count a position for printable characters.  (partly by
6353             Yukihiro Nakadaira)
6354 Files:      src/charset.c
6356 Patch 7.1.261
6357 Problem:    When a 2 byte BOM is detected Vim uses UCS-2, which doesn't work
6358             for UTF-16 text. (Tony Mechelynck)
6359 Solution:   Default to UTF-16.
6360 Files:      src/fileio.c, src/testdir/test42.ok
6362 Patch 7.1.262
6363 Problem:    Can't get the process ID of Vim.
6364 Solution:   Implement getpid().
6365 Files:      src/eval.c, runtime/doc/eval.txt
6367 Patch 7.1.263
6368 Problem:    The filetype can consist of two dot separated names.  This works
6369             for syntax and ftplugin, but not for indent. (Brett Stahlman)
6370 Solution:   Use split() and loop over each dot separated name.
6371 Files:      runtime/indent.vim
6373 Patch 7.1.264
6374 Problem:    Crash when indenting lines. (Dominique Pelle)
6375 Solution:   Set the cursor column when changing the cursor line.
6376 Files:      src/ops.c, src/misc1.c
6378 Patch 7.1.265
6379 Problem:    When 'isfname' contains a space, cmdline completion can hang.
6380             (James Vega)
6381 Solution:   Reset the "len" variable.
6382 Files:      src/ex_docmd.c
6384 Patch 7.1.266
6385 Problem:    When the version string returned by the terminal contains
6386             unexpected characters, it is used as typed input. (James Vega)
6387 Solution:   Assume the escape sequence ends in a letter.
6388 Files:      src/term.c
6390 Patch 7.1.267
6391 Problem:    When changing folds cursor may be positioned in the wrong place.
6392 Solution:   Call changed_window_setting_win() instead of
6393             changed_window_setting().
6394 Files:      src/fold.c
6396 Patch 7.1.268
6397 Problem:    Always shows "+" at end of screen line with: ":set
6398             listchars=eol:$,extends:+ nowrap list cursorline" (Gary Johnson)
6399 Solution:   Check for lcs_eol_one instead of lcs_eol.
6400 Files:      src/screen.c
6402 Patch 7.1.269
6403 Problem:    The matchparen plugin has an arbitrary limit for the number of
6404             lines to look for a match.
6405 Solution:   Rely on the searchpair() timeout.
6406 Files:      runtime/plugin/matchparen.vim
6408 Patch 7.1.270
6409 Problem:    ":?foo?" matches in current line since patch 7.1.025. (A.Politz)
6410 Solution:   Remove the SEARCH_START flag.
6411 Files:      src/ex_docmd.c, src/search.c
6413 Patch 7.1.271
6414 Problem:    In a Vim build without autocommands, checking a file that was
6415             changed externally causes the current buffer to be changed
6416             unexpectedly.  (Karsten Hopp)
6417 Solution:   Store "curbuf" instead of "buf".
6418 Files:      src/fileio.c
6420 Patch 7.1.272
6421 Problem:    The special buffer name [Location List] is not used for a buffer
6422             displayed in another tab page.
6423 Solution:   Use FOR_ALL_TAB_WINDOWS instead of FOR_ALL_WINDOWS. (Hiroaki
6424             Nishihara)
6425 Files:      src/buffer.c
6427 Patch 7.1.273
6428 Problem:    When profiling on Linux Vim exits early. (Liu Yubao)
6429 Solution:   When profiling don't exit on SIGPROF.
6430 Files:      src/Makefile, src/os_unix.c
6432 Patch 7.1.274 (after 7.1.272)
6433 Problem:    Compiler warning for optimized build.
6434 Solution:   Init win to NULL.
6435 Files:      src/buffer.c
6437 Patch 7.1.275 (extra)
6438 Problem:    Mac: ATSUI and 'antialias' don't work properly together.
6439 Solution:   Fix this and the input method. (Jjgod Jiang)
6440 Files:      src/vim.h, src/gui_mac.c
6442 Patch 7.1.276
6443 Problem:    "gw" uses 'formatexpr', even though the docs say it doesn't.
6444 Solution:   Don't use 'formatexpr' for "gw".
6445 Files:      src/vim.h, src/edit.c, src/ops.c, src/proto/ops.pro
6447 Patch 7.1.277
6448 Problem:    Default for 'paragraphs' misses some items (Colin Watson)
6449 Solution:   Add TP, HP, Pp, Lp and It to 'paragraphs'. (James Vega)
6450 Files:      runtime/doc/options.txt, src/option.c
6452 Patch 7.1.278 (extra, after 7.1.275)
6453 Problem:    Build failure when USE_CARBONKEYHANDLER is not defined.
6454 Solution:   Remove #ifdef.
6455 Files:      src/gui_mac.c
6457 Patch 7.1.279
6458 Problem:    When using cscope temporary files are left behind.
6459 Solution:   Send the quit command to cscope and give it two seconds to exit
6460             nicely before killing it. (partly by Dominique Pelle)
6461 Files:      src/if_cscope.c
6463 Patch 7.1.280  (after 7.1.275)
6464 Problem:    Mac: build problems when not using multibyte feature. (Nicholas
6465             Stallard)
6466 Solution:   Don't define USE_IM_CONTROL when not using multibyte.
6467 Files:      src/vim.h
6469 Patch 7.1.281 (after 7.1.279)
6470 Problem:    sa.sa_mask is not initialized.  Cscope may not exit.
6471 Solution:   Use sigemptyset().  Use SIGKILL instead of SIGTERM. (Dominique
6472             Pelle)
6473 Files:      src/if_cscope.c
6475 Patch 7.1.282 (extra)
6476 Problem:    Win64: Edit with Vim context menu isn't installed correctly.
6477             Compiler warnings and a few other things.
6478 Solution:   Add [ and ] to entry of class name.  Use UINT_PTR instead of UINT.
6479             And a fixes for the other things. (George V.  Reilly)
6480 Files:      src/GvimExt/Makefile, src/dosinst.c, src/if_ole.cpp, src/if_ole.h,
6481             src/if_ole.idl, src/INSTALLpc.txt,  src/Make_mvc.mak,
6482             src/os_win32.c,
6484 Patch 7.1.283
6485 Problem:    Non-extra part for 7.1.282.
6486 Solution:   Various changes.
6487 Files:      src/ex_docmd.c, src/globals.h, src/if_cscope.c, src/main.c,
6488             src/mark.c, src/netbeans.c, src/popupmnu.c, src/vim.h,
6489             src/window.c
6491 Patch 7.1.284
6492 Problem:    Compiler warnings for functions without prototype.
6493 Solution:   Add the function prototypes. (Patrick Texier)
6494 Files:      src/eval.c, src/quickfix.c
6496 Patch 7.1.285 (extra)
6497 Problem:    Mac: dialog hotkeys don't work.
6498 Solution:   Add hotkey support. (Dan Sandler)
6499 Files:      src/gui_mac.c
6501 Patch 7.1.286 (after 7.1.103)
6502 Problem:    "w" at the end of the buffer moves the cursor past the end of the
6503             line. (Markus Heidelberg)
6504 Solution:   Move the cursor back from the NUL when it was moved forward.
6505 Files:      src/normal.c
6507 Patch 7.1.287
6508 Problem:    Crash when reversing a list after using it. (Andy Wokula)
6509 Solution:   Update the pointer to the last used element. (Dominique Pelle)
6510 Files:      src/eval.c
6512 Patch 7.1.288 (after 7.1.281)
6513 Problem:    Cscope still leaves behind temp files when using gvim.
6514 Solution:   When getting the ECHILD error loop for a while until cscope exits.
6515             (Dominique Pelle)
6516 Files:      if_cscope.c
6518 Patch 7.1.289
6519 Problem:    When EXITFREE is defined and 'acd' is set freed memory is used.
6520             (Dominique Pelle)
6521 Solution:   Reset p_acd before freeing all buffers.
6522 Files:      src/misc2.c
6524 Patch 7.1.290
6525 Problem:    Reading bytes that were not written when spell checking and a line
6526             has a very large indent.
6527 Solution:   Don't copy the start of the next line when it only contains
6528             spaces. (Dominique Pelle)
6529 Files:      src/spell.c
6531 Patch 7.1.291 (after 7.1.288)
6532 Problem:    Compiler warning.
6533 Solution:   Change 50 to 50L.
6534 Files:      src/if_cscope.c
6536 Patch 7.1.292
6537 Problem:    When using a pattern with "\@<=" the submatches can be wrong.
6538             (Brett Stahlman)
6539 Solution:   Save the submatches when attempting a look-behind match.
6540 Files:      src/regexp.c
6542 Patch 7.1.293
6543 Problem:    Spell checking considers super- and subscript characters as word
6544             characters.
6545 Solution:   Recognize the Unicode super and subscript characters.
6546 Files:      src/spell.c
6548 Patch 7.1.294
6549 Problem:    Leaking memory when executing a shell command.
6550 Solution:   Free memory when not able to save for undo. (Dominique Pelle)
6551 Files:      src/ex_cmds.c
6553 Patch 7.1.295
6554 Problem:    Vimtutor only works with vim, not gvim.
6555 Solution:   Add the -g flag to vimtutor. (Dominique Pelle)  Add gvimtutor.
6556 Files:      src/Makefile, src/gvimtutor, src/vimtutor, runtime/doc/vimtutor.1
6558 Patch 7.1.296
6559 Problem:    SELinux is not supported.
6560 Solution:   Detect the selinux library and use mch_copy_sec(). (James Vega)
6561 Files:      src/auto/configure, src/config.h.in, src/configure.in,
6562             src/fileio.c, src/memfile.c, src/os_unix.c, src/proto/os_unix.pro
6564 Patch 7.1.297
6565 Problem:    When using the search/replace dialog the parenmatch highlighting
6566             can be wrong. (Tim Duncan)
6567 Solution:   In the GUI redraw function invoke the CursorMoved autocmd.
6568 Files:      src/gui.c
6570 Patch 7.1.298 (after 7.1.295)
6571 Problem:    src/gvimtutor is not distributed.
6572 Solution:   Add it to the list of distributed files.
6573 Files:      Filelist
6575 Patch 7.1.299
6576 Problem:    Filetype detection doesn't work properly for file names ending in
6577             a part that is ignored and contain a space or other special
6578             characters.
6579 Solution:   Escape the special characters using the new fnameescape function.
6580 Files:      runtime/doc/eval.txt, runtime/filetype.vim, src/eval.c,
6581             src/ex_getln.c, src/proto/ex_getln.pro, src/vim.h
6583 Patch 7.1.300
6584 Problem:    Value of asmsyntax argument isn't checked for valid characters.
6585 Solution:   Only accepts letters and digits.
6586 Files:      runtime/filetype.vim
6588 Patch 7.1.301
6589 Problem:    When the "File/Save" menu is used in Insert mode, a tab page label
6590             is not updated to remove the "+".
6591 Solution:   Call draw_tabline() from showruler(). (Bjorn Winckler)
6592 Files:      src/screen.c
6594 Patch 7.1.302 (after 7.1.299)
6595 Problem:    Compilation error on MS-Windows.
6596 Solution:   Don't use xp_shell when it's not defined.
6597 Files:      src/ex_getln.c
6599 Patch 7.1.303 (after 7.1.302)
6600 Problem:    Compilation error on MS-Windows, again.
6601 Solution:   Declare p.
6602 Files:      src/ex_getln.c
6604 Patch 7.1.304
6605 Problem:    Shortpath_for_invalid_fname() does not work correctly and is
6606             unnecessary complex.
6607 Solution:   Clean up shortpath_for_invalid_fname(). (mostly by Yegappan
6608             Lakshmanan)
6609 Files:      src/eval.c
6611 Patch 7.1.305
6612 Problem:    Editing a compressed file with special characters in the name
6613             doesn't work properly.
6614 Solution:   Escape special characters.
6615 Files:      runtime/autoload/gzip.vim
6617 Patch 7.1.306
6618 Problem:    Some Unicode characters are handled like word characters while
6619             they are symbols.
6620 Solution:   Adjust the table for Unicode classification.
6621 Files:      src/mbyte.c
6623 Patch 7.1.307
6624 Problem:    Many warnings when compiling with Python 2.5.
6625 Solution:   Use ssize_t instead of int for some types. (James Vega)
6626 Files:      src/if_python.c
6628 Patch 7.1.308
6629 Problem:    When in readonly mode ":options" produces an error.
6630 Solution:   Reset 'readonly'. (Gary Johnson)
6631 Files:      runtime/optwin.vim
6633 Patch 7.1.309
6634 Problem:    Installing and testing with a shadow directory doesn't work.
6635             (James Vega)
6636 Solution:   Add "po" to the list of directories to link.  Also link the Vim
6637             scripts in testdir.  And a few more small fixes.
6638 Files:      src/Makefile
6640 Patch 7.1.310
6641 Problem:    Incomplete utf-8 byte sequence at end of the file is not detected.
6642             Accessing memory that wasn't written.
6643 Solution:   Check the last bytes in the buffer for being a valid utf-8
6644             character. (mostly by Ben Schmidt)
6645             Also fix that the reported line number of the error was wrong.
6646 Files:      src/fileio.c
6648 Patch 7.1.311
6649 Problem:    Compiler warning for missing sentinel in X code.
6650 Solution:   Change 0 to NULL. (Markus Heidelberg)
6651 Files:      src/mbyte.c
6653 Patch 7.1.312
6654 Problem:    The .po files have mistakes in error numbers.
6655 Solution:   Search for these mistakes in the check script. (Dominique Pelle)
6656 Files:      src/po/check.vim
6658 Patch 7.1.313
6659 Problem:    When the netbeans interface setModified call is used the status
6660             lines and window title are not updated.
6661 Solution:   Redraw the status lines and title. (Philippe Fremy)
6662 Files:      src/netbeans.c
6664 Patch 7.1.314
6665 Problem:    The value of 'pastetoggle' is written to the session file without
6666             any escaping. (Randall Hansen)
6667 Solution:   Use put_escstr(). (Ben Schmidt)
6668 Files:      src/option.c
6670 Patch 7.1.315
6671 Problem:    Crash with specific search pattern using look-behind match.
6672             (Andreas Politz)
6673 Solution:   Also save the value of "need_clear_subexpr".
6674 Files:      src/regexp.c
6676 Patch 7.1.316
6677 Problem:    When 'cscopetag' is set ":tag" gives an error message instead of
6678             going to the next tag in the tag stack.
6679 Solution:   Don't call do_cstag() when there is no argument. (Mark Goldman)
6680 Files:      src/ex_docmd.c
6682 Patch 7.1.317
6683 Problem:    Compiler warnings in Motif calls.
6684 Solution:   Change zero to NULL. (Dominique Pelle)
6685 Files:      src/gui_motif.c
6687 Patch 7.1.318
6688 Problem:    Memory leak when closing xsmp connection.  Crash on exit when
6689             using Lesstif.
6690 Solution:   Don't close the X display to work around a Lesstif bug.  Free
6691             clientid.  Also fix a leak for Motif and Athena. (Dominique Pelle)
6692 Files:      src/gui_x11.c, src/os_unix.c
6694 Patch 7.1.319
6695 Problem:    When a register has an illegal utf-8 sequence, pasting it on the
6696             command line causes an illegal memory access.
6697 Solution:   Use mb_cptr2char_adv(). (Dominique Pelle)
6698 Files:      src/ex_getln.c
6700 Patch 7.1.320 (extra)
6701 Problem:    Win64: Warnings while compiling Python interface.
6702 Solution:   Use PyInt in more places.  Also update version message for the
6703             console. (George Reilly)
6704 Files:      src/if_python.c, src/version.c
6706 Patch 7.1.321 (extra)
6707 Problem:    Win32 / Win64: Install file is outdated.
6708 Solution:   Update the text for recent compiler. (George Reilly)
6709 Files:      src/INSTALLpc.txt
6711 Patch 7.1.322
6712 Problem:    Can't get start of Visual area in an <expr> mapping.
6713 Solution:   Add the 'v' argument to getpos().
6714 Files:      runtime/doc/eval.txt, src/eval.c
6716 Patch 7.1.323
6717 Problem:    Test 19 fails with some termcaps. (Dominique Pelle)
6718 Solution:   Set the t_kb and t_kD termcap values.
6719 Files:      src/testdir/test19.in, src/testdir/test38.in
6721 Patch 7.1.324
6722 Problem:    File name path length on Unix is limited to 1024.
6723 Solution:   Use PATH_MAX when it's more than 1000.
6724 Files:      src/os_unix.h
6726 Patch 7.1.325
6727 Problem:    When editing a command line that's longer than available space in
6728             the window, the characters at the end are in reverse order.
6729 Solution:   Increment the insert position even when the command line doesn't
6730             fit.  (Ingo Karkat)
6731 Files:      src/ex_getln.c
6733 Patch 7.1.326
6734 Problem:    ":s!from!to!" works, but ":smagic!from!to!" doesn't.  It sees the
6735             "!" as a flag to the command.  Same for ":snomagic". (Johan Spetz)
6736 Solution:   When checking for a forced command also ignore ":smagic" and
6737             ":snomagic". (Ian Kelling)
6738 Files:      src/ex_docmd.c
6740 Patch 7.1.327
6741 Problem:    The GUI tutor is installed when there is no GUI version.
6742 Solution:   Only install gvimtutor when building a GUI version.
6743 Files:      src/Makefile
6745 Patch 7.1.328
6746 Problem:    Crash when using Cygwin and non-posix path name in tags file.
6747 Solution:   Use separate buffer for posix path. (Ben Schmidt)
6748 Files:      src/os_unix.c
6750 Patch 7.1.329
6751 Problem:    When the popup menu is removed a column of cells, the right halve
6752             of double-wide characters, may not be redrawn.
6753 Solution:   Check if the right halve of a character needs to be redrawn.
6754             (Yukihiro Nakadaira)
6755 Files:      src/screen.c
6757 Patch 7.1.330
6758 Problem:    Reading uninitialized memory when using Del in replace mode.
6759 Solution:   Use utfc_ptr2len_len() instead of mb_ptr2len(). (Dominique Pelle)
6760 Files:      src/misc1.c
6763 Warning for missing sentinel in gui_xmldlg.c. (Dominique Pelle)
6765 A search offset from the end of a match didn't work properly for multi-byte
6766 characters.  (Yukihiro Nakadaira)
6768 When displaying the value of 'key' don't show "*****" when the value is empty.
6769 (Ben Schmidt)
6771 Internal error when compiled with EXITFREE and using the nerd_tree plugin.
6772 Set last_msg_hist to NULL when history becomes empty.  Call
6773 free_all_functions() after garbage collection.  (Dominique Pelle)
6775 GTK with XIM: <S-Space> does not work.  (Yukihiro Nakadaira)
6777 Some shells do not support "echo -n", which breaks glob().  Use "echo" instead
6778 of "echo -n $1; echo".  (Gary Johnson)
6780 "echo 22,44" printed "22" on top of the command, the error messages caused
6781 the rest not to be cleared.  Added the need_clr_eos flag.
6783 Netbeans events are handled while updating the screen, causing a crash.
6784 Change the moment when events are handled.  Rename nb_parse_messages() to
6785 netbeans_parse_messages().  (Xavier de Gaye)
6787 Test 11 was broken after patch 7.1.186 on Win32 console. (Daniel Shahaf)
6788 Use shellescape() on the file name.
6790 IM was turned off in im_preedit_end_cb() for no good reason.  (Takuhiro
6791 Nishioka)
6793 A corrupted spell file could cause Vim to use lots of memory.  Better
6794 detection for running into the end of the file.  (idea from James Vega)
6796 Mac: Included a patch to make it build with GTK.  Moved language init to
6797 mac_lang_init() function.  (Ben Schmidt)
6799 Problem with 'wildmenu' after ":lcd", up/down arrows don't work. (Erik Falor)
6801 Fix configure.in to avoid "implicitly declared" warnings when running
6802 configure.
6804 Fixed a memory leak when redefining a keymap. (Dominique Pelle)
6806 Setting 'pastetoggle' to "jj" didn't work.
6808 'ic' and 'smartcase' don't work properly when using \%V in a search pattern.
6809 (Kana Natsuno)
6811 Patch 7.2a.001
6812 Problem:    On some systems X11/Xlib.h exists (from X11-dev package) but
6813             X11/Intrinsic.h does not (in Xt-dev package).  This breaks the
6814             build.  Also, on Solaris 9 sys/ptem.h isn't found.
6815 Solution:   Have configure only accept X11 when X11/Intrinsic.h exists.
6816             Check for sys/ptem.h while including sys/stream.h. (Vladimir
6817             Marek)
6818 Files:      src/auto/configure, src/configure.in
6820 Patch 7.2a.002
6821 Problem:    getbufvar(N, "") gets the dictionary of the current buffer instead
6822             of buffer N.
6823 Solution:   Set curbuf before calling find_var_in_ht(). (Kana Natsuno)
6824 Files:      src/eval.c
6826 Patch 7.2a.003
6827 Problem:    Leaking memory when using ":file name" and using access control
6828             lists.
6829 Solution:   Invoke mch_free_acl() in vim_rename(). (Dominique Pelle)
6830 Files:      src/fileio.c
6832 Patch 7.2a.004
6833 Problem:    Some systems can't get spell files by ftp.
6834 Solution:   Use http when it looks like it's possible. (James Vega)
6835 Files:      runtime/autoload/spellfile.vim
6837 Patch 7.2a.005
6838 Problem:    A few error messages use confusing names.  Misspelling.
6839 Solution:   Change "dissallows" to "disallows". (Dominique Pelle)  Change
6840             "number" to "Number".
6841 Files:      src/eval.c, src/fileio.c
6843 Patch 7.2a.006
6844 Problem:    Reading past NUL in a string.
6845 Solution:   Check for invalid utf-8 byte sequence. (Dominique Pelle)
6846 Files:      src/charset.c
6848 Patch 7.2a.007
6849 Problem:    ":let v = 1.2.3" was OK in Vim 7.1, now it gives an error.
6850 Solution:   Don't look for a floating point number after the "." operator.
6851 Files:      src/eval.c
6853 Patch 7.2a.008
6854 Problem:    printf("%g", 1) doesn't work.
6855 Solution:   Convert Number to Float when needed.
6856 Files:      src/message.c
6858 Patch 7.2a.009
6859 Problem:    cygwin_conv_to_posix_path() does not specify buffer size.
6860 Solution:   Use new Cygwin function: cygwin_conv_path(). (Corinna Vinschen)
6861 Files:      src/main.c, src/os_unix.c
6863 Patch 7.2a.010
6864 Problem:    When a file name has an illegal byte sequence Vim may read
6865             uninitialised memory.
6866 Solution:   Don't use UTF_COMPOSINGLIKE() on an illegal byte.  In
6867             msg_outtrans_len_attr() use char2cells() instead of ptr2cells().
6868             In utf_ptr2char() don't check second byte when first byte is
6869             illegal.  (Dominique Pelle)
6870 Files:      src/mbyte.c, src/message.c
6872 Patch 7.2a.011
6873 Problem:    The Edit/Startup Settings menu doesn't work.
6874 Solution:   Expand environment variables. (Ben Schmidt)
6875 Files:      runtime/menu.vim
6877 Patch 7.2a.012
6878 Problem:    Compiler warnings for casting int to pointer.
6879 Solution:   Add cast to long in between. (Martin Toft)
6880 Files:      src/gui_gtk_x11.c
6882 Patch 7.2a.013
6883 Problem:    shellescape() does not escape "%" and "#" characters.
6884 Solution:   Add find_cmdline_var() and use it when the second argument to
6885             shellescape() is non-zero.
6886 Files:      runtime/doc/eval.txt, src/eval.c, src/ex_docmd.c,
6887             src/proto/ex_docmd.pro, src/proto/misc2.pro, src/misc2.c
6889 Patch 7.2a.014
6890 Problem:    Problem with % in message.
6891 Solution:   Put % in single quotes.
6892 Files:      src/eval.c
6894 Patch 7.2a.015 (after 7.2a.010)
6895 Problem:    Misaligned messages.
6896 Solution:   Compute length of unprintable chars correctly.
6897 Files:      src/message.c
6899 Patch 7.2a.016
6900 Problem:    Using CTRL-W v in the quickfix window results in two quickfix
6901             windows, which is not allowed.  ":tab split" should be allowed to
6902             open a new quickfix window in another tab.
6903 Solution:   For CTRL-W v instead of splitting the window open a new one.
6904             When using ":tab" do allow splitting the quickfix window (was
6905             already included in patch 7.2a.013).
6906 Files:      src/window.c
6908 Patch 7.2a.017
6909 Problem:    ":doautoall" executes autocommands for all buffers instead of just
6910             for loaded buffers.
6911 Solution:   Change "curbuf" to "buf".
6912 Files:      src/fileio.c
6914 Patch 7.2a.018
6915 Problem:    Compiler warnings when compiling with Gnome. (Tony Mechelynck)
6916 Solution:   Add type casts.
6917 Files:      src/gui_gtk_x11.c
6919 Patch 7.2a.019
6920 Problem:    ":let &g:tw = 44" sets the local option value. (Cyril Slobin)
6921 Solution:   Use get_varp_scope() instead of get_varp(). (Ian Kelling)
6922 Files:      src/option.c
6924 There is no way to avoid adding /usr/local/{include|lib} to the build
6925 commands.  Add the --with-local-dir argument to configure. (Michael
6926 Haubenwallner)
6928 When using CTRL-D after ":help", the number of matches could be thousands.
6929 Restrict to TAG_MANY to avoid this taking too long. (Ian Kelling)
6931 The popup menu could be placed at a weird location.  Caused by w_wcol computed
6932 by curs_columns().  (Dominique Pelle)
6934 Overlapping STRCPY() arguments when using %r item in 'errorformat'.  Use
6935 STRMOVE() instead. (Ralf Wildenhues)
6937 Mac: On Leopard gvim, when using the mouse wheel nothing would happen until
6938 another event occurs, such as moving the mouse.  Then the recorded scrolling
6939 would take place all at once. (Eckehard Berns)
6941 Solution for cursor color not reflecting IM status for GTK 2.  Add
6942 preedit_is_active flag. (SungHyun Nam)
6944 filereadable() can hang on a FIFO on Linux.  Use open() instead of fopen(),
6945 with O_NONBLOCK. (suggested by Lars Kotthoff)
6947 Included patch to support Perl 5.10. (Yasuhiro Matsumoto)
6949 When files are dropped on gvim while the screen is being updated, ignore the
6950 drop command to avoid freeing memory that is being used.
6952 In a terminal, when drawing the popup menu over double-wide characters, half
6953 characters may not be cleared properly. (Yukihiro Nakadaira)
6955 The #ifdef for including "vimio.h" was inconsistent.  In a few files it
6956 depended on MSWIN, which isn't defined until later.
6958 Patch 7.2b.001
6959 Problem:    Compilation problem: mb_fix_col() missing with multi-byte feature
6960             but without GUI or clipboard.
6961 Solution:   Remove #ifdef.
6962 Files:      src/mbyte.c
6964 Patch 7.2b.002
6965 Problem:    Compiler warnings for signed/unsigned mismatch.
6966 Solution:   Add type casts.
6967 Files:      src/screen.c
6969 Patch 7.2b.003
6970 Problem:    Still a compilation problem, check_col() and check_row() missing.
6971 Solution:   Add FEAT_MBYTE to the #if.
6972 Files:      src/ui.c
6974 Patch 7.2b.004
6975 Problem:    Trying to free memory for a static string when using ":helpgrep".
6976             (George Reilly)
6977 Solution:   Set 'cpo' to empty_option instead of an empty string.  Also for
6978             searchpair() and substitute().
6979 Files:      src/quickfix.c, src/eval.c
6981 Patch 7.2b.005
6982 Problem:    The special character "!" isn't handled properly in shellescape().
6983             (Jan Minar)
6984 Solution:   Escape "!" when using a "csh" like shell and with
6985             shellescape(s, 1).  Twice for both.  Also escape <NL>.
6986 Files:      src/misc2.c
6988 Patch 7.2b.006
6989 Problem:    Reading past end of string when reading info from tags line.
6990 Solution:   Break the loop when encountering a NUL. (Dominique Pelle)
6991 Files:      src/tag.c
6993 Patch 7.2b.007
6994 Problem:    Part of a message cannot be translated.
6995 Solution:   Put _() around the message.
6996 Files:      src/search.c
6998 Patch 7.2b.008
6999 Problem:    A few filetypes are not detected or not detected properly.
7000 Solution:   Add filetype detection patterns. (Nikolai Weibull)
7001 Files:      runtime/filetype.vim
7003 Patch 7.2b.009
7004 Problem:    Reading past end of screen line. (Epicurus)
7005 Solution:   Avoid going past the value of Columns.
7006 Files:      src/screen.c
7008 Patch 7.2b.010
7009 Problem:    ":mksession" doesn't work for ":map , foo", ":sunmap ,". (Ethan
7010             Mallove)
7011 Solution:   Check for "nxo", "nso" and other strange mapping combinations.
7012 Files:      src/getchar.c
7014 Patch 7.2b.011
7015 Problem:    Configure for TCL ends up with include file in compiler command.
7016             (Richard Hogg)
7017 Solution:   Delete items from $TCL_DEFS that do not start with a dash.
7018 Files:      src/auto/configure, src/configure.in
7020 Patch 7.2b.012
7021 Problem:    Build failure with +multi_byte but without +diff.
7022 Solution:   Add #ifdef. (Patrick Texier)
7023 Files:      src/main.c
7025 Patch 7.2b.013
7026 Problem:    Build fails with tiny features and Perl. (Dominique Pelle)
7027 Solution:   Define missing functions.  Also when compiling Python.
7028 Files:      src/if_perl.xs, src/if_python.c
7030 Patch 7.2b.014
7031 Problem:    Configure uses an unsafe temp file to store commands.
7032 Solution:   Create the temp file in local directory.
7033 Files:      src/auto/configure, src/configure.in
7035 Patch 7.2b.015
7036 Problem:    Build fails on Mac when using Aap.
7037 Solution:   Fix typo in configure script.
7038 Files:      src/auto/configure, src/configure.in
7040 Patch 7.2b.016
7041 Problem:    Build fails with normal features but without +autocmd.
7042 Solution:   Fix #ifdefs. (Ian Kelling)
7043 Files:      src/eval.c, src/ex_cmds.c, src/quickfix.c, src/option.c,
7044             src/ex_docmd.c
7046 Patch 7.2b.017
7047 Problem:    "vim -O foo foo" results in only one window.  (Zdenek Sekera)
7048 Solution:   Handle result of ATTENTION prompt properly. (Ian Kelling)
7049 Files:      src/main.c
7051 Patch 7.2b.018
7052 Problem:    When doing command line completion on a file name for a csh-like
7053             shell argument a '!' character isn't escaped properly.
7054 Solution:   Add another backslash.
7055 Files:      src/ex_getln.c, src/misc2.c, src/proto/misc2.pro, src/screen.c
7057 Patch 7.2b.019 (extra)
7058 Problem:    Win32: Various compiler warnings.
7059 Solution:   Use __w64 attribute.  Comment-out unused parameters.  Adjust a few
7060             #ifdefs. (George Reilly)
7061 Files:      src/gui_w48.c, src/GvimExt/gvimext.cpp, src/Make_mvc.mak,
7062             src/os_mswin.c, src/os_win32.c, src/vim.h
7064 Patch 7.2b.020
7065 Problem:    ":sort n" doesn't handle negative numbers. (James Vega)
7066 Solution:   Include '-' in the number.
7067 Files:      src/charset.c, src/ex_cmds.c
7069 Patch 7.2b.021
7070 Problem:    Reloading doesn't read the BOM correctly. (Steve Gardner)
7071 Solution:   Accept utf-8 BOM when specified file encoding is utf-8.
7072 Files:      src/fileio.c
7074 Patch 7.2b.022
7075 Problem:    When using ":normal" while updating the status line the count of
7076             an operator is lost. (Dominique Pelle)
7077 Solution:   Save and restore "opcount".
7078 Files:      src/ex_docmd.c, src/globals.h, src/normal.c
7080 Patch 7.2b.023
7081 Problem:    Crash when using the result of synstack(0,0). (Matt Wozniski)
7082 Solution:   Check for v_list to be NULL in a few more places.
7083 Files:      src/eval.c
7085 Patch 7.2b.024
7086 Problem:    Using ":gui" while the netrw plugin is active causes a delay in
7087             updating the display.
7088 Solution:   Don't check for terminal codes when starting the GUI.
7089 Files:      src/term.c
7091 Patch 7.2b.025
7092 Problem:    When the CursorHold event triggers a pending count is lost.
7093             (Juergen Kraemer)
7094 Solution:   Save the counts and restore them.
7095 Files:      src/normal.c, src/structs.h
7097 Patch 7.2b.026
7098 Problem:    The GTK 2 file chooser causes the ~/.recently-used.xbel file to be
7099             written over and over again.  This may cause a significant
7100             slowdown. (Guido Berhoerster)
7101 Solution:   Don't use the GTK 2 file chooser.
7102 Files:      src/gui_gtk.c
7104 Patch 7.2b.027
7105 Problem:    Memory leak for Python, Perl, etc. script command with end marker.
7106 Solution:   Free the memory of the end marker. (Andy Kittner)
7107 Files:      src/ex_getln.c
7109 Patch 7.2b.028
7110 Problem:    Reading uninitialized memory when doing ":gui -f". (Dominique
7111             Pelle)
7112 Solution:   Don't position the cursor when the screen size is invalid.
7113 Files:      src/gui.c
7115 Patch 7.2b.029
7116 Problem:    ":help a" doesn't jump to "a" tag in docs. (Tony Mechelynck)
7117 Solution:   Get all tags and throw away more than TAG_MANY after sorting.
7118             When there is no argument find matches for "help" to avoid a long
7119             delay.
7120 Files:      src/ex_cmds.c, src/ex_getln.c
7122 Patch 7.2b.030
7123 Problem:    When changing the value of t_Co from 8 to 16 the Visual
7124             highlighting keeps both reverse and a background color.
7125 Solution:   Remove the attribute when setting the default highlight color.
7126             (Markus Heidelberg)
7127 Files:      src/syntax.c
7129 Error when cancelling completion menu and auto-formatting. (fixed by Ian
7130 Kelling)
7132 Patch 7.2c.001
7133 Problem:    ":let x=[''] | let x += x" causes hang. (Matt Wozniski)
7134 Solution:   Only insert elements up to the original length of the List.
7135 Files:      runtime/doc/eval.txt, src/eval.c
7137 Patch 7.2c.002
7138 Problem:    fnameescape() doesn't handle a leading '+' or '>'. (Jan Minar)
7139 Solution:   Escape a leading '+' and '>'.  And a single '-'.
7140 Files:      runtime/doc/eval.txt, src/ex_getln.c
7142 Patch 7.2c.003
7143 Problem:    Searching for "foo\%[bar]\+" gives a "Corrupted regexp program"
7144             error. (Joachim Hofmann)
7145 Solution:   Mark the \%[] item as not being simple.
7146 Files:      src/regexp.c
7148 On Vista access to system directories is virtualized. (Michael Mutschler)
7149 Adjusted the manifest file to avoid this. (George Reilly)
7151 Memory leak when using CTRL-C to cancel listing the jump list. (Dominique
7152 Pelle)
7154 Mac: Could not build with Perl interface.
7156 ==============================================================================
7157 VERSION 7.3                                     *version-7.3* *version7.3*
7159 This section is about improvements made between version 7.2 and 7.3.
7161 This release has hundreds of bug fixes and there are a few new features.  The
7162 most notable new features are:
7165 Persistent undo                                 *new-persistent-undo*
7166 ---------------
7168 Store undo information in a file.  Can undo to before when the file was read,
7169 also for unloaded buffers. See |undo-persistence| (partly by Jordan Lewis)
7171 Added the ":earlier 1f" and ":later 1f" commands.
7172 Added file save counter to undo information.
7173 Added the |undotree()| and |undofile()| functions.
7175 Also added the 'undoreload' option.  This makes it possible to save the
7176 current text when reloading the buffer, so that the reload can be undone.
7179 More encryption                                 *new-more-encryption*
7180 ---------------
7182 Support for Blowfish encryption.  Added the 'cryptmethod' option.
7183 Mostly by Moshin Ahmed.
7185 Also encrypt the text in the swap file and the undo file.
7188 Conceal text                                    *new-conceal*
7189 ------------
7191 Added the |+conceal| feature.  (Vince Negri)
7192 This allows hiding stretches of text, based on syntax highlighting.
7193 It also allows replacing a stretch of text by a character |:syn-cchar|.
7194 The 'conceallevel' option specifies what happens with text matching a syntax
7195 item that has the conceal attribute.
7196 The 'concealcursor' option specifies what happens in the cursor line.
7198 The help files conceal characters used to mark tags and examples.
7200 Added the |synconcealed()| function and use it for :TOhtml. (Benjamin Fritz)
7202 Added the 'cursorbind' option, keeps the cursor in two windows with the same
7203 text in sync.
7206 Lua interface                                   *new-lua*
7207 -------------
7209 Added the |Lua| interface.  (Luis Carvalho)
7212 Python3 interface                               *new-python3*
7213 -----------------
7215 Added the Python3 interface.  It exists next to Python 2.x, both can be used
7216 at the same time.  See |python3| (Roland Puntaier)
7219 Changed                                                 *changed-7.3*
7220 -------
7222 The MS-Windows installer no longer requires the user to type anything in the
7223 console windows.  The installer now also works on 64 bit systems, including
7224 the "Edit with Vim" context menu.
7225 The gvim executable is 32 bits, the installed gvimext.dll is either a 32 or 64
7226 bit version. (mostly by George Reilly)
7227 Made the DOS installer work with more compilers.
7228 The MS-Windows big gvim is now built with Python 2.7 and 3.1.2, Perl 5.12 and
7229 Ruby 1.9.1.  You need the matching .dll files to use them.
7231 The extra and language files are no longer distributed separately.
7232 The source files for all systems are included in one distribution.
7234 After using ":recover" or recovering a file in another way, ":x" and "ZZ"
7235 didn't save what you see.  This could result in work being lost.  Now the text
7236 after recovery is compared to the original file contents.  When they differ
7237 the buffer is marked as modified.
7239 When Vim is exiting because of a deadly signal, when v:dying is 2 or more,
7240 VimLeavePre, VimLeave, BufWinLeave and BufUnload autocommands are not
7241 executed.
7243 Removed support for GTK 1.  It was no longer maintained and required a lot of
7244 #ifdefs in the source code.  GTK 2 should be available for every system.
7245 (James Vega)
7247 It is no longer allowed to set the 'encoding' option from a modeline.  It
7248 would corrupt the text.  (Patrick Texier)
7250 Renamed runtime/spell/fixdup to runtime/spell/fixdup.vim.
7252 Removed obsolete Mac code.
7254 Updated spell files for Ubuntu locale names.
7256 Switched from autoconf 2.63 to 2.65.
7258 Removed Mupad indent and ftplugin files, they are not useful.
7260 The maximum number of messages remembered in the history is now 200 (was 100).
7263 Added                                                   *added-7.3*
7264 -----
7266 Added the 'relativenumber' option. (Markus Heidelberg)
7268 Added the 'colorcolumn' option: highlight one or more columns in a window.
7269 E.g. to highlight the column after 'textwidth'. (partly by Gregor Uhlenheuer)
7271 Added support for NetBeans in a terminal.  Added |:nbstart| and |:nbclose|.
7272 (Xavier de Gaye)
7274 More floating point functions: |acos()|, |asin()|, |atan2()|, |cosh()|,
7275 |exp()|, |fmod()|, |log()|, |sinh()|, |tan()|, |tanh()|.  (Bill McCarthy)
7277 Added the |gettabvar()| and |settabvar()| functions. (Yegappan Lakshmanan)
7279 Added the |strchars()|, |strwidth()| and |strdisplaywidth()| functions.
7281 Support GDK_SUPER_MASK for GTK on Mac. (Stephan Schulz)
7283 Made CTRL and ALT modifier work for mouse wheel. (Benjamin Haskell)
7285 Added support for horizontal scroll wheel. (Bjorn Winckler)
7287 When the buffer is in diff mode, have :TOhtml create HTML to show the diff
7288 side-by-side.  (Christian Brabandt)
7290 Various improvements to ":TOhtml" and the 2html.vim script.  (Benjamin Fritz)
7292 Add the 'L' item to 'cinoptions'. (Manuel Konig)
7294 Improve Javascript indenting.  Add "J" flag to 'cinoptions'. (Hari Kumar G)
7296 Mac: Support disabling antialias. (LC Mi)
7298 Mac: Add clipboard support in the Mac console. (Bjorn Winckler)
7300 Make it possible to drag a tab page label to another position. (Paul B. Mahol)
7302 Better implementation of creating the Color Scheme menu. (Juergen Kraemer)
7304 In Visual mode with 'showcmd' display the number of bytes and characters.
7306 Allow synIDattr() getting GUI attributes when built without GUI.  (Matt
7307 Wozniski)
7309 Support completion for ":find".  Added test 73. (Nazri Ramliy)
7311 Command line completion for :ownsyntax and :setfiletype. (Dominique Pelle)
7313 Command line completion for :lmap and :lunmap.
7315 Support syntax and filetype completion for user commands. (Christian Brabandt)
7317 Add completion for ":ownsyntax" and improve completion for ":filetype".
7319 Avoid use of the GTK main_loop() so that the GtkFileChooser can be used.
7320 (James Vega)
7322 When 'formatexpr' evaluates to non-zero fall back to internal formatting, also
7323 for "gq". (James Vega)
7325 Support :browse for commands that use an error file argument. (Lech Lorens)
7327 Support wide file names in gvimext. (Szabolcs Horvat)
7329 Improve test for joining lines. (Milan Vancura)
7330 Make joining a range of lines much faster. (Milan Vancura)
7332 Add patch to improve support of z/OS (OS/390). (Ralf Schandl)
7334 Added the helphelp.txt file.  Moved text from various.txt to it.
7336 Added "q" item for 'statusline'.  Added |w:quickfix_title|. (Lech Lorens)
7338 Various improvements for VMS. (Zoltan Arpadffy)
7341 New syntax files: ~
7342 Haskell Cabal build file (Vincent Berthoux)
7343 ChaiScript (Jason Turner)
7344 Cucumber (Tim Pope)
7345 Datascript (Dominique Pelle)
7346 Fantom (Kamil Toman)
7347 Liquid (Tim Pope)
7348 Markdown (Tim Pope)
7349 wavefront's obj file (Vincent Berthoux)
7350 Perl 6 (Andy Lester)
7351 SDC - Synopsys Design Constraints (Maurizio Tranchero)
7352 SVG - Scalable Vector Graphics (Vincent Berthoux)
7353 task data (John Florian)
7354 task 42 edit (John Florian)
7356 New filetype plugins: ~
7357 Cucumber (Tim Pope)
7358 Liquid (Tim Pope)
7359 Logcheck (Debian)
7360 Markdown (Tim Pope)
7361 Perl 6 (Andy Lester)
7362 Quickfix window (Lech Lorens)
7363 Tcl (Robert L Hicks)
7365 New indent plugins: ~
7366 CUDA (Bram Moolenaar)
7367 ChaiScript (Jason Turner)
7368 Cucumber (Tim Pope)
7369 LifeLines (Patrick Texier)
7370 Liquid (Tim Pope)
7371 Mail (Bram Moolenaar)
7372 Perl 6 (Andy Lester)
7374 Other new runtime files: ~
7375 Breton spell file (Dominique Pelle)
7376 Dvorak keymap (Ashish Shukla)
7377 Korean translations. (SungHyun Nam)
7378 Python 3 completion (Aaron Griffin)
7379 Serbian menu translations (Aleksandar Jelenak)
7380 Tetum spell files
7381 Tutor Bairish (Sepp Hell)
7382 Tutor in Esperanto. (Dominique Pellé)
7383 Tutor in Portuguese.
7384 Norwegian Tutor now also available as tutor.nb
7386 Removed the Mupad runtime files, they were not maintained.
7389 Fixed                                                   *fixed-7.3*
7390 -----
7392 Patch 7.2.001
7393 Problem:    Mac: pseudo-ttys don't work properly on Leopard, resulting in the
7394             shell not to have a prompt, CTRL-C not working, etc.
7395 Solution:   Don't use SVR4 compatible ptys, even though they are detected.
7396             (Ben Schmidt)
7397 Files:      src/pty.c
7399 Patch 7.2.002
7400 Problem:    Leaking memory when displaying menus.
7401 Solution:   Free allocated memory. (Dominique Pelle)
7402 Files:      src/menu.c
7404 Patch 7.2.003
7405 Problem:    Typo in translated message.  Message not translated.
7406 Solution:   Correct spelling. Add _(). (Dominique Pelle)
7407 Files:      src/spell.c, src/version.c
7409 Patch 7.2.004
7410 Problem:    Cscope help message is not translated.
7411 Solution:   Put it in _(). (Dominique Pelle)
7412 Files:      src/if_cscope.c, src/if_cscope.h
7414 Patch 7.2.005
7415 Problem:    A few problems when profiling.  Using flag pointer instead of flag
7416             value.  Allocating zero bytes.  Not freeing used memory.
7417 Solution:   Remove wrong '&' characters.  Skip dumping when there is nothing
7418             to dump.  Free used memory. (Dominique Pelle)
7419 Files:      src/eval.c
7421 Patch 7.2.006
7422 Problem:    HTML files are not recognized by contents.
7423 Solution:   Add a rule to the scripts file. (Nico Weber)
7424 Files:      runtime/scripts.vim
7426 Patch 7.2.007 (extra)
7427 Problem:    Minor issues for VMS.
7428 Solution:   Minor fixes for VMS.  Add float support. (Zoltan Arpadffy)
7429 Files:      runtime/doc/os_vms.txt, src/os_vms_conf.h, src/Make_vms.mms,
7430             src/testdir/Make_vms.mms, src/testdir/test30.in,
7431             src/testdir/test54.in
7433 Patch 7.2.008
7434 Problem:    With a BufHidden autocommand that invokes ":bunload" the window
7435             count for a buffer can be wrong. (Bob Hiestand)
7436 Solution:   Don't call enter_buffer() when already in that buffer.
7437 Files:      src/buffer.c
7439 Patch 7.2.009
7440 Problem:    Can't compile with Perl 5.10 on MS-Windows. (Cesar Romani)
7441 Solution:   Add the Perl_sv_free2 function for dynamic loading. (Dan Sharp)
7442 Files:      src/if_perl.xs
7444 Patch 7.2.010
7445 Problem:    When using "K" in Visual mode not all characters are properly
7446             escaped. (Ben Schmidt)
7447 Solution:   Use a function with the functionality of shellescape(). (Jan
7448             Minar)
7449 Files:      src/mbyte.c, src/misc2.c, src/normal.c
7451 Patch 7.2.011
7452 Problem:    Get an error when inserting a float value from the expression
7453             register.
7454 Solution:   Convert the Float to a String automatically in the same place
7455             where a List would be converted to a String.
7456 Files:      src/eval.c
7458 Patch 7.2.012
7459 Problem:    Compiler warnings when building with startup timing.
7460 Solution:   Add type casts.
7461 Files:      src/ex_cmds2.c
7463 Patch 7.2.013
7464 Problem:    While waiting for the X selection Vim consumes a lot of CPU time
7465             and hangs until a response is received.
7466 Solution:   Sleep a bit when the selection event hasn't been received yet.
7467             Time out after a couple of seconds to avoid a hang when the
7468             selection owner isn't responding.
7469 Files:      src/ui.c
7471 Patch 7.2.014
7472 Problem:    synstack() doesn't work in an empty line.
7473 Solution:   Accept column zero as a valid position.
7474 Files:      src/eval.c
7476 Patch 7.2.015
7477 Problem:    "make all test install" doesn't stop when the test fails. (Daniel
7478             Shahaf)
7479 Solution:   When test.log contains failures exit with non-zero status.
7480 Files:      src/testdir/Makefile
7482 Patch 7.2.016
7483 Problem:    The pattern being completed may be in freed memory when the
7484             command line is being reallocated. (Dominique Pelle)
7485 Solution:   Keep a pointer to the expand_T in the command line structure.
7486             Don't use <S-Tab> as CTRL-P when there are no results.  Clear the
7487             completion when using a command line from the history.
7488 Files:      src/ex_getln.c
7490 Patch 7.2.017
7491 Problem:    strlen() used on text that may not end in a NUL. (Dominique Pelle)
7492             Pasting a very big selection doesn't work.
7493 Solution:   Use the length passed to the XtSelectionCallbackProc() function.
7494             After getting the SelectionNotify event continue dispatching
7495             events until the callback is actually called.  Also dispatch the
7496             PropertyNotify event.
7497 Files:      src/ui.c
7499 Patch 7.2.018
7500 Problem:    Memory leak when substitute is aborted.
7501 Solution:   Free the buffer allocated for the new text. (Dominique Pelle)
7502 Files:      src/ex_cmds.c
7504 Patch 7.2.019
7505 Problem:    Completion of ":noautocmd" doesn't work and exists(":noautocmd")
7506             returns zero. (Ben Fritz)
7507 Solution:   Add "noautocmd" to the list of modifiers and commands.
7508 Files:      src/ex_cmds.h, src/ex_docmd.c
7510 Patch 7.2.020
7511 Problem:    Starting the GUI when the executable starts with 'k', but the KDE
7512             version no longer exists.
7513 Solution:   Don't have "kvim" start the GUI.
7514 Files:      src/main.c
7516 Patch 7.2.021
7517 Problem:    When executing autocommands getting the full file name may be
7518             slow. (David Kotchan)
7519 Solution:   Postpone calling FullName_save() until autocmd_fname is used.
7520 Files:      src/ex_docmd.c, src/fileio.c, src/globals.h
7522 Patch 7.2.022 (extra)
7523 Problem:    Testing is not possible when compiling with MingW.
7524 Solution:   Add a MingW specific test Makefile. (Bill McCarthy)
7525 Files:      Filelist, src/testdir/Make_ming.mak
7527 Patch 7.2.023
7528 Problem:    'cursorcolumn' is in the wrong place in a closed fold when the
7529             display is shifted left. (Gary Johnson)
7530 Solution:   Subtract w_skipcol or w_leftcol when needed.
7531 Files:      src/screen.c
7533 Patch 7.2.024
7534 Problem:    It's possible to set 'history' to a negative value and that causes
7535             an out-of-memory error.
7536 Solution:   Check that 'history' has a positive value. (Doug Kearns)
7537 Files:      src/option.c
7539 Patch 7.2.025
7540 Problem:    When a CursorHold event invokes system() it is retriggered over
7541             and over again.
7542 Solution:   Don't reset did_cursorhold when getting K_IGNORE.
7543 Files:      src/normal.c
7545 Patch 7.2.026 (after 7.2.010)
7546 Problem:    "K" doesn't use the length of the identifier but uses the rest of
7547             the line.
7548 Solution:   Copy the desired number of characters first.
7549 Files:      src/normal.c
7551 Patch 7.2.027
7552 Problem:    Can use cscope commands in the sandbox.
7553 Solution:   Disallow them, they might not be safe.
7554 Files:      src/ex_cmds.h
7556 Patch 7.2.028
7557 Problem:    Confusing error message for missing ().
7558 Solution:   Change "braces" to "parentheses". (Gary Johnson)
7559 Files:      src/eval.c
7561 Patch 7.2.029
7562 Problem:    No completion for ":doautoall".
7563 Solution:   Complete ":doautoall" like ":doautocmd".  (Doug Kearns)
7564 Files:      src/ex_docmd.c
7566 Patch 7.2.030 (after 7.2.027)
7567 Problem:    Can't compile.
7568 Solution:   Remove prematurely added ex_oldfiles.
7569 Files:      src/ex_cmds.h
7571 Patch 7.2.031
7572 Problem:    Information in the viminfo file about previously edited files is
7573             not available to the user.  There is no way to get a complete list
7574             of files edited in previous Vim sessions.
7575 Solution:   Add v:oldfiles and fill it with the list of old file names when
7576             first reading the viminfo file.  Add the ":oldfiles" command,
7577             ":browse oldfiles" and the "#<123" special file name.  Increase
7578             the default value for 'viminfo' from '20 to '100.
7579 Files:      runtime/doc/cmdline.txt, runtime/doc/eval.txt,
7580             runtime/doc/starting.txt, runtime/doc/usr_21.txt, src/eval.c,
7581             src/ex_cmds.c, src/ex_cmds.h, src/ex_docmd.c, src/feature.h,
7582             src/fileio.c, src/main.c, src/mark.c, src/misc1.c,
7583             src/proto/eval.pro, src/proto/ex_cmds.pro, src/proto/mark.pro,
7584             src/option.c, src/structs.h, src/vim.h
7586 Patch 7.2.032 (after 7.2.031)
7587 Problem:    Can't build with EXITFREE defined. (Dominique Pelle)
7588 Solution:   Change vv_string to vv_str.
7589 Files:      src/eval.c
7591 Patch 7.2.033
7592 Problem:    When detecting a little endian BOM "ucs-2le" is used, but the text
7593             might be "utf-16le".
7594 Solution:   Default to "utf-16le", it also works for "ucs-2le". (Jia Yanwei)
7595 Files:      src/fileio.c, src/testdir/test42.ok
7597 Patch 7.2.034
7598 Problem:    Memory leak in spell info when deleting buffer.
7599 Solution:   Free the memory. (Dominique Pelle)
7600 Files:      src/buffer.c
7602 Patch 7.2.035
7603 Problem:    Mismatches between alloc/malloc, free/vim_free,
7604             realloc/vim_realloc.
7605 Solution:   Use the right function. (Dominique Pelle)
7606 Files:      src/gui_x11.c, src/mbyte.c, src/misc2.c, src/os_unix.c
7608 Patch 7.2.036 (extra)
7609 Problem:    Mismatches between alloc/malloc, free/vim_free,
7610             realloc/vim_realloc.
7611 Solution:   Use the right function. (Dominique Pelle)
7612 Files:      src/gui_riscos.c, src/gui_w48.c, src/mbyte.c, src/os_vms.c,
7613             src/os_w32exe.c, src/os_win16.c
7615 Patch 7.2.037
7616 Problem:    Double free with GTK 1 and compiled with EXITFREE.
7617 Solution:   Don't close display. (Dominique Pelle)
7618 Files:      src/os_unix.c
7620 Patch 7.2.038
7621 Problem:    Overlapping arguments to memcpy().
7622 Solution:   Use mch_memmove(). (Dominique Pelle)
7623 Files:      src/if_xcmdsrv.c
7625 Patch 7.2.039
7626 Problem:    Accessing freed memory on exit when EXITFREE is defined.
7627 Solution:   Call hash_init() on the v: hash table.
7628 Files:      src/eval.c
7630 Patch 7.2.040
7631 Problem:    When using ":e ++ff=dos fname" and the file contains a NL without
7632             a CR before it and 'ffs' contains "unix" then the fileformat
7633             becomes unix.
7634 Solution:   Ignore 'ffs' when using the ++ff argument. (Ben Schmidt)
7635             Also remove unreachable code.
7636 Files:      src/fileio.c
7638 Patch 7.2.041
7639 Problem:    In diff mode, when using two tabs, each with two diffed buffers,
7640             editing a buffer of the other tab messes up the diff.  (Matt
7641             Mzyzik)
7642 Solution:   Only copy options from a window where the buffer was edited that
7643             doesn't have 'diff' set or is for the current tab page.
7644             Also fix that window options for a buffer are stored with the
7645             wrong window.
7646 Files:      src/buffer.c, src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c,
7647             src/ex_getln.c, src/if_sniff.c, src/main.c, src/netbeans.c,
7648             src/normal.c, src/popupmnu.c, src/proto/buffer.pro,
7649             src/proto/ex_cmds.pro src/quickfix.c, src/window.c
7651 Patch 7.2.042
7652 Problem:    When using winrestview() in a BufWinEnter autocommand the window
7653             is scrolled anyway. (Matt Zyzik)
7654 Solution:   Don't recompute topline when above 'scrolloff' from the bottom.
7655             Don't always put the cursor halfway when entering a buffer.  Add
7656             "w_topline_was_set".
7657 Files:      src/buffer.c, src/move.c, src/structs.h
7659 Patch 7.2.043
7660 Problem:    VMS: Too many characters are escaped in filename and shell
7661             commands.
7662 Solution:   Escape fewer characters. (Zoltan Arpadffy)
7663 Files:      src/vim.h
7665 Patch 7.2.044
7666 Problem:    Crash because of STRCPY() being over protective of the destination
7667             size. (Dominique Pelle)
7668 Solution:   Add -D_FORTIFY_SOURCE=1 to CFLAGS.  Use an intermediate variable
7669             for the pointer to avoid a warning.
7670 Files:      src/auto/configure, src/configure.in, src/eval.c
7672 Patch 7.2.045
7673 Problem:    The Python interface has an empty entry in sys.path.
7674 Solution:   Filter out the empty entry. (idea from James Vega)
7675 Files:      src/if_python.c
7677 Patch 7.2.046
7678 Problem:    Wrong check for filling buffer with encoding. (Danek Duvall)
7679 Solution:   Remove pointers. (Dominique Pelle)
7680 Files:      src/mbyte.c
7682 Patch 7.2.047
7683 Problem:    Starting Vim with the -nb argument while it's not supported causes
7684             the other side to hang.
7685 Solution:   When -nb is used while it's not supported exit Vim. (Xavier de
7686             Gaye)
7687 Files:      src/main.c, src/vim.h
7689 Patch 7.2.048
7690 Problem:    v:prevcount is changed too often.  Counts are not multiplied when
7691             setting v:count.
7692 Solution:   Set v:prevcount properly.  Multiply counts. (idea by Ben Schmidt)
7693 Files:      src/eval.c, src/normal.c, src/proto/eval.pro
7695 Patch 7.2.049 (extra)
7696 Problem:    Win32: the clipboard doesn't support UTF-16.
7697 Solution:   Change UCS-2 support to UTF-16 support. (Jia Yanwei)
7698 Files:      src/gui_w32.c, src/gui_w48.c, src/mbyte.c, src/misc1.c,
7699             src/os_mswin.c, src/os_win32.c, src/proto/os_mswin.pro
7701 Patch 7.2.050
7702 Problem:    Warnings for not checking return value of fwrite(). (Chip Campbell)
7703 Solution:   Use the return value.
7704 Files:      src/spell.c
7706 Patch 7.2.051
7707 Problem:    Can't avoid 'wildignore' and 'suffixes' for glob() and globpath().
7708 Solution:   Add an extra argument to these functions. (Ingo Karkat)
7709 Files:      src/eval.c, src/ex_getln.c, src/proto/ex_getln.pro,
7710             runtime/doc/eval.txt, runtime/doc/options.txt
7712 Patch 7.2.052
7713 Problem:    synIDattr() doesn't support "sp" for special color.
7714 Solution:   Recognize "sp" and "sp#".  (Matt Wozniski)
7715 Files:      runtime/doc/eval.txt, src/eval.c
7717 Patch 7.2.053
7718 Problem:    Crash when using WorkShop command ":ws foo". (Dominique Pelle)
7719 Solution:   Avoid using a NULL pointer.
7720 Files:      src/workshop.c
7722 Patch 7.2.054
7723 Problem:    Compilation warnings for format in getchar.c.
7724 Solution:   Use fputs() instead of fprintf().  (Dominique Pelle)
7725 Files:      src/getchar.c
7727 Patch 7.2.055
7728 Problem:    Various compiler warnings with strict checking.
7729 Solution:   Avoid the warnings by using return values and renaming.
7730 Files:      src/diff.c, src/eval.c, src/ex_cmds.c, src/ex_docmd.c,
7731             src/fileio.c, src/fold.c, src/globals.h, src/gui.c,
7732             src/gui_at_sb.c, src/gui_gtk_x11.c, src/gui_xmdlg.c,
7733             src/gui_xmebw.c, src/main.c, src/mbyte.c, src/message.c,
7734             src/netbeans.c, src/option.c, src/os_unix.c, src/spell.c,
7735             src/ui.c, src/window.c
7737 Patch 7.2.056 (after 7.2.050)
7738 Problem:    Tests 58 and 59 fail.
7739 Solution:   Don't invoke fwrite() with a zero length. (Dominique Pelle)
7740 Files:      src/spell.c
7742 Patch 7.2.057 (after 7.2.056)
7743 Problem:    Combination of int and size_t may not work.
7744 Solution:   Use size_t for variable.
7745 Files:      src/spell.c
7747 Patch 7.2.058
7748 Problem:    Can't add a patch name to the ":version" output.
7749 Solution:   Add the extra_patches array.
7750 Files:      src/version.c
7752 Patch 7.2.059
7753 Problem:    Diff display is not always updated.
7754 Solution:   Update the display more often.
7755 Files:      src/diff.c
7757 Patch 7.2.060
7758 Problem:    When a spell files has many compound rules it may take a very long
7759             time making the list of suggestions.  Displaying also can be slow
7760             when there are misspelled words.
7761             Can't parse some Hunspell .aff files.
7762 Solution:   Check if a compounding can possibly work before trying a
7763             combination, if the compound rules don't contain wildcards.
7764             Implement using CHECKCOMPOUNDPATTERN.
7765             Ignore COMPOUNDRULES.  Ignore a comment after most items.
7766             Accept ONLYINCOMPOUND as an alias for NEEDCOMPOUND.
7767             Accept FORBIDDENWORD as an alias for BAD.
7768 Files:      runtime/doc/spell.txt, src/spell.c
7770 Patch 7.2.061
7771 Problem:    Can't create a funcref for an autoload function without loading
7772             the script first. (Marc Weber)
7773 Solution:   Accept autoload functions that don't exist yet in function().
7774 Files:      src/eval.c
7776 Patch 7.2.062
7777 Problem:    "[Scratch]" is not translated.
7778 Solution:   Mark the string for translation. (Dominique Pelle)
7779 Files:      src/buffer.c
7781 Patch 7.2.063
7782 Problem:    Warning for NULL argument of Perl_sys_init3().
7783 Solution:   Use Perl_sys_init() instead. (partly by Dominique Pelle)
7784 Files:      src/if_perl.xs
7786 Patch 7.2.064
7787 Problem:    Screen update bug when repeating "~" on a Visual block and the
7788             last line doesn't change.
7789 Solution:   Keep track of changes for all lines.  (Moritz Orbach)
7790 Files:      src/ops.c
7792 Patch 7.2.065
7793 Problem:    GTK GUI: the cursor disappears when doing ":vsp" and the Vim
7794             window is maximized.  (Dominique Pelle, Denis Smolyar)
7795 Solution:   Don't change "Columns" back to an old value at a wrong moment.
7796             Do change "Rows" when it should not be a problem.
7797 Files:      src/gui.c
7799 Patch 7.2.066
7800 Problem:    It's not easy to see whether 'encoding' is a multi-byte encoding.
7801 Solution:   Add has('multi_byte_encoding').
7802 Files:      runtime/doc/eval.txt, src/eval.c
7804 Patch 7.2.067
7805 Problem:    Session file can't load extra file when the path contains special
7806             characters.
7807 Solution:   Escape the file name. (Lech Lorens)
7808 Files:      src/ex_docmd.c
7810 Patch 7.2.068
7811 Problem:    Emacs tags file lines can be too long, resulting in an error
7812             message. (James Vega)
7813 Solution:   Ignore lines with errors if they are too long.
7814 Files:      src/tag.c
7816 Patch 7.2.069 (after 7.2.060)
7817 Problem:    Compiler warning for storing size_t in int.
7818 Solution:   Add type cast.
7819 Files:      src/spell.c
7821 Patch 7.2.070
7822 Problem:    Crash when a function returns a:000. (Matt Wozniski)
7823 Solution:   Don't put the function struct on the stack, allocate it.  Free it
7824             only when nothing in it is used.
7825 Files:      src/eval.c
7827 Patch 7.2.071 (extra)
7828 Problem:    Win32: Handling netbeans events while Vim is busy updating the
7829             screen may cause a crash.
7830 Solution:   Like with GTK, only handle netbeans messages in the main loop.
7831             (Xavier de Gaye)
7832 Files:      src/gui_w48.c, src/netbeans.c
7834 Patch 7.2.072 (extra)
7835 Problem:    Compiler warning in Sniff code.
7836 Solution:   Use return value of pipe(). (Dominique Pelle)
7837 Files:      src/if_sniff.c
7839 Patch 7.2.073
7840 Problem:    ":set <xHome>" has the same output as ":set <Home>". (Matt
7841             Wozniski)
7842 Solution:   Don't translate "x" keys to its alternative for ":set".
7843 Files:      src/gui_mac.c, src/misc2.c, src/option.c, src/proto/misc2.pro
7845 Patch 7.2.074 (extra, after 7.2.073)
7846 Problem:    ":set <xHome>" has the same output as ":set <Home>". (Matt
7847             Wozniski)
7848 Solution:   Don't translate "x" keys to its alternative for ":set".
7849 Files:      src/gui_mac.c
7851 Patch 7.2.075 (after 7.2.058)
7852 Problem:    Explanation about making a diff for extra_patches is unclear.
7853 Solution:   Adjust comment.
7854 Files:      src/version.c
7856 Patch 7.2.076
7857 Problem:    rename(from, to) deletes the file if "from" and "to" are not equal
7858             but still refer to the same file.  E.g., on a FAT32 filesystem
7859             under Unix.
7860 Solution:   Go through another file name.
7861 Files:      src/fileio.c
7863 Patch 7.2.077 (after 7.2.076)
7864 Problem:    rename(from, to) doesn't work if "from" and "to" differ only in
7865             case on a system that ignores case in file names.
7866 Solution:   Go through another file name.
7867 Files:      src/fileio.c
7869 Patch 7.2.078
7870 Problem:    When deleting a fold that is specified with markers the cursor
7871             position may be wrong.  Folds may not be displayed properly after
7872             a delete.  Wrong fold may be deleted.
7873 Solution:   Fix the problems. (mostly by Lech Lorens)
7874 Files:      src/fold.c
7876 Patch 7.2.079
7877 Problem:    "killed" netbeans events are not handled correctly.
7878 Solution:   A "killed" netbeans event is sent when the buffer is deleted or
7879             wiped out (in this case, the netbeans annotations in this buffer
7880             have been removed).  A user can still remove a sign with the
7881             command ":sign unplace" and this does not trigger a "killed"
7882             event.  (Xavier de Gaye)
7883 Files:      runtime/doc/netbeans.txt, src/buffer.c, src/globals.h,
7884             src/netbeans.c, src/proto/netbeans.pro
7886 Patch 7.2.080
7887 Problem:    When typing a composing character just after starting completion
7888             may access memory before its allocation point. (Dominique Pelle)
7889 Solution:   Don't delete before the completion start column.  Add extra checks
7890             for the offset not being negative.
7891 Files:      src/edit.c
7893 Patch 7.2.081
7894 Problem:    Compiler warning for floating point overflow on VAX.
7895 Solution:   For VAX use a smaller number. (Zoltan Arpadffy)
7896 Files:      src/message.c
7898 Patch 7.2.082
7899 Problem:    When 'ff' is "mac" then "ga" on a ^J shows 0x0d instead of 0x0a.
7900             (Andy Wokula)
7901 Solution:   Use NL for this situation. (Lech Lorens)
7902 Files:      src/ex_cmds.c
7904 Patch 7.2.083
7905 Problem:    ":tag" does not return to the right tag entry from the tag stack.
7906 Solution:   Don't change the current match when there is no argument.
7907             (Erik Falor)
7908 Files:      src/tag.c
7910 Patch 7.2.084
7911 Problem:    Recursive structures are not handled properly in Python
7912             vim.eval().
7913 Solution:   Keep track of references in a better way. (Yukihiro Nakadaira)
7914 Files:      src/if_python.c
7916 Patch 7.2.085
7917 Problem:    ":set <M-b>=<Esc>b" does not work when 'encoding' is utf-8.
7918 Solution:   Put the <M-b> character in the input buffer as valid utf-8.
7919             (partly by Matt Wozniski)
7920 Files:      src/term.c
7922 Patch 7.2.086
7923 Problem:    Using ":diffget 1" in buffer 1 corrupts the text.
7924 Solution:   Don't do anything when source and destination of ":diffget" or
7925             ":diffput" is the same buffer. (Dominique Pelle)
7926 Files:      src/diff.c
7928 Patch 7.2.087
7929 Problem:    Adding URL to 'path' doesn't work to edit a file.
7930 Solution:   Skip simplify_filename() for URLs. (Matt Wozniski)
7931 Files:      src/misc2.c
7933 Patch 7.2.088 (extra)
7934 Problem:    OpenClipboard() may fail when another application is using the
7935             clipboard.
7936 Solution:   Retry OpenClipboard() a few times. (Jianrong Yu)
7937 Files:      src/os_mswin.c
7939 Patch 7.2.089 (extra)
7940 Problem:    Win32: crash when using Ultramon buttons.
7941 Solution:   Don't use a WM_OLE message of zero size. (Ray Megal)
7942 Files:      src/if_ole.cpp, src/gui_w48.c
7944 Patch 7.2.090
7945 Problem:    User command containing 0x80 in multi-byte character does not work
7946             properly. (Yasuhiro Matsumoto)
7947 Solution:   Undo replacement of K_SPECIAL and CSI characters when executing
7948             the command.
7949 Files:      src/ex_docmd.c
7951 Patch 7.2.091
7952 Problem:    ":cs help" output is not aligned for some languages.
7953 Solution:   Compute character size instead of byte size. (Dominique Pelle)
7954 Files:      src/if_cscope.c
7956 Patch 7.2.092
7957 Problem:    Some error messages are not translated.
7958 Solution:   Add _() around the messages. (Dominique Pelle)
7959 Files:      src/eval.c
7961 Patch 7.2.093 (extra)
7962 Problem:    Win32: inputdialog() and find/replace dialogs can't handle
7963             multi-byte text.
7964 Solution:   Use the wide version of dialog functions when available. (Yanwei
7965             Jia)
7966 Files:      src/gui_w32.c, src/gui_w48.c
7968 Patch 7.2.094
7969 Problem:    Compiler warning for signed/unsigned compare.
7970 Solution:   Add type cast.  Also fix a few typos.
7971 Files:      src/edit.c
7973 Patch 7.2.095
7974 Problem:    With Visual selection, "r" and then CTRL-C Visual mode is stopped
7975             but the highlighting is not removed.
7976 Solution:   Call reset_VIsual().
7977 Files:      src/normal.c
7979 Patch 7.2.096
7980 Problem:    After ":number" the "Press Enter" message may be on the wrong
7981             screen, if switching screens for shell commands.
7982 Solution:   Reset info_message. (James Vega)
7983 Files:      src/ex_cmds.c
7985 Patch 7.2.097
7986 Problem:    "!xterm&" doesn't work when 'shell' is "bash".
7987 Solution:   Ignore SIGHUP after calling setsid(). (Simon Schubert) 
7988 Files:      src/os_unix.c
7990 Patch 7.2.098
7991 Problem:    Warning for signed/unsigned pointer.
7992 Solution:   Add type cast.
7993 Files:      src/eval.c
7995 Patch 7.2.099
7996 Problem:    Changing GUI options causes an unnecessary redraw when the GUI
7997             isn't active.
7998 Solution:   Avoid the redraw. (Lech Lorens)
7999 Files:      src/option.c
8001 Patch 7.2.100
8002 Problem:    When using ":source" on a FIFO or something else that can't rewind
8003             the first three bytes are skipped.
8004 Solution:   Instead of rewinding read the first line and detect a BOM in that.
8005             (mostly by James Vega)
8006 Files:      src/ex_cmds2.c
8008 Patch 7.2.101 (extra)
8009 Problem:    MSVC version not recognized.
8010 Solution:   Add the version number to the list.  (Zhong Zhang)
8011 Files:      src/Make_mvc.mak
8013 Patch 7.2.102 (after 7.2.100)
8014 Problem:    When 'encoding' is "utf-8" a BOM at the start of a Vim script is
8015             not removed. (Tony Mechelynck)
8016 Solution:   When no conversion is taking place make a copy of the line without
8017             the BOM.
8018 Files:      src/ex_cmds2.c
8020 Patch 7.2.103
8021 Problem:    When 'bomb' is changed the window title is updated to show/hide a
8022             "+", but the tab page label isn't. (Patrick Texier)
8023 Solution:   Set "redraw_tabline" in most places where "need_maketitle" is set.
8024             (partly by Lech Lorens)
8025 Files:      src/option.c
8027 Patch 7.2.104
8028 Problem:    When using ":saveas bar.c" the tab label isn't updated right away.
8029 Solution:   Set redraw_tabline. (Francois Ingelrest)
8030 Files:      src/ex_cmds.c
8032 Patch 7.2.105
8033 Problem:    Modeline setting for 'foldmethod' overrules diff options. (Ingo
8034             Karkat)
8035 Solution:   Don't set 'foldmethod' and 'wrap' from a modeline when 'diff' is
8036             on.
8037 Files:      src/option.c
8039 Patch 7.2.106
8040 Problem:    Endless loop when using "]s" in HTML when there are no
8041             misspellings. (Ingo Karkat)
8042 Solution:   Break the search loop.  Also fix pointer alignment for systems
8043             with pointers larger than int.
8044 Files:      src/spell.c
8046 Patch 7.2.107
8047 Problem:    When using a GUI dialog and ":echo" commands the messages are
8048             deleted after the dialog. (Vincent Birebent)
8049 Solution:   Don't call msg_end_prompt() since there was no prompt.
8050 Files:      src/message.c
8052 Patch 7.2.108 (after 7.2.105)
8053 Problem:    Can't build without the diff feature.
8054 Solution:   Add #ifdef.
8055 Files:      src/option.c
8057 Patch 7.2.109
8058 Problem:    'langmap' does not work for multi-byte characters.
8059 Solution:   Add a list of mapped multi-byte characters. (based on work by
8060             Konstantin Korikov, Agathoklis Hatzimanikas)
8061 Files:      runtime/doc/options.txt, src/edit.c, src/getchar.c, src/macros.h,
8062             src/normal.c, src/option.c, src/proto/option.pro, src/window.c
8064 Patch 7.2.110
8065 Problem:    Compiler warning for unused variable.
8066 Solution:   Init the variable.
8067 Files:      src/ex_docmd.c
8069 Patch 7.2.111
8070 Problem:    When using Visual block mode with 'cursorcolumn' it's unclear what
8071             is selected.
8072 Solution:   Don't use 'cursorcolumn' highlighting inside the Visual selection.
8073             (idea by Dominique Pelle)
8074 Files:      src/screen.c
8076 Patch 7.2.112
8077 Problem:    Cursor invisible in Visual mode when 'number' is set and cursor in
8078             first column. (Matti Niemenmaa, Renato Alves)
8079 Solution:   Check that vcol_prev is smaller than vcol.
8080 Files:      src/screen.c
8082 Patch 7.2.113
8083 Problem:    Crash for substitute() call using submatch(1) while there is no
8084             such submatch. (Yukihiro Nakadaira)
8085 Solution:   Also check the start of the submatch is set, it can be NULL when
8086             an attempted match didn't work out.
8087 Files:      src/regexp.c
8089 Patch 7.2.114
8090 Problem:    Using wrong printf format.
8091 Solution:   Use "%ld" instead of "%d". (Dominique Pelle)
8092 Files:      src/netbeans.c
8094 Patch 7.2.115
8095 Problem:    Some debugging code is never used.
8096 Solution:   Remove nbtrace() and nbprt(). (Dominique Pelle)
8097 Files:      src/nbdebug.c, src/nbdebug.h
8099 Patch 7.2.116
8100 Problem:    Not all memory is freed when EXITFREE is defined.
8101 Solution:   Free allocated memory on exit. (Dominique Pelle)
8102 Files:      src/ex_docmd.c, src/gui_gtk_x11.c, src/misc2.c, src/search.c,
8103             src/tag.c
8105 Patch 7.2.117
8106 Problem:    Location list incorrectly labelled "Quickfix List".
8107 Solution:   Break out of both loops for finding window for location list
8108             buffer. (Lech Lorens)
8109 Files:      src/buffer.c, src/quickfix.c, src/screen.c
8111 Patch 7.2.118
8112 Problem:    <PageUp> at the more prompt only does half a page.
8113 Solution:   Make <PageUp> go up a whole page.  Also make 'f' go a page
8114             forward, but not quit the more prompt. (Markus Heidelberg)
8115 Files:      src/message.c
8117 Patch 7.2.119
8118 Problem:    Status line is redrawn too often.
8119 Solution:   Check ScreeenLinesUC[] properly. (Yukihiro Nakadaira)
8120 Files:      src/screen.c
8122 Patch 7.2.120
8123 Problem:    When opening the quickfix window or splitting the window and
8124             setting the location list, the location list is copied and then
8125             deleted, which is inefficient.
8126 Solution:   Don't copy the location list when not needed. (Lech Lorens)
8127 Files:      src/quickfix.c, src/vim.h, src/window.c
8129 Patch 7.2.121
8130 Problem:    In gvim "!grep a *.c" spews out a lot of text that can't be
8131             stopped with CTRL-C.
8132 Solution:   When looping to read and show text, do check for typed characters
8133             every two seconds.
8134 Files:      src/os_unix.c
8136 Patch 7.2.122
8137 Problem:    Invalid memory access when the VimResized autocommand changes
8138             'columns' and/or 'lines'.
8139 Solution:   After VimResized check for changed values. (Dominique Pelle)
8140 Files:      src/screen.c
8142 Patch 7.2.123
8143 Problem:    Typing 'q' at more prompt for ":map" output still displays another
8144             line, causing another more prompt. (Markus Heidelberg)
8145 Solution:   Quit listing maps when 'q' typed.
8146 Files:      src/getchar.c
8148 Patch 7.2.124
8149 Problem:    Typing 'q' at more prompt for ":tselect" output still displays
8150             more lines, causing another more prompt. (Markus Heidelberg)
8151 Solution:   Quit listing tags when 'q' typed.
8152 Files:      src/tag.c
8154 Patch 7.2.125
8155 Problem:    Leaking memory when reading XPM bitmap for a sign.
8156 Solution:   Don't allocate the memory twice. (Dominique Pelle)
8157 Files:      src/gui_x11.c
8159 Patch 7.2.126
8160 Problem:    When EXITFREE is defined signs are not freed.
8161 Solution:   Free all signs on exit.  Also free keymaps. (Dominique Pelle)
8162 Files:      src/misc2.c, src/ex_cmds.c, src/proto/ex_cmds.pro
8164 Patch 7.2.127
8165 Problem:    When listing mappings and a wrapping line causes the more prompt,
8166             after typing 'q' there can be another more prompt. (Markus
8167             Heidelberg)
8168 Solution:   Set "lines_left" to allow more lines to be displayed.
8169 Files:      src/message.c
8171 Patch 7.2.128 (after 7.2.055)
8172 Problem:    Using ":lcd" makes session files not work.
8173 Solution:   Compare return value of mch_chdir() properly. (Andreas Bernauer)
8174 Files:      src/ex_docmd.c
8176 Patch 7.2.129
8177 Problem:    When opening a command window from input() it uses the search
8178             history.
8179 Solution:   Use get_cmdline_type(). (James Vega)
8180 Files:      src/ex_getln.c
8182 Patch 7.2.130
8183 Problem:    Vim may haing until CTRL-C is typed when using CTRL-Z.
8184 Solution:   Avoid using pause().  Also use "volatile" for variables used in
8185             signal functions. (Dominique Pelle)
8186 Files:      src/auto/configure, src/configure.in, src/config.h.in,
8187             src/globals.h, src/os_unix.c
8189 Patch 7.2.131
8190 Problem:    When 'keymap' is cleared may still use the cursor highlighting for
8191             when it's enabled.
8192 Solution:   Reset 'iminsert' and 'imsearch'. (partly by Dominique Pelle)
8193             Also avoid ":setlocal" for these options have a global effect.
8194 Files:      src/option.c
8196 Patch 7.2.132
8197 Problem:    When changing directory during a SwapExists autocmd freed memory
8198             may be accessed. (Dominique Pelle)
8199 Solution:   Add the allbuf_lock flag.
8200 Files:      src/ex_getln.c, src/globals.h, src/fileio.c,
8201             src/proto/ex_getln.pro
8203 Patch 7.2.133
8204 Problem:    ":diffoff!" changes settings in windows not in diff mode.
8205 Solution:   Only change settings in other windows when 'diff' is set, always
8206             do it for the current window. (Lech Lorens)
8207 Files:      src/diff.c
8209 Patch 7.2.134
8210 Problem:    Warning for discarding "const" from pointer.
8211 Solution:   Don't pass const pointer to mch_memmove().
8212 Files:      src/fileio.c
8214 Patch 7.2.135
8215 Problem:    Memory leak when redefining user command with complete argument.
8216 Solution:   Free the old complete argument. (Dominique Pelle)
8217 Files:      src/ex_docmd.c
8219 Patch 7.2.136 (after 7.2.132)
8220 Problem:    ":cd" is still possible in a SwapExists autocmd.
8221 Solution:   Check the allbuf_lock flag in ex_cd().
8222 Files:      src/ex_docmd.c
8224 Patch 7.2.137
8225 Problem:    When 'virtualedit' is set, a left shift of a blockwise selection
8226             that starts and ends inside a tab shifts too much. (Helmut
8227             Stiegler)
8228 Solution:   Redo the block left shift code. (Lech Lorens)
8229 Files:      src/ops.c, src/testdir/Makefile, src/testdir/test66.in,
8230             src/testdir/test66.ok
8232 Patch 7.2.138 (extra part of 7.2.137)
8233 Problem:    See 7.2.137.
8234 Solution:   See 7.2.137.
8235 Files:      src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
8236             src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
8237             src/testdir/Make_vms.mms
8239 Patch 7.2.139
8240 Problem:    Crash when 'virtualedit' is "all". (James Vega)
8241 Solution:   Avoid overflow when column is MAXCOL. (Dominique Pelle)
8242 Files:      src/misc2.c
8244 Patch 7.2.140
8245 Problem:    Diff highlighting isn't displayed before the Visual area if it
8246             starts at the cursor position. (Markus Heidelberg)
8247 Solution:   Also check fromcol_prev.
8248 Files:      src/screen.c
8250 Patch 7.2.141
8251 Problem:    When redrawing a character for bold spill this causes the next
8252             character to be redrawn as well.
8253 Solution:   Only redraw one extra character. (Yukihiro Nakadaira)
8254 Files:      src/screen.c
8256 Patch 7.2.142
8257 Problem:    Motif and Athena balloons don't use tooltip colors.
8258 Solution:   Set the colors. (Matt Wozniski)
8259 Files:      src/gui_beval.c
8261 Patch 7.2.143
8262 Problem:    No command line completion for ":cscope" command.
8263 Solution:   Add the completion for ":cscope". (Dominique Pelle)
8264 Files:      src/ex_docmd.c, src/ex_getln.c, src/if_cscope.c,
8265             src/proto/if_cscope.pro, src/vim.h
8267 Patch 7.2.144
8268 Problem:    When 't_Co' is set to the value it already had the color scheme is
8269             reloaded anyway.
8270 Solution:   Only load the colorscheme when the t_Co value changes. (Dominique
8271             Pelle)
8272 Files:      src/option.c
8274 Patch 7.2.145
8275 Problem:    White space in ":cscope find" is not ignored.
8276 Solution:   Ignore the white space, but not when the leading white space is
8277             useful for the argument.
8278 Files:      runtime/doc/if_scop.txt, src/if_cscope.c
8280 Patch 7.2.146
8281 Problem:    v:warningmsg isn't used for all warnings.
8282 Solution:   Set v:warningmsg for relevant warnings. (Ingo Karkat)
8283 Files:      src/fileio.c, src/misc1.c, src/option.c
8285 Patch 7.2.147
8286 Problem:    When compiled as small version and 'number' is on the cursor is
8287             displayed in the wrong position after a tab. (James Vega)
8288 Solution:   Don't increment vcol when still displaying the line number.
8289 Files:      src/screen.c
8291 Patch 7.2.148
8292 Problem:    When searching for "$" while 'hlsearch' is set, highlighting the
8293             character after the line does not work in the cursor column.
8294             Also highlighting for Visual mode after the line end when this
8295             isn't needed.  (Markus Heidelberg)
8296 Solution:   Only compare the cursor column in the cursor line.  Only highlight
8297             for Visual selection after the last character when it's needed to
8298             see where the Visual selection ends.
8299 Files:      src/screen.c
8301 Patch 7.2.149
8302 Problem:    Using return value of function that doesn't return a value results
8303             in reading uninitialized memory.
8304 Solution:   Set the default to return zero.  Make cursor() return -1 on
8305             failure.  Let complete() return an empty string in case of an
8306             error.  (partly by Dominique Pelle)
8307 Files:      runtime/doc/eval.txt, src/eval.c
8309 Patch 7.2.150 (extra)
8310 Problem:    Can't use tab pages from VisVim.
8311 Solution:   Add tab page support to VisVim. (Adam Slater)
8312 Files:      src/VisVim/Commands.cpp, src/VisVim/Resource.h,
8313             src/VisVim/VisVim.rc
8315 Patch 7.2.151
8316 Problem:    ":hist a" doesn't work like ":hist all" as the docs suggest.
8317 Solution:   Make ":hist a" and ":hist al" work. (Dominique Pelle)
8318 Files:      src/ex_getln.c
8320 Patch 7.2.152
8321 Problem:    When using "silent echo x" inside ":redir" a next echo may start
8322             halfway the line. (Tony Mechelynck, Dennis Benzinger)
8323 Solution:   Reset msg_col after redirecting silently.
8324 Files:      src/ex_docmd.c, src/message.c, src/proto/message.pro
8326 Patch 7.2.153
8327 Problem:    Memory leak for ":recover empty_dir/".
8328 Solution:   Free files[] when it becomes empty. (Dominique Pelle)
8329 Files:      src/memline.c
8331 Patch 7.2.154 (after 7.2.132)
8332 Problem:    ":cd" is still possible in a SwapExists autocmd.
8333 Solution:   Set allbuf_lock in do_swapexists().
8334 Files:      src/memline.c
8336 Patch 7.2.155
8337 Problem:    Memory leak in ":function /pat".
8338 Solution:   Free the memory. (Dominique Pelle)
8339 Files:      src/eval.c
8341 Patch 7.2.156 (after 7.2.143)
8342 Problem:    No completion for :scscope and :lcscope commands.
8343 Solution:   Implement the completion. (Dominique Pelle)
8344 Files:      src/if_cscope.c, src/ex_docmd.c, src/proto/if_cscope.pro
8346 Patch 7.2.157
8347 Problem:    Illegal memory access when searching in path.
8348 Solution:   Avoid looking at a byte after end of a string. (Dominique Pelle)
8349 Files:      src/search.c
8351 Patch 7.2.158
8352 Problem:    Warnings from VisualC compiler.
8353 Solution:   Add type casts. (George Reilly)
8354 Files:      src/ops.c
8356 Patch 7.2.159
8357 Problem:    When $x_includes ends up being "NONE" configure fails.
8358 Solution:   Check for $x_includes not to be "NONE" (Rainer)
8359 Files:      src/auto/configure, src/configure.in
8361 Patch 7.2.160
8362 Problem:    Search pattern not freed on exit when 'rightleft' set.
8363 Solution:   Free mr_pattern_alloced.
8364 Files:      src/search.c
8366 Patch 7.2.161
8367 Problem:    Folds messed up in other tab page. (Vlad Irnov)
8368 Solution:   Instead of going over all windows in current tab page go over all
8369             windows in all tab pages.  Also free memory for location lists in
8370             other tab pages when exiting. (Lech Lorens)
8371 Files:      src/fileio.c, src/mark.c, src/misc1.c, src/misc2.c
8373 Patch 7.2.162
8374 Problem:    The quickfix window may get wrong filetype.
8375 Solution:   Do not detect the filetype for the quickfix window. (Lech Lorens)
8376 Files:      src/quickfix.c
8378 Patch 7.2.163
8379 Problem:    The command line window may get folding.
8380 Solution:   Default to no/manual folding. (Lech Lorens)
8381 Files:      src/ex_getln.c
8383 Patch 7.2.164
8384 Problem:    When 'showbreak' is set the size of the Visual block may be
8385             reported wrong. (Eduardo Daudt Flach)
8386 Solution:   Temporarily make 'sbr' empty.
8387 Files:      src/normal.c, src/ops.c
8389 Patch 7.2.165
8390 Problem:    The argument for the FuncUndefined autocmd event is expanded like
8391             a file name.
8392 Solution:   Don't try expanding it. (Wang Xu)
8393 Files:      src/fileio.c
8395 Patch 7.2.166
8396 Problem:    No completion for ":sign" command.
8397 Solution:   Add ":sign" completion. (Dominique Pelle)
8398 Files:      src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c, src/vim.h,
8399             src/proto/ex_cmds.pro
8401 Patch 7.2.167
8402 Problem:    Splint doesn't work well for checking the code.
8403 Solution:   Add splint arguments in the Makefile.  Exclude some code from
8404             splint that it can't handle.  Tune splint arguments to give
8405             reasonable errors.  Add a filter for removing false warnings from
8406             splint output.  Many small changes to avoid warnings.  More to
8407             follow...
8408 Files:      Filelist, src/Makefile, src/buffer.c, src/charset.c,
8409             src/cleanlint.vim, src/digraph.c, src/edit.c, src/ex_cmds.c,
8410             src/globals.h, src/ops.c, src/os_unix.c, src/os_unix.h,
8411             src/proto/buffer.pro, src/proto/edit.pro, src/screen.c,
8412             src/structs.h
8414 Patch 7.2.168
8415 Problem:    When no ctags program can be found, "make tags" attempts to
8416             execute the first C file.
8417 Solution:   Default to "ctags" when no ctags program can be found.
8418 Files:      src/configure.in, src/auto/configure
8420 Patch 7.2.169
8421 Problem:    Splint complains about a lot of things.
8422 Solution:   Add type casts, #ifdefs and other changes to avoid warnings.
8423             Change colnr_T from unsigned to int.  Avoids mistakes with
8424             subtracting columns.
8425 Files:      src/cleanlint.vim, src/diff.c, src/edit.c, src/ex_cmds.c,
8426             src/ex_cmds2.c, src/ex_docmd.c, src/proto/ex_cmds.pro,
8427             src/proto/spell.pro, src/quickfix.c, src/spell.c, src/structs.h,
8428             src/term.h, src/vim.h
8430 Patch 7.2.170
8431 Problem:    Using b_dev while it was not set. (Dominique Pelle)
8432 Solution:   Add the b_dev_valid flag.
8433 Files:      src/buffer.c, src/fileio.c, src/structs.h
8435 Patch 7.2.171 (after 7.2.169)
8436 Problem:    Compiler warnings. (Tony Mechelynck)
8437 Solution:   Add function prototype. (Patrick Texier)  Init variable.
8438 Files:      src/ex_cmds.c
8440 Patch 7.2.172 (extra)
8441 Problem:    Compiler warning.
8442 Solution:   Adjust function prototype. (Patrick Texier)
8443 Files:      src/os_mswin.c
8445 Patch 7.2.173
8446 Problem:    Without lint there is no check for unused function arguments.
8447 Solution:   Use gcc -Wunused-parameter instead of lint.  For a few files add
8448             attributes to arguments that are known not to be used.
8449 Files:      src/auto/configure, src/buffer.c, src/charset.c, src/diff.c,
8450             src/configure.in, src/config.h.in, src/edit.c, src/ex_cmds.c,
8451             src/ex_cmds2.c, src/version.c, src/vim.h
8453 Patch 7.2.174
8454 Problem:    Too many warnings from gcc -Wextra.
8455 Solution:   Change initializer.  Add UNUSED.  Add type casts.
8456 Files:      src/edit.c, src/eval.c, src/ex_cmds.c, src/ex_docmd.c,
8457             src/ex_getln.c, src/fileio.c, getchar.c, globals.h, main.c,
8458             memline.c, message.c, src/misc1.c, src/move.c, src/normal.c,
8459             src/option.c, src/os_unix.c, src/os_unix.h, src/regexp.c,
8460             src/search.c, src/tag.c
8462 Patch 7.2.175
8463 Problem:    Compiler warning in OpenBSD.
8464 Solution:   Add type cast for NULL. (Dasn)
8465 Files:      src/if_cscope.c
8467 Patch 7.2.176
8468 Problem:    Exceptions for splint are not useful.
8469 Solution:   Remove the S_SPLINT_S ifdefs.
8470 Files:      src/edit.c, src/ex_cmds.c, src/ex_docmd.c, src/os_unix.c,
8471             src/os_unix.h, src/os_unixx.h, src/structs.h, src/term.h
8473 Patch 7.2.177
8474 Problem:    Compiler warnings when using -Wextra
8475 Solution:   Add UNUSED and type casts.
8476 Files:      src/eval.c, src/ex_docmd.c, src/ex_eval.c, src/ex_getln.c,
8477             src/fileio.c, src/hardcopy.c, src/if_cscope.c, src/if_xcmdsrv.c,
8478             src/farsi.c, src/mark.c, src/menu.c
8480 Patch 7.2.178
8481 Problem:    Using negative value for device number might not work.
8482 Solution:   Use a separate flag for whether ffv_dev was set.
8483 Files:      src/misc2.c
8485 Patch 7.2.179
8486 Problem:    Using negative value for device number might not work.
8487 Solution:   Use a separate flag for whether sn_dev was set.
8488 Files:      src/ex_cmds2.c
8490 Patch 7.2.180
8491 Problem:    Some more compiler warnings when using gcc -Wextra.
8492 Solution:   Add UNUSED and type casts.
8493 Files:      src/buffer.c, src/ex_cmds.c, src/macros.h, src/main.c,
8494             src/menu.c, src/message.c, src/misc1.c, src/mbyte.c,
8495             src/normal.c, src/option.c, src/os_unix.c, src/quickfix.c,
8496             src/screen.c, src/search.c, src/spell.c, src/syntax.c, src/tag.c,
8497             src/term.c, src/ui.c
8499 Patch 7.2.181
8500 Problem:    Some more compiler warnings when using gcc -Wextra.
8501 Solution:   Add UNUSED and type casts.
8502 Files:      src/if_mzsch.c, src/gui.c, src/gui_gtk.c, src/gui_gtk_x11.c,
8503             src/gui_gtk_f.c, src/gui_beval.c, src/netbeans.c
8505 Patch 7.2.182 (after 7.2.181)
8506 Problem:    Compilation problems after previous patch for Motif.  Gvim with
8507             GTK crashes on startup.
8508 Solution:   Add comma.  Init form structure to zeroes.
8509 Files:      src/netbeans.c, src/gui_gtk_f.c
8511 Patch 7.2.183
8512 Problem:    Configure problem for sys/sysctl.h on OpenBSD. (Dasn)
8513 Solution:   Add separate check for this header file.  Also switch to newer
8514             version of autoconf.
8515 Files:      src/auto/configure, src/configure.in
8517 Patch 7.2.184
8518 Problem:    Some more compiler warnings when using gcc -Wextra.
8519 Solution:   Add UNUSED and type casts.  Autoconf check for wchar_t.
8520 Files:      src/auto/configure, src/config.h.in, src/configure.in,
8521             src/gui_athena.c, src/gui_x11.c, src/gui.c, src/gui_beval.c,
8522             src/gui_at_sb.c, src/gui_at_fs.c, src/gui_motif.c,
8523             src/gui_xmdlg.c, src/gui_xmebw.c, src/if_python.c, src/window.c,
8524             src/workshop.c
8526 Patch 7.2.185
8527 Problem:    Some more compiler warnings when using gcc -Wextra.
8528 Solution:   Add UNUSED and type casts.
8529 Files:      src/Makefile, src/if_tlc.c, src/if_ruby.c
8531 Patch 7.2.186
8532 Problem:    Some more compiler warnings when using gcc -Wextra.
8533 Solution:   Now with the intended if_tcl.c changes.
8534 Files:      src/if_tcl.c
8536 Patch 7.2.187 (after 7.2.186)
8537 Problem:    Doesn't build with older versions of TCL. (Yongwei Wu)
8538 Solution:   Add #ifdefs. (Dominique Pelle)
8539 Files:      src/if_tcl.c
8541 Patch 7.2.188
8542 Problem:    Crash with specific use of function calls. (Meikel Brandmeyer)
8543 Solution:   Make sure the items referenced by a function call are not freed
8544             twice.  (based on patch from Nico Weber)
8545 Files:      src/eval.c
8547 Patch 7.2.189
8548 Problem:    Possible hang for deleting auto-indent. (Dominique Pelle)
8549 Solution:   Make sure the position is not beyond the end of the line.
8550 Files:      src/edit.c
8552 Patch 7.2.190
8553 Problem:    The register executed by @@ isn't restored.
8554 Solution:   Mark the executable register in the viminfo file.
8555 Files:      src/ops.c
8557 Patch 7.2.191
8558 Problem:    Mzscheme interface doesn't work on Ubuntu.
8559 Solution:   Change autoconf rules.  Define missing macro.  Some changes to
8560             avoid gcc warnings.  Remove per-buffer namespace. (Sergey Khorev)
8561 Files:      runtime/doc/if_mzsch.txt, src/Makefile, src/Make_ming.mak,
8562             src/Make_mvc.mak, src/auto/configure, src/configure.in,
8563             src/config.mk.in, src/eval.c, src/if_mzsch.c, src/if_mzsch.h,
8564             src/main.c, src/proto/if_mzsch.pro
8566 Patch 7.2.192 (after 7.2.188)
8567 Problem:    Still a crash in the garbage collector for a very rare situation.
8568 Solution:   Make sure current_copyID is always incremented correctly. (Kent
8569             Sibilev)
8570 Files:      src/eval.c
8572 Patch 7.2.193
8573 Problem:    Warning for uninitialized values.
8574 Solution:   Initialize all the struct items.
8575 Files:      src/eval.c
8577 Patch 7.2.194 (extra)
8578 Problem:    MSVC: rem commands are echoed.
8579 Solution:   Add commands to switch off echo. (Wang Xu)
8580 Files:      src/msvc2008.bat
8582 Patch 7.2.195
8583 Problem:    Leaking memory for the command Vim was started with.
8584 Solution:   Remember the pointer and free it.
8585 Files:      src/gui_gtk_x11.c
8587 Patch 7.2.196 (after 7.2.167)
8588 Problem:    Turns out splint doesn't work well enough to be usable.
8589 Solution:   Remove splint support.
8590 Files:      Filelist, src/cleanlint.vim
8592 Patch 7.2.197
8593 Problem:    Warning for uninitialized values.
8594 Solution:   Initialize all the struct items of typebuf.
8595 Files:      src/globals.h
8597 Patch 7.2.198
8598 Problem:    Size of buffer used for tgetent() may be too small.
8599 Solution:   Use the largest known size everywhere.
8600 Files:      src/vim.h
8602 Patch 7.2.199
8603 Problem:    Strange character in comment.
8604 Solution:   Change to "message". (Yongwei Wu)
8605 Files:      src/term.c
8607 Patch 7.2.200
8608 Problem:    Reading past end of string when navigating the menu bar or
8609             resizing the window.
8610 Solution:   Add and use mb_ptr2len_len(). (partly by Dominique Pelle)
8611             Also add mb_ptr2cells_len() to prevent more trouble.
8612 Files:      src/gui_gtk_x11.c, src/os_unix.c, src/globals.h, src/mbyte.c,
8613             src/proto/mbyte.pro
8615 Patch 7.2.201
8616 Problem:    Cannot copy/paste HTML to/from Firefox via the clipboard.
8617 Solution:   Implement this for GTK.  Add the "html" value to 'clipboard'.
8618 Files:      runtime/doc/options.txt, src/globals.h, src/gui_gtk_x11.c,
8619             src/mbyte.c, src/proto/mbyte.pro, src/option.c
8621 Patch 7.2.202
8622 Problem:    BufWipeout autocommand that edits another buffer causes problems.
8623 Solution:   Check for the situation, give an error and quit the operation.
8624 Files:      src/fileio.c
8626 Patch 7.2.203
8627 Problem:    When reloading a buffer or doing anything else with a buffer that
8628             is not displayed in a visible window, autocommands may be applied
8629             to the current window, folds messed up, etc.
8630 Solution:   Instead of using the current window for the hidden buffer use a
8631             special window, splitting the current one temporarily.
8632 Files:      src/fileio.c, src/globals.h, src/gui.c, src/if_perl.xs,
8633             src/progo/gui.pro, src/proto/window.pro, src/screen.c,
8634             src/structs.h, src/window.c
8636 Patch 7.2.204 (extra)
8637 Problem:    Win32: Can't build with Visual Studio 2010 beta 1.
8638 Solution:   Fix the makefile. (George Reilly)
8639 Files:      src/Make_mvc.mak
8641 Patch 7.2.205 (extra)
8642 Problem:    Win32: No support for High DPI awareness.
8643 Solution:   Fix the manifest file. (George Reilly)
8644 Files:      src/Make_mvc.mak, src/gvim.exe.mnf
8646 Patch 7.2.206
8647 Problem:    Win32: Can't build netbeans interface with Visual Studio 2010.
8648 Solution:   Undefine ECONNREFUSED. (George Reilly)
8649 Files:      src/netbeans.c
8651 Patch 7.2.207
8652 Problem:    Using freed memory with ":redrawstatus" when it works recursively.
8653 Solution:   Prevent recursively updating the status line. (partly by Dominique
8654             Pelle)
8655 Files:      src/screen.c
8657 Patch 7.2.208
8658 Problem:    "set novice" gives an error message, it should be ignored.
8659 Solution:   Don't see "no" in "novice" as unsetting an option.  (Patrick
8660             Texier)
8661 Files:      src/option.c
8663 Patch 7.2.209
8664 Problem:    For xxd setmode() is undefined on Cygwin.
8665 Solution:   Include io.h. (Dominique Pelle)
8666 Files:      src/xxd/xxd.c
8668 Patch 7.2.210
8669 Problem:    When a file that is being edited has its timestamp updated outside
8670             of Vim and ":checktime" is used still get a warning when writing
8671             the file. (Matt Mueller)
8672 Solution:   Store the timestamp in b_mtime_read when the timestamp is the only
8673             thing that changed.
8674 Files:      src/fileio.c
8676 Patch 7.2.211
8677 Problem:    Memory leak when expanding a series of file names.
8678 Solution:   Use ga_clear_strings() instead of ga_clear().
8679 Files:      src/misc1.c
8681 Patch 7.2.212 (extra)
8682 Problem:    Warnings for redefining SIG macros.
8683 Solution:   Don't define them if already defined. (Bjorn Winckler)
8684 Files:      src/os_mac.h
8686 Patch 7.2.213
8687 Problem:    Warning for using vsprintf().
8688 Solution:   Use vim_vsnprintf().
8689 Files:      src/netbeans.c
8691 Patch 7.2.214
8692 Problem:    Crash with complete function for user command. (Andy Wokula)
8693 Solution:   Avoid using a NULL pointer (Dominique Pelle)
8694 Files:      src/ex_getln.c
8696 Patch 7.2.215
8697 Problem:    ml_get error when using ":vimgrep".
8698 Solution:   Load the memfile for the hidden buffer before putting it in a
8699             window.  Correct the order of splitting the window and filling
8700             the window and buffer with data.
8701 Files:      src/fileio.c, src/proto/window.pro, src/quickfix.c, src/window.c
8703 Patch 7.2.216
8704 Problem:    Two error messages have the same number E812.
8705 Solution:   Give one message a different number.
8706 Files:      runtime/doc/autocmd.txt, runtime/doc/if_mzsch.txt, src/if_mzsch.c
8708 Patch 7.2.217
8709 Problem:    Running tests with valgrind doesn't work as advertised.
8710 Solution:   Fix the line in the Makefile.
8711 Files:      src/testdir/Makefile
8713 Patch 7.2.218
8714 Problem:    Cannot build GTK with hangul_input feature. (Dominique Pelle)
8715 Solution:   Adjust #ifdef.  (SungHyun Nam)
8716 Files:      src/gui.c
8718 Patch 7.2.219 (extra)
8719 Problem:    Photon GUI is outdated.
8720 Solution:   Updates for QNX 6.4.0. (Sean Boudreau)
8721 Files:      src/gui_photon.c
8723 Patch 7.2.220 (after 7.2.215)
8724 Problem:    a BufEnter autocommand that changes directory causes problems.
8725             (Ajit Thakkar)
8726 Solution:   Disable autocommands when opening a hidden buffer in a window.
8727 Files:      src/fileio.c
8729 Patch 7.2.221
8730 Problem:    X cut_buffer0 text is used as-is, it may be in the wrong encoding.
8731 Solution:   Convert between 'enc' and latin1. (James Vega)
8732 Files:      src/gui_gtk_x11.c, src/message.c, src/ops.c, src/proto/ui.pro,
8733             src/ui.c
8735 Patch 7.2.222
8736 Problem:   ":mksession" doesn't work properly with 'acd' set. 
8737 Solution:   Make it work. (Yakov Lerner)
8738 Files:      src/ex_docmd.c
8740 Patch 7.2.223
8741 Problem:    When a script is run with ":silent" it is not able to give warning
8742             messages.
8743 Solution:   Add the ":unsilent" command.
8744 Files:      runtime/doc/various.txt, src/ex_cmds.h, src/ex_docmd.c
8746 Patch 7.2.224
8747 Problem:    Crash when using 'completefunc'. (Ingo Karkat)
8748 Solution:   Disallow entering edit() recursively when doing completion.
8749 Files:      src/edit.c
8751 Patch 7.2.225
8752 Problem:    When using ":normal" a saved character may be executed.
8753 Solution:   Also store old_char when saving typeahead.
8754 Files:      src/getchar.c, src/structs.h
8756 Patch 7.2.226
8757 Problem:    ml_get error after deleting the last line. (Xavier de Gaye)
8758 Solution:   When adjusting marks a callback may be invoked.  Adjust the cursor
8759             position before invoking deleted_lines_mark().
8760 Files:      src/ex_cmds.c, src/ex_docmd.c, src/if_mzsch.c, src/if_python.c,
8761             src/if_perl.xs, src/misc1.c
8763 Patch 7.2.227
8764 Problem:    When using ":cd" in a script there is no way to track this.
8765 Solution:   Display the directory when 'verbose' is 5 or higher.
8766 Files:      src/ex_docmd.c
8768 Patch 7.2.228
8769 Problem:    Cscope is limited to 8 connections.
8770 Solution:   Allocated the connection array to handle any number of
8771             connections. (Dominique Pelle)
8772 Files:      runtime/doc/if_cscop.txt, src/if_cscope.h, src/if_cscope.c
8774 Patch 7.2.229
8775 Problem:    Warning for shadowed variable.
8776 Solution:   Rename "wait" to "wait_time".
8777 Files:      src/os_unix.c
8779 Patch 7.2.230
8780 Problem:    A few old lint-style ARGUSED comments.
8781 Solution:   Change to the new UNUSED style.
8782 Files:      src/getchar.c
8784 Patch 7.2.231
8785 Problem:    Warning for unreacheable code.
8786 Solution:   Add #ifdef.
8787 Files:      src/if_perl.xs
8789 Patch 7.2.232
8790 Problem:    Cannot debug problems with being in a wrong directory.
8791 Solution:   When 'verbose' is 5 or higher report directory changes.
8792 Files:      src/os_unix.c, src/os_unix.h, src/proto/os_unix.pro
8794 Patch 7.2.233 (extra part of 7.2.232)
8795 Problem:    Cannot debug problems with being in a wrong directory.
8796 Solution:   When 'verbose' is 5 or higher report directory changes.
8797 Files:      src/os_msdos.c, src/os_mswin.c, src/os_riscos.c, src/os_mac.h
8799 Patch 7.2.234
8800 Problem:    It is not possible to ignore file names without a suffix.
8801 Solution:   Use an empty entry in 'suffixes' for file names without a dot.
8802 Files:      runtime/doc/cmdline.txt, src/misc1.c
8804 Patch 7.2.235
8805 Problem:    Using CTRL-O z= in Insert mode has a delay before redrawing.
8806 Solution:   Reset msg_didout and msg_scroll.
8807 Files:      src/misc1.c, src/spell.c
8809 Patch 7.2.236
8810 Problem:    Mac: Compiling with Ruby doesn't always work.
8811 Solution:   In configure filter out the --arch argument (Bjorn Winckler)
8812 Files:      src/configure.in, src/auto/configure
8814 Patch 7.2.237
8815 Problem:    Crash on exit when window icon not set.
8816 Solution:   Copy terminal name when using it for the icon name.
8817 Files:      src/os_unix.c
8819 Patch 7.2.238
8820 Problem:    Leaking memory when setting term to "builtin_dumb".
8821 Solution:   Free memory when resetting term option t_Co.
8822 Files:      src/option.c, src/proto/option.pro, src/term.c
8824 Patch 7.2.239
8825 Problem:    Using :diffpatch twice or when patching fails causes memory
8826             corruption and/or a crash.  (Bryan Venteicher)
8827 Solution:   Detect missing output file.  Avoid using non-existing buffer.
8828 Files:      src/diff.c
8830 Patch 7.2.240
8831 Problem:    Crash when using find/replace dialog repeatedly. (Michiel
8832             Hartsuiker)
8833 Solution:   Avoid doing the operation while busy or recursively.  Also refuse
8834             replace when text is locked.
8835 Files:      src/gui.c
8837 Patch 7.2.241
8838 Problem:    When using a combination of ":bufdo" and "doautoall" we may end up
8839             in the wrong directory. (Ajit Thakkar)
8840             Crash when triggering an autocommand in ":vimgrep".  (Yukihiro
8841             Nakadaira)
8842 Solution:   Clear w_localdir and globaldir when using the aucmd_win.
8843             Use a separate flag to decide aucmd_win needs to be restored.
8844 Files:      src/fileio.c, src/globals.h, src/structs.h
8846 Patch 7.2.242
8847 Problem:    Setting 'lazyredraw' causes the cursor column to be recomputed.
8848             (Tom Link)
8849 Solution:   Only recompute the cursor column for a boolean option if changes
8850             the cursor position.
8851 Files:      src/option.c
8853 Patch 7.2.243
8854 Problem:    Memory leak when using :vimgrep and resizing. (Dominique Pelle)
8855 Solution:   Free memory for aucmd_win when resizing and don't allocate it
8856             twice.
8857 Files:      src/screen.c
8859 Patch 7.2.244
8860 Problem:    When 'enc' is utf-8 and 'fenc' is latin1, writing a non-latin1
8861             character gives a conversion error without any hint what is wrong.
8862 Solution:   When known add the line number to the error message.
8863 Files:      src/fileio.c
8865 Patch 7.2.245
8866 Problem:    When 'enc' is "utf-16" and 'fenc' is "utf-8" writing a file does
8867             conversion while none should be done. (Yukihiro Nakadaira) When
8868             'fenc' is empty the file is written as utf-8 instead of utf-16.
8869 Solution:   Do proper comparison of encodings, taking into account that all
8870             Unicode values for 'enc' use utf-8 internally.
8871 Files:      src/fileio.c
8873 Patch 7.2.246
8874 Problem:    Cscope home page link is wrong.
8875 Solution:   Update the URL. (Sergey Khorev)
8876 Files:      runtime/doc/if_cscop.txt
8878 Patch 7.2.247
8879 Problem:    Mzscheme interface minor problem.
8880 Solution:   Better error message when build fails. (Sergey Khorev)
8881 Files:      src/if_mzsch.c
8883 Patch 7.2.248 (extra)
8884 Problem:    Mzscheme interface building minor problems.
8885 Solution:   Update Win32 makefiles. (Sergey Khorev)
8886 Files:      src/Make_cyg.mak, src/Make_ming.mak, src/Make_mvc.mak
8888 Patch 7.2.249
8889 Problem:    The script to check .po files can't handle '%' in plural forms.
8890 Solution:   Remove "Plural-Forms:" from the checked string.
8891 Files:      src/po/check.vim
8893 Patch 7.2.250 (extra)
8894 Problem:    Possible buffer overflow.
8895 Solution:   Compute the remaining space. (Dominique Pelle)
8896 Files:      src/GvimExt/gvimext.cpp
8898 Patch 7.2.251 (after 7.2.044)
8899 Problem:    Compiler adds invalid memory bounds check.
8900 Solution:   Remove _FORTIFY_SOURCE=2 from CFLAGS. (Dominique Pelle)
8901 Files:      src/auto/configure, src/configure.in
8903 Patch 7.2.252
8904 Problem:    When using a multi-byte 'enc' the 'iskeyword' option cannot
8905             contain characters above 128.
8906 Solution:   Use mb_ptr2char_adv().
8907 Files:      src/charset.c
8909 Patch 7.2.253
8910 Problem:    Netbeans interface: getLength always uses current buffer.
8911 Solution:   Use ml_get_buf() instead of ml_get(). (Xavier de Gaye)
8912 Files:      src/netbeans.c
8914 Patch 7.2.254
8915 Problem:    Compiler warning for assigning size_t to int.
8916 Solution:   Use size_t for the variable. (George Reilly)
8917 Files:      src/fileio.c
8919 Patch 7.2.255 (after 7.2.242)
8920 Problem:    Setting 'rightleft', 'linebreak' and 'wrap' may cause cursor to be
8921             in wrong place.
8922 Solution:   Recompute the cursor column for these options.
8923 Files:      src/option.c
8925 Patch 7.2.256
8926 Problem:    When 'guifont' was not set GTK font dialog doesn't have a default.
8927             (Andreas Metzler)
8928 Solution:   Set default to DEFAULT_FONT. (James Vega)
8929 Files:      src/gui_gtk_x11.c
8931 Patch 7.2.257
8932 Problem:    With GTK 2.17 lots of assertion error messages.
8933 Solution:   Remove check for static gravity. (Sebastian Droege)
8934 Files:      src/gui_gtk_f.c
8936 Patch 7.2.258
8937 Problem:    v:beval_col and b:beval_text are wrong in UTF-8 text. (Tony
8938             Mechelynck)
8939 Solution:   Use byte number instead of character number for the column.
8940 Files:      src/ui.c
8942 Patch 7.2.259
8943 Problem:    exists() doesn't work properly for an empty aucmd group.
8944 Solution:   Change how au_exists() handles a missing pattern.  Also add a
8945             test for this. (Bob Hiestand)
8946 Files:      src/fileio.c, src/testdir/Makefile, src/testdir/test67.in,
8947             src/testdir/test67.ok
8949 Patch 7.2.260 (extra part of 7.2.259)
8950 Problem:    exists() doesn't work properly for empty aucmd group.
8951 Solution:   Change how au_exists() handles a missing pattern.  Also add a
8952             test for this. (Bob Hiestand)
8953 Files:      src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
8954             src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
8955             src/testdir/Make_vms.mms
8957 Patch 7.2.261
8958 Problem:    When deleting lines with a specific folding configuration E38 may
8959             appear. (Shahaf)
8960 Solution:   When adjusting nested folds for deleted lines take into account
8961             that they don't start at the top of the enclosing fold.
8962 Files:      src/fold.c
8964 Patch 7.2.262
8965 Problem:    When using custom completion for a user command the pattern string
8966             goes beyond the cursor position. (Hari Krishna Dara)
8967 Solution:   Truncate the string at the cursor position.
8968 Files:      src/ex_getln.c, src/structs.h
8970 Patch 7.2.263
8971 Problem:    GTK2: when using the -geom argument with an offset from the right
8972             edge and the size is smaller than the default, the Vim window is
8973             not positioned properly.
8974 Solution:   Use another function to set the size. (Vitaly Minko)
8975 Files:      src/gui_gtk_x11.c
8977 Patch 7.2.264
8978 Problem:    GTK2: When the Vim window is maximized setting 'columns' or
8979             'lines' doesn't work.
8980 Solution:   Unmaximize the window before setting the size. (Vitaly Minko)
8981 Files:      src/gui.c, src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro
8983 Patch 7.2.265
8984 Problem:    When using ":silent broken" inside try/catch silency may persist.
8985             (dr-dr xp)
8986 Solution:   Set msg_silent when there is an error and it's bigger than the
8987             saved value.
8988 Files:      src/ex_docmd.c
8990 Patch 7.2.266
8991 Problem:    When an expression abbreviation is triggered, the typed character
8992             is unknown.
8993 Solution:   Make the typed character available in v:char.
8994 Files:      runtime/doc/map.txt, src/eval.c, src/getchar.c, src/ops.c,
8995             src/proto/eval.pro
8997 Patch 7.2.267
8998 Problem:    Crash for narrow window and double-width character.
8999 Solution:   Check for zero width.  (Taro Muraoka)
9000 Files:      src/charset.c
9002 Patch 7.2.268
9003 Problem:    Crash when using Python to set cursor beyond end of line.
9004             (winterTTr)
9005 Solution:   Check the column to be valid.
9006 Files:      src/if_python.c
9008 Patch 7.2.269
9009 Problem:    Many people struggle to find out why Vim startup is slow.
9010 Solution:   Add the --startuptime command line flag.
9011 Files:      runtime/doc/starting.txt, src/globals.h, src/feature.h,
9012             src/main.c, src/macros.h
9014 Patch 7.2.270
9015 Problem:    Using ":@c" when the c register contains a CR causes the rest to
9016             be executed later. (Dexter Douglas)
9017 Solution:   Don't check for typeahead to start with ':', keep executing
9018             commands until all added typeahead has been used.
9019 Files:      src/ex_docmd.c
9021 Patch 7.2.271
9022 Problem:    Using freed memory in Motif GUI version when making a choice.
9023 Solution:   Free memory only after using it. (Dominique Pelle)
9024 Files:      src/gui_xmdlg.c
9026 Patch 7.2.272
9027 Problem:    "_.svz" is not recognized as a swap file. (David M. Besonen)
9028 Solution:   Accept .s[uvw][a-z] as a swap file name extension.
9029 Files:      src/memline.c
9031 Patch 7.2.273
9032 Problem:    Crash with redir to unknown array. (Christian Brabandt)
9033 Solution:   Don't assign the redir result when there was an error.
9034 Files:      src/eval.c
9036 Patch 7.2.274
9037 Problem:    Syntax folding doesn't work properly when adding a comment.
9038 Solution:   Fix it and add a test. (Lech Lorens)
9039 Files:      src/fold.c, src/testdir/test45.in, src/testdir/test45.ok
9041 Patch 7.2.275
9042 Problem:    Warning for unused argument and comparing signed and unsigned.
9043 Solution:   Add type cast.
9044 Files:      src/memline.c
9046 Patch 7.2.276
9047 Problem:    Crash when setting 'isprint' to a small bullet. (Raul Coronado)
9048 Solution:   Check for the character to be < 256.  Also make it possible to
9049             specify a range of multi-byte characters. (Lech Lorens)
9050 Files:      src/charset.c
9052 Patch 7.2.277
9053 Problem:    CTRL-Y in a diff'ed window may move the cursor outside of the
9054             window. (Lech Lorens)
9055 Solution:   Limit the number of filler lines to the height of the window.
9056             Don't reset filler lines to zero for an empty buffer.
9057 Files:      src/move.c
9059 Patch 7.2.278
9060 Problem:    Using magic number in the folding code.
9061 Solution:   Use the defined MAX_LEVEL.
9062 Files:      src/fold.c
9064 Patch 7.2.279
9065 Problem:    Invalid memory read with visual mode "r". (Dominique Pelle)
9066 Solution:   Make sure the cursor position is valid.  Don't check the cursor
9067             position but the position being used.  And make sure we get the
9068             right line.
9069 Files:      src/misc2.c, src/ops.c
9071 Patch 7.2.280
9072 Problem:    A redraw in a custom statusline with %! may cause a crash.
9073             (Yukihiro Nakadaira)
9074 Solution:   Make a copy of 'statusline'.  Also fix typo in function name
9075             redraw_custum_statusline. (partly by Dominique Pelle)
9076 Files:      src/screen.c
9078 Patch 7.2.281
9079 Problem:    'cursorcolumn' highlighting is wrong in diff mode.
9080 Solution:   Adjust the column computation. (Lech Lorens)
9081 Files:      src/screen.c
9083 Patch 7.2.282
9084 Problem:    A fold can't be closed.
9085 Solution:   Initialize fd_small to MAYBE. (Lech Lorens)
9086 Files:      src/fold.c
9088 Patch 7.2.283
9089 Problem:    Changing font while the window is maximized doesn't keep the
9090             window maximized.
9091 Solution:   Recompute number of lines and columns after changing font. (James
9092             Vega)
9093 Files:      src/gui_gtk_x11.c
9095 Patch 7.2.284
9096 Problem:    When editing the same buffer in two windows, one with folding,
9097             display may be wrong after changes.
9098 Solution:   Call set_topline() to take care of side effects. (Lech Lorens)
9099 Files:      src/misc1.c
9101 Patch 7.2.285 (after 7.2.169)
9102 Problem:    CTRL-U in Insert mode also deletes indent. (Andrey Voropaev)
9103 Solution:   Fix mistake made in patch 7.2.169.
9104 Files:      src/edit.c
9106 Patch 7.2.286 (after 7.2.269)
9107 Problem:    The "--startuptime=<file>" argument is not consistent with other
9108             arguments.
9109 Solution:   Use "--startuptime <file>".  Added the +startuptime feature.
9110 Files:      runtime/doc/eval.txt, runtime/doc/starting.txt,
9111             runtime/doc/various.txt, src/eval.c, src/main.c, src/version.c
9113 Patch 7.2.287
9114 Problem:    Warning from gcc 3.4 about uninitialized variable.
9115 Solution:   Move assignment outside of #ifdef.
9116 Files:      src/if_perl.xs
9118 Patch 7.2.288
9119 Problem:    Python 2.6 pyconfig.h redefines macros.
9120 Solution:   Undefine the macros before including pyconfig.h.
9121 Files:      src/if_python.c
9123 Patch 7.2.289
9124 Problem:    Checking wrong struct member.
9125 Solution:   Change tb_buf to tb_noremap. (Dominique Pelle)
9126 Files:      src/getchar.c
9128 Patch 7.2.290
9129 Problem:    Not freeing memory from ":lmap", ":xmap" and ":menutranslate".
9130 Solution:   Free the memory when exiting. (Dominique Pelle)
9131 Files:      src/misc2.c
9133 Patch 7.2.291
9134 Problem:    Reading uninitialised memory in arabic mode.
9135 Solution:   Use utfc_ptr2char_len() rather than utfc_ptr2char().  (Dominique
9136             Pelle)
9137 Files:      src/screen.c
9139 Patch 7.2.292
9140 Problem:    Block right-shift doesn't work properly with multi-byte encoding
9141             and 'list' set.
9142 Solution:   Add the missing "else". (Lech Lorens)
9143 Files:      src/ops.c
9145 Patch 7.2.293
9146 Problem:    When setting 'comments' option it may be used in a wrong way. 
9147 Solution:   Don't increment after skipping over digets. (Yukihiro Nakadaira)
9148 Files:      src/misc1.c
9150 Patch 7.2.294
9151 Problem:    When using TEMPDIRS dir name could get too long.
9152 Solution:   Overwrite tail instead of appending each time.  Use mkdtemp() when
9153             available. (James Vega)
9154 Files:      src/auto/configure, src/config.h.in, src/configure.in, src/fileio.c
9156 Patch 7.2.295
9157 Problem:    When using map() on a List the index is not known.
9158 Solution:   Set v:key to the  index. (Hari Krishna Dara)
9159 Files:      runtime/doc/eval.txt, src/eval.c
9161 Patch 7.2.296
9162 Problem:    Help message about startuptime is wrong. (Dominique Pelle)
9163 Solution:   Remove the equal sign.
9164 Files:      src/main.c
9166 Patch 7.2.297
9167 Problem:    Reading freed memory when writing ":reg" output to a register.
9168             (Dominique Pelle)
9169 Solution:   Skip the register being written to.
9170 Files:      src/ops.c
9172 Patch 7.2.298
9173 Problem:    ":vimgrep" crashes when there is an autocommand that sets a
9174             window-local variable.
9175 Solution:   Initialize the w: hashtab for re-use. (Yukihiro Nakadaira)
9176 Files:      src/fileio.c
9178 Patch 7.2.299
9179 Problem:    Crash when comment middle is longer than start.
9180 Solution:   Fix size computation. (Lech Lorens)
9181 Files:      src/misc1.c
9183 Patch 7.2.300
9184 Problem:    Vim doesn't close file descriptors when forking and executing
9185             another command, e.g., ":shell".
9186 Solution:   Use FD_CLOEXEC when available. (James Vega)
9187 Files:      auto/configure, src/config.h.in, src/configure.in,
9188             src/ex_cmdds2.c, src/fileio.c, src/memfile.c, src/memline.c
9190 Patch 7.2.301
9191 Problem:    Formatting is wrong when 'tw' is set to a small value.
9192 Solution:   Fix it and add tests.  Also fix behavior of "1" in 'fo'. (Yukihiro
9193             Nakadaira)
9194 Files:      src/edit.c, src/testdir/Makefile, src/testdir/test68.in,
9195             src/testdir/test68.ok, src/testdir/test69.in,
9196             src/testdir/test69,ok
9198 Patch 7.2.302 (extra part of 7.2.301)
9199 Problem:    Formatting wrong with small 'tw' value.
9200 Solution:   Add build rules for tests.
9201 Files:      src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
9202             src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
9203             src/testdir/Make_vms.mms
9205 Patch 7.2.303 (after 7.2.294)
9206 Problem:    Can't build on MS-Windows.
9207 Solution:   Add #ifdef around vim_settempdir(). (James Vega)
9208 Files:      src/fileio.c
9210 Patch 7.2.304
9211 Problem:    Compiler warning for bad pointer cast.
9212 Solution:   Use another variable for int pointer.
9213 Files:      src/ops.c
9215 Patch 7.2.305
9216 Problem:    Recursively redrawing causes a memory leak. (Dominique Pelle)
9217 Solution:   Disallow recursive screen updating.
9218 Files:      src/screen.c
9220 Patch 7.2.306
9221 Problem:    shellescape("10%%", 1) only escapes first %. (Christian Brabandt)
9222 Solution:   Don't copy the character after the escaped one.
9223 Files:      src/misc2.c
9225 Patch 7.2.307
9226 Problem:    Crash with a very long syntax match statement. (Guy Gur Ari)
9227 Solution:   When the offset does not fit in the two bytes available give an
9228             error instead of continuing with invalid pointers.
9229 Files:      src/regexp.c
9231 Patch 7.2.308
9232 Problem:    When using a regexp in the "\=" expression of a substitute
9233             command, submatch() returns empty strings for further lines.
9234             (Clockwork Jam)
9235 Solution:   Save and restore the line number and line count when calling
9236             reg_getline().
9237 Files:      src/regexp.c
9239 Patch 7.2.309 (after 7.2.308)
9240 Problem:    Warning for missing function prototype. (Patrick Texier)
9241 Solution:   Add the prototype.
9242 Files:      src/regexp.c
9244 Patch 7.2.310
9245 Problem:    When a filetype plugin in ~/.vim/ftdetect uses ":setfiletype" and
9246             the file starts with a "# comment" it gets "conf" filetype.
9247 Solution:   Check for "conf" filetype after using ftdetect plugins.
9248 Files:      runtime/filetype.vim
9250 Patch 7.2.311
9251 Problem:    Can't compile with FreeMiNT.
9252 Solution:   Change #ifdef for limits.h. (Alan Hourihane)
9253 Files:      src/fileio.c
9255 Patch 7.2.312
9256 Problem:    iconv() returns an invalid character sequence when conversion
9257             fails.  It should return an empty string. (Yongwei Wu)
9258 Solution:   Be more strict about invalid characters in the input.
9259 Files:      src/mbyte.c
9261 Patch 7.2.313
9262 Problem:    Command line completion doesn't work after "%:h" and similar.
9263 Solution:   Expand these items before doing the completion.
9264 Files:      src/ex_getln.c, src/misc1.c, src/proto/misc1.pro
9266 Patch 7.2.314
9267 Problem:    Missing function in small build.
9268 Solution:   Always include concat_str.
9269 Files:      src/misc1.c
9271 Patch 7.2.315
9272 Problem:    Python libs can't be found on 64 bit system.
9273 Solution:   Add lib64 to the list of directories. (Michael Henry)
9274 Files:      src/auto/configure, src/configure.in
9276 Patch 7.2.316
9277 Problem:    May get multiple _FORTIFY_SOURCE arguments. (Tony Mechelynck)
9278 Solution:   First remove all these arguments and then add the one we want.
9279             (Dominique Pelle)
9280 Files:      src/auto/configure, src/configure.in
9282 Patch 7.2.317
9283 Problem:    Memory leak when adding a highlight group with unprintable
9284             characters, resulting in E669.
9285 Solution:   Free the memory.  And fix a few typos. (Dominique Pelle)
9286 Files:      src/syntax.c
9288 Patch 7.2.318
9289 Problem:    Wrong locale value breaks floating point numbers for gvim.
9290 Solution:   Set the locale again after doing GUI inits. (Dominique Pelle)
9291 Files:      src/main.c
9293 Patch 7.2.319
9294 Problem:    Motif: accessing freed memory when cancelling font dialog.
9295 Solution:   Destroy the widget only after accessing it. (Dominique Pelle)
9296 Files:      src/gui_xmdlg.c
9298 Patch 7.2.320
9299 Problem:    Unused function in Mzscheme interface.
9300 Solution:   Remove the function and what depends on it. (Dominique Pelle)
9301 Files:      src/if_mzsch.c, src/proto/if_mzsch.pro
9303 Patch 7.2.321
9304 Problem:    histadd() and searching with "*" fails to add entry to history
9305             when it is empty.
9306 Solution:   Initialize the history. (Lech Lorens)
9307 Files:      src/eval.c, src/normal.c
9309 Patch 7.2.322
9310 Problem:    Wrong indenting in virtual replace mode with CTRL-Y below a short
9311             line.
9312 Solution:   Check for character to be NUL. (suggested by Lech Lorens)
9313 Files:      src/edit.c
9315 Patch 7.2.323 (extra)
9316 Problem:    Balloon evaluation crashes on Win64.
9317 Solution:   Change pointer types. (Sergey Khorev)
9318 Files:      src/gui_w32.c
9320 Patch 7.2.324
9321 Problem:    A negative column argument in setpos() may cause a crash.
9322 Solution:   Check for invalid column number. (James Vega)
9323 Files:      src/eval.c, src/misc2.c
9325 Patch 7.2.325
9326 Problem:    A stray "w" in the startup vimrc file causes the edited file to be
9327             replaced with an empty file. (Stone Kang).
9328 Solution:   Do not write a buffer when it has never been loaded.
9329 Files:      src/fileio.c
9331 Patch 7.2.326
9332 Problem:    Win32: $HOME doesn't work when %HOMEPATH% is not defined.
9333 Solution:   Use "\" for %HOMEPATH% when it is not defined.
9334 Files:      src/misc1.c
9336 Patch 7.2.327
9337 Problem:    Unused functions in Workshop.
9338 Solution:   Add "#if 0" and minor cleanup. (Dominique Pelle)
9339 Files:      src/workshop.c, src/integration.c, src/integration.h
9341 Patch 7.2.328
9342 Problem:    has("win64") does not return 1 on 64 bit MS-Windows version.
9343 Solution:   Also check for _WIN64 besides WIN64.
9344 Files:      src/eval.c
9346 Patch 7.2.329
9347 Problem:    "g_" doesn't position cursor correctly when in Visual mode and
9348             'selection' is "exclusive". (Ben Fritz)
9349 Solution:   Call adjust_for_sel().
9350 Files:      src/normal.c
9352 Patch 7.2.330
9353 Problem:    Tables for Unicode case operators are outdated.
9354 Solution:   Add a Vim script for generating the tables.  Include tables for
9355             Unicode 5.2.
9356 Files:      runtime/tools/README.txt, runtime/tools/unicode.vim, src/mbyte.c
9358 Patch 7.2.331
9359 Problem:    Can't interrupt "echo list" for a very long list.
9360 Solution:   Call line_breakcheck() in list_join().
9361 Files:      src/eval.c
9363 Patch 7.2.332
9364 Problem:    Crash when spell correcting triggers an autocommand that reloads
9365             the buffer.
9366 Solution:   Make a copy of the line to be modified. (Dominique Pelle)
9367 Files:      src/spell.c
9369 Patch 7.2.333
9370 Problem:    Warnings from static code analysis.
9371 Solution:   Small changes to various lines. (Dominique Pelle)
9372 Files:      src/buffer.c, src/edit.c, src/ex_getln.c, src/fileio.c,
9373             src/if_cscope.c, src/netbeans.c, src/ops.c, src/quickfix.c,
9374             src/syntax.c, src/ui.c
9376 Patch 7.2.334
9377 Problem:    Postponing keys in Netbeans interface does not work properly.
9378 Solution:   Store the key string instead of the number.  Avoid an infinite
9379             loop. (Mostly by Xavier de Gaye)
9380 Files:      src/netbeans.c, src/proto/netbeans.pro
9382 Patch 7.2.335
9383 Problem:    The CTRL-] command escapes too many characters.
9384 Solution:   Use a different list of characters to be escaped. (Sergey Khorev)
9385 Files:      src/normal.c
9387 Patch 7.2.336
9388 Problem:    MzScheme interface can't evaluate an expression.
9389 Solution:   Add mzeval(). (Sergey Khorev)
9390 Files:      runtime/doc/eval.txt, runtime/doc/if_mzsch.txt,
9391             runtime/doc/usr_41.txt, src/eval.c, src/if_mzsch.c,
9392             src/proto/eval.pro, src/proto/if_mzsch.pro,
9393             src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
9394             src/testdir/Makefile, src/testdir/main.aap, src/testdir/test1.in,
9395             src/testdir/test70.in, src/testdir/test70.ok
9397 Patch 7.2.337
9398 Problem:    The :compiler command doesn't function properly when invoked in a
9399             function.
9400 Solution:   Add "g:" before "current_compiler". (Yukihiro Nakadaira)
9401 Files:      src/ex_cmds2.c
9403 Patch 7.2.338 (after 7.2.300)
9404 Problem:    Part of FD_CLOEXEC change is missing.
9405 Solution:   Include source file skipped because of typo.
9406 Files:      src/ex_cmds2.c
9408 Patch 7.2.339 (after 7.2.269)
9409 Problem:    Part of --startuptime patch is missing.
9410 Solution:   Add check for time_fd.
9411 Files:      src/ex_cmds2.c
9413 Patch 7.2.340
9414 Problem:    Gcc warning for condition that can never be true. (James Vega)
9415 Solution:   Use start_lvl instead flp->lvl.
9416 Files:      src/fold.c
9418 Patch 7.2.341
9419 Problem:    Popup menu wraps to next line when double-wide character doesn't
9420             fit. (Jiang Ma)
9421 Solution:   Display a ">" instead. (Dominique Pelle)
9422 Files:      src/screen.c
9424 Patch 7.2.342
9425 Problem:    Popup menu displayed wrong in 'rightleft' mode when there are
9426             multi-byte characters.
9427 Solution:   Adjust the column computations. (Dominique Pelle)
9428 Files:      src/popupmnu.c
9430 Patch 7.2.343 (after 7.2.338)
9431 Problem:    Can't compile on Win32.
9432 Solution:   Insert the missing '|'.
9433 Files:      src/ex_cmds2.c
9435 Patch 7.2.344 (after 7.2.343)
9436 Problem:    Can't compile on some systems
9437 Solution:   Move the #ifdef outside of the mch_open macro. (Patrick Texier)
9438 Files:      src/ex_cmds2.c
9440 Patch 7.2.345
9441 Problem:    Tab line is not updated when the value of 'bt' is changed.
9442 Solution:   Call redraw_titles(). (Lech Lorens)
9443 Files:      src/option.c
9445 Patch 7.2.346
9446 Problem:    Repeating a command with @: causes a mapping to be applied twice.
9447 Solution:   Do not remap characters inserted in the typeahead buffer. (Kana
9448             Natsuno)
9449 Files:      src/ops.c
9451 Patch 7.2.347
9452 Problem:    Crash when executing <expr> mapping redefines that same mapping.
9453 Solution:   Save the values used before evaluating the expression.
9454 Files:      src/getchar.c
9456 Patch 7.2.348 (after 7.2.330)
9457 Problem:    Unicode double-width characters are not up-to date.
9458 Solution:   Produce the double-width table like the others.
9459 Files:      runtime/tools/unicode.vim, src/mbyte.c
9461 Patch 7.2.349
9462 Problem:    CTRL-W gf doesn't put the new tab in the same place as "tab split"
9463             and "gf". (Tony Mechelynck)
9464 Solution:   Store the tab number in cmdmod.tab.
9465 Files:      src/window.c
9467 Patch 7.2.350
9468 Problem:    Win32: When changing font the window may jump from the secondary
9469             to the primary screen. (Michael Wookey)
9470 Solution:   When the screen position was negative don't correct it to zero.
9471 Files:      src/gui.c
9473 Patch 7.2.351 (after 7.2.347)
9474 Problem:    Can't build with some compilers.
9475 Solution:   Move the #ifdef outside of a macro.  Cleanup the code.
9476 Files:      src/getchar.c
9478 Patch 7.2.352 (extra)
9479 Problem:    Win64: Vim doesn't work when cross-compiled with MingW libraries.
9480 Solution:   Always return TRUE for the WM_NCCREATE message. (Andy Kittner)
9481 Files:      src/gui_w48.c
9483 Patch 7.2.353
9484 Problem:    No command line completion for ":profile".
9485 Solution:   Complete the subcommand and file name.
9486 Files:      src/ex_docmd.c, src/ex_cmds2.c, src/ex_getln.c,
9487             src/proto/ex_cmds2.pro, src/vim.h
9489 Patch 7.2.354
9490 Problem:    Japanese single-width double-byte characters not handled correctly.
9491 Solution:   Put 0x8e in ScreenLines[] and the second byte in ScreenLines2[].
9492             (partly by Kikuchan)
9493 Files:      src/screen.c
9495 Patch 7.2.355
9496 Problem:    Computing the cursor column in validate_cursor_col() is wrong when
9497             line numbers are used and 'n' is not in 'cpoptions', causing the
9498             popup menu to be positioned wrong.
9499 Solution:   Correctly use the offset. (partly by Dominique Pelle)
9500 Files:      src/move.c
9502 Patch 7.2.356
9503 Problem:    When 'foldmethod' is changed not all folds are closed as expected.
9504 Solution:   In foldUpdate() correct the start position and reset fd_flags when
9505             w_foldinvalid is set. (Lech Lorens)
9506 Files:      src/fold.c
9508 Patch 7.2.357
9509 Problem:    When changing 'fileformat' from/to "mac" and there is a CR in the
9510             text the display is wrong.
9511 Solution:   Redraw the text when 'fileformat' is changed. (Ben Schmidt)
9512 Files:      src/option.c
9514 Patch 7.2.358
9515 Problem:    Compiler warnings on VMS. (Zoltan Arpadffy)
9516 Solution:   Pass array itself instead its address.  Return a value.
9517 Files:      src/gui_gtk_x11.c, src/os_unix.c
9519 Patch 7.2.359
9520 Problem:    Crash when using the Netbeans join command.
9521 Solution:   Make sure the ml_flush_line() function is not used recursively.
9522             (Xavier de Gaye)
9523 Files:      src/memline.c
9525 Patch 7.2.360
9526 Problem:    Ruby on MS-Windows: can't use sockets.
9527 Solution:   Call NtInitialize() during initialization. (Ariya Mizutani)
9528 Files:      src/if_ruby.c
9530 Patch 7.2.361
9531 Problem:    Ruby 1.9 is not supported.
9532 Solution:   Add Ruby 1.9 support. (Masaki Suketa)
9533 Files:      src/Makefile, src/auto/configure, src/configure.in, src/if_ruby.c
9535 Patch 7.2.362 (extra, after 7.2.352)
9536 Problem:    Win64: Vim doesn't work when cross-compiled with MingW libraries.
9537 Solution:   Instead of handling WM_NCCREATE, create wide text area window
9538             class if the parent window iw side. (Sergey Khorev)
9539 Files:      src/gui_w32.c, src/gui_w48.c
9541 Patch 7.2.363
9542 Problem:    Can't dynamically load Perl 5.10.
9543 Solution:   Add the function Perl_croak_xs_usage. (Sergey Khorev)
9544 Files:      src/if_perl.xs
9546 Patch 7.2.364 (extra)
9547 Problem:    Can't build gvimext.dll on Win 7 x64 using MinGW (John Marriott)
9548 Solution:   Check if _MSC_VER is defined. (Andy Kittner)
9549 Files:      src/GvimExt/gvimext.h
9551 Patch 7.2.365 (extra)
9552 Problem:    MS-Windows with MingW: "File->Save As" does not work. (John
9553             Marriott)
9554 Solution:   Correctly fill in structure size. (Andy Kittner)
9555 Files:      src/gui_w48.c
9557 Patch 7.2.366
9558 Problem:    CTRL-B doesn't go back to the first line of the buffer.
9559 Solution:   Avoid an overflow when adding MAXCOL.
9560 Files:      src/move.c
9562 Patch 7.2.367
9563 Problem:    "xxd -r -p" doesn't work as documented.
9564 Solution:   Skip white space. (James Vega)
9565 Files:      src/xxd/xxd.c
9567 Patch 7.2.368 (after 7.2.361)
9568 Problem:    Ruby interface: Appending line doesn't work. (Michael Henry)
9569 Solution:   Reverse check for NULL line. (James Vega)
9570 Files:      src/if_ruby.c
9572 Patch 7.2.369
9573 Problem:    Error message is not easy to understand.
9574 Solution:   Add quotes. (SungHyun Nam)
9575 Files:      src/ex_cmds2.c
9577 Patch 7.2.370 (after 7.2.356)
9578 Problem:    A redraw may cause folds to be closed.
9579 Solution:   Revert part of the previous patch.  Add a test. (Lech Lorens)
9580 Files:      src/diff.c, src/fold.c, src/option.c, src/testdir/test45.in,
9581             src/testdir/test45.ok
9583 Patch 7.2.371
9584 Problem:    Build problems on Tandem NonStop.
9585 Solution:   A few changes to #ifdefs (Joachim Schmitz)
9586 Files:      src/auto/configure, src/configure.in, src/config.h.in, src/vim.h,
9587             src/if_cscope.c, src/osdef1.h.in, src/tag.c
9589 Patch 7.2.372 (extra)
9590 Problem:    Cross-compiling GvimExt and xxd doesn't work.
9591 Solution:   Change the build files. (Markus Heidelberg)
9592 Files:      src/INSTALLpc.txt, src/GvimExt/Make_ming.mak, src/Make_cyg.mak,
9593             src/Make_ming.mak, src/xxd/Make_cyg.mak
9595 Patch 7.2.373
9596 Problem:    Gcc 4.5 adds more error messages. (Chris Indy)
9597 Solution:   Update default 'errorformat'.
9598 Files:      src/option.h
9600 Patch 7.2.374
9601 Problem:    Ruby eval() doesn't understand Vim types.
9602 Solution:   Add the vim_to_ruby() function.  (George Gensure)
9603 Files:      src/eval.c, src/if_ruby.c
9605 Patch 7.2.375
9606 Problem:    ml_get errors when using ":bprevious" in a BufEnter autocmd.
9607             (Dominique Pelle)
9608 Solution:   Clear w_valid when entering another buffer.
9609 Files:      src/buffer.c
9611 Patch 7.2.376
9612 Problem:    ml_get error when using SiSU syntax. (Nathan Thomas)
9613 Solution:   If the match ends below the last line move it to the end of the
9614             last line.
9615 Files:      src/syntax.c
9617 Patch 7.2.377 (extra, after 7.2.372)
9618 Problem:    Misplaced assignment.  Duplicate build line for gvimext.dll.
9619 Solution:   Move setting CROSS_COMPILE to before ifneq.  Remove the wrong
9620             build line. (Markus Heidelberg)
9621 Files:      src/Make_ming.mak
9623 Patch 7.2.378
9624 Problem:    C function declaration indented too much. (Rui)
9625 Solution:   Don't see a line containing { or } as a type. (Matt Wozniski)
9626 Files:      src/misc1.c
9628 Patch 7.2.379
9629 Problem:    'eventignore' is set to an invalid value inside ":doau". (Antony
9630             Scriven)
9631 Solution:   Don't include the leading comma when the option was empty.
9632 Files:      src/fileio.c
9634 Patch 7.2.380 (after 7.2.363)
9635 Problem:    Perl interface builds with 5.10.1 but not with 5.10.0.
9636 Solution:   Change the #ifdefs. (Sergey Khorev)
9637 Files:      src/if_perl.xs
9639 Patch 7.2.381
9640 Problem:    No completion for :behave.
9641 Solution:   Add :behave completion.  Minor related fixes. (Dominique Pelle)
9642 Files:      src/ex_docmd.c, src/ex_getln.c, src/proto/ex_docmd.pro, src/vim.h
9644 Patch 7.2.382
9645 Problem:    Accessing freed memory when closing the cmdline window when
9646             'bufhide' is set to "wipe".
9647 Solution:   Check if the buffer still exists before invoking close_buffer()
9648             (Dominique Pelle)
9649 Files:      src/ex_getln.c
9651 Patch 7.2.383
9652 Problem:    Vim doesn't build cleanly with MSVC 2010.
9653 Solution:   Change a few types. (George Reilly)
9654 Files:      src/ex_cmds2.c, src/if_python.c, src/syntax.c
9656 Patch 7.2.384 (extra)
9657 Problem:    Vim doesn't build properly with MSVC 2010.
9658 Solution:   Add the nmake version to the build file. (George Reilly)
9659 Files:      src/Make_mvc.mak, src/testdir/Make_dos.mak
9661 Patch 7.2.385
9662 Problem:    When in the command line window dragging status line only works
9663             for last-but-one window. (Jean Johner)
9664 Solution:   Remove the code that disallows this.
9665 Files:      src/ui.c
9667 Patch 7.2.386
9668 Problem:    Focus hack for KDE 3.1 causes problems for other window managers.
9669 Solution:   Remove the hack. (forwarded by Joel Bradshaw)
9670 Files:      src/gui_gtk.c
9672 Patch 7.2.387
9673 Problem:    Ruby with MingW still doesn't build all versions.
9674 Solution:   More #ifdefs for the  Ruby code. (Sergey Khorev)
9675 Files:      src/if_ruby.c
9677 Patch 7.2.388 (extra part of 7.2.387)
9678 Problem:    Ruby with MingW still doesn't build all versions.
9679 Solution:   Different approach to build file. (Sergey Khorev)
9680 Files:      src/Make_ming.mak
9682 Patch 7.2.389
9683 Problem:    synIDattr() cannot return the font.
9684 Solution:   Support the "font" argument. (Christian Brabandt)
9685 Files:      runtime/doc/eval.txt, src/eval.c, src/syntax.c
9687 Patch 7.2.390
9688 Problem:    In some situations the popup menu can be displayed wrong.
9689 Solution:   Remove the popup menu if the cursor moved. (Lech Lorens)
9690 Files:      src/edit.c
9692 Patch 7.2.391
9693 Problem:    Internal alloc(0) error when doing "CTRL-V $ c". (Martti Kuparinen)
9694 Solution:   Fix computations in getvcol(). (partly by Lech Lorens)
9695 Files:      src/charset.c, src/memline.c
9697 Patch 7.2.392
9698 Problem:    Netbeans hangs reading from a socket at the maximum block size.
9699 Solution:   Use select() or poll(). (Xavier de Gaye)
9700 Files:      src/vim.h, src/os_unixx.h, src/if_xcmdsrv.c, src/netbeans.c
9702 Patch 7.2.393
9703 Problem:    Mac: Can't build with different Xcode developer tools directory.
9704 Solution:   make "Developer" directory name configurable. (Rainer Muller)
9705 Files:      src/configure.in, src/auto/configure
9707 Patch 7.2.394
9708 Problem:    .lzma and .xz files are not supported.
9709 Solution:   Recognize .lzma and .xz files so that they can be edited.
9710 Files:      runtime/plugin/gzip.vim
9712 Patch 7.2.395
9713 Problem:    In help CTRL=] on g?g? escapes the ?, causing it to fail. (Tony
9714             Mechelynck)
9715 Solution:   Don't escape ? for a help command. (Sergey Khorev)
9716 Files:      src/normal.c
9718 Patch 7.2.396
9719 Problem:    Get E38 errors. (Dasn)
9720 Solution:   Set cursor to line 1 instead of 0. (Dominique Pelle)
9721 Files:      src/popupmnu.c
9723 Patch 7.2.397
9724 Problem:    Redundant check for w_lines_valid.
9725 Solution:   Remove the if.  (Lech Lorens)
9726 Files:      src/fold.c
9728 Patch 7.2.398
9729 Problem:    When moving windows the cursor ends up in the wrong line.
9730 Solution:   Set the window width and height properly. (Lech Lorens)
9731 Files:      src/window.c
9733 Patch 7.2.399 (extra, after 7.2.388)
9734 Problem:    Cannot compile on MingW.
9735 Solution:   Move ifneq to separate line. (Vlad Sandrini, Dominique Pelle)
9736 Files:      src/Make_ming.mak
9738 Patch 7.2.400 (after 7.2.387)
9739 Problem:    Dynamic Ruby is not initialised properly for version 1.9.1.
9740             Ruby cannot create strings from NULL.
9741 Solution:   Cleanup #ifdefs.  Handle NULL like an empty string.  Add
9742             ruby_init_stack. (Sergey Khorev)
9743 Files:      src/if_ruby.c
9745 Patch 7.2.401
9746 Problem:    ":e dir<Tab>" with 'wildmode' set to "list" doesn't highlight
9747             directory names with a space. (Alexandre Provencio)
9748 Solution:   Remove the backslash before checking if the name is a directory.
9749             (Dominique Pelle)
9750 Files:      src/ex_getln.c
9752 Patch 7.2.402
9753 Problem:    This gives a #705 error: let X = function('haslocaldir')
9754             let X = function('getcwd')
9755 Solution:   Don't give E705 when the name is found in the hashtab. (Sergey
9756             Khorev)
9757 Files:      src/eval.c
9759 Patch 7.2.403 (after 7.2.400)
9760 Problem:    Compiler warning for pointer type. (Tony Mechelynck)
9761 Solution:   Move type cast to the right place.
9762 Files:      src/if_ruby.c
9764 Patch 7.2.404
9765 Problem:    Pointers for composing characters are not properly initialized.
9766 Solution:   Compute the size of the pointer, not what it points to. (Yukihiro
9767             Nakadaira)
9768 Files:      src/screen.c
9770 Patch 7.2.405
9771 Problem:    When built with small features the matching text is not
9772             highlighted for ":s/pat/repl/c".
9773 Solution:   Remove the #ifdef for IncSearch. (James Vega)
9774 Files:      src/syntax.c
9776 Patch 7.2.406
9777 Problem:    Patch 7.2.119 introduces uninit mem read. (Dominique Pelle)
9778 Solution:   Only used ScreeenLinesC when ScreeenLinesUC is not zero. (Yukihiro
9779             Nakadaira)  Also clear ScreeenLinesC when allocating.
9780 Files:      src/screen.c
9782 Patch 7.2.407
9783 Problem:    When using an expression in ":s" backslashes in the result are
9784             dropped. (Sergey Goldgaber, Christian Brabandt)
9785 Solution:   Double backslashes.
9786 Files:      src/regexp.c
9788 Patch 7.2.408
9789 Problem:    With ":g/the/s/foo/bar/" the '[ and '] marks can be set to a line
9790             that was not changed.
9791 Solution:   Only set '[ and '] marks when a substitution was done.
9792 Files:      src/ex_cmds.c
9794 Patch 7.2.409
9795 Problem:    Summary of number of substitutes is incorrect for ":folddo". (Jean
9796             Johner)
9797 Solution:   Reset sub_nsubs and sub_nlines in global_exe().
9798 Files:      src/ex_cmds.c
9800 Patch 7.2.410
9801 Problem:    Highlighting directories for completion doesn't work properly.
9802 Solution:   Don't halve backslashes when not needed, expanded "~/".
9803             (Dominique Pelle)
9804 Files:      src/ex_getln.c
9806 Patch 7.2.411
9807 Problem:    When parsing 'cino' a comma isn't skipped properly.
9808 Solution:   Skip the comma. (Lech Lorens)
9809 Files:      src/misc1.c
9811 Patch 7.2.412
9812 Problem:    [ or ] followed by mouse click doesn't work.
9813 Solution:   Reverse check for key being a mouse event. (Dominique Pelle)
9814 Files:      src/normal.c
9816 Patch 7.2.413
9817 Problem:    Large file support is incorrect.
9818 Solution:   Add AC_SYS_LARGEFILE to configure. (James Vega)
9819 Files:      src/configure.in, src/config.h.in, src/auto/configure
9821 Patch 7.2.414
9822 Problem:    CTRK-K <space> <space> does not produce 0xa0 as expected. (Tony
9823             Mechelynck)
9824 Solution:   Remove the Unicode range 0xe000 - 0xefff from digraphs, these are
9825             not valid characters.
9826 Files:      src/digraph.c
9828 Patch 7.2.415
9829 Problem:    Win32: Can't open a remote file when starting Vim.
9830 Solution:   Don't invoke cygwin_conv_path() for URLs. (Tomoya Adachi)
9831 Files:      src/main.c
9833 Patch 7.2.416
9834 Problem:    Logtalk.dict is not installed.
9835 Solution:   Add it to the install target. (Markus Heidelberg)
9836 Files:      src/Makefile
9838 Patch 7.2.417
9839 Problem:    When 'shell' has an argument with a slash then 'shellpipe' is not
9840             set properly. (Britton Kerin)
9841 Solution:   Assume there are no spaces in the path, arguments follow.
9842 Files:      src/option.c
9844 Patch 7.2.418
9845 Problem:    Vim tries to set the background or foreground color in a terminal
9846             to -1.  (Graywh)  Happens with ":hi Normal ctermbg=NONE".
9847 Solution:   When resetting the foreground or background color don't set the
9848             color, let the clear screen code do that.
9849 Files:      src/syntax.c
9851 Patch 7.2.419
9852 Problem:    Memory leak in Motif when clicking on "Search Vim Help".
9853 Solution:   Free string returned by XmTextGetString(). (Dominique Pelle)
9854 Files:      src/gui_motif.c
9856 Patch 7.2.420
9857 Problem:    ":argedit" does not accept "++enc=utf8" as documented. (Dominique
9858             Pelle)
9859 Solution:   Add the ARGOPT flag to ":argedit".
9860 Files:      src/ex_cmds.h
9862 Patch 7.2.421
9863 Problem:    Folds are sometimes not updated properly and there is no way to
9864             force an update.
9865 Solution:   Make "zx" and "zX" recompute folds (suggested by Christian
9866             Brabandt)
9867 Files:      src/normal.c
9869 Patch 7.2.422
9870 Problem:    May get E763 when using spell dictionaries.
9871 Solution:   Avoid utf-8 case folded character to be truncated to 8 bits and
9872             differ from latin1. (Dominique Pelle)
9873 Files:      src/spell.c
9875 Patch 7.2.423
9876 Problem:    Crash when assigning s: to variable. (Yukihiro Nakadaira)
9877 Solution:   Make ga_scripts contain pointer to scriptvar_T instead of
9878             scriptvar_T itself. (Dominique Pelle)
9879 Files:      src/eval.c
9881 Patch 7.2.424
9882 Problem:    ":colorscheme" without an argument doesn't do anything.
9883 Solution:   Make it echo the current color scheme name.  (partly by Christian
9884             Brabandt)
9885 Files:      runtime/doc/syntax.txt, src/ex_cmds.h, src/ex_docmd.c
9887 Patch 7.2.425
9888 Problem:    Some compilers complain about fourth EX() argument.
9889 Solution:   Add cast to long_u.
9890 Files:      src/ex_cmds.h
9892 Patch 7.2.426
9893 Problem:    Commas in 'langmap' are not always handled correctly.
9894 Solution:   Require commas to be backslash escaped. (James Vega)
9895 Files:      src/option.c
9897 Patch 7.2.427
9898 Problem:    The swapfile is created using the destination of a symlink, but
9899             recovery doesn't follow symlinks.
9900 Solution:   When recovering, resolve symlinks. (James Vega)
9901 Files:      src/memline.c
9903 Patch 7.2.428
9904 Problem:    Using setqflist([]) to clear the error list doesn't work properly.
9905 Solution:   Set qf_nonevalid to TRUE when appropriate. (Christian Brabandt)
9906 Files:      src/quickfix.c
9908 Patch 7.2.429
9909 Problem:    A file that exists but access is denied may result in a "new file"
9910             message.  E.g. when its directory is unreadable.
9911 Solution:   Specifically check for ENOENT to decide a file doesn't exist.
9912             (partly by James Vega)
9913 Files:      src/fileio.c
9915 Patch 7.2.430
9916 Problem:    The ++bad argument is handled wrong, resulting in an invalid
9917             memory access.
9918 Solution:   Use the bad_char field only for the replacement character, add
9919             bad_char_idx to store the position. (Dominique Pelle)
9920 Files:      src/eval.c, src/ex_cmds.h, src/ex_docmd.c
9922 Patch 7.2.431
9923 Problem:    ":amenu" moves the cursor when in Insert mode.
9924 Solution:   Use CTRL-\ CTRL-O instead of CTRL-O. (Christian Brabandt)
9925 Files:      src/menu.c
9927 Patch 7.2.432
9928 Problem:    When menus are translated they can only be found by the translated
9929             name.  That makes ":emenu" difficult to use.
9930 Solution:   Store the untranslated name and use it for completion and :emenu.
9931             (Liang Peng (Bezetek James), Edward L. Fox)
9932 Files:      src/menu.c, src/structs.h
9934 Patch 7.2.433
9935 Problem:    Can't use cscope with QuickFixCmdPre and QuickFixCmdPost.
9936 Solution:   Add cscope support for these autocmd events. (Bryan Venteicher)
9937 Files:      runtime/doc/autocmd.txt, src/if_cscope.c
9939 Patch 7.2.434 (after 7.2.432)
9940 Problem:    Compilation fails without the multi-lang feature.
9941 Solution:   Add #ifdefs. (John Marriott)
9942 Files:      src/menu.c
9944 Patch 7.2.435 (after 7.2.430)
9945 Problem:    Crash when using bad_char_idx uninitialized. (Patrick Texier)
9946 Solution:   Don't use bad_char_idx, reproduce the ++bad argument from bad_char.
9947 Files:      src/eval.c, src/ex_cmds.h, src/ex_docmd.c
9949 Patch 7.2.436
9950 Problem:    Reproducible crash in syntax HL. (George Reilly, Dominique Pelle)
9951 Solution:   Make sst_stacksize an int instead of short. (Dominique Pelle)
9952 Files:      src/structs.h
9954 Patch 7.2.437 (after 7.2.407)
9955 Problem:    When "\\\n" appears in the expression result the \n doesn't result
9956             in a line break. (Andy Wokula)
9957 Solution:   Also replace a \n after a backslash into \r.
9958 Files:      src/regexp.c
9960 Patch 7.2.438 (after 7.2.427)
9961 Problem:    "vim -r" crashes.
9962 Solution:   Don't use NULL pointer argument.
9963 Files:      src/memline.c
9965 Patch 7.2.439
9966 Problem:    Invalid memory access when doing thesaurus completion and
9967             'infercase' is set.
9968 Solution:   Use the minimal length of completed word and replacement.
9969             (Dominique Pelle)
9970 Files:      src/edit.c
9972 Patch 7.2.440
9973 Problem:    Calling a function through a funcref, where the function deletes
9974             the funcref, leads to an invalid memory access.
9975 Solution:   Make a copy of the function name. (Lech Lorens)
9976 Files:      src/eval.c, src/testdir/test34.in, src/testdir/test34.ok
9978 Patch 7.2.441
9979 Problem:    When using ":earlier" undo information may be wrong.
9980 Solution:   When changing alternate branches also adjust b_u_oldhead.
9981 Files:      src/undo.c
9983 Patch 7.2.442 (after 7.2.201)
9984 Problem:    Copy/paste with OpenOffice doesn't work.
9985 Solution:   Do not offer the HTML target when it is not supported. (James
9986             Vega)
9987 Files:      src/gui_gtk_x11.c, src/option.c, src/proto/gui_gtk_x11.pro
9989 Patch 7.2.443
9990 Problem:    Using taglist() on a tag file with duplicate fields generates an
9991             internal error. (Peter Odding)
9992 Solution:   Check for duplicate field names.
9993 Files:      src/eval.c, src/proto/eval.pro, src/tag.c
9995 Patch 7.2.444 (after 7.2.442)
9996 Problem:    Can't build with GTK 1, gtk_selection_clear_targets() is not
9997             available. (Patrick Texier)
9998 Solution:   Don't change the targets for GTK 1, set them once.
9999 Files:      src/gui_gtk_x11.c, src/option.c
10001 Patch 7.2.445
10002 Problem:    Crash when using undo/redo and a FileChangedRO autocmd event that
10003             reloads the buffer. (Dominique Pelle)
10004 Solution:   Do not allow autocommands while performing and undo or redo.
10005 Files:      src/misc1.c, src/undo.c
10007 Patch 7.2.446
10008 Problem:    Crash in GUI when closing the last window in a tabpage. (ryo7000)
10009 Solution:   Remove the tabpage from the list before freeing the window.
10010 Files:      src/window.c
10012 When writing a file, switching tab pages and selecting a word the file write
10013 message would be displayed again.  This happened in Insert mode and with
10014 'cmdheight' set to 2.
10016 When using ":lang" to set a locale that uses a comma for decimal separator and
10017 using GTK floating point numbers stop working.  Use gtk_disable_setlocale().
10018 (James Vega)
10020 "g8" didn't produce the right value on a NUL. (Dominique Pelle)
10022 Use BASEMODLIBS instead of MODLIBS for Python configuration to pick up the
10023 right compiler flags. (Michael Bienia)
10025 Window title was not updated after dropping a file on Vim. (Hari G)
10027 synstack() did not return anything when just past the end of the line.  Useful
10028 when using the cursor position in Insert mode.
10030 When entering a digraph or special character after a line that fits the window
10031 the '?' or '^' on the next line is not redrawn. (Ian Kelling)
10033 Composing characters in |:s| substitute text were dropped.
10035 |exists()| was causing an autoload script to be loaded.
10037 Filter out -pthread for cproto.
10039 Make CTRL-L in command line mode respect 'ignorecase' and 'smartcase'. (Martin
10040 Toft)
10042 Spell menu moved the cursor, causing Copy not to work.  Spell replacement
10043 didn't work in 'compatible' mode.
10045 Various small fixes from Dominique Pelle.
10047 Fix that :mksession may generate "2argu" even though there is no such
10048 argument. (Peter Odding)
10050 Fixes for time in clipboard request.  Also fix ownership.  (David Fries)
10052 Fixed completion of file names with '%' and '*'.
10054 Fixed MSVC makefile use of /Wp64 flag.
10056 Correct use of long instead of off_t for file size. (James Vega)
10058 Add a few #ifdefs to exclude functions that are not used. (Dominique Pelle)
10060 Remove old and unused method to allocate memory for undo.
10062 Fix definition of UINT_PTR for 64 bit systems.
10064 Some versions of Ruby redefine rb_str_new2 to rb_str_new_cstr.
10066 Window title not updated after file dropped.
10068 Fixed crash for ":find" completion, might also happen in other path expansion
10069 usage.
10071 When 'searchhl' causes a hang make CTRL-C disable 'searchhl'.
10073 When resetting both 'title' and 'icon' the title would be set after a shell
10074 command.
10076 Reset 'title' and 'icon' in test47 to avoid the xterm title getting messed up.
10078 Fix for compiler warning about function prototype in pty.c.
10080 Added 'window' to the options window.
10082 Fixed: errors for allocating zero bytes when profiling an empty function.
10084 Remove -arch flag from build flags for Perl. (Bjorn Wickler)
10086 Fix 'autochdir' not showing up in :options window. (Dominique Pelle)
10088 Fix: test 69 didn't work on MS-Windows.  Test 72 beeped too often.
10090 Avoid illegal memory access in spell suggestion. (Dominique Pelle)
10091 Fix: crash in spell checking with a 0x300 character.
10093 Avoid that running tests changes viminfo.
10095 Fix: changing case of a character removed combining characters.
10096 Fixed: CTRL-R in Insert mode doesn't insert composing characters.
10098 Added the WOW64 flag to OLE registration, for 64 bit Windows systems.
10100 Various fixes for coverity warnings.
10102 Fix compile warnings, esp. for 64-bit systems.  (Mike Williams)
10104 Fix: :redir to a dictionary that is changed before ":redir END" causes a
10105 memory access error.
10107 Fix: terminal title not properly restored when there are multi-byte
10108 characters.  (partly by James Vega)
10110 Set 'wrapscan' when checking the .po files. (Mike Williams)
10112 Win32: Put quotes around the gvim.exe path for the "Open with" menu entry.
10114 On MS-Windows sometimes files with number 4913 or higher are left behind.
10116 'suffixesadd' was used for finding tags file.
10118 Removed unused code.
10120 Improved positioning of combining characters in GTK.
10122 Made test 11 pass when there is no gzip program. (John Beckett)
10124 Changed readfile() to ignore byte order marks, unless in binary mode.
10126 On MS-Windows completion of shell commands didn't work.
10128 An unprintable multi-byte character at the start of the screen line caused the
10129 following text to be drawn at the wrong position.
10131 Got ml_get errors when using undo with 'virtualedit'.
10133 Call gui_mch_update() before triggering GuiEnter autocmd. (Ron Aaron)
10135 Unix "make install" installed a few Amiga .info files.
10137 Disallow setting 'ambiwidth' to "double" when 'listchars' or 'fillchars'
10138 contains a character that would become double width.
10140 Set 'wrapscan' when checking the .po files. (Mike Williams)
10142 Fixed: using expression in command line may cause a crash.
10144 Avoid warnings from the clang compiler. (Dominique Pelle)
10146 Fix: Include wchar.h in charset.c for towupper().
10148 Fixed: Using ":read file" in an empty buffer when 'compatible' is set caused
10149 an error.  Was caused by patch 7.2.132.
10151 Make the references to features in the help more consistent. (Sylvain Hitier)
10154  vim:tw=78:ts=8:ft=help:norl: