Merge branch 'vim-with-runtime' into feat/code-check
[vim_extended.git] / runtime / doc / version7.txt
blob7784075d8d0b6bbe68c6a5042aa91987ee70356a
1 *version7.txt*  For Vim version 7.2.  Last change: 2010 May 14
4                   VIM REFERENCE MANUAL    by Bram Moolenaar
6                                                                         *vim7*
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|
60 Changed                                 |changed-7.3|
61 Added                                   |added-7.3|
62 Fixed                                   |fixed-7.3|
64 ==============================================================================
65 INCOMPATIBLE CHANGES                            *incompatible-7*
67 These changes are incompatible with previous releases.  Check this list if you
68 run into a problem when upgrading from Vim 6.x to 7.0.
70 A ":write file" command no longer resets the 'modified' flag of the buffer,
71 unless the '+' flag is in 'cpoptions' |cpo-+|.  This was illogical, since the
72 buffer is still modified compared to the original file.  And when undoing
73 all changes the file would actually be marked modified.  It does mean that
74 ":quit" fails now.
76 ":helpgrep" now uses a help window to display a match.
78 In an argument list double quotes could be used to include spaces in a file
79 name.  This caused a difference between ":edit" and ":next" for escaping
80 double quotes and it is incompatible with some versions of Vi.
81         Command                 Vim 6.x file name       Vim 7.x file name ~
82         :edit foo\"888          foo"888                 foo"888
83         :next foo\"888          foo888                  foo"888
84         :next a\"b c\"d         ab cd                   a"b  and  c"d
86 In a |literal-string| a single quote can be doubled to get one.
87 ":echo 'a''b'" would result in "a b", but now that two quotes stand for one it
88 results in "a'b".
90 When overwriting a file with ":w! fname" there was no warning for when "fname"
91 was being edited by another Vim.  Vim now gives an error message |E768|.
93 The support for Mac OS 9 has been removed.
95 Files ending in .tex now have 'filetype' set to "context", "plaintex", or
96 "tex".  |ft-tex-plugin|
99 Minor incompatibilities:
101 For filetype detection: For many types, use */.dir/filename instead of
102 ~/.dir/filename, so that it also works for other user's files.
104 For quite a few filetypes the indent settings have been moved from the
105 filetype plugin to the indent plugin.  If you used: >
106         :filetype plugin on
107 Then some indent settings may be missing.  You need to use: >
108         :filetype plugin indent on
110 ":0verbose" now sets 'verbose' to zero instead of one.
112 Removed the old and incomplete "VimBuddy" code.
114 Buffers without a name report "No Name" instead of "No File".  It was
115 confusing for buffers with a name and 'buftype' set to "nofile".
117 When ":file xxx" is used in a buffer without a name, the alternate file name
118 isn't set.  This avoids creating buffers without a name, they are not useful.
120 The "2html.vim" script now converts closed folds to HTML.  This means the HTML
121 looks like it's displayed, with the same folds open and closed.  Use "zR", or
122 "let html_ignore_folding=1", if no folds should appear in the HTML. (partly by
123 Carl Osterwisch)
124 Diff mode is now also converted to HTML as it is displayed.
126 Win32: The effect of the <F10> key depended on 'winaltkeys'.  Now it depends
127 on whether <F10> has been mapped or not.  This allows mapping <F10> without
128 changing 'winaltkeys'.
130 When 'octal' is in 'nrformats' and using CTRL-A on "08" it became "018", which
131 is illogical.  Now it becomes "9".  The leading zero(s) is(are) removed to
132 avoid the number becoming octal after incrementing "009" to "010".
134 When 'encoding' is set to a Unicode encoding, the value for 'fileencodings'
135 now includes "default" before "latin1".  This means that for files with 8-bit
136 encodings the default is to use the encoding specified by the environment, if
137 possible.  Previously latin1 would always be used, which is wrong in a
138 non-latin1 environment, such as Russian.
140 Previously Vim would exit when there are two windows, both of them displaying
141 a help file, and using ":quit".  Now only the window is closed.
143 "-w {scriptout}" only works when {scriptout} doesn't start with a digit.
144 Otherwise it's used to set the 'window' option.
146 Previously <Home> and <xHome> could be mapped separately.  This had the
147 disadvantage that all mappings (with modifiers) had to be duplicated, since
148 you can't be sure what the keyboard generates.  Now all <xHome> are internally
149 translated to <Home>, both for the keys and for mappings.  Also for <xEnd>,
150 <xF1>, etc.
152 ":put" now leaves the cursor on the last inserted line.
154 When a .gvimrc file exists then 'compatible' is off, just like when a ".vimrc"
155 file exists.
157 When making a string upper-case with "vlllU" or similar then the German sharp
158 s is replaced with "SS".  This does not happen with "~" to avoid backwards
159 compatibility problems and because "SS" can't be changed back to a sharp s.
161 "gd" previously found the very first occurrence of a variable in a function,
162 that could be the function argument without type.  Now it finds the position
163 where the type is given.
165 The line continuation in functions was not taken into account, line numbers in
166 errors were logical lines, not lines in the sourced file.  That made it
167 difficult to locate errors.  Now the line number in the sourced file is
168 reported, relative to the function start.  This also means that line numbers
169 for ":breakadd func" are different.
171 When defining a user command with |:command| the special items could be
172 abbreviated.  This caused unexpected behavior, such as <li> being recognized
173 as <line1>.  The items can no longer be abbreviated.
175 When executing a FileChangedRO autocommand it is no longer allowed to switch
176 to another buffer or edit another file.  This is to prevent crashes (the event
177 is triggered deep down in the code where changing buffers is not anticipated).
178 It is still possible to reload the buffer.
180 At the |more-prompt| and the |hit-enter-prompt|, when the 'more' option is
181 set, the 'k', 'u', 'g' and 'b' keys are now used to scroll back to previous
182 messages.  Thus they are no longer used as typeahead.
184 ==============================================================================
185 NEW FEATURES                                            *new-7*
187 Vim script enhancements                                 *new-vim-script*
188 -----------------------
190 In Vim scripts the following types have been added:
192         |List|          ordered list of items
193         |Dictionary|    associative array of items
194         |Funcref|       reference to a function
196 Many functions and commands have been added to support the new types.
198 The |string()| function can be used to get a string representation of a
199 variable.  Works for Numbers, Strings and composites of them.  Then |eval()|
200 can be used to turn the string back into the variable value.
202 The |:let| command can now use "+=", "-=" and ".=": >
203         :let var += expr        " works like :let var = var + expr
204         :let var -= expr        " works like :let var = var - expr
205         :let var .= string      " works like :let var = var . string
207 With the |:profile| command you can find out where your function or script
208 is wasting time.
210 In the Python interface vim.eval() also handles Dictionaries and Lists.
211 |python-eval| (G. Sumner Hayes)
213 The |getscript| plugin was added as a convenient way to update scripts from
214 www.vim.org automatically. (Charles Campbell)
216 The |vimball| plugin was added as a convenient way to distribute a set of
217 files for a plugin (plugin file, autoload script, documentation). (Charles
218 Campbell)
221 Spell checking                                          *new-spell*
222 --------------
224 Spell checking has been integrated in Vim.  There were a few implementations
225 with scripts, but they were slow and/or required an external program.
227 The 'spell'        option is used to switch spell checking on or off
228 The 'spelllang'    option is used to specify the accepted language(s)
229 The 'spellfile'    option specifies where new words are added
230 The 'spellsuggest' option specifies the methods used for making suggestions
232 The |]s| and |[s| commands can be used to move to the next or previous error
233 The |zg| and |zw| commands can be used to add good and wrong words
234 The |z=|          command can be used to list suggestions and correct the word
235 The |:mkspell|    command is used to generate a Vim spell file from word lists
237 The "undercurl" highlighting attribute was added to nicely point out spelling
238 mistakes in the GUI (based on patch from Marcin Dalecki).
239 The "guisp" color can be used to give it a color different from foreground and
240 background.
241 The number of possible different highlight attributes was raised from about
242 220 to over 30000.  This allows for the attributes of spelling to be combined
243 with syntax highlighting attributes.  This is also used for syntax
244 highlighting and marking the Visual area.
246 Much more info here: |spell|.
249 Omni completion                                 *new-omni-completion*
250 ---------------
252 This could also be called "intellisense", but that is a trademark.  It is a
253 smart kind of completion.  The text in front of the cursor is inspected to
254 figure out what could be following.  This may suggest struct and class
255 members, system functions, etc.
257 Use CTRL-X CTRL-O in Insert mode to start the completion.  |i_CTRL-X_CTRL-O|
259 The 'omnifunc' option is set by filetype plugins to define the function that
260 figures out the completion.
262 Currently supported languages:
263         C                                       |ft-c-omni|
264         (X)HTML with CSS                        |ft-html-omni|
265         JavaScript                              |ft-javascript-omni|
266         PHP                                     |ft-php-omni|
267         Python
268         Ruby                                    |ft-ruby-omni|
269         SQL                                     |ft-sql-omni|
270         XML                                     |ft-xml-omni|
271         any language with syntax highlighting   |ft-syntax-omni|
273 You can add your own omni completion scripts.
275 When the 'completeopt' option contains "menu" then matches for Insert mode
276 completion are displayed in a (rather primitive) popup menu.
279 MzScheme interface                                      *new-MzScheme*
280 ------------------
282 The MzScheme interpreter is supported. |MzScheme|
284 The |:mzscheme| command can be used to execute MzScheme commands
285 The |:mzfile|   command can be used to execute an MzScheme script file
287 This depends on Vim being compiled with the |+mzscheme| feature.
290 Printing multi-byte text                                *new-print-multi-byte*
291 ------------------------
293 The |:hardcopy| command now supports printing multi-byte characters when using
294 PostScript.
296 The 'printmbcharset' and 'printmbfont' options are used for this.
297 Also see |postscript-cjk-printing|.  (Mike Williams)
300 Tab pages                                               *new-tab-pages*
301 ---------
303 A tab page is page with one or more windows with a label (aka tab) at the top.
304 By clicking on the label you can quickly switch between the tab pages.  And
305 with the keyboard, using the |gt| (Goto Tab) command.  This is a convenient
306 way to work with many windows.
308 To start Vim with each file argument in a separate tab page use the |-p|
309 argument.  The maximum number of pages can be set with 'tabpagemax'.
311 The line with tab labels is either made with plain text and highlighting or
312 with a GUI mechanism.  The GUI labels look better but are only available on a
313 few systems.  The line can be customized with 'tabline', 'guitablabel' and
314 'guitabtooltip'.  Whether it is displayed is set with 'showtabline'.  Whether
315 to use the GUI labels is set with the "e" flag in 'guioptions'.
317 The |:tab| command modifier can be used to have most commands that open a new
318 window open a new tab page instead.
320 The |--remote-tab| argument can be used to edit a file in a new tab page in an
321 already running Vim server.
323 Variables starting with "t:" are local to a tab page.
325 More info here: |tabpage|
326 Most of the GUI stuff was implemented by Yegappan Lakshmanan.
329 Undo branches                                           *new-undo-branches*
330 -------------
332 Previously there was only one line of undo-redo.  If, after undoing a number
333 of changes, a new change was made all the undone changes were lost.  This
334 could lead to accidentally losing work.
336 Vim now makes an undo branch in this situation.  Thus you can go back to the
337 text after any change, even if they were undone.  So long as you do not run
338 into 'undolevels', when undo information is freed up to limit the memory used.
340 To be able to navigate the undo branches each change is numbered sequentially.
341 The commands |g-| and |:earlier| go back in time, to older changes.  The
342 commands |g+| and |:later| go forward in time, to newer changes.
344 The changes are also timestamped.  Use ":earlier 10m" to go to the text as it
345 was about ten minutes earlier.
347 The |:undolist| command can be used to get an idea of which undo branches
348 exist.  The |:undo| command now takes an argument to directly jump to a
349 specific position in this list.  The |changenr()| function can be used to
350 obtain the change number.
352 There is no graphical display of the tree with changes, navigation can be
353 quite confusing.
356 Extended Unicode support                                *new-more-unicode*
357 ------------------------
359 Previously only two combining characters were displayed.  The limit is now
360 raised to 6.  This can be set with the 'maxcombine' option.  The default is
361 still 2.
363 |ga| now shows all combining characters, not just the first two.
365 Previously only 16 bit Unicode characters were supported for displaying.  Now
366 the full 32 bit character set can be used.  Unless manually disabled at
367 compile time to save a bit of memory.
369 For pattern matching it is now possible to search for individual composing
370 characters. |patterns-composing|
372 The |8g8| command searches for an illegal UTF-8 byte sequence.
375 More highlighting                               *new-more-highlighting*
376 -----------------
378 Highlighting matching parens:
380 When moving the cursor through the text and it is on a paren, then the
381 matching paren can be highlighted.  This uses the new |CursorMoved|
382 autocommand event.
384 This means some commands are executed every time you move the cursor.  If this
385 slows you down too much switch it off with: >
386         :NoMatchParen
388 See |matchparen| for more information.
390 The plugin uses the |:match| command.  It now supports three match patterns.
391 The plugin uses the third one.  The first one is for the user and the second
392 one can be used by another plugin.
394 Highlighting the cursor line and column:
396 The 'cursorline' and 'cursorcolumn' options have been added.  These highlight
397 the screen line and screen column of the cursor.  This makes the cursor
398 position easier to spot.  'cursorcolumn' is also useful to align text.  This
399 may make screen updating quite slow.  The CursorColumn and CursorLine
400 highlight groups allow changing the colors used.  |hl-CursorColumn|
401 |hl-CursorLine|
403 The number of possible different highlight attributes was raised from about
404 220 to over 30000.  This allows for the attributes of spelling to be combined
405 with syntax highlighting attributes.  This is also used for syntax
406 highlighting, marking the Visual area, CursorColumn, etc.
409 Translated manual pages                                 *new-manpage-trans*
410 -----------------------
412 The manual page of Vim and associated programs is now also available in
413 several other languages.
415 French  - translated by David Blanchet
416 Italian - translated by Antonio Colombo
417 Russian - translated by Vassily Ragosin
418 Polish  - translated by Mikolaj Machowski
420 The Unix Makefile installs the Italian manual pages in .../man/it/man1/,
421 .../man/it.ISO8859-1/man1/ and .../man/it.UTF-8/man1/.  There appears to be no
422 standard for what encoding goes in the "it" directory, the 8-bit encoded file
423 is used there as a best guess.
424 Other languages are installed in similar places.
425 The translated pages are not automatically installed when Vim was configured
426 with "--disable-nls", but "make install-languages install-tool-languages" will
427 do it anyway.
430 Internal grep                                           *new-vimgrep*
431 -------------
433 The ":vimgrep" command can be used to search for a pattern in a list of files.
434 This is like the ":grep" command, but no external program is used.  Besides
435 better portability, handling of different file encodings and using multi-line
436 patterns, this also allows grepping in compressed and remote files.
437 |:vimgrep|.
439 If you want to use the search results in a script you can use the
440 |getqflist()| function.
442 To grep files in various directories the "**" pattern can be used.  It expands
443 into an arbitrary depth of directories.  "**" can be used in all places where
444 file names are expanded, thus also with |:next| and |:args|.
447 Scroll back in messages                                 *new-scroll-back*
448 -----------------------
450 When displaying messages, at the |more-prompt| and the |hit-enter-prompt|, The
451 'k', 'u', 'g' and 'b' keys can be used to scroll back to previous messages.
452 This is especially useful for commands such as ":syntax", ":autocommand" and
453 ":highlight".  This is implemented in a generic way thus it works for all
454 commands and highlighting is kept.  Only works when the 'more' option is set.
455 Previously it only partly worked for ":clist".
457 The |g<| command can be used to see the last page of messages after you have
458 hit <Enter> at the |hit-enter-prompt|.  Then you can scroll further back.
461 Cursor past end of the line                             *new-onemore*
462 ---------------------------
464 When the 'virtualedit' option contains "onemore" the cursor can move just past
465 the end of the line.  As if it's on top of the line break.
467 This makes some commands more consistent.  Previously the cursor was always
468 past the end of the line if the line was empty.  But it is far from Vi
469 compatible.  It may also break some plugins or Vim scripts.  Use with care!
471 The patch was provided by Mattias Flodin.
474 POSIX compatibility                                     *new-posix*
475 -------------------
477 The POSIX test suite was used to verify POSIX compatibility.  A number of
478 problems have been fixed to make Vim more POSIX compatible.  Some of them
479 conflict with traditional Vi or expected behavior.  The $VIM_POSIX environment
480 variable can be set to get POSIX compatibility.  See |posix|.
482 Items that were fixed for both Vi and POSIX compatibility:
483 - repeating "R" with a count only overwrites text once; added the 'X' flag to
484   'cpoptions' |cpo-X|
485 - a vertical movement command that moves to a non-existing line fails; added
486   the '-' flag to 'cpoptions' |cpo--|
487 - when preserving a file and doing ":q!" the file can be recovered; added the
488   '&' flag to 'cpoptions' |cpo-&|
489 - The 'window' option is partly implemented.  It specifies how much CTRL-F and
490   CTRL-B scroll when there is one window.  The "-w {number}" argument is now
491   accepted.  "-w {scriptout}" only works when {scriptout} doesn't start with a
492   digit.
493 - Allow "-c{command}" argument, no space between "-c" and {command}.
494 - When writing a file with ":w!" don't reset 'readonly' when 'Z' is present in
495   'cpoptions'.
496 - Allow 'l' and '#' flags for ":list", ":print" and ":number".
497 - Added the '.' flag to 'cpoptions': ":cd" fails when the buffer is modified.
498 - In Ex mode with an empty buffer ":read file" doesn't keep an empty line
499   above or below the new lines.
500 - Remove a backslash before a NL for the ":global" command.
501 - When ":append", ":insert" or ":change" is used with ":global", get the
502   inserted lines from the command.  Can use backslash-NL to separate lines.
503 - Can use ":global /pat/ visual" to execute Normal mode commands at each
504   matched line.  Use "Q" to continue and go to the next line.
505 - The |:open| command has been partially implemented.  It stops Ex mode, but
506   redraws the whole screen, not just one line as open mode is supposed to do.
507 - Support using a pipe to read the output from and write input to an external
508   command.  Added the 'shelltemp' option and has("filterpipe").
509 - In ex silent mode the ":set" command output is displayed.
510 - The ":@@" and ":**" give an error message when no register was used before.
511 - The search pattern "[]-`]" matches ']', '^', '_' and '`'.
512 - Autoindent for ":insert" is using the line below the insert.
513 - Autoindent for ":change" is using the first changed line.
514 - Editing Ex command lines is not done in cooked mode, because CTRL-D and
515   CTRL-T cannot be handled then.
516 - In Ex mode, "1,3" prints three lines.  "%" prints all lines.
517 - In Ex mode "undo" would undo all changes since Ex mode was started.
518 - Implemented the 'prompt' option.
521 Debugger support                                        *new-debug-support*
522 ----------------
524 The 'balloonexpr' option has been added.  This is a generic way to implement
525 balloon functionality.  You can use it to show info for the word under the
526 mouse pointer.
529 Remote file explorer                                    *new-netrw-explore*
530 --------------------
532 The netrw plugin now also supports viewing a directory, when "scp://" is used.
533 Deleting and renaming files is possible.
535 To avoid duplicating a lot of code, the previous file explorer plugin has been
536 integrated in the netrw plugin.  This means browsing local and remote files
537 works the same way.
539 ":browse edit" and ":browse split" use the netrw plugin when it's available
540 and a GUI dialog is not possible.
542 The netrw plugin is maintained by Charles Campbell.
545 Define an operator                                      *new-define-operator*
546 ------------------
548 Previously it was not possible to define your own operator; a command that is
549 followed by a {motion}.  Vim 7 introduces the 'operatorfunc' option and the
550 |g@| operator.  This makes it possible to define a mapping that works like an
551 operator.  The actual work is then done by a function, which is invoked
552 through the |g@| operator.
554 See |:map-operator| for the explanation and an example.
557 Mapping to an expression                                *new-map-expression*
558 ------------------------
560 The {rhs} argument of a mapping can be an expression.  That means the
561 resulting characters can depend on the context.  Example: >
562         :inoremap <expr> . InsertDot()
563 Here the dot will be mapped to whatever InsertDot() returns.
565 This also works for abbreviations.  See |:map-<expr>| for the details.
568 Visual and Select mode mappings                         *new-map-select*
569 -------------------------------
571 Previously Visual mode mappings applied both to Visual and Select mode.  With
572 a trick to have the mappings work in Select mode like they would in Visual
573 mode.
575 Commands have been added to define mappings for Visual and Select mode
576 separately: |:xmap| and |:smap|.  With the associated "noremap" and "unmap"
577 commands.
579 The same is done for menus: |:xmenu|, |:smenu|, etc.
582 Location list                                           *new-location-list*
583 -------------
585 The support for a per-window quickfix list (location list) is added. The
586 location list can be displayed in a location window (similar to the quickfix
587 window).  You can open more than one location list window.  A set of commands
588 similar to the quickfix commands are added to browse the location list.
589 (Yegappan Lakshmanan)
592 Various new items                                       *new-items-7*
593 -----------------
595 Normal mode commands: ~
597 a", a' and a`           New text objects to select quoted strings. |a'|
598 i", i' and i`           (Taro Muraoka)
600 CTRL-W <Enter>          In the quickfix window: opens a new window to show the
601                         location of the error under the cursor.
603 |at| and |it| text objects select a block of text between HTML or XML tags.
605 <A-LeftMouse> ('mousemodel' "popup" or "popup-setpos")
606 <A-RightMouse> ('mousemodel' "extend")
607                         Make a blockwise selection. |<A-LeftMouse>|
609 gF                      Start editing the filename under the cursor and jump
610                         to the line number following the file name.
611                         (Yegappan Lakshmanan)
613 CTRL-W F                Start editing the filename under the cursor in a new
614                         window and jump to the line number following the file
615                         name.  (Yegappan Lakshmanan)
617 Insert mode commands: ~
619 CTRL-\ CTRL-O           Execute a Normal mode command.  Like CTRL-O but
620                         without moving the cursor. |i_CTRL-\_CTRL-O|
622 Options: ~
624 'balloonexpr'           expression for text to show in evaluation balloon
625 'completefunc'          The name of the function used for user-specified
626                         Insert mode completion.  CTRL-X CTRL-U can be used in
627                         Insert mode to do any kind of completion.  (Taro
628                         Muraoka)
629 'completeopt'           Enable popup menu and other settings for Insert mode
630                         completion.
631 'cursorcolumn'          highlight column of the cursor
632 'cursorline'            highlight line of the cursor
633 'formatexpr'            expression for formatting text with |gq| and when text
634                         goes over 'textwidth' in Insert mode.
635 'formatlistpat'         pattern to recognize a numbered list for formatting.
636                         (idea by Hugo Haas)
637 'fsync'                 Whether fsync() is called after writing a file.
638                         (Ciaran McCreesh)
639 'guitablabel'           expression for text to display in GUI tab page label
640 'guitabtooltip'         expression for text to display in GUI tab page tooltip
641 'macatsui'              Mac: use ATSUI text display functions
642 'maxcombine'            maximum number of combining characters displayed
643 'maxmempattern'         maximum amount of memory to use for pattern matching
644 'mkspellmem'            parameters for |:mkspell| memory use
645 'mzquantum'             Time in msec to schedule MzScheme threads.
646 'numberwidth'           Minimal width of the space used for the 'number'
647                         option. (Emmanuel Renieris)
648 'omnifunc'              The name of the function used for omni completion.
649 'operatorfunc'          function to be called for |g@| operator
650 'printmbcharset'        CJK character set to be used for :hardcopy
651 'printmbfont'           font names to be used for CJK output of :hardcopy
652 'pumheight'             maximum number of items to show in the popup menu
653 'quoteescape'           Characters used to escape quotes inside a string.
654                         Used for the a", a' and a` text objects. |a'|
655 'shelltemp'             whether to use a temp file or pipes for shell commands
656 'showtabline'           whether to show the tab pages line
657 'spell'                 switch spell checking on/off
658 'spellcapcheck'         pattern to locate the end of a sentence
659 'spellfile'             file where good and wrong words are added
660 'spelllang'             languages to check spelling for
661 'spellsuggest'          methods for spell suggestions
662 'synmaxcol'             maximum column to look for syntax items; avoids very
663                         slow redrawing when there are very long lines
664 'tabline'               expression for text to display in the tab pages line
665 'tabpagemax'            maximum number of tab pages to open for |-p|
666 'verbosefile'           Log messages in a file.
667 'wildoptions'           "tagfile" value enables listing the file name of
668                         matching tags for CTRL-D command line completion.
669                         (based on an idea from Yegappan Lakshmanan)
670 'winfixwidth'           window with fixed width, similar to 'winfixheight'
673 Ex commands: ~
675 Win32: The ":winpos" command now also works in the console. (Vipin Aravind)
677 |:startreplace|         Start Replace mode. (Charles Campbell)
678 |:startgreplace|        Start Virtual Replace mode.
680 |:0file|                Removes the name of the buffer. (Charles Campbell)
682 |:diffoff|              Switch off diff mode in the current window or in all
683                         windows.
685 |:delmarks|             Delete marks.
687 |:exusage|              Help for Ex commands (Nvi command).
688 |:viusage|              Help for Vi commands (Nvi command).
690 |:sort|                 Sort lines in the buffer without depending on an
691                         external command. (partly by Bryce Wagner)
693 |:vimgrep|              Internal grep command, search for a pattern in files.
694 |:vimgrepadd|           Like |:vimgrep| but don't make a new list.
696 |:caddfile|             Add error messages to an existing quickfix list
697                         (Yegappan Lakshmanan).
698 |:cbuffer|              Read error lines from a buffer. (partly by Yegappan
699                         Lakshmanan)
700 |:cgetbuffer|           Create a quickfix list from a buffer but don't jump to
701                         the first error.
702 |:caddbuffer|           Add errors from the current buffer to the quickfix
703                         list.
704 |:cexpr|                Read error messages from a Vim expression (Yegappan
705                         Lakshmanan).
706 |:caddexpr|             Add error messages from a Vim expression to an
707                         existing quickfix list. (Yegappan Lakshmanan).
708 |:cgetexpr|             Create a quickfix list from a Vim expression, but
709                         don't jump to the first error. (Yegappan Lakshmanan).
711 |:lfile|                Like |:cfile| but use the location list.
712 |:lgetfile|             Like |:cgetfile| but use the location list.
713 |:laddfile|             Like |:caddfile| but use the location list.
714 |:lbuffer|              Like |:cbuffer| but use the location list.
715 |:lgetbuffer|           Like |:cgetbuffer| but use the location list.
716 |:laddbuffer|           Like |:caddbuffer| but use the location list.
717 |:lexpr|                Like |:cexpr| but use the location list.
718 |:lgetexpr|             Like |:cgetexpr| but use the location list.
719 |:laddexpr|             Like |:caddexpr| but use the location list.
720 |:ll|                   Like |:cc| but use the location list.
721 |:llist|                Like |:clist| but use the location list.
722 |:lnext|                Like |:cnext| but use the location list.
723 |:lprevious|            Like |:cprevious| but use the location list.
724 |:lNext|                Like |:cNext| but use the location list.
725 |:lfirst|               Like |:cfirst| but use the location list.
726 |:lrewind|              Like |:crewind| but use the location list.
727 |:llast|                Like |:clast| but use the location list.
728 |:lnfile|               Like |:cnfile| but use the location list.
729 |:lpfile|               Like |:cpfile| but use the location list.
730 |:lNfile|               Like |:cNfile| but use the location list.
731 |:lolder|               Like |:colder| but use the location list.
732 |:lnewer|               Like |:cnewer| but use the location list.
733 |:lwindow|              Like |:cwindow| but use the location list.
734 |:lopen|                Like |:copen| but use the location list.
735 |:lclose|               Like |:cclose| but use the location list.
736 |:lmake|                Like |:make| but use the location list.
737 |:lgrep|                Like |:grep| but use the location list.
738 |:lgrepadd|             Like |:grepadd| but use the location list.
739 |:lvimgrep|             Like |:vimgrep| but use the location list.
740 |:lvimgrepadd|          Like |:vimgrepadd| but use the location list.
741 |:lhelpgrep|            Like |:helpgrep| but use the location list.
742 |:lcscope|              Like |:cscope| but use the location list.
743 |:ltag|                 Jump to a tag and add matching tags to a location list.
745 |:undojoin|             Join a change with the previous undo block.
746 |:undolist|             List the leafs of the undo tree.
748 |:earlier|              Go back in time for changes in the text.
749 |:later|                Go forward in time for changes in the text.
751 |:for|                  Loop over a |List|.
752 |:endfor|
754 |:lockvar|              Lock a variable, prevents it from being changed.
755 |:unlockvar|            Unlock a locked variable.
757 |:mkspell|              Create a Vim spell file.
758 |:spellgood|            Add a word to the list of good words.
759 |:spellwrong|           Add a word to the list of bad words
760 |:spelldump|            Dump list of good words.
761 |:spellinfo|            Show information about the spell files used.
762 |:spellrepall|          Repeat a spelling correction for the whole buffer.
763 |:spellundo|            Remove a word from list of good and bad words.
765 |:mzscheme|             Execute MzScheme commands.
766 |:mzfile|               Execute an MzScheme script file.
768 |:nbkey|                Pass a key to NetBeans for processing.
770 |:profile|              Commands for Vim script profiling.
771 |:profdel|              Stop profiling for specified items.
773 |:smap|                 Select mode mapping.
774 |:smapclear|
775 |:snoremap|
776 |:sunmap|
778 |:xmap|                 Visual mode mapping, not used for Select mode.
779 |:xmapclear|
780 |:xnoremap|
781 |:xunmap|
783 |:smenu|                Select mode menu.
784 |:snoremenu|
785 |:sunmenu|
787 |:xmenu|                Visual mode menu, not used for Select mode.
788 |:xnoremenu|
789 |:xunmenu|
791 |:tabclose|             Close the current tab page.
792 |:tabdo|                Perform a command in every tab page.
793 |:tabedit|              Edit a file in a new tab page.
794 |:tabnew|               Open a new tab page.
795 |:tabfind|              Search for a file and open it in a new tab page.
796 |:tabnext|              Go to the next tab page.
797 |:tabprevious|          Go to the previous tab page.
798 |:tabNext|              Go to the previous tab page.
799 |:tabfirst|             Go to the first tab page.
800 |:tabrewind|            Go to the first tab page.
801 |:tablast|              Go to the last tab page.
802 |:tabmove|              Move the current tab page elsewhere.
803 |:tabonly|              Close all other tab pages.
804 |:tabs|                 List the tab pages and the windows they contain.
806 Ex command modifiers: ~
808 |:keepalt|              Do not change the alternate file.
810 |:noautocmd|            Do not trigger autocommand events.
812 |:sandbox|              Execute a command in the sandbox.
814 |:tab|                  When opening a new window create a new tab page.
817 Ex command arguments: ~
819 |++bad|                 Specify what happens with characters that can't be
820                         converted and illegal bytes. (code example by Yasuhiro
821                         Matsumoto)
822                         Also, when a conversion error occurs or illegal bytes
823                         are found include the line number in the error
824                         message.
827 New and extended functions: ~
829 |add()|                 append an item to a List
830 |append()|              append List of lines to the buffer
831 |argv()|                without an argument return the whole argument list
832 |browsedir()|           dialog to select a directory
833 |bufnr()|               takes an extra argument: create buffer
834 |byteidx()|             index of a character (Ilya Sher)
835 |call()|                call a function with List as arguments
836 |changenr()|            number of current change
837 |complete()|            set matches for Insert mode completion
838 |complete_add()|        add match for 'completefunc'
839 |complete_check()|      check for key pressed, for 'completefunc'
840 |copy()|                make a shallow copy of a List or Dictionary
841 |count()|               count nr of times a value is in a List or Dictionary
842 |cursor()|              also accepts an offset for 'virtualedit', and
843                         the first argument can be a list: [lnum, col, off]
844 |deepcopy()|            make a full copy of a List or Dictionary
845 |diff_filler()|         returns number of filler lines above line {lnum}.
846 |diff_hlID()|           returns the highlight ID for diff mode
847 |empty()|               check if List or Dictionary is empty
848 |eval()|                evaluate {string} and return the result
849 |extend()|              append one List to another or add items from one
850                         Dictionary to another
851 |feedkeys()|            put characters in the typeahead buffer
852 |filter()|              remove selected items from a List or Dictionary
853 |finddir()|             find a directory in 'path'
854 |findfile()|            find a file in 'path' (Johannes Zellner)
855 |foldtextresult()|      the text displayed for a closed fold at line "lnum"
856 |function()|            make a Funcref out of a function name
857 |garbagecollect()|      cleanup unused |Lists| and |Dictionaries| with circular
858                         references
859 |get()|                 get an item from a List or Dictionary
860 |getbufline()|          get a list of lines from a specified buffer
861                         (Yegappan Lakshmanan)
862 |getcmdtype()|          return the current command-line type
863                         (Yegappan Lakshmanan)
864 |getfontname()|         get actual font name being used
865 |getfperm()|            get file permission string (Nikolai Weibull)
866 |getftype()|            get type of file (Nikolai Weibull)
867 |getline()|             with second argument: get List with buffer lines
868 |getloclist()|          list of location list items (Yegappan Lakshmanan)
869 |getpos()|              return a list with the position of cursor, mark, etc.
870 |getqflist()|           list of quickfix errors (Yegappan Lakshmanan)
871 |getreg()|              get contents of a register
872 |gettabwinvar()|        get variable from window in specified tab page.
873 |has_key()|             check whether a key appears in a Dictionary
874 |haslocaldir()|         check if current window used |:lcd|
875 |hasmapto()|            check for a mapping to a string
876 |index()|               index of item in List
877 |inputlist()|           prompt the user to make a selection from a list
878 |insert()|              insert an item somewhere in a List
879 |islocked()|            check if a variable is locked
880 |items()|               get List of Dictionary key-value pairs
881 |join()|                join List items into a String
882 |keys()|                get List of Dictionary keys
883 |len()|                 number of items in a List or Dictionary
884 |map()|                 change each List or Dictionary item
885 |maparg()|              extra argument: use abbreviation
886 |mapcheck()|            extra argument: use abbreviation
887 |match()|               extra argument: count
888 |matcharg()|            return arguments of |:match| command
889 |matchend()|            extra argument: count
890 |matchlist()|           list with match and submatches of a pattern in a string
891 |matchstr()|            extra argument: count
892 |max()|                 maximum value in a List or Dictionary
893 |min()|                 minimum value in a List or Dictionary
894 |mkdir()|               create a directory
895 |pathshorten()|         reduce directory names to a single character
896 |printf()|              format text
897 |pumvisible()|          check whether the popup menu is displayed
898 |range()|               generate a List with numbers
899 |readfile()|            read a file into a list of lines
900 |reltime()|             get time value, possibly relative
901 |reltimestr()|          turn a time value into a string
902 |remove()|              remove one or more items from a List or Dictionary
903 |repeat()|              repeat "expr" "count" times (Christophe Poucet)
904 |reverse()|             reverse the order of a List
905 |search()|              extra argument:
906 |searchdecl()|          search for declaration of variable
907 |searchpair()|          extra argument: line to stop searching
908 |searchpairpos()|       return a List with the position of the match
909 |searchpos()|           return a List with the position of the match
910 |setloclist()|          modify a location list (Yegappan Lakshmanan)
911 |setpos()|              set cursor or mark to a position
912 |setqflist()|           modify a quickfix list (Yegappan Lakshmanan)
913 |settabwinvar()|        set variable in window of specified tab page
914 |sort()|                sort a List
915 |soundfold()|           get the sound-a-like equivalent of a word
916 |spellbadword()|        get a badly spelled word
917 |spellsuggest()|        get suggestions for correct spelling
918 |split()|               split a String into a List
919 |str2nr()|              convert a string to a number, base 8, 10 or 16
920 |stridx()|              extra argument: start position
921 |strridx()|             extra argument: start position
922 |string()|              string representation of a List or Dictionary
923 |system()|              extra argument: filters {input} through a shell command
924 |tabpagebuflist()|      List of buffers in a tab page
925 |tabpagenr()|           number of current or last tab page
926 |tabpagewinnr()|        window number in a tab page
927 |tagfiles()|            List with tags file names
928 |taglist()|             get list of matching tags (Yegappan Lakshmanan)
929 |tr()|                  translate characters (Ron Aaron)
930 |values()|              get List of Dictionary values
931 |winnr()|               takes an argument: what window to use
932 |winrestview()|         restore the view of the current window
933 |winsaveview()|         save the view of the current window
934 |writefile()|           write a list of lines into a file
936 User defined functions can now be loaded automatically from the "autoload"
937 directory in 'runtimepath'.  See |autoload-functions|.
940 New Vim variables: ~
942 |v:insertmode|          used for |InsertEnter| and |InsertChange| autocommands
943 |v:val|                 item value in a |map()| or |filter()| function
944 |v:key|                 item key in a |map()| or |filter()| function
945 |v:profiling|           non-zero after a ":profile start" command
946 |v:fcs_reason|          the reason why |FileChangedShell| was triggered
947 |v:fcs_choice|          what should happen after |FileChangedShell|
948 |v:beval_bufnr|         buffer number for 'balloonexpr'
949 |v:beval_winnr|         window number for 'balloonexpr'
950 |v:beval_lnum|          line number for 'balloonexpr'
951 |v:beval_col|           column number for 'balloonexpr'
952 |v:beval_text|          text under the mouse pointer for 'balloonexpr'
953 |v:scrollstart|         what caused the screen to be scrolled up
954 |v:swapname|            name of the swap file for the |SwapExists| event
955 |v:swapchoice|          what to do for an existing swap file
956 |v:swapcommand|         command to be executed after handling |SwapExists|
957 |v:char|                argument for evaluating 'formatexpr'
960 New autocommand events: ~
962 |ColorScheme|           after loading a color scheme
964 |CursorHoldI|           the user doesn't press a key for a while in Insert mode
965 |CursorMoved|           the cursor was moved in Normal mode
966 |CursorMovedI|          the cursor was moved in Insert mode
968 |FileChangedShellPost|  after handling a file changed outside of Vim
970 |InsertEnter|           starting Insert or Replace mode
971 |InsertChange|          going from Insert to Replace mode or back
972 |InsertLeave|           leaving Insert or Replace mode
974 |MenuPopup|             just before showing popup menu
976 |QuickFixCmdPre|        before :make, :grep et al. (Ciaran McCreesh)
977 |QuickFixCmdPost|       after :make, :grep et al. (Ciaran McCreesh)
979 |SessionLoadPost|       after loading a session file. (Yegappan Lakshmanan)
981 |ShellCmdPost|          after executing a shell command
982 |ShellFilterPost|       after filtering with a shell command
984 |SourcePre|             before sourcing a Vim script
986 |SpellFileMissing|      when a spell file can't be found
988 |SwapExists|            found existing swap file when editing a file
990 |TabEnter|              just after entering a tab page
991 |TabLeave|              just before leaving a tab page
993 |VimResized|            after the Vim window size changed (Yakov Lerner)
996 New highlight groups: ~
998 Pmenu                   Popup menu: normal item |hl-Pmenu|
999 PmenuSel                Popup menu: selected item |hl-PmenuSel|
1000 PmenuThumb              Popup menu: scrollbar |hl-PmenuThumb|
1001 PmenuSbar               Popup menu: Thumb of the scrollbar |hl-PmenuSbar|
1003 TabLine                 tab pages line, inactive label |hl-TabLine|
1004 TabLineSel              tab pages line, selected label |hl-TabLineSel|
1005 TabLineFill             tab pages line, filler |hl-TabLineFill|
1007 SpellBad                badly spelled word |hl-SpellBad|
1008 SpellCap                word with wrong caps |hl-SpellCap|
1009 SpellRare               rare word |hl-SpellRare|
1010 SpellLocal              word only exists in other region |hl-SpellLocal|
1012 CursorColumn            'cursorcolumn' |hl-CursorColumn|
1013 CursorLine              'cursorline' |hl-CursorLine|
1015 MatchParen              matching parens |pi_paren.txt| |hl-MatchParen|
1018 New items in search patterns: ~
1019 |/\%d| \%d123           search for character with decimal number
1020 |/\]|  [\d123]          idem, in a collection
1021 |/\%o| \%o103           search for character with octal number
1022 |/\]|  [\o1o3]          idem, in a collection
1023 |/\%x| \%x1a            search for character with 2 pos. hex number
1024 |/\]|  [\x1a]           idem, in a collection
1025 |/\%u| \%u12ab          search for character with 4 pos. hex number
1026 |/\]|  [\u12ab]         idem, in a collection
1027 |/\%U| \%U1234abcd      search for character with 8 pos. hex number
1028 |/\]|  [\U1234abcd]     idem, in a collection
1029                             (The above partly by Ciaran McCreesh)
1031 |/[[=| [[=a=]]          an equivalence class (only for latin1 characters)
1032 |/[[.| [[.a.]]          a collation element (only works with single char)
1034 |/\%'m|  \%'m           match at mark m
1035 |/\%<'m| \%<'m          match before mark m
1036 |/\%>'m| \%>'m          match after mark m
1037 |/\%V|   \%V            match in Visual area
1039 Nesting |/multi| items no longer is an error when an empty match is possible.
1041 It is now possible to use \{0}, it matches the preceding atom zero times.  Not
1042 useful, just for compatibility.
1045 New Syntax/Indent/FTplugin files: ~
1047 Moved all the indent settings from the filetype plugin to the indent file.
1048 Implemented b:undo_indent to undo indent settings when setting 'filetype' to a
1049 different value.
1051 a2ps syntax and ftplugin file. (Nikolai Weibull)
1052 ABAB/4 syntax file. (Marius van Wyk)
1053 alsaconf ftplugin file. (Nikolai Weibull)
1054 AppendMatchGroup ftplugin file. (Dave Silvia)
1055 arch ftplugin file. (Nikolai Weibull)
1056 asterisk and asteriskvm syntax file. (Tilghman Lesher)
1057 BDF ftplugin file. (Nikolai Weibull)
1058 BibTeX indent file. (Dorai Sitaram)
1059 BibTeX Bibliography Style syntax file. (Tim Pope)
1060 BTM ftplugin file. (Bram Moolenaar)
1061 calendar ftplugin file. (Nikolai Weibull)
1062 Changelog indent file. (Nikolai Weibull)
1063 ChordPro syntax file. (Niels Bo Andersen)
1064 Cmake indent and syntax file. (Andy Cedilnik)
1065 conf ftplugin file. (Nikolai Weibull)
1066 context syntax and ftplugin file. (Nikolai Weibull)
1067 CRM114 ftplugin file. (Nikolai Weibull)
1068 cvs RC ftplugin file. (Nikolai Weibull)
1069 D indent file. (Jason Mills)
1070 Debian Sources.list syntax file. (Matthijs Mohlmann)
1071 dictconf and dictdconf syntax, indent and ftplugin files. (Nikolai Weibull)
1072 diff ftplugin file. (Bram Moolenaar)
1073 dircolors ftplugin file. (Nikolai Weibull)
1074 django and htmldjango syntax file. (Dave Hodder)
1075 doxygen syntax file. (Michael Geddes)
1076 elinks ftplugin file. (Nikolai Weibull)
1077 eterm ftplugin file. (Nikolai Weibull)
1078 eviews syntax file. (Vaidotas Zemlys)
1079 fetchmail RC ftplugin file. (Nikolai Weibull)
1080 FlexWiki syntax and ftplugin file. (George Reilly)
1081 Generic indent file. (Dave Silvia)
1082 gpg ftplugin file. (Nikolai Weibull)
1083 gretl syntax file. (Vaidotas Zemlys)
1084 groovy syntax file. (Alessio Pace)
1085 group syntax and ftplugin file. (Nikolai Weibull)
1086 grub ftplugin file. (Nikolai Weibull)
1087 Haskell ftplugin file. (Nikolai Weibull)
1088 help ftplugin file. (Nikolai Weibull)
1089 indent ftplugin file. (Nikolai Weibull)
1090 Javascript ftplugin file. (Bram Moolenaar)
1091 Kconfig ftplugin and syntax file. (Nikolai Weibull)
1092 ld syntax, indent and ftplugin file. (Nikolai Weibull)
1093 lftp ftplugin file. (Nikolai Weibull)
1094 libao config ftplugin file. (Nikolai Weibull)
1095 limits syntax and ftplugin file. (Nikolai Weibull)
1096 Lisp indent file. (Sergey Khorev)
1097 loginaccess and logindefs syntax and ftplugin file. (Nikolai Weibull)
1098 m4 ftplugin file. (Nikolai Weibull)
1099 mailaliases syntax file. (Nikolai Weibull)
1100 mailcap ftplugin file. (Nikolai Weibull)
1101 manconf syntax and ftplugin file. (Nikolai Weibull)
1102 matlab ftplugin file. (Jake Wasserman)
1103 Maxima syntax file. (Robert Dodier)
1104 MGL syntax file. (Gero Kuhlmann)
1105 modconf ftplugin file. (Nikolai Weibull)
1106 mplayer config ftplugin file. (Nikolai Weibull)
1107 Mrxvtrc syntax and ftplugin file. (Gautam Iyer)
1108 MuPAD source syntax, indent and ftplugin. (Dave Silvia)
1109 mutt RC ftplugin file. (Nikolai Weibull)
1110 nanorc syntax and ftplugin file. (Nikolai Weibull)
1111 netrc ftplugin file. (Nikolai Weibull)
1112 pamconf syntax and ftplugin file. (Nikolai Weibull)
1113 Pascal indent file. (Neil Carter)
1114 passwd syntax and ftplugin file. (Nikolai Weibull)
1115 PHP compiler plugin. (Doug Kearns)
1116 pinfo ftplugin file. (Nikolai Weibull)
1117 plaintex syntax and ftplugin files. (Nikolai Weibull, Benji Fisher)
1118 procmail ftplugin file. (Nikolai Weibull)
1119 prolog ftplugin file. (Nikolai Weibull)
1120 protocols syntax and ftplugin file. (Nikolai Weibull)
1121 quake ftplugin file. (Nikolai Weibull)
1122 racc syntax and ftplugin file. (Nikolai Weibull)
1123 readline ftplugin file. (Nikolai Weibull)
1124 rhelp syntax file. (Johannes Ranke)
1125 rnoweb syntax file. (Johannes Ranke)
1126 Relax NG compact ftplugin file. (Nikolai Weibull)
1127 Scheme indent file. (Sergey Khorev)
1128 screen ftplugin file. (Nikolai Weibull)
1129 sensors syntax and ftplugin file. (Nikolai Weibull)
1130 services syntax and ftplugin file. (Nikolai Weibull)
1131 setserial syntax and ftplugin file. (Nikolai Weibull)
1132 sieve syntax and ftplugin file. (Nikolai Weibull)
1133 SiSU syntax file (Ralph Amissah)
1134 Sive syntax file. (Nikolai Weibull)
1135 slp config, reg and spi syntax and ftplugin files. (Nikolai Weibull)
1136 SML indent file. (Saikat Guha)
1137 SQL anywhere syntax and indent file. (David Fishburn)
1138 SQL indent file.
1139 SQL-Informix syntax file. (Dean L Hill)
1140 SQL: Handling of various variants. (David Fishburn)
1141 sshconfig ftplugin file. (Nikolai Weibull)
1142 Stata and SMCL syntax files. (Jeff Pitblado)
1143 sudoers ftplugin file. (Nikolai Weibull)
1144 sysctl syntax and ftplugin file. (Nikolai Weibull)
1145 terminfo ftplugin file. (Nikolai Weibull)
1146 trustees syntax file. (Nima Talebi)
1147 Vera syntax file. (David Eggum)
1148 udev config, permissions and rules syntax and ftplugin files. (Nikolai Weibull)
1149 updatedb syntax and ftplugin file. (Nikolai Weibull)
1150 VHDL indent file (Gerald Lai)
1151 WSML syntax file. (Thomas Haselwanter)
1152 Xdefaults ftplugin file. (Nikolai Weibull)
1153 XFree86 config ftplugin file. (Nikolai Weibull)
1154 xinetd syntax, indent and ftplugin file. (Nikolai Weibull)
1155 xmodmap ftplugin file. (Nikolai Weibull)
1156 Xquery syntax file. (Jean-Marc Vanel)
1157 xsd (XML schema) indent file.
1158 YAML ftplugin file. (Nikolai Weibull)
1159 Zsh ftplugin file. (Nikolai Weibull)
1162 New Keymaps: ~
1164 Sinhala (Sri Lanka) (Harshula Jayasuriya)
1165 Tamil in TSCII encoding (Yegappan Lakshmanan)
1166 Greek in cp737 (Panagiotis Louridas)
1167 Polish-slash (HS6_06)
1168 Ukrainian-jcuken (Anatoli Sakhnik)
1169 Kana (Edward L. Fox)
1172 New message translations: ~
1174 The Ukrainian messages are now also available in cp1251.
1175 Vietnamese message translations and menu. (Phan Vinh Thinh)
1178 Others: ~
1180 The |:read| command has the |++edit| argument.  This means it will use the
1181 detected 'fileformat', 'fileencoding' and other options for the buffer.  This
1182 also fixes the problem that editing a compressed file didn't set these
1183 options.
1185 The Netbeans interface was updated for Sun Studio 10.  The protocol number
1186 goes from 2.2 to 2.3. (Gordon Prieur)
1188 Mac: When starting up Vim will load the $VIMRUNTIME/macmap.vim script to
1189 define default command-key mappings. (mostly by Benji Fisher)
1191 Mac: Add the selection type to the clipboard, so that Block, line and
1192 character selections can be used between two Vims. (Eckehard Berns)
1193 Also fixes the problem that setting 'clipboard' to "unnamed" breaks using
1194 "yyp".
1196 Mac: GUI font selector. (Peter Cucka)
1198 Mac: support for multi-byte characters. (Da Woon Jung)
1199 This doesn't always work properly.  If you see text drawing problems try
1200 switching the 'macatsui' option off.
1202 Mac: Support the xterm mouse in the non-GUI version.
1204 Mac: better integration with Xcode.  Post a fake mouse-up event after the odoc
1205 event and the drag receive handler to work around a stall after Vim loads a
1206 file.  Fixed an off-by-one line number error. (Da Woon Jung)
1208 Mac: When started from Finder change directory to the file being edited or the
1209 user home directory.
1211 Added the t_SI and t_EI escape sequences for starting and ending Insert mode.
1212 To be used to set the cursor shape to a bar or a block.  No default values,
1213 they are not supported by termcap/terminfo.
1215 GUI font selector for Motif. (Marcin Dalecki)
1217 Nicer toolbar buttons for Motif. (Marcin Dalecki)
1219 Mnemonics for the Motif find/replace dialog. (Marcin Dalecki)
1221 Included a few improvements for Motif from Marcin Dalecki.  Draw label
1222 contents ourselves to make them handle fonts in a way configurable by Vim and
1223 a bit less dependent on the X11 font management.
1225 Autocommands can be defined local to a buffer.  This means they will also work
1226 when the buffer does not have a name or no specific name.  See
1227 |autocmd-buflocal|.  (Yakov Lerner)
1229 For xterm most combinations of modifiers with function keys are recognized.
1230 |xterm-modifier-keys|
1232 When 'verbose' is set the output of ":highlight" will show where a highlight
1233 item was last set.
1234 When 'verbose' is set the output of the ":map", ":abbreviate", ":command",
1235 ":function" and ":autocmd" commands will show where it was last defined.
1236 (Yegappan Lakshmanan)
1238 ":function /pattern" lists functions matching the pattern.
1240 "1gd" can be used like "gd" but ignores matches in a {} block that ends before
1241 the cursor position.  Likewise for "1gD" and "gD".
1243 'scrolljump' can be set to a negative number to scroll a percentage of the
1244 window height.
1246 The |v:scrollstart| variable has been added to help finding the location in
1247 your script that causes the hit-enter prompt.
1249 To make it possible to handle the situation that a file is being edited that
1250 is already being edited by another Vim instance, the |SwapExists| event has
1251 been added.  The |v:swapname|, |v:swapchoice| and |v:swapcommand| variables
1252 can be used, for example to use the |client-server| functionality to bring the
1253 other Vim to the foreground.
1254 When starting Vim with a "-t tag" argument, there is an existing swapfile and
1255 the user selects "quit" or "abort" then exit Vim.
1257 Undo now also restores the '< and '> marks.  "gv" selects the same area as
1258 before the change and undo.
1260 When editing a search pattern for a "/" or "?" command and 'incsearch' is set
1261 CTRL-L can be used to add a character from the current match.  CTRL-R CTRL-W
1262 will add a word, but exclude the part of the word that was already typed.
1264 Ruby interface: add line number methods. (Ryan Paul)
1266 The $MYVIMRC environment variable is set to the first found vimrc file.
1267 The $MYGVIMRC environment variable is set to the first found gvimrc file.
1269 ==============================================================================
1270 IMPROVEMENTS                                            *improvements-7*
1272 ":helpgrep" accepts a language specifier after the pattern: "pat@it".
1274 Moved the help for printing to a separate help file.  It's quite a lot now.
1276 When doing completion for ":!cmd", ":r !cmd" or ":w !cmd" executable files are
1277 found in $PATH instead of looking for ordinary files in the current directory.
1279 When ":silent" is used and a backwards range is given for an Ex command the
1280 range is swapped automatically instead of asking if that is OK.
1282 The pattern matching code was changed from a recursive function to an
1283 iterative mechanism.  This avoids out-of-stack errors.  State is stored in
1284 allocated memory, running out of memory can always be detected.  Allows
1285 matching more complex things, but Vim may seem to hang while doing that.
1287 Previously some options were always evaluated in the |sandbox|.  Now that only
1288 happens when the option was set from a modeline or in secure mode.  Applies to
1289 'balloonexpr', 'foldexpr', 'foldtext' and 'includeexpr'. (Sumner Hayes)
1291 Some commands and expressions could have nasty side effects, such as using
1292 CTRL-R = while editing a search pattern and the expression invokes a function
1293 that jumps to another window.  The |textlock| has been added to prevent this
1294 from happening.
1296 ":breakadd here" and ":breakdel here" can be used to set or delete a
1297 breakpoint at the cursor.
1299 It is now possible to define a function with: >
1300         :exe "func Test()\n ...\n endfunc"
1302 The tutor was updated to make it simpler to use and text was added to explain
1303 a few more important commands.  Used ideas from Gabriel Zachmann.
1305 Unix: When libcall() fails obtain an error message with dlerror() and display
1306 it. (Johannes Zellner)
1308 Mac and Cygwin: When editing an existing file make the file name the same case
1309 of the edited file.  Thus when typing ":e os_UNIX.c" the file name becomes
1310 "os_unix.c".
1312 Added "nbsp" in 'listchars'. (David Blanchet)
1314 Added the "acwrite" value for the 'buftype' option.  This is for a buffer that
1315 does not have a name that refers to a file and is written with BufWriteCmd
1316 autocommands.
1318 For lisp indenting and matching parenthesis: (Sergey Khorev)
1319 - square brackets are recognized properly
1320 - #\(, #\), #\[ and #\] are recognized as character literals
1321 - Lisp line comments (delimited by semicolon) are recognized
1323 Added the "count" argument to match(), matchend() and matchstr(). (Ilya Sher)
1325 winnr() takes an optional "$" or "#" argument.  (Nikolai Weibull, Yegappan
1326 Lakshmanan)
1328 Added 's' flag to search(): set ' mark if cursor moved. (Yegappan Lakshmanan)
1329 Added 'n' flag to search(): don't move the cursor. (Nikolai Weibull)
1330 Added 'c' flag to search(): accept match at the cursor.
1331 Added 'e' flag to search(): move to end of the match. (Benji Fisher)
1332 Added 'p' flag to search(): return number of sub-pattern. (Benji Fisher)
1333 These also apply to searchpos(), searchpair() and searchpairpos().
1335 The search() and searchpair() functions have an extra argument to specify
1336 where to stop searching.  Speeds up searches that should not continue too far.
1338 When uncompressing fails in the gzip plugin, give an error message but don't
1339 delete the raw text.  Helps if the file has a .gz extension but is not
1340 actually compressed. (Andrew Pimlott)
1342 When C, C++ or IDL syntax is used, may additionally load doxygen syntax.
1343 (Michael Geddes)
1345 Support setting 'filetype' and 'syntax' to "aaa.bbb" for "aaa" plus "bbb"
1346 filetype or syntax.
1348 The ":registers" command now displays multi-byte characters properly.
1350 VMS: In the usage message mention that a slash can be used to make a flag
1351 upper case.  Add color support to the builtin vt320 terminal codes.
1352 (Zoltan Arpadffy)
1354 For the '%' item in 'viminfo', allow a number to set a maximum for the number
1355 of buffers.
1357 For recognizing the file type: When a file looks like a shell script, check
1358 for an "exec" command that starts the tcl interpreter. (suggested by Alexios
1359 Zavras)
1361 Support conversion between utf-8 and latin9 (iso-8859-15) internally, so that
1362 digraphs still work when iconv is not available.
1364 When a session file is loaded while editing an unnamed, empty buffer that
1365 buffer is wiped out.  Avoids that there is an unused buffer in the buffer
1366 list.
1368 Win32: When libintl.dll supports bind_textdomain_codeset(), use it.
1369 (NAKADAIRA Yukihiro)
1371 Win32: Vim was not aware of hard links on NTFS file systems.  These are
1372 detected now for when 'backupcopy' is "auto".  Also fixed a bogus "file has
1373 been changed since reading it" error for links.
1375 When foldtext() finds no text after removing the comment leader, use the
1376 second line of the fold.  Helps for C-style /* */ comments where the first
1377 line is just "/*".
1379 When editing the same file from two systems (e.g., Unix and MS-Windows) there
1380 mostly was no warning for an existing swap file, because the name of the
1381 edited file differs (e.g., y:\dir\file vs /home/me/dir/file).  Added a flag to
1382 the swap file to indicate it is in the same directory as the edited file.  The
1383 used path then doesn't matter and the check for editing the same file is much
1384 more reliable.
1386 Unix: When editing a file through a symlink the swap file would use the name
1387 of the symlink.  Now use the name of the actual file, so that editing the same
1388 file twice is detected. (suggestions by Stefano Zacchiroli and James Vega)
1390 Client-server communication now supports 'encoding'.  When setting 'encoding'
1391 in a Vim server to "utf-8", and using "vim --remote fname" in a console,
1392 "fname" is converted from the console encoding to utf-8.  Also allows Vims
1393 with different 'encoding' settings to exchange messages.
1395 Internal: Changed ga_room into ga_maxlen, so that it doesn't need to be
1396 incremented/decremented each time.
1398 When a register is empty it is not stored in the viminfo file.
1400 Removed the tcltags script, it's obsolete.
1402 ":redir @*>>" and ":redir @+>>" append to the clipboard.  Better check for
1403 invalid characters after the register name. |:redir|
1405 ":redir => variable" and ":redir =>> variable" write or append to a variable.
1406 (Yegappan Lakshmanan) |:redir|
1408 ":redir @{a-z}>>" appends to register a to z. (Yegappan Lakshmanan)
1410 The 'verbosefile' option can be used to log messages in a file.  Verbose
1411 messages are not displayed then.  The "-V{filename}" argument can be used to
1412 log startup messages.
1414 ":let g:" lists global variables.
1415 ":let b:" lists buffer-local variables.
1416 ":let w:" lists window-local variables.
1417 ":let v:" lists Vim variables.
1419 The stridx() and strridx() functions take a third argument, where to start
1420 searching.  (Yegappan Lakshmanan)
1422 The getreg() function takes an extra argument to be able to get the expression
1423 for the '=' register instead of the result of evaluating it.
1425 The setline() function can take a List argument to set multiple lines.  When
1426 the line number is just below the last line the line is appended.
1428 g CTRL-G also shows the number of characters if it differs from the number of
1429 bytes.
1431 Completion for ":debug" and entering an expression for the '=' register.  Skip
1432 ":" between range and command name. (Peter winters)
1434 CTRL-Q in Insert mode now works like CTRL-V by default.  Previously it was
1435 ignored.
1437 When "beep" is included in 'debug' a function or script that causes a beep
1438 will result in a message with the source of the error.
1440 When completing buffer names, match with "\(^\|[\/]\)" instead of "^", so that
1441 ":buf stor<Tab>" finds both "include/storage.h" and "storage/main.c".
1443 To count items (pattern matches) without changing the buffer the 'n' flag has
1444 been added to |:substitute|.  See |count-items|.
1446 In a |:substitute| command the \u, \U, \l and \L items now also work for
1447 multi-byte characters.
1449 The "screen.linux" $TERM name is recognized to set the default for
1450 'background' to "dark". (Ciaran McCreesh)  Also for "cygwin" and "putty".
1452 The |FileChangedShell| autocommand event can now use the |v:fcs_reason|
1453 variable that specifies what triggered the event.  |v:fcs_choice| can be used
1454 to reload the buffer or ask the user what to do.
1456 Not all modifiers were recognized for xterm function keys.  Added the
1457 possibility in term codes to end in ";*X" or "O*X", where X is any character
1458 and the * stands for the modifier code.
1459 Added the <xUp>, <xDown>, <xLeft> and <xRight> keys, to be able to recognize
1460 the two forms that xterm can send their codes in and still handle all possible
1461 modifiers.
1463 getwinvar() now also works to obtain a buffer-local option from the specified
1464 window.
1466 Added the "%s" item to 'errorformat'. (Yegappan Lakshmanan)
1467 Added the "%>" item to 'errorformat'.
1469 For 'errorformat' it was not possible to have a file name that contains the
1470 character that follows after "%f".  For example, in "%f:%l:%m" the file name
1471 could not contain ":".  Now include the first ":" where the rest of the
1472 pattern matches.  In the example a ":" not followed by a line number is
1473 included in the file name. (suggested by Emanuele Giaquinta)
1475 GTK GUI: use the GTK file dialog when it's available.  Mix from patches by
1476 Grahame Bowland and Evan Webb.
1478 Added ":scriptnames" to bugreport.vim, so that we can see what plugins were
1479 used.
1481 Win32: If the user changes the setting for the number of lines a scroll wheel
1482 click scrolls it is now used immediately.  Previously Vim would need to be
1483 restarted.
1485 When using @= in an expression the value is expression @= contains.  ":let @=
1486 = value" can be used to set the register contents.
1488 A ! can be added to ":popup" to have the popup menu appear at the mouse
1489 pointer position instead of the text cursor.
1491 The table with encodings has been expanded with many MS-Windows codepages,
1492 such as cp1250 and cp737, so that these can also be used on Unix without
1493 prepending "8bit-".
1494 When an encoding name starts with "microsoft-cp" ignore the "microsoft-" part.
1496 Added the "customlist" completion argument to a user-defined command.  The
1497 user-defined completion function should return the completion candidates as a
1498 Vim List and the returned results are not filtered by Vim. (Yegappan
1499 Lakshmanan)
1501 Win32: Balloons can have multiple lines if common controls supports it.
1502 (Sergey Khorev)
1504 For command-line completion the matches for various types of arguments are now
1505 sorted: user commands, variables, syntax names, etc.
1507 When no locale is set, thus using the "C" locale, Vim will work with latin1
1508 characters, using its own isupper()/toupper()/etc. functions.
1510 When using an rxvt terminal emulator guess the value of 'background' using the
1511 COLORFGBG environment variable. (Ciaran McCreesh)
1513 Also support t_SI and t_EI on Unix with normal features. (Ciaran McCreesh)
1515 When 'foldcolumn' is one then put as much info in it as possible.  This allows
1516 closing a fold with the mouse by clicking on the '-'.
1518 input() takes an optional completion argument to specify the type of
1519 completion supported for the input. (Yegappan Lakshmanan)
1521 "dp" works with more than two buffers in diff mode if there is only one where
1522 'modifiable' is set.
1524 The 'diffopt' option has three new values: "horizontal", "vertical" and
1525 "foldcolumn".
1527 When the 'include' option contains \zs the file name found is what is being
1528 matched from \zs to the end or \ze.  Useful to pass more to 'includeexpr'.
1530 Loading plugins on startup now supports subdirectories in the plugin
1531 directory. |load-plugins|
1533 In the foldcolumn always show the '+' for a closed fold, so that it can be
1534 opened easily.  It may overwrite another character, esp. if 'foldcolumn' is 1.
1536 It is now possible to get the W10 message again by setting 'readonly'.  Useful
1537 in the FileChangedRO autocommand when checking out the file fails.
1539 Unix: When open() returns EFBIG give an appropriate message.
1541 ":mksession" sets the SessionLoad variable to notify plugins.  A modeline is
1542 added to the session file to set 'filetype' to "vim".
1544 In the ATTENTION prompt put the "Delete it" choice before "Quit" to make it
1545 more logical.  (Robert Webb)
1547 When appending to a file while the buffer has no name the name of the appended
1548 file would be used for the current buffer.  But the buffer contents is
1549 actually different from the file content.  Don't set the file name, unless the
1550 'P' flag is present in 'cpoptions'.
1552 When starting to edit a new file and the directory for the file doesn't exist
1553 then Vim will report "[New DIRECTORY]" instead of "[New File] to give the user
1554 a hint that something might be wrong.
1556 Win32: Preserve the hidden attribute of the viminfo file.
1558 In Insert mode CTRL-A didn't keep the last inserted text when using CTRL-O and
1559 then a cursor key.  Now keep the previously inserted text if nothing is
1560 inserted after the CTRL-O.  Allows using CTRL-O commands to move the cursor
1561 without losing the last inserted text.
1563 The exists() function now supports checking for autocmd group definition
1564 and for supported autocommand events. (Yegappan Lakshmanan)
1566 Allow using ":global" in the sandbox, it doesn't do anything harmful by
1567 itself.
1569 ":saveas asdf.c" will set 'filetype' to c when it's empty.  Also for ":w
1570 asdf.c" when it sets the filename for the buffer.
1572 Insert mode completion for whole lines now also searches unloaded buffers.
1574 The colortest.vim script can now be invoked directly with ":source" or
1575 ":runtime syntax/colortest.vim".
1577 The 'statusline' option can be local to the window, so that each window can
1578 have a different value.  (partly by Yegappan Lakshmanan)
1580 The 'statusline' option and other options that support the same format can now
1581 use these new features:
1582 - When it starts with "%!" the value is first evaluated as an expression
1583   before parsing the value.
1584 - "%#HLname#" can be used to start highlighting with HLname.
1586 When 'statusline' is set to something that causes an error message then it is
1587 made empty to avoid an endless redraw loop.  Also for other options, such at
1588 'tabline' and 'titlestring'.  ":verbose set statusline" will mention that it
1589 was set in an error handler.
1591 When there are several matching tags, the ":tag <name>" and CTRL-] commands
1592 jump to the [count] matching tag. (Yegappan Lakshmanan)
1594 Win32: In the batch files generated by the install program, use $VIMRUNTIME or
1595 $VIM if it's set.  Example provided by Mathias Michaelis.
1596 Also create a vimtutor.bat batch file.
1598 The 'balloonexpr' option is now |global-local|.
1600 The system() function now runs in cooked mode, thus can be interrupted by
1601 CTRL-C.
1603 ==============================================================================
1604 COMPILE TIME CHANGES                                    *compile-changes-7*
1606 Dropped the support for the BeOS and Amiga GUI.  They were not maintained and
1607 probably didn't work.  If you want to work on this: get the Vim 6.x version
1608 and merge it back in.
1610 When running the tests and one of them fails to produce "test.out" the
1611 following tests are still executed.  This helps when running out of memory.
1613 When compiling with EXITFREE defined and the ccmalloc library it is possible
1614 to detect memory leaks.  Some memory will always reported as leaked, such as
1615 allocated by X11 library functions and the memory allocated in alloc_cmdbuff()
1616 to store the ":quit" command.
1618 Moved the code for printing to src/hardcopy.c.
1620 Moved some code from main() to separate functions to make it easier to see
1621 what is being done.  Using a structure to avoid a lot of arguments to the
1622 functions.
1624 Moved unix_expandpath() to misc1.c, so that it can also be used by os_mac.c
1625 without copying the code.
1627 --- Mac ---
1629 "make" now creates the Vim.app directory and "make install" copies it to its
1630 final destination. (Raf)
1632 Put the runtime directory not directly in Vim.app but in
1633 Vim.app/Contents/Resources/vim, so that it's according to Mac specs.
1635 Made it possible to compile with Motif, Athena or GTK without tricks and still
1636 being able to use the MacRoman conversion.  Added the os_mac_conv.c file.
1638 When running "make install" the runtime files are installed as for Unix.
1639 Avoids that too many files are copied.  When running "make" a link to the
1640 runtime files is created to avoid a recursive copy that takes much time.
1642 Configure will attempt to build Vim for both Intel and PowerPC.  The
1643 --with-mac-arch configure argument can change it.
1645 --- Win32 ---
1647 The Make_mvc.mak file was adjusted to work with the latest MS compilers,
1648 including the free version of Visual Studio 2005. (George Reilly)
1650 INSTALLpc.txt was updated for the recent changes. (George Reilly)
1652 The distributed executable is now produced with the free Visual C++ Toolkit
1653 2003 and other free SDK chunks.  msvcsetup.bat was added to support this.
1655 Also generate the .pdb file that can be used to generate a useful crash report
1656 on MS-Windows. (George Reilly)
1658 ==============================================================================
1659 BUG FIXES                                               *bug-fixes-7*
1661 When using PostScript printing on MS-DOS the default 'printexpr' used "lpr"
1662 instead of "copy".  When 'printdevice' was empty the copy command did not
1663 work.  Use "LPT1" then.
1665 The GTK font dialog uses a font size zero when the font name doesn't include a
1666 size.  Use a default size of 10.
1668 This example in the documentation didn't work:
1669     :e `=foo . ".c" `
1670 Skip over the expression in `=expr` when looking for comments, |, % and #.
1672 When ":helpgrep" doesn't find anything there is no error message.
1674 "L" and "H" did not take closed folds into account.
1676 Win32: The "-P title" argument stopped at the first title that matched, even
1677 when it doesn't support MDI.
1679 Mac GUI: CTRL-^ and CTRL-@ did not work.
1681 "2daw" on "word." at the end of a line didn't include the preceding white
1682 space.
1684 Win32: Using FindExecutable() doesn't work to find a program.  Use
1685 SearchPath() instead.  For executable() use $PATHEXT when the program searched
1686 for doesn't have an extension.
1688 When 'virtualedit' is set, moving the cursor up after appending a character
1689 may move it to a different column.  Was caused by auto-formatting moving the
1690 cursor and not putting it back where it was.
1692 When indent was added automatically and then moving the cursor, the indent was
1693 not deleted (like when pressing ESC).  The "I" flag in 'cpoptions' can be used
1694 to make it work the old way.
1696 When opening a command-line window, 'textwidth' gets set to 78 by the Vim
1697 filetype plugin.  Reset 'textwidth' to 0 to avoid lines are broken.
1699 After using cursor(line, col) moving up/down doesn't keep the same column.
1701 Win32: Borland C before 5.5 requires using ".u." for LowPart and HighPart
1702 fields. (Walter Briscoe)
1704 On Sinix SYS_NMLN isn't always defined.  Define it ourselves. (Cristiano De
1705 Michele)
1707 Printing with PostScript may keep the printer waiting for more.  Append a
1708 CTRL-D to the printer output. (Mike Williams)
1710 When converting a string with a hex or octal number the leading '-' was
1711 ignored.  ":echo '-05' + 0" resulted in 5 instead of -5.
1713 Using "@:" to repeat a command line didn't work when it contains control
1714 characters.  Also remove "'<,'>" when in Visual mode to avoid that it appears
1715 twice.
1717 When using file completion for a user command, it would not expand environment
1718 variables like for a regular command with a file argument.
1720 'cindent': When the argument of a #define looks like a C++ class the next line
1721 is indented too much.
1723 When 'comments' includes multi-byte characters inserting the middle part and
1724 alignment may go wrong.  'cindent' also suffers from this for right-aligned
1725 items.
1727 Win32: when 'encoding' is set to "utf-8" getenv() still returns strings in the
1728 active codepage.  Convert to utf-8.  Also for $HOME.
1730 The default for 'helplang' was "zh" for both "zh_cn" and "zh_tw".  Now use
1731 "cn" or "tw" as intended.
1733 When 'bin' is set and 'eol' is not set then line2byte() added the line break
1734 after the last line while it's not there.
1736 Using foldlevel() in a WinEnter autocommand may not work.  Noticed when
1737 resizing the GUI shell upon startup.
1739 Python: Using buffer.append(f.readlines()) didn't work.  Allow appending a
1740 string with a trailing newline.  The newline is ignored.
1742 When using the ":saveas f2" command for buffer "f1", the Buffers menu would
1743 contain "f2" twice, one of them leading to "f1".  Also trigger the BufFilePre
1744 and BufFilePost events for the alternate buffer that gets the old name.
1746 strridx() did not work well when the needle is empty. (Ciaran McCreesh)
1748 GTK: Avoid a potential hang in gui_mch_wait_for_chars() when input arrives
1749 just before it is invoked
1751 VMS: Occasionally CR characters were inserted in the file.  Expansion of
1752 environment variables was not correct. (Zoltan Arpadffy)
1754 UTF-8: When 'delcombine' is set "dw" only deleted the last combining character
1755 from the first character of the word.
1757 When using ":sball" in an autocommand only the filetype in one buffer was
1758 detected.  Reset did_filetype in enter_buffer().
1760 When using ":argdo" and the window already was at the first argument index,
1761 but not actually editing it, the current buffer would be used instead.
1763 When ":next dir/*" includes many matches, adding the names to the argument
1764 list may take an awful lot of time and can't be interrupted.  Allow
1765 interrupting this.
1767 When editing a file that was already loaded in a buffer, modelines were not
1768 used.  Now window-local options in the modeline are set.  Buffer-local options
1769 and global options remain unmodified.
1771 Win32: When 'encoding' is set to "utf-8" in the vimrc file, files from the
1772 command line with non-ASCII characters are not used correctly.  Recode the
1773 file names when 'encoding' is set, using the Unicode command line.
1775 Win32 console: When the default for 'encoding' ends up to be "latin1", the
1776 default value of 'isprint' was wrong.
1778 When an error message is given while waiting for a character (e.g., when an
1779 xterm reports the number of colors), the hit-enter prompt overwrote the last
1780 line.  Don't reset msg_didout in normal_cmd() for K_IGNORE.
1782 Mac GUI: Shift-Tab didn't work.
1784 When defining tooltip text, don't translate terminal codes, since it's not
1785 going to be used like a command.
1787 GTK 2: Check the tooltip text for valid utf-8 characters to avoid getting a
1788 GTK error.  Invalid characters may appear when 'encoding' is changed.
1790 GTK 2: Add a safety check for invalid utf-8 sequences, they can crash pango.
1792 Win32: When 'encoding' is changed while starting up, use the Unicode command
1793 line to convert the file arguments to 'encoding'.  Both for the GUI and the
1794 console version.
1796 Win32 GUI: latin9 text (iso-8859-15) was not displayed correctly, because
1797 there is no codepage for latin9.  Do our own conversion from latin9 to UCS2.
1799 When two versions of GTK+ 2 are installed it was possible to use the header
1800 files from one and the library from the other.  Use GTK_LIBDIR to put the
1801 directory for the library early in the link flags.
1803 With the GUI find/replace dialog a replace only worked if the pattern was
1804 literal text.  Now it works for any pattern.
1806 When 'equalalways' is set and 'eadirection' is "hor", ":quit" would still
1807 cause equalizing window heights in the vertical direction.
1809 When ":emenu" is used in a startup script the command was put in the typeahead
1810 buffer, causing a prompt for the crypt key to be messed up.
1812 Mac OS/X: The default for 'isprint' included characters 128-160, causes
1813 problems for Terminal.app.
1815 When a syntax item with "containedin" is used, it may match in the start or
1816 end of a region with a matchgroup, while this doesn't happen for a "contains"
1817 argument.
1819 When a transparent syntax items matches in another item where the highlighting
1820 has already stopped (because of a he= argument), the highlighting would come
1821 back.
1823 When cscope is used to set the quickfix error list, it didn't get set if there
1824 was only one match. (Sergey Khorev)
1826 When 'confirm' is set and using ":bdel" in a modified buffer, then selecting
1827 "cancel", would still give an error message.
1829 The PopUp menu items that started Visual mode didn't work when not in Normal
1830 mode.  Switching between selecting a word and a line was not possible.
1832 Win32: The keypad decimal point always resulted in a '.', while on some
1833 keyboards it's a ','.  Use MapVirtualKey(VK_DECIMAL, 2).
1835 Removed unused function DisplayCompStringOpaque() from gui_w32.c
1837 In Visual mode there is not always an indication whether the line break is
1838 selected or not.  Highlight the character after the line when the line break
1839 is included, e.g., after "v$o".
1841 GTK: The <F10> key can't be mapped, it selects the menu.  Disable that with a
1842 GTK setting and do select the menu when <F10> isn't mapped. (David Necas)
1844 After "Y" '[ and '] were not at start/end of the yanked text.
1846 When a telnet connection is dropped Vim preserves files and exits.  While
1847 doing that a SIGHUP may arrive and disturb us, thus ignore it. (Scott
1848 Anderson)  Also postpone SIGHUP, SIGQUIT and SIGTERM until it's safe to
1849 handle.  Added handle_signal().
1851 When completing a file name on the command line backslashes are required for
1852 white space.  Was only done for a space, not for a Tab.
1854 When configure could not find a terminal library, compiling continued for a
1855 long time before reporting the problem.  Added a configure check for tgetent()
1856 being found in a library.
1858 When the cursor is on the first char of the last line a ":g/pat/s///" command
1859 may cause the cursor to be displayed below the text.
1861 Win32: Editing a file with non-ASCII characters doesn't work when 'encoding'
1862 is "utf-8".  use _wfullpath() instead of _fullpath(). (Yu-sung Moon)
1864 When recovering the 'fileformat' and 'fileencoding' were taken from the
1865 original file instead of from the swapfile.  When the file didn't exist, was
1866 empty or the option was changed (e.g., with ":e ++fenc=cp123 file") it could
1867 be wrong.  Now store 'fileformat' and 'fileencoding' in the swapfile and use
1868 the values when recovering.
1870 ":bufdo g/something/p" overwrites each last printed text line with the file
1871 message for the next buffer.  Temporarily clear 'shortmess' to avoid that.
1873 Win32: Cannot edit a file starting with # with --remote.  Do escape % and #
1874 when building the ":drop" command.
1876 A comment or | just after an expression-backtick argument was not recognized.
1877 E.g. in :e `="foo"`"comment.
1879 "(" does not stop at an empty sentence (single dot and white space) while ")"
1880 does.  Also breaks "das" on that dot.
1882 When doing "yy" with the cursor on a TAB the ruler could be wrong and "k"
1883 moved the cursor to another column.
1885 When 'commentstring' is '"%s' and there is a double quote in the line a double
1886 quote before the fold marker isn't removed in the text displayed for a  closed
1887 fold.
1889 In Visual mode, when 'bin' and 'eol' set, g CTRL-G counted the last line
1890 break, resulting in "selected 202 of 201 bytes".
1892 Motif: fonts were not used for dialog components. (Marcin Dalecki)
1894 Motif: After using a toolbar button the keyboard focus would be on the toolbar
1895 (Lesstif problem). (Marcin Dalecki)
1897 When using "y<C-V>`x" where mark x is in the first column, the last line was
1898 not included.
1900 Not all test scripts work properly on MS-Windows when checked out from CVS.
1901 Use a Vim command to fix all fileformats to dos before executing the tests.
1903 When using ":new" and the file fits in the window, lines could still be above
1904 the window.  Now remove empty lines instead of keeping the relative position.
1906 Cmdline completion didn't work after ":let var1 var<Tab>".
1908 When using ":startinsert" or ":startreplace" when already in Insert mode
1909 (possible when using CTRL-R =), pressing Esc would directly restart Insert
1910 mode. (Peter Winters)
1912 "2daw" didn't work at end of file if the last word is a single character.
1914 Completion for ":next a'<Tab>" put a backslash before single quote, but it was
1915 not removed when editing a file.  Now halve backslashes in save_patterns().
1916 Also fix expanding a file name with the shell that contains "\'".
1918 When doing "1,6d|put" only "fewer lines" was reported.  Now a following "more
1919 lines" overwrites the message.
1921 Configure could not handle "-Dfoo=long\ long" in the TCL config output.
1923 When searching backwards, using a pattern that matches a newline and uses \zs
1924 after that, didn't find a match.  Could also get a hang or end up in the right
1925 column in the wrong line.
1927 When $LANG is "sl" for slovenian, the slovak menu was used, since "slovak"
1928 starts with "sl".
1930 When 'paste' is set in the GUI the Paste toolbar button doesn't work.  Clear
1931 'paste' when starting the GUI.
1933 A message about a wrong viminfo line included the trailing NL.
1935 When 'paste' is set in the GUI the toolbar button doesn't work in Insert mode.
1936 Use ":exe" in menu.vim to avoid duplicating the commands, instead of using a
1937 mapping.
1939 Treat "mlterm" as an xterm-like terminal. (Seiichi Sato)
1941 ":z.4" and ":z=4" didn't work Vi compatible.
1943 When sourcing a file, editing it and sourcing it again, it could appear twice
1944 in ":scriptnames" and get a new <SID>, because the inode has changed.
1946 When $SHELL is set but empty the 'shell' option would be empty.  Don't use an
1947 empty $SHELL value.
1949 A command "w! file" in .vimrc or $EXINIT didn't work.  Now it writes an empty
1950 file.
1952 When a CTRL-F command at the end of the file failed, the cursor was still
1953 moved to the start of the line.  Now it remains where it is.
1955 When using ":s" or "&" to repeat the last substitute and "$" was used to put
1956 the cursor in the last column, put the cursor in the last column again.  This
1957 is Vi compatible.
1959 Vim is not fully POSIX compliant but sticks with traditional Vi behavior.
1960 Added a few flags in 'cpoptions' to behave the POSIX way when wanted.  The
1961 $VIM_POSIX environment variable is checked to set the default.
1963 Appending to a register didn't insert a line break like Vi.  Added the '>'
1964 flag to 'cpoptions' for this.
1966 Using "I" in a line with only blanks appended to the line.  This is not Vi
1967 compatible.  Added the 'H' flag in 'coptions' for this.
1969 When joining multiple lines the cursor would be at the last joint, but Vi
1970 leaves it at the position where "J" would put it.  Added the 'q' flag in
1971 'cpoptions' for this.
1973 Autoindent didn't work for ":insert" and ":append".
1975 Using ":append" in an empty buffer kept the dummy line.  Now it's deleted to
1976 be Vi compatible.
1978 When reading commands from a file and stdout goes to a terminal, would still
1979 request the xterm version.  Vim can't read it, thus the output went to the
1980 shell and caused trouble there.
1982 When redirecting to a register with an invalid name the redirection would
1983 still be done (after an error message).  Now reset "redir_reg". (Yegappan
1984 Lakshmanan)
1986 It was not possible to use a NL after a backslash in Ex mode.  This is
1987 sometimes used to feed multiple lines to a shell command.
1989 When 'cmdheight' is set to 2 in .vimrc and the GUI uses the number of lines
1990 from the terminal we actually get 3 lines for the cmdline in gvim.
1992 When setting $HOME allocated memory would leak.
1994 Win32: bold characters may sometimes write in another character cell.  Use
1995 unicodepdy[] as for UTF-8. (Taro Muraoka)
1997 ":w fname" didn't work for files with 'buftype' set to "nofile".
1999 The method used to locate user commands for completion differed from when they
2000 are executed.  Ambiguous command names were not completed properly.
2002 Incremental search may cause a crash when there is a custom statusline that
2003 indirectly invokes ":normal".
2005 Diff mode failed when $DIFF_OPTIONS was set in the environment.  Unset it
2006 before invoking "diff".
2008 Completion didn't work after ":argdo", ":windo" and ":bufdo".  Also for ":set
2009 &l:opt" and ":set &g:opt". (Peter Winters)
2011 When setting 'ttymouse' to "dec" in an xterm that supports the DEC mouse
2012 locator it doesn't work.  Now switch off the mouse before selecting another
2013 mouse model.
2015 When the CursorHold event is triggered and the commands peek for typed
2016 characters the typeahead buffer may be messed up, e.g., when a mouse-up event
2017 is received.  Avoid invoking the autocommands from the function waiting for a
2018 character, let it put K_CURSORHOLD in the input buffer.
2020 Removed the "COUNT" flag from ":argadd", to avoid ":argadd 1*" to be used like
2021 ":1argadd *".  Same for ":argdelete" and ":argedit".
2023 Avoid that $LANG is used for the menus when LC_MESSAGES is "en_US".
2025 Added backslashes before dashes in the vim.1 manual page to make the appear as
2026 real dashes. (Pierr Habouzit)
2028 Where "gq" left the cursor depended on the value of 'formatprg'.  Now "gq"
2029 always leaves the cursor at the last line of the formatted text.
2031 When editing a compressed file, such as "changelog.Debian.gz" file, filetype
2032 detection may try to check the contents of the file while it's still
2033 compressed.  Skip setting 'filetype' for compressed files until they have been
2034 decompressed.  Required for patterns that end in a "*".
2036 Starting with an argument "+cmd" or "-S script" causes the cursor the be moved
2037 to the first line.  That breaks a BufReadPost autocommand that uses g`".
2038 Don't move the cursor if it's somewhere past the first line.
2040 "gg=G" while 'modifiable' is off was uninterruptible.
2042 When 'encoding' is "sjis" inserting CTRL-V u d800 a few times causes a crash.
2043 Don't insert a DBCS character with a NUL second byte.
2045 In Insert mode CTRL-O <Home> didn't move the cursor.  Made "ins_at_eol" global
2046 and reset it in nv_home().
2048 Wildcard expansion failed: ":w /tmp/$$.`echo test`".  Don't put quotes around
2049 spaces inside backticks.
2051 After this sequence of commands: Y V p gv: the wrong line is selected.  Now
2052 let "gv" select the text that was put, since the original text is deleted.
2053 This should be the most useful thing to do.
2055 ":sleep 100u" sleeps for 100 seconds, not 100 usec as one might expect.  Give
2056 an error message when the argument isn't recognized.
2058 In gui_mch_draw_string() in gui_w32.c "unibuflen" wasn't static, resulting in
2059 reallocating the buffer every time. (Alexei Alexandrov)
2061 When using a Python "atexit" function it was not invoked when Vim exits.  Now
2062 call Py_Finalize() for that. (Ugo Di Girolamo)
2063 This breaks the thread stuff though, fixed by Ugo.
2065 GTK GUI: using a .vimrc with "set cmdheight=2 lines=43" and ":split" right
2066 after startup, the window layout is messed up. (Michael Schaap)  Added
2067 win_new_shellsize() call in gui_init() to fix the topframe size.
2069 Trick to get ...MOUSE_NM not used when there are vertical splits.  Now pass
2070 column -1 for the left most window and add MOUSE_COLOFF for others.  Limits
2071 mouse column to 10000.
2073 searchpair() may hang when the end pattern has "\zs" at the end.  Check that
2074 we find the same position again and advance one character.
2076 When in diff mode and making a change that causes the "changed" highlighting
2077 to disappear or reappear, it was still highlighted in another window.
2079 When a ":next" command fails because the user selects "Abort" at the ATTENTION
2080 prompt the argument index was advanced anyway.
2082 When "~" is in 'iskeyword' the "gd" doesn't work, it's used for the previous
2083 substitute pattern.  Put "\V" in the pattern to avoid that.
2085 Use of sprintf() sometimes didn't check properly for buffer overflow.  Also
2086 when using smsg().  Included code for snprintf() to avoid having to do size
2087 checks where invoking them
2089 ":help \=<Tab>" didn't find "sub-replace-\=".  Wild menu for help tags didn't
2090 show backslashes.  ":he :s\=" didn't work.
2092 When reading an errorfile "~/" in a file name was not expanded.
2094 GTK GUI: When adding a scrollbar (e.g. when using ":vsplit") in a script or
2095 removing it the window size may change.  GTK sends us resize events when we
2096 change the window size ourselves, but they may come at an unexpected moment.
2097 Peek for a character to get any window resize events and fix 'columns' and
2098 'lines' to undo this.
2100 When using the GTK plug mechanism, resizing and focus was not working
2101 properly. (Neil Bird)
2103 After deleting files from the argument list a session file generated with
2104 ":mksession" may contain invalid ":next" commands.
2106 When 'shortmess' is empty and 'keymap' set to accents, in Insert mode CTRL-N
2107 may cause the hit-enter prompt.  Typing 'a then didn't result in the accented
2108 character.  Put the character typed at the prompt back in the typeahead buffer
2109 so that mapping is done in the right mode.
2111 setbufvar() and setwinvar() did not give error messages.
2113 It was possible to set a variable with an illegal name, e.g. with setbufvar().
2114 It was possible to define a function with illegal name, e.t. ":func F{-1}()"
2116 CTRL-W F and "gf" didn't use the same method to get the file name.
2118 When reporting a conversion error the line number of the last error could be
2119 given.  Now report the first encountered error.
2121 When using ":e ++enc=name file" and iconv() was used for conversion an error
2122 caused a fall-back to no conversion.  Now replace a character with '?' and
2123 continue.
2125 When opening a new buffer the local value of 'bomb' was not initialized from
2126 the global value.
2128 Win32: When using the "Edit with Vim" entry the file name was limited to about
2129 200 characters.
2131 When using command line completion for ":e *foo" and the file "+foo" exists
2132 the resulting command ":e +foo" doesn't work.  Now insert a backslash: ":e
2133 \+foo".
2135 When the translation of "-- More --" was not 10 characters long the following
2136 message would be in the wrong position.
2138 At the more-prompt the last character in the last line wasn't drawn.
2140 When deleting non-existing text while 'virtualedit' is set the '[ and '] marks
2141 were not set.
2143 Win32: Could not use "**/" in 'path', it had to be "**\".
2145 The search pattern "\n" did not match at the end of the last line.
2147 Searching for a pattern backwards, starting on the NUL at the end of the line
2148 and 'encoding' is "utf-8" would match the pattern just before it incorrectly.
2149 Affected searchpair('/\*', '', '\*/').
2151 For the Find/Replace dialog it was possible that not finding the text resulted
2152 in an error message while redrawing, which cleared the syntax highlighting
2153 while it was being used, resulting in a crash.  Now don't clear syntax
2154 highlighting, disable it with b_syn_error.
2156 Win32: Combining UTF-8 characters were drawn on the previous character.
2157 Could be noticed with a Thai font.
2159 Output of ":function" could leave some of the typed text behind. (Yegappan
2160 Lakshmanan)
2162 When the command line history has only a few lines the command line window
2163 would be opened with these lines above the first window line.
2165 When using a command line window for search strings ":qa" would result in
2166 searching for "qa" instead of quitting all windows.
2168 GUI: When scrolling with the scrollbar and there is a line that doesn't fit
2169 redrawing may fail.  Make sure w_skipcol is valid before redrawing.
2171 Limit the values of 'columns' and 'lines' to avoid an overflow in Rows *
2172 Columns.  Fixed bad effects when running out of memory (command line would be
2173 reversed, ":qa!" resulted in ":!aq").
2175 Motif: "gvim -iconic" opened the window anyway.  (David Harrison)
2177 There is a tiny chance that a symlink gets created between checking for an
2178 existing file and creating a file.  Use the O_NOFOLLOW for open() if it's
2179 available.
2181 In an empty line "ix<CTRL-O>0" moved the cursor to after the line instead of
2182 sticking to the first column.
2184 When using ":wq" and a BufWriteCmd autocmd uses inputsecret() the text was
2185 echoed anyway.  Set terminal to raw mode in getcmdline().
2187 Unix: ":w a;b~c" caused an error in expanding wildcards.
2189 When appending to a file with ":w >>fname" in a buffer without a name, causing
2190 the buffer to use "fname", the modified flag was reset.
2192 When appending to the current file the "not edited" flag would be reset.
2193 ":w" would overwrite the file accidentally.
2195 Unix: When filtering text with an external command Vim would still read input,
2196 causing text typed for the command (e.g., a password) to be eaten and echoed.
2197 Don't read input when the terminal is in cooked mode.
2199 The Cygwin version of xxd used CR/LF line separators. (Corinna Vinschen)
2201 Unix: When filtering text through a shell command some resulting text may be
2202 dropped.  Now after detecting that the child has exited try reading some more
2203 of its output.
2205 When inside input(), using "CTRL-R =" and the expression throws an exception
2206 the command line was not abandoned but it wasn't used either.  Now abandon
2207 typing the command line.
2209 'delcombine' was also used in Visual and Select mode and for commands like
2210 "cl".  That was illogical and has been disabled.
2212 When recording while a CursorHold autocommand was defined special keys would
2213 appear in the register.  Now the CursorHold event is not triggered while
2214 recording.
2216 Unix: the src/configure script used ${srcdir-.}, not all shells understand
2217 that.  Use ${srcdir:-.} instead.
2219 When editing file "a" which is a symlink to file "b" that doesn't exist,
2220 writing file "a" to create "b" and then ":split b" resulted in two buffers on
2221 the same file with two different swapfile names.  Now set the inode in the
2222 buffer when creating a new file.
2224 When 'esckeys' is not set don't send the xterm code to request the version
2225 string, because it may cause trouble in Insert mode.
2227 When evaluating an expression for CTRL-R = on the command line it was possible
2228 to call a function that opens a new window, resulting in errors for
2229 incremental search, and many other nasty things were possible.  Now use the
2230 |textlock| to disallow changing the buffer or jumping to another window
2231 to protect from unexpected behavior.  Same for CTRL-\ e.
2233 "d(" deleted the character under the cursor, while the documentation specified
2234 an exclusive motion.  Vi also doesn't delete the character under the cursor.
2236 Shift-Insert in Insert mode could put the cursor before the last character
2237 when it just fits in the window.  In coladvance() don't stop at the window
2238 edge when filling with spaces and when in Insert mode.  In mswin.vim avoid
2239 getting a beep from the "l" command.
2241 Win32 GUI: When Alt-F4 is used to close the window and Cancel is selected in
2242 the dialog then Vim would insert <M-F4> in the text.  Now it's ignored.
2244 When ":silent! {cmd}" caused the swap file dialog, which isn't displayed,
2245 there would still be a hit-enter prompt.
2247 Requesting the termresponse (|t_RV|) early may cause problems with "-c"
2248 arguments that invoke an external command or even "-c quit".  Postpone it
2249 until after executing "-c" arguments.
2251 When typing in Insert mode so that a new line is started, using CTRL-G u to
2252 break undo and start a new change, then joining the lines with <BS> caused
2253 undo info to be missing.  Now reset the insertion start point.
2255 Syntax HL: When a region start match has a matchgroup and an offset that
2256 happens to be after the end of the line then it continued in the next line and
2257 stopped at the region end match, making the region continue after that.
2258 Now check for the column being past the end of the line in syn_add_end_off().
2260 When changing a file, setting 'swapfile' off and then on again, making another
2261 change and killing Vim, then some blocks may be missing from the swapfile.
2262 When 'swapfile' is switched back on mark all blocks in the swapfile as dirty.
2263 Added mf_set_dirty().
2265 Expanding wildcards in a command like ":e aap;<>!" didn't work.  Put
2266 backslashes before characters that are special to the shell. (Adri Verhoef)
2268 A CursorHold autocommand would cause a message to be cleared.  Don't show the
2269 special key for the event for 'showcmd'.
2271 When expanding a file name for a shell command, as in "!cmd foo<Tab>" or ":r
2272 !cmd foo<Tab>" also escape characters that are special for the shell:
2273 "!;&()<>".
2275 When the name of the buffer was set by a ":r fname" command |cpo-f| no
2276 autocommands were triggered to notify about the change in the buffer list.
2278 In the quickfix buffer 'bufhidden' was set to "delete", which caused closing
2279 the quickfix window to leave an unlisted "No Name" buffer behind every time.
2281 Win32: when using two screens of different size, setting 'lines' to a large
2282 value didn't fill the whole screen. (SungHyun Nam)
2284 Win32 installer: The generated _vimrc contained an absolute path to diff.exe.
2285 After upgrading it becomes invalid.  Now use $VIMRUNTIME instead.
2287 The command line was cleared to often when 'showmode' was set and ":silent
2288 normal vy" was used.  Don't clear the command line unless the mode was
2289 actually displayed.  Added the "mode_displayed" variable.
2291 The "load session" toolbar item could not handle a space or other special
2292 characters in v:this_session.
2294 ":set sta ts=8 sw=4 sts=2" deleted 4 spaces halfway a line instead of 2.
2296 In a multi-byte file the foldmarker could be recognized in the trail byte.
2297 (Taro Muraoka)
2299 Pasting with CTRL-V and menu didn't work properly when some commands are
2300 mapped.  Use ":normal!" instead of ":normal". (Tony Apuzzo)
2302 Crashed when expanding a file name argument in backticks.
2304 In some situations the menu and scrollbar didn't work, when the value contains
2305 a CSI byte. (Yukihiro Nakadaira)
2307 GTK GUI: When drawing the balloon focus changes and we might get a key release
2308 event that removed the balloon again.  Ignore the key release event.
2310 'titleold' was included in ":mkexrc" and ":mksession" files.
2312 ":set background&" didn't use the same logic as was used when starting up.
2314 When "umask" is set such that nothing is writable then the viminfo file would
2315 be written without write permission. (Julian Bridle)
2317 Motif: In diff mode dragging one scrollbar didn't update the scrollbar of the
2318 other diff'ed window.
2320 When editing in an xterm with a different number of colors than expected the
2321 screen would be cleared and redrawn, causing the message about the edited file
2322 to be cleared.  Now set "keep_msg" to redraw the last message.
2324 For a color terminal: When the Normal HL uses bold, possibly to make the color
2325 lighter, and another HL group specifies a color it might become light as well.
2326 Now reset bold if a HL group doesn't specify bold itself.
2328 When using 256 color xterm the color 255 would show up as color 0.  Use a
2329 short instead of a char to store the color number.
2331 ml_get errors when searching for "\n\zs" in an empty file.
2333 When selecting a block and using "$" to select until the end of every line and
2334 not highlighting the character under the cursor the first character of the
2335 block could be unhighlighted.
2337 When counting words for the Visual block area and using "$" to select until
2338 the end of every line only up to the length of the last line was counted.
2340 "dip" in trailing empty lines left one empty line behind.
2342 The script ID was only remembered globally for each option. When a buffer- or
2343 window-local option was set the same "last set" location was changed for all
2344 buffers and windows.  Now remember the script ID for each local option
2345 separately.
2347 GUI: The "Replace All" button didn't handle backslashes in the replacement in
2348 the same way as "Replace".  Escape backslashes so that they are taken
2349 literally.
2351 When using Select mode from Insert mode and typing a key, causing lines to be
2352 deleted and a message displayed, delayed the effect of inserting the key.
2353 Now overwrite the message without delay.
2355 When 'whichwrap' includes "l" then "dl" and "yl" on a single letter line
2356 worked differently.  Now recognize all operators when using "l" at the end of
2357 a line.
2359 GTK GUI: when the font selector returned a font name with a comma in it then
2360 it would be handled like two font names.  Now put a backslash before the
2361 comma.
2363 MS-DOS, Win32: When 'encoding' defaults to "latin1" then the value for
2364 'iskeyword' was still for CPxxx.  And when 'nocompatible' was set 'isprint'
2365 would also be the wrong value.
2367 When a command was defined not to take arguments and no '|' no warning message
2368 would be given for using a '|'.  Also with ":loadkeymap".
2370 Motif: When using a fontset and 'encoding' is "utf-8" and sizeof(wchar_t) !=
2371 sizeof(XChar2b) then display was wrong. (Yukihiro Nakadaira)
2373 ":all" always set the current window to the first window, even when it
2374 contains a buffer that is not in the argument list (can't be closed because it
2375 is modified).  Now go to the window that has the first item of the argument
2376 list.
2378 GUI: To avoid left-over pixels from bold text all characters after a character
2379 with special attributes were redrawn.  Now only do this for characters that
2380 actually are bold.  Speeds up displaying considerably.
2382 When only highlighting changes and the text is scrolled at the same time
2383 everything is redraw instead of using a scroll and updating the changed text.
2384 E.g., when using ":match" to highlight a paren that the cursor landed on.
2385 Added SOME_VALID: Redraw the whole window but also try to scroll to minimize
2386 redrawing.
2388 Win32: When using Korean IME making it active didn't work properly. (Moon,
2389 Yu-sung, 2005 March 21)
2391 Ruby interface: when inserting/deleting lines display wasn't updated. (Ryan
2392 Paul)
2394 --- fixes since Vim 7.0b ---
2396 Getting the GCC version in configure didn't work with Solaris sed.  First
2397 strip any "darwin." and then get the version number.
2399 The "autoload" directory was missing from the self-installing executable for
2400 MS-Windows.
2402 The MS-Windows install program would find "vimtutor.bat" in the install
2403 directory.  After changing to "c:" also change to "\" to avoid looking in the
2404 install directory.
2406 To make the 16 bit DOS version compile exclude not used highlight
2407 initializations and build a tiny instead of small version.
2409 finddir() and findfile() accept a negative count and return a List then.
2411 The Python indent file contained a few debugging statements, removed.
2413 Expanding {} for a function name, resulting in a name starting with "s:" was
2414 not handled correctly.
2416 Spelling: renamed COMPOUNDMAX to COMPOUNDWORDMAX.  Added several items to be
2417 able to handle the new Hungarian dictionary.
2419 Mac: Default to building for the current platform only, that is much faster
2420 than building a universal binary.  Also, using Perl/Python/etc. only works for
2421 the current platform.
2423 The time on undo messages disappeared for someone.  Using %T for strftime()
2424 apparently doesn't work everywhere.  Use %H:%M:%S instead.
2426 Typing BS at the "z=" prompt removed the prompt.
2428 --- fixes and changes since Vim 7.0c ---
2430 When jumping to another tab page the Vim window size was always set, even when
2431 nothing in the layout changed.
2433 Win32 GUI tab pages line wasn't always enabled.  Do a proper check for the
2434 compiler version.
2436 Win32: When switching between tab pages the Vim window was moved when part of
2437 it was outside of the screen.  Now only do that in the direction of a size
2438 change.
2440 Win32: added menu to GUI tab pages line. (Yegappan Lakshmanan)
2442 Mac: Added document icons. (Benji Fisher)
2444 Insert mode completion: Using Enter to accept the current match causes
2445 confusion.  Use CTRL-Y instead.  Also, use CTRL-E to go back to the typed
2446 text.
2448 GUI: When there are left and right scrollbars, ":tabedit" kept them instead of
2449 using the one that isn't needed.
2451 Using "gP" to replace al the text could leave the cursor below the last line,
2452 causing ml_get errors.
2454 When 'cursorline' is set don't use the highlighting when Visual mode is
2455 active, otherwise it's difficult to see the selected area.
2457 The matchparen plugin restricts the search to 100 lines, to avoid a long delay
2458 when there are closed folds.
2460 Sometimes using CTRL-X s to list spelling suggestions used text from another
2461 line.
2463 Win32: Set the default for 'isprint' back to the wrong default "@,~-255",
2464 because many people use Windows-1252 while 'encoding' is "latin1".
2466 GTK: Added a workaround for gvim crashing when used over an untrusted ssh
2467 link, caused by GTK doing something nasty. (Ed Catmur)
2469 Win32: The font used for the tab page labels is too big.  Use the system menu
2470 font. (George Reilly)
2472 Win32: Adjusting the window position and size to keep it on the screen didn't
2473 work properly when the taskbar is on the left or top of the screen.
2475 The installman.sh and installml.sh scripts use ${10}, that didn't work with
2476 old shells.  And use "test -f" instead of "test -e".
2478 Win32: When 'encoding' was set in the vimrc then a directory argument for diff
2479 mode didn't work.
2481 GUI: at the inputlist() prompt the cursorshape was adjusted as if the windows
2482 were still at their old position.
2484 The parenmatch plugin didn't remember the highlighting per window.
2486 Using ":bd" for a buffer that's the current window in another tab page caused
2487 a crash.
2489 For a new tab page the 'scroll' option wasn't set to a good default.
2491 Using an end offset for a search "/pat/e" didn't work properly for multi-byte
2492 text. (Yukihiro Nakadaira)
2494 ":s/\n/,/" doubled the text when used on the last line.
2496 When "search" is in 'foldopen' "[s" and "]s" now open folds.
2498 When using a numbered function "dict" can be omitted, but "self" didn't work
2499 then.  Always add FC_DICT to the function flags when it's part of a
2500 dictionary.
2502 When "--remote-tab" executes locally it left an empty tab page.
2504 "gvim -u NONE", ":set cursorcolumn", "C" in the second line didn't update
2505 text.  Do update further lines even though the "$" is displayed.
2507 VMS: Support GTK better, also enable +clientserver. (Zoltan Arpadffy)
2509 When highlighting of statusline or tabline is changed there was no redraw to
2510 show the effect.
2512 Mac: Added "CFBundleIdentifier" to infplist.xml.
2514 Added tabpage-local variables t:var.
2516 Win32: Added double-click in tab pages line creates new tab. (Yegappan
2517 Lakshmanan)
2519 Motif: Added GUI tab pages line. (Yegappan Lakshmanan)
2521 Fixed crash when 'lines' was set to 1000 in a modeline.
2523 When init_spellfile() finds a writable directory in 'runtimepath' but it
2524 doesn't contain a "spell" directory, create one.
2526 Win32: executable() also finds "xxd" in the directory where Vim was started,
2527 but "!xxd" doesn't work.  Append the Vim starting directory to $PATH.
2529 The tab page labels are shortened, directory names are reduced to a single
2530 letter by default.  Added the pathshorten() function to allow a user to do the
2531 same.
2533 ":saveas" now resets 'readonly' if the file was successfully written.
2535 Set $MYVIMRC file to the first found .vimrc file.
2536 Set $MYGVIMRC file to the first found .gvimrc file.
2537 Added menu item "Startup Settings" that edits the $MYVIMRC file
2539 Added matcharg().
2541 Error message E745 appeared twice.  Renamed one to E786.
2543 Fixed crash when using "au BufRead * Sexplore" and doing ":help".  Was wiping
2544 out a buffer that's still in a window.
2546 ":hardcopy" resulted in an error message when 'encoding' is "utf-8" and
2547 'printencoding' is empty.  Now it assumes latin1. (Mike Williams)
2549 The check for the toolbar feature for Motif, depending on certain included
2550 files, wasn't detailed enough, causing building to fail in gui_xmebw.c.
2552 Using CTRL-E in Insert mode completion after CTRL-P inserted the first match
2553 instead of the original text.
2555 When displaying a UTF-8 character with a zero lower byte Vim might think the
2556 previous character is double-wide.
2558 The "nbsp" item of 'listchars' didn't work when 'encoding' was utf-8.
2560 Motif: when Xm/xpm.h is missing gui_xmebw.c would not compile.
2561 HAVE_XM_UNHIGHLIGHTT_H was missing a T.
2563 Mac: Moved the .icns files into src/os_mac_rsrc, so that they can all be
2564 copied at once.  Adjusted the Info.plist file for three icons.
2566 When Visual mode is active while switching to another tabpage could get ml_get
2567 errors.
2569 When 'list' is set, 'nowrap' the $ in the first column caused 'cursorcolumn'
2570 to move to the right.
2572 When a line wraps, 'cursorcolumn' was never displayed past the end of the
2573 line.
2575 'autochdir' was only available when compiled with NetBeans and GUI.  Now it's
2576 a separate feature, also available in the "big" version.
2578 Added CTRL-W gf: open file under cursor in new tab page.
2580 When using the menu in the tab pages line, "New Tab" opens the new tab before
2581 where the click was.  Beyond the labels the new tab appears at the end instead
2582 of after the current tab page.
2584 Inside a mapping with an expression getchar() could not be used.
2586 When vgetc is used recursively vgetc_busy protects it from being used
2587 recursively.  But after a ":normal" command the protection was reset.
2589 ":s/a/b/n" didn't work when 'modifiable' was off.
2591 When $VIMRUNTIME includes a multi-byte character then rgb.txt could not be
2592 found. (Yukihiro Nakadaira)
2594 ":mkspell" didn't work correctly for non-ASCII affix flags when conversion is
2595 needed on the spell file.
2597 glob('/dir/\$ABC/*') didn't work.
2599 When using several tab pages and changing 'cmdheight' the display could become
2600 messed up.  Now store the value of 'cmdheight' separately for each tab page.
2602 The user of the Enter key while the popup menu is visible was still confusing.
2603 Now use Enter to select the match after using a cursor key.
2605 Added "usetab" to 'switchbuf'.
2608 --- fixes and changes since Vim 7.0d ---
2610 Added CTRL-W T: move a window to a new tab page.
2612 Using CTRL-X s in Insert mode to complete spelling suggestions and using BS
2613 deleted characters before the bad word.
2615 A few small fixes for the VMS makefile. (Zoltan Arpadffy)
2617 With a window of 91 lines 45 cols, ":vsp" scrolled the window.  Copy w_wrow
2618 when splitting a window and skip setting the height when it's already at the
2619 right value.
2621 Using <silent> in a mapping with a shell command and the GUI caused redraw
2622 to use wrong attributes.
2624 Win32: Using MSVC 4.1 for install.exe resulted in the start menu items to be
2625 created in the administrator directory instead of "All Users".  Define the
2626 CSIDL_ items if they are missing.
2628 Motif: The GUI tabline did not use the space above the right scrollbar.  Work
2629 around a bug in the Motif library. (Yegappan Lakshmanan)
2631 The extra files for XML Omni completion are now also installed.
2632 |xml-omni-datafile|
2634 GTK GUI: when 'm' is missing from 'guioptions' during startup and pressing
2635 <F10> GTK produced error messages.  Now do create the menu but disable it just
2636 after the first gui_mch_update().
2638 ":mkspell" doesn't work well with the Hungarian dictionary from the Hunspell
2639 project.  Back to the Myspell dictionary.
2641 In help files hide the | used around tags.
2643 Renamed pycomplete to pythoncomplete.
2645 Added "tabpages" to 'sessionoptions'.
2647 When 'guitablabel' is set the effect wasn't visible right away.
2649 Fixed a few 'cindent' errors.
2651 When completing menu names, e.g., after ":emenu", don't sort the entries but
2652 keep them in the original order.
2654 Fixed a crash when editing a directory in diff mode.  Don't trigger
2655 autocommands when executing the diff command.
2657 Getting a keystroke could get stuck if 'encoding' is a multi-byte encoding and
2658 typing a special key.
2660 When 'foldignore' is set the folds were not updated right away.
2662 When a list is indexed with [a : b] and b was greater than the length an error
2663 message was given.  Now silently truncate the result.
2665 When using BS during Insert mode completion go back to the original text, so
2666 that CTRL-N selects the first matching entry.
2668 Added the 'M' flag to 'cinoptions'.
2670 Win32: Make the "gvim --help" window appear in the middle of the screen
2671 instead of at an arbitrary position. (Randall W. Morris)
2673 Added gettabwinvar() and settabwinvar().
2675 Command line completion: pressing <Tab> after ":e /usr/*" expands the whole
2676 tree, because it becomes ":e /usr/**".  Don't add a star if there already is
2677 one.
2679 Added grey10 to grey90 to all GUIs, so that they can all be used for
2680 initializing highlighting.  Use grey40 for CursorColumn and CursorLine when
2681 'background' is "dark".
2683 When reading a file and using iconv for conversion, an incomplete byte
2684 sequence at the end caused problems. (Yukihiro Nakadaira)
2687 --- fixes and changes since Vim 7.0e ---
2689 Default color for MatchParen when 'background' is "dark" is now DarkCyan.
2691 ":syn off" had to be used twice in a file that sets 'syntax' in a modeline.
2692 (Michael Geddes)
2694 When using ":vsp" or ":sp" the available space wasn't used equally between
2695 windows. (Servatius Brandt)
2697 Expanding <cWORD> on a trailing blank resulted in the first word in the line
2698 if 'encoding' is a multi-byte encoding.
2700 Spell checking: spellbadword() didn't see a missing capital in the first word
2701 of a line.  Popup menu now only suggest the capitalized word when appropriate.
2703 When using whole line completion CTRL-L moves through the matches but it
2704 didn't work when at the original text.
2706 When completion finds the longest match, don't go to the first match but stick
2707 at the original text, so that CTRL-N selects the first one.
2709 Recognize "zsh-beta" like "zsh" for setting the 'shellpipe' default. (James
2710 Vega)
2712 When using ":map <expr>" and the expression results in something with a
2713 special byte (NUL or CSI) then it didn't work properly.  Now escape special
2714 bytes.
2716 The default Visual highlighting for a color xterm with 8 colors was a magenta
2717 background, which made magenta text disappear.  Now use reverse in this
2718 specific situation.
2720 After completing the longest match "." didn't insert the same text.  Repeating
2721 also didn't work correctly for multi-byte text.
2723 When using Insert mode completion and BS the whole word that was completed
2724 would result in all possible matches.  Now stop completion.  Also fixes that
2725 for spell completion the previous word was deleted.
2727 GTK: When 'encoding' is "latin1" and using non-ASCII characters in a file name
2728 the tab page label was wrong and an error message would be given.
2730 The taglist() function could hang on a tags line with a non-ASCII character.
2732 Win32: When 'encoding' differs from the system encoding tab page labels with
2733 non-ASCII characters looked wrong. (Yegappan Lakshmanan)
2735 Motif: building failed when Xm/Notebook.h doesn't exist.  Added a configure
2736 check, disable GUI tabline when it's missing.
2738 Mac: When compiled without multi-byte feature the clipboard didn't work.
2740 It was possible to switch to another tab page when the cmdline window is open.
2742 Completion could hang when 'lines' is 6 and a preview window was opened.
2744 Added CTRL-W gF: open file under cursor in new tab page and jump to the line
2745 number following the file name.
2746 Added 'guitabtooltip'.  Implemented for Win32 (Yegappan Lakshmanan).
2748 Added "throw" to 'debug' option: throw an exception for error messages even
2749 whey they would otherwise be ignored.
2751 When 'keymap' is set and a line contains an invalid entry could get a "No
2752 mapping found" warning instead of a proper error message.
2754 Motif: default to using XpmAttributes instead of XpmAttributes_21.
2756 A few more changes for 64 bit MS-Windows. (George Reilly)
2758 Got ml_get errors when doing "o" and selecting in other window where there are
2759 less line shorter than the cursor position in the other window.  ins_mouse()
2760 was using position in wrong window.
2762 Win32 GUI: Crash when giving a lot of messages during startup.  Allocate twice
2763 as much memory for the dialog template.
2765 Fixed a few leaks and wrong pointer use reported by coverity.
2767 When showing menus the mode character was sometimes wrong.
2769 Added feedkeys(). (Yakov Lerner)
2771 Made matchlist() always return all submatches.
2773 Moved triggering QuickFixCmdPost to before jumping to the first location.
2775 Mac: Added the 'macatsui' option as a temporary work around for text drawing
2776 problems.
2778 Line completion on "/**" gave error messages when scanning an unloaded buffer.
2780 --- fixes and changes since Vim 7.0f ---
2782 Win32: The height of the tab page labels is now adjusted to the font height.
2783 (Yegappan Lakshmanan)
2785 Win32: selecting the tab label was off by one. (Yegappan Lakshmanan)
2787 Added tooltips for Motif and GTK tab page labels. (Yegappan Lakshmanan)
2789 When 'encoding' is "utf-8" then ":help spell" would report an illegal byte and
2790 the file was not converted from latin1 to utf-8.  Now retry with latin1 if
2791 reading the file as utf-8 results in illegal bytes.
2793 Escape the argument of feedkeys() before putting it in the typeahead buffer.
2794 (Yukihiro Nakadaira)
2796 Added the v:char variable for evaluating 'formatexpr'. (Yukihiro Nakadaira)
2798 With 8 colors Search highlighting combined with Statement highlighted text
2799 made the text disappear.
2801 VMS: avoid warnings for redefining MAX and MIN. (Zoltan Arpadffy)
2803 When 'virtualedit' includes "onemore", stopping Visual selection would still
2804 move the cursor left.
2806 Prevent that using CTRL-R = in Insert mode can start Visual mode.
2808 Fixed a crash that occurred when in Insert mode with completion active and a
2809 mapping caused edit() to be called recursively.
2811 When using CTRL-O in Insert mode just after the last character while
2812 'virtualedit' is "all", then typing CR moved the last character to the next
2813 line.  Call coladvance() before starting the new line.
2815 When using |:shell| ignore clicks on the tab page labels.  Also when using the
2816 command line window.
2818 When 'eventignore' is "all" then adding more to ignoring some events, e.g.,
2819 for ":vimgrep", would actually trigger more events.
2821 Win32: When a running Vim uses server name GVIM1 then "gvim --remote fname"
2822 didn't find it.  When looking for a server name that doesn't end in a digit
2823 and it is not found then use another server with that name and a number (just
2824 like on Unix).
2826 When using "double" in 'spellsuggest' when the language doesn't support sound
2827 folding resulted in too many suggestions.
2829 Win32: Dropping a shortcut on the Vim icon didn't edit the referred file like
2830 editing it in another way would.  Use fname_expand() in buf_set_name() instead
2831 of simply make the file name a full path.
2833 Using feedkeys() could cause Vim to hang.
2835 When closing another tab page from the tabline menu in Insert mode the tabline
2836 was not updated right away.
2838 The syntax menu didn't work in compatible mode.
2840 After using ":tag id" twice with the same "id", ":ts" and then ":pop" a ":ts"
2841 reported no matching tag.  Clear the cached tag name.
2843 In Insert mode the matchparen plugin highlighted the wrong paren when there is
2844 a string just next to a paren.
2846 GTK: After opening a new tab page the text was sometimes not drawn correctly.
2847 Flush output and catch up with events when updating the tab page labels.
2849 In the GUI, using CTRL-W q to close the last window of a tab page could cause
2850 a crash.
2852 GTK: The tab pages line menu was not converted from 'encoding' to utf-8.
2854 Typing a multi-byte character or a special key at the hit-enter prompt did not
2855 work.
2857 When 'virtualedit' contains "onemore" CTRL-O in Insert mode still moved the
2858 cursor left when it was after the end of the line, even though it's allowed to
2859 be there.
2861 Added test for using tab pages.
2863 towupper() and towlower() were not used, because of checking for
2864 __STDC__ISO_10646__ instead of __STDC_ISO_10646__. (sertacyildiz)
2866 For ":map <expr>" forbid changing the text, jumping to another buffer and
2867 using ":normal" to avoid nasty side effects.
2869 --- fixes and changes since Vim 7.0g ---
2871 Compilation error on HP-UX, use of "dlerr" must be inside a #ifdef.
2872 (Gary Johnson)
2874 Report +reltime feature in ":version" output.
2876 The tar and zip plugins detect failure to get the contents of the archive and
2877 edit the file as-is.
2879 When the result of 'guitablabel' is empty fall back to the default label.
2881 Fixed crash when using ":insert" in a while loop and missing "endwhile".
2883 "gt" and other commands could move to another window when |textlock| active
2884 and when the command line window was open.
2886 Spell checking a file with syntax highlighting and a bad word at the end of
2887 the line is ignored could make "]s" hang.
2889 Mac: inputdialog() didn't work when compiled with big features.
2891 Interrupting ":vimgrep" while it is busy loading a file left a modified and
2892 hidden buffer behind.  Use enter_cleanup() and leave_cleanup() around
2893 wipe_buffer().
2895 When making 'keymap' empty the b:keymap_name variable wasn't deleted.
2897 Using CTRL-N that searches a long time, pressing space to interrupt the
2898 searching and accept the first match, the popup menu was still displayed
2899 briefly.
2901 When setting the Vim window height with -geometry the 'window' option could be
2902 at a value that makes CTRL-F behave differently.
2904 When opening a quickfix window in two tabs they used different buffers,
2905 causing redrawing problems later.  Now use the same buffer for all quickfix
2906 windows. (Yegappan Lakshmanan)
2908 When 'mousefocus' is set moving the mouse to the text tab pages line would
2909 move focus to the first window.  Also, the mouse pointer would jump to the
2910 active window.
2912 In a session file, when an empty buffer is wiped out, do this silently.
2914 When one window has the cursor on the last line and another window is resized
2915 to make that window smaller, the cursor line could go below the displayed
2916 lines.  In win_new_height() subtract one from the available space.
2917 Also avoid that using "~" lines makes the window scroll down.
2919 Mac: When sourcing the "macmap.vim" script and then finding a .vimrc file the
2920 'cpo' option isn't set properly, because it was already set and restored.
2921 Added the <special> argument to ":map", so that 'cpo' doesn't need to be
2922 changed to be able to use <> notation.  Also do this for ":menu" for
2923 consistency.
2925 When using "/encoding=abc" in a spell word list, only "bc" was used.
2927 When 'encoding' and 'printencoding' were both "utf-8" then ":hardcopy" didn't
2928 work. (Mike Williams)
2930 Mac: When building with "--disable-gui" the install directory would still be
2931 "/Applications" and Vim.app would be installed.  Now install in /usr/local as
2932 usual for a console application.
2934 GUI: when doing completion and there is one match and still searching for
2935 another, the cursor was displayed at the end of the line instead of after the
2936 match.  Now show the cursor after the match while still searching for matches.
2938 GUI: The mouse shape changed on the statusline even when 'mouse' was empty and
2939 they can't be dragged..
2941 GTK2: Selecting a button in the confirm() dialog with Tab or cursor keys and
2942 hitting Enter didn't select that button.  Removed GTK 1 specific code. (Neil
2943 Bird)
2945 When evaluating 'balloonexpr' takes a long time it could be called
2946 recursively, which could cause a crash.
2948 exists() could not be used to detect whether ":2match" is supported.  Added a
2949 check for it specifically.
2951 GTK1: Tab page labels didn't work. (Yegappan Lakshmanan)
2953 Insert mode completion: When finding matches use 'ignorecase', but when adding
2954 matches to the list don't use it, so that all words with different case are
2955 added, "word", "Word" and "WORD".
2957 When 'cursorline' and 'hlsearch' are set and the search pattern is "x\n"
2958 the rest of the line was highlighted as a match.
2960 Cursor moved while evaluating 'balloonexpr' that invokes ":isearch" and
2961 redirects the output.  Don't move the cursor to the command line if msg_silent
2962 is set.
2964 exists() ignored text after a function name and option name, which could
2965 result in false positives.
2967 exists() ignored characters after the recognized word, which can be wrong when
2968 using a name with non-keyword characters.  Specifically, these calls no longer
2969 allow characters after the name: exists('*funcname') exists('*funcname(...')
2970 exists('&option') exists(':cmd') exists('g:name') exists('g:name[n]')
2971 exists('g:name.n')
2973 Trigger the TabEnter autocommand only after entering the current window of the
2974 tab page, otherwise the commands are executed with an invalid current window.
2976 Win32: When using two monitors and Vim is on the second monitor, changing the
2977 width of the Vim window could make it jump to the first monitor.
2979 When scrolling back at the more prompt and the quitting a line of text would
2980 be left behind when 'cmdheight' is 2 or more.
2982 Fixed a few things for Insert mode completion, especially when typing BS,
2983 CTRL-N or a printable character while still searching for matches.
2986 ==============================================================================
2987 VERSION 7.1                                             *version-7.1*
2989 This section is about improvements made between version 7.0 and 7.1.
2991 This is a bug-fix release, there are no fancy new features.
2994 Changed                                                 *changed-7.1*
2995 -------
2997 Added setting 'mouse' in vimrc_example.vim.
2999 When building with MZscheme also look for include files in the "plt"
3000 subdirectory.  That's where they are for FreeBSD.
3002 The Ruby interface module is now called "Vim" instead of "VIM".  But "VIM" is
3003 an alias, so it's backwards compatible. (Tim Pope)
3006 Added                                                   *added-7.1*
3007 -----
3009 New syntax files:
3010         /var/log/messages (Yakov Lerner)
3011         Autohotkey (Nikolai Weibull)
3012         AutoIt v3 (Jared Breland)
3013         Bazaar commit file "bzr". (Dmitry Vasiliev)
3014         Cdrdao TOC (Nikolai Weibull)
3015         Cmusrc (Nikolai Weibull)
3016         Conary recipe (rPath Inc)
3017         Framescript (Nikolai Weibull)
3018         FreeBasic (Mark Manning)
3019         Hamster (David Fishburn)
3020         IBasic (Mark Manning)
3021         Initng (Elan Ruusamae)
3022         Ldapconf (Nikolai Weibull)
3023         Litestep (Nikolai Weibull)
3024         Privoxy actions file (Doug Kearns)
3025         Streaming Descriptors "sd" (Puria Nafisi Azizi)
3027 New tutor files:
3028         Czech (Lubos Turek)
3029         Hungarian (Arpad Horvath)
3030         Turkish (Serkan kkk)
3031         utf-8 version of Greek tutor.
3032         utf-8 version of Russian tutor.
3033         utf-8 version of Slowak tutor.
3035 New filetype plugins:
3036         Bst (Tim Pope)
3037         Cobol (Tim Pope)
3038         Fvwm (Gautam Iyer)
3039         Hamster (David Fishburn)
3040         Django HTML template (Dave Hodder)
3042 New indent files:
3043         Bst (Tim Pope)
3044         Cobol (Tim Pope)
3045         Hamster (David Fishburn)
3046         Django HTML template (Dave Hodder)
3047         Javascript
3048         JSP (David Fishburn)
3050 New keymap files:
3051         Bulgarian (Boyko Bantchev)
3052         Mongolian (Natsagdorj Shagdar)
3053         Thaana (Ibrahim Fayaz)
3054         Vietnamese (Samuel Thibault)
3056 Other new runtime files:
3057         Ada support files. (Neil Bird, Martin Krischik)
3058         Slovenian menu translations (Mojca Miklavec)
3059         Mono C# compiler plugin (Jarek Sobiecki)
3062 Fixed                                                   *fixed-7.1*
3063 -----
3065 Could not build the Win32s version.  Added a few structure definitions in
3066 src/gui_w32.c
3069 Patch 7.0.001
3070 Problem:    ":set spellsuggest+=10" does not work. (Suresh Govindachar)
3071 Solution:   Add P_COMMA to the 'spellsuggest' flags.
3072 Files:      src/option.c
3074 Patch 7.0.002
3075 Problem:    C omni completion has a problem with tags files with a path
3076             containing "#" or "%".
3077 Solution:   Escape these characters. (Sebastian Baberowski)
3078 Files:      runtime/autoload/ccomplete.vim
3080 Patch 7.0.003
3081 Problem:    GUI: clicking in the lower part of a label in the tab pages line
3082             while 'mousefocus' is set may warp the mouse pointer. (Robert
3083             Webb)
3084 Solution:   Check for a negative mouse position.
3085 Files:      src/gui.c
3087 Patch 7.0.004
3088 Problem:    Compiler warning for debug_saved used before set. (Todd Blumer)
3089 Solution:   Remove the "else" for calling save_dbg_stuff().
3090 Files:      src/ex_docmd.c
3092 Patch 7.0.005 (extra)
3093 Problem:    Win32: The installer doesn't remove the "autoload" and "spell"
3094             directories. (David Fishburn)
3095 Solution:   Add the directories to the list to be removed.
3096 Files:      nsis/gvim.nsi
3098 Patch 7.0.006
3099 Problem:    Mac: "make shadow" doesn't make a link for infplist.xml. (Axel
3100             Kielhorn)
3101 Solution:   Make the link.
3102 Files:      src/Makefile
3104 Patch 7.0.007
3105 Problem:    AIX: compiling fails for message.c. (Ruediger Hornig)
3106 Solution:   Move the #if outside of memchr().
3107 Files:      src/message.c
3109 Patch 7.0.008
3110 Problem:    Can't call a function that uses both <SID> and {expr}. (Thomas)
3111 Solution:   Check both the expanded and unexpanded name for <SID>.
3112 Files:      src/eval.c
3114 Patch 7.0.009
3115 Problem:    ml_get errors with both 'sidescroll' and 'spell' set.
3116 Solution:   Use ml_get_buf() instead of ml_get(), get the line from the right
3117             buffer, not the current one.
3118 Files:      src/spell.c
3120 Patch 7.0.010
3121 Problem:    The spellfile plugin required typing login name and password.
3122 Solution:   Use "anonymous" and "vim7user" by default.  No need to setup a
3123             .netrc file.
3124 Files:      runtime/autoload/spellfile.vim
3126 Patch 7.0.011
3127 Problem:    Can't compile without the folding and with the eval feature.
3128 Solution:   Add an #ifdef. (Vallimar)
3129 Files:      src/option.c
3131 Patch 7.0.012
3132 Problem:    Using the matchparen plugin, moving the cursor in Insert mode to a
3133             shorter line that ends in a brace, changes the preferred column
3134 Solution:   Use winsaveview()/winrestview() instead of getpos()/setpos().
3135 Files:      runtime/plugin/matchparen.vim
3137 Patch 7.0.013
3138 Problem:    Insert mode completion: using CTRL-L to add an extra character
3139             also deselects the current match, making it impossible to use
3140             CTRL-L a second time.
3141 Solution:   Keep the current match.  Also make CTRL-L work at the original
3142             text, using the first displayed match.
3143 Files:      src/edit.c
3145 Patch 7.0.014
3146 Problem:    Compiling gui_xmebw.c fails on Dec Alpha Tru64. (Rolfe)
3147 Solution:   Disable some code for Motif 1.2 and older.
3148 Files:      src/gui_xmebw.c
3150 Patch 7.0.015
3151 Problem:    Athena: compilation problems with modern compiler.
3152 Solution:   Avoid type casts for lvalue. (Alexey Froloff)
3153 Files:      src/gui_at_fs.c
3155 Patch 7.0.016
3156 Problem:    Printing doesn't work for "dec-mcs" encoding.
3157 Solution:   Add "dec-mcs", "mac-roman" and "hp-roman8" to the list of
3158             recognized 8-bit encodings. (Mike Williams)
3159 Files:      src/mbyte.c
3161 Patch 7.0.017 (after 7.0.014)
3162 Problem:    Linking gui_xmebw.c fails on Dec Alpha Tru64. (Rolfe)
3163 Solution:   Adjust defines for Motif 1.2 and older.
3164 Files:      src/gui_xmebw.c
3166 Patch 7.0.018
3167 Problem:    VMS: plugins are not loaded on startup.
3168 Solution:   Remove "**" from the path. (Zoltan Arpadffy)
3169 Files:      src/main.c
3171 Patch 7.0.019
3172 Problem:    Repeating "VjA789" may cause a crash. (James Vega)
3173 Solution:   Check the cursor column after moving it to another line.
3174 Files:      src/ops.c
3176 Patch 7.0.020
3177 Problem:    Crash when using 'mousefocus'. (William Fulton)
3178 Solution:   Make buffer for mouse coordinates 2 bytes longer. (Juergen Weigert)
3179 Files:      src/gui.c
3181 Patch 7.0.021
3182 Problem:    Crash when using "\\[" and "\\]" in 'errorformat'. (Marc Weber)
3183 Solution:   Check for valid submatches after matching the pattern.
3184 Files:      src/quickfix.c
3186 Patch 7.0.022
3187 Problem:    Using buffer.append() in Ruby may append the line to the wrong
3188             buffer. (Alex Norman)
3189 Solution:   Properly switch to the buffer to do the appending.  Also for
3190             buffer.delete() and setting a buffer line.
3191 Files:      src/if_ruby.c
3193 Patch 7.0.023
3194 Problem:    Crash when doing spell completion in an empty line and pressing
3195             CTRL-E.
3196 Solution:   Check for a zero pointer. (James Vega)
3197             Also handle a situation without a matching pattern better, report
3198             "No matches" instead of remaining in undefined CTRL-X mode.  And
3199             get out of CTRL-X mode when typing a letter.
3200 Files:      src/edit.c
3202 Patch 7.0.024
3203 Problem:    It is possible to set arbitrary "v:" variables.
3204 Solution:   Disallow setting "v:" variables that are not predefined.
3205 Files:      src/eval.c
3207 Patch 7.0.025
3208 Problem:    Crash when removing an element of a:000.  (Nikolai Weibull)
3209 Solution:   Mark the a:000 list with VAR_FIXED.
3210 Files:      src/eval.c
3212 Patch 7.0.026
3213 Problem:    Using libcall() may show an old error.
3214 Solution:   Invoke dlerror() to clear a previous error. (Yukihiro Nakadaira)
3215 Files:      src/os_unix.c
3217 Patch 7.0.027 (extra)
3218 Problem:    Win32: When compiled with SNIFF gvim may hang on exit.
3219 Solution:   Translate and dispatch the WM_USER message. (Mathias Michaelis)
3220 Files:      src/gui_w48.c
3222 Patch 7.0.028 (extra)
3223 Problem:    OS/2: Vim doesn't compile with gcc 3.2.1.
3224 Solution:   Add argument to after_pathsep(), don't define vim_handle_signal(),
3225             define HAVE_STDARG_H. (David Sanders)
3226 Files:      src/os_unix.c, src/vim.h, src/os_os2_cfg.h
3228 Patch 7.0.029
3229 Problem:    getchar() may not position the cursor after a space.
3230 Solution:   Position the cursor explicitly.
3231 Files:      src/eval.c
3233 Patch 7.0.030
3234 Problem:    The ":compiler" command can't be used in a FileChangedRO event.
3235             (Hari Krishna Dara)
3236 Solution:   Add the CMDWIN flag to the ":compiler" command.
3237 Files:      src/ex_cmds.h
3239 Patch 7.0.031
3240 Problem:    When deleting a buffer the buffer-local mappings for Select mode
3241             remain.
3242 Solution:   Add the Select mode bit to MAP_ALL_MODES. (Edwin Steiner)
3243 Files:      src/vim.h
3245 Patch 7.0.032 (extra, after 7.0.027)
3246 Problem:    Missing semicolon.
3247 Solution:   Add the semicolon.
3248 Files:      src/gui_w48.c
3250 Patch 7.0.033
3251 Problem:    When pasting text, with the menu or CTRL-V, autoindent is removed.
3252 Solution:   Use "x<BS>" to avoid indent to be removed. (Benji Fisher)
3253 Files:      runtime/autoload/paste.vim
3255 Patch 7.0.034
3256 Problem:    After doing completion and typing more characters or using BS
3257             repeating with "." didn't work properly. (Martin Stubenschrott)
3258 Solution:   Don't put BS and other characters in the redo buffer right away,
3259             do this when finishing completion.
3260 Files:      src/edit.c
3262 Patch 7.0.035
3263 Problem:    Insert mode completion works when typed but not when replayed from
3264             a register. (Hari Krishna Dara)
3265             Also: Mappings for Insert mode completion don't always work.
3266 Solution:   When finding a non-completion key in the input don't interrupt
3267             completion when it wasn't typed.
3268             Do use mappings when checking for typeahead while still finding
3269             completions.  Avoids that completion is interrupted too soon.
3270             Use "compl_pending" in a different way.
3271 Files:      src/edit.c
3273 Patch 7.0.036
3274 Problem:    Can't compile with small features and syntax highlighting or the
3275             diff feature.
3276 Solution:   Define LINE_ATTR whenever syntax highlighting or the diff feature
3277             is enabled.
3278 Files:      src/screen.c
3280 Patch 7.0.037
3281 Problem:    Crash when resizing the GUI window vertically when there is a line
3282             that doesn't fit.
3283 Solution:   Don't redraw while the screen data is invalid.
3284 Files:      src/screen.c
3286 Patch 7.0.038
3287 Problem:    When calling complete() from an Insert mode expression mapping
3288             text could be inserted in an improper way.
3289 Solution:   Make undo_allowed() global and use it in complete().
3290 Files:      src/undo.c, src/proto/undo.pro, src/eval.c
3292 Patch 7.0.039
3293 Problem:    Calling inputdialog() with a third argument in the console doesn't
3294             work.
3295 Solution:   Make a separate function for input() and inputdialog(). (Yegappan
3296             Lakshmanan)
3297 Files:      src/eval.c
3299 Patch 7.0.040
3300 Problem:    When 'cmdheight' is larger than 1 using inputlist() or selecting
3301             a spell suggestion with the mouse gets the wrong entry.
3302 Solution:   Start listing the first alternative on the last line of the screen.
3303 Files:      src/eval.c, src/spell.c
3305 Patch 7.0.041
3306 Problem:    cursor([1, 1]) doesn't work. (Peter Hodge)
3307 Solution:   Allow leaving out the third item of the list and use zero for the
3308             virtual column offset.
3309 Files:      src/eval.c
3311 Patch 7.0.042
3312 Problem:    When pasting a block of text in Insert mode Vim hangs or crashes.
3313             (Noam Halevy)
3314 Solution:   Avoid that the cursor is positioned past the NUL of a line.
3315 Files:      src/ops.c
3317 Patch 7.0.043
3318 Problem:    Using "%!" at the start of 'statusline' doesn't work.
3319 Solution:   Recognize the special item when the option is being set.
3320 Files:      src/option.c
3322 Patch 7.0.044
3323 Problem:    Perl: setting a buffer line in another buffer may result in
3324             changing the current buffer.
3325 Solution:   Properly change to the buffer to be changed.
3326 Files:      src/if_perl.xs
3328 Patch 7.0.045 (extra)
3329 Problem:    Win32: Warnings when compiling OLE version with MSVC 2005.
3330 Solution:   Move including vim.h to before windows.h. (Ilya Bobir)
3331 Files:      src/if_ole.cpp
3333 Patch 7.0.046
3334 Problem:    The matchparen plugin ignores parens in strings, but not in single
3335             quotes, often marked with "character".
3336 Solution:   Also ignore parens in syntax items matching "character".
3337 Files:      runtime/plugin/matchparen.vim
3339 Patch 7.0.047
3340 Problem:    When running configure the exit status is wrong.
3341 Solution:   Handle the exit status properly. (Matthew Woehlke)
3342 Files:      configure, src/configure
3344 Patch 7.0.048
3345 Problem:    Writing a compressed file fails when there are parens in the name.
3346             (Wang Jian)
3347 Solution:   Put quotes around the temp file name.
3348 Files:      runtime/autoload/gzip.vim
3350 Patch 7.0.049
3351 Problem:    Some TCL scripts are not recognized. (Steven Atkinson)
3352 Solution:   Check for "exec wish" in the file.
3353 Files:      runtime/scripts.vim
3355 Patch 7.0.050
3356 Problem:    After using the netbeans interface close command a stale pointer
3357             may be used.
3358 Solution:   Clear the pointer to the closed buffer. (Xaview de Gaye)
3359 Files:      src/netbeans.c
3361 Patch 7.0.051 (after 7.0.44)
3362 Problem:    The Perl interface doesn't compile or doesn't work properly.
3363 Solution:   Remove the spaces before #ifdef and avoid an empty line above it.
3364 Files:      src/if_perl.xs
3366 Patch 7.0.052
3367 Problem:    The user may not be aware that the Vim server allows others more
3368             functionality than desired.
3369 Solution:   When running Vim as root don't become a Vim server without an
3370             explicit --servername argument.
3371 Files:      src/main.c
3373 Patch 7.0.053
3374 Problem:    Shortening a directory name may fail when there are multi-byte
3375             characters.
3376 Solution:   Copy the correct bytes. (Titov Anatoly)
3377 Files:      src/misc1.c
3379 Patch 7.0.054
3380 Problem:    Mac: Using a menu name that only has a mnemonic or accelerator
3381             causes a crash.  (Elliot Shank)
3382 Solution:   Check for an empty menu name.  Also delete empty submenus that
3383             were created before detecting the error.
3384 Files:      src/menu.c
3386 Patch 7.0.055
3387 Problem:    ":startinsert" in a CmdwinEnter autocommand doesn't take immediate
3388             effect. (Bradley White)
3389 Solution:   Put a NOP key in the typeahead buffer.  Also avoid that using
3390             CTRL-C to go back to the command line moves the cursor left.
3391 Files:      src/edit.c, src/ex_getln.c
3393 Patch 7.0.056
3394 Problem:    "#!something" gives an error message.
3395 Solution:   Ignore this line, so that it can be used in an executable Vim
3396             script.
3397 Files:      src/ex_docmd.c
3399 Patch 7.0.057 (extra, after 7.0.45)
3400 Problem:    Win32: Compilation problem with Borland C 5.5.
3401 Solution:   Include vim.h as before. (Mark S. Williams)
3402 Files:      src/if_ole.cpp
3404 Patch 7.0.058
3405 Problem:    The gbk and gb18030 encodings are not recognized.
3406 Solution:   Add aliases to cp936. (Edward L. Fox)
3407 Files:      src/mbyte.c
3409 Patch 7.0.059
3410 Problem:    The Perl interface doesn't compile with ActiveState Perl 5.8.8.
3411 Solution:   Remove the __attribute__() items. (Liu Yubao)
3412 Files:      src/if_perl.xs
3414 Patch 7.0.060 (after 7.0.51)
3415 Problem:    Code for temporarily switching to another buffer is duplicated in
3416             quite a few places.
3417 Solution:   Use aucmd_prepbuf() and aucmd_restbuf() also when FEAT_AUTOCMD is
3418             not defined.
3419 Files:      src/buffer.c, src/eval.c, src/fileio.c, src/if_ruby.c,
3420             src/if_perl.xs, src/quickfix.c, src/structs.h
3422 Patch 7.0.061
3423 Problem:    Insert mode completion for Vim commands may crash if there is
3424             nothing to complete.
3425 Solution:   Instead of freeing the pattern make it empty, so that a "not
3426             found" error is given. (Yukihiro Nakadaira)
3427 Files:      src/edit.c
3429 Patch 7.0.062
3430 Problem:    Mac: Crash when using the popup menu for spell correction.  The
3431             popup menu appears twice when letting go of the right mouse button
3432             early.
3433 Solution:   Don't show the popup menu on the release of the right mouse
3434             button.  Also check that a menu pointer is actually valid.
3435 Files:      src/proto/menu.pro, src/menu.c, src/normal.c, src/term.c
3437 Patch 7.0.063
3438 Problem:    Tiny chance for a memory leak. (coverity)
3439 Solution:   Free pointer when next memory allocation fails.
3440 Files:      src/eval.c
3442 Patch 7.0.064
3443 Problem:    Using uninitialized variable. (Tony Mechelynck)
3444 Solution:   When not used set "temp" to zero.  Also avoid a warning for
3445             "files" in ins_compl_dictionaries().
3446 Files:      src/edit.c
3448 Patch 7.0.065 (extra)
3449 Problem:    Mac: left-right movement of the scrollwheel causes up-down
3450             scrolling.
3451 Solution:   Ignore mouse wheel events that are not up-down. (Nicolas Weber)
3452 Files:      src/gui_mac.c
3454 Patch 7.0.066
3455 Problem:    After the popup menu for Insert mode completion overlaps the tab
3456             pages line it is not completely removed.
3457 Solution:   Redraw the tab pages line after removing the popup menu. (Ori
3458             Avtalion)
3459 Files:      src/popupmnu.c
3461 Patch 7.0.067
3462 Problem:    Undo doesn't always work properly when using "scim" input method.
3463             Undo is split up when using preediting.
3464 Solution:   Reset xim_has_preediting also when preedit_start_col is not
3465             MAXCOL.  Don't split undo when <Left> is used while preediting.
3466             (Yukihiro Nakadaira)
3467 Files:      src/edit.c, src/mbyte.c
3469 Patch 7.0.068
3470 Problem:    When 'ignorecase' is set and using Insert mode completion,
3471             typing characters to change the list of matches, case is not
3472             ignored. (Hugo Ahlenius)
3473 Solution:   Store the 'ignorecase' flag with the matches where needed.
3474 Files:      src/edit.c, src/search.c, src/spell.c
3476 Patch 7.0.069
3477 Problem:    Setting 'guitablabel' to %!expand(\%)  causes Vim to free an
3478             invalid pointer. (Kim Schulz)
3479 Solution:   Don't try freeing a constant string pointer.
3480 Files:      src/buffer.c
3482 Patch 7.0.070
3483 Problem:    Compiler warnings for shadowed variables and uninitialized
3484             variables.
3485 Solution:   Rename variables such as "index", "msg" and "dup".  Initialize
3486             variables.
3487 Files:      src/edit.c, src/eval.c, src/ex_cmds.c, src/ex_cmds2.c,
3488             src/ex_docmd.c, src/gui_beval.c, src/gui_gtk.c, src/gui_gtk_x11.c,
3489             src/hardcopy.c, src/if_cscope.c, src/main.c, src/mbyte.c,
3490             src/memline.c, src/netbeans.c, src/normal.c, src/option.c,
3491             src/os_unix.c, src/quickfix.c, src/regexp.c, src/screen.c,
3492             src/search.c, src/spell.c, src/ui.c, src/undo.c, src/window.c,
3493             src/version.c
3495 Patch 7.0.071
3496 Problem:    Using an empty search pattern may cause a crash.
3497 Solution:   Avoid using a NULL pointer.
3498 Files:      src/search.c
3500 Patch 7.0.072
3501 Problem:    When starting the GUI fails there is no way to adjust settings or
3502             do something else.
3503 Solution:   Add the GUIFailed autocommand event.
3504 Files:      src/fileio.c, src/gui.c, src/vim.h
3506 Patch 7.0.073
3507 Problem:    Insert mode completion: Typing <CR> sometimes selects the original
3508             text instead of keeping what was typed.  (Justin Constantino)
3509 Solution:   Don't let <CR> select the original text if there is no popup menu.
3510 Files:      src/edit.c
3512 Patch 7.0.074 (extra)
3513 Problem:    Win32: tooltips were not converted from 'encoding' to Unicode.
3514 Solution:   Set the tooltip to use Unicode and do the conversion.  Also
3515             cleanup the code for the tab pages tooltips. (Yukihiro Nakadaira)
3516 Files:      src/gui_w32.c, src/gui_w48.c
3518 Patch 7.0.075
3519 Problem:    winsaveview() did not store the actual value of the desired cursor
3520             column.  This could move the cursor in the matchparen plugin.
3521 Solution:   Call update_curswant() before using the value w_curswant.
3522 Files:      src/eval.c
3524 Patch 7.0.076 (after 7.0.010)
3525 Problem:    Automatic downloading of spell files only works for ftp.
3526 Solution:   Don't add login and password for non-ftp URLs. (Alexander Patrakov)
3527 Files:      runtime/autoload/spellfile.vim
3529 Patch 7.0.077
3530 Problem:    ":unlet v:this_session" causes a crash. (Marius Roets)
3531 Solution:   When trying to unlet a fixed variable give an error message.
3532 Files:      src/eval.c
3534 Patch 7.0.078
3535 Problem:    There are two error messages E46.
3536 Solution:   Change the number for the sandbox message to E794.
3537 Files:      src/globals.h
3539 Patch 7.0.079
3540 Problem:    Russian tutor doesn't work when 'encoding' is "utf-8".
3541 Solution:   Use tutor.ru.utf-8 as the master, and generate the other encodings
3542             from it.  Select the right tutor depending on 'encoding'. (Alexey
3543             Froloff)
3544 Files:      runtime/tutor/Makefile, runtime/tutor/tutor.vim,
3545             runtime/tutor/tutor.ru.utf-8
3547 Patch 7.0.080
3548 Problem:    Generating auto/pathdef.c fails for CFLAGS with a backslash.
3549 Solution:   Double backslashes in the string. (Alexey Froloff)
3550 Files:      src/Makefile
3552 Patch 7.0.081
3553 Problem:    Command line completion doesn't work for a shell command with an
3554             absolute path.
3555 Solution:   Don't use $PATH when there is an absolute path.
3556 Files:      src/ex_getln.c
3558 Patch 7.0.082
3559 Problem:    Calling a function that waits for input may cause List and
3560             Dictionary arguments to be freed by the garbage collector.
3561 Solution:   Keep a list of all arguments to internal functions.
3562 Files:      src/eval.c
3564 Patch 7.0.083
3565 Problem:    Clicking with the mouse on an item for inputlist() doesn't work
3566             when 'compatible' is set and/or when 'cmdheight' is more than one.
3567             (Christian J.  Robinson)
3568 Solution:   Also decrement "lines_left" when 'more' isn't set.  Set
3569             "cmdline_row" to zero to get all mouse events.
3570 Files:      src/message.c, src/misc1.c
3572 Patch 7.0.084
3573 Problem:    The garbage collector may do its work while some Lists or
3574             Dictionaries are used internally, e.g., by ":echo" that runs into
3575             the more-prompt or ":echo [garbagecollect()]".
3576 Solution:   Only do garbage collection when waiting for a character at the
3577             toplevel.  Let garbagecollect() set a flag that is handled at the
3578             toplevel before waiting for a character.
3579 Files:      src/eval.c, src/getchar.c, src/globals.h, src/main.c
3581 Patch 7.0.085
3582 Problem:    When doing "make test" the viminfo file is modified.
3583 Solution:   Use another viminfo file after setting 'compatible.
3584 Files:      src/testdir/test56.in
3586 Patch 7.0.086
3587 Problem:    getqflist() returns entries for pattern and text with the number
3588             zero.  Passing these to setqflist() results in the string "0".
3589 Solution:   Use an empty string instead of the number zero.
3590 Files:      src/quickfix.c
3592 Patch 7.0.087
3593 Problem:    After ":file fname" and ":saveas fname" the 'autochdir' option
3594             does not take effect. (Yakov Lerner)
3595             Commands for handling 'autochdir' are repeated many times.
3596 Solution:   Add the DO_AUTOCHDIR macro and do_autochdir().  Use it for
3597             ":file fname" and ":saveas fname".
3598 Files:      src/proto/buffer.pro, src/buffer.c, src/ex_cmds.c, src/macros.h,
3599             src/netbeans.c, src/option.c, src/window.c
3601 Patch 7.0.088
3602 Problem:    When compiled with Perl the generated prototypes have "extern"
3603             unnecessarily added.
3604 Solution:   Remove the "-pipe" argument from PERL_CFLAGS.
3605 Files:      src/auto/configure, src/configure.in
3607 Patch 7.0.089
3608 Problem:    "ga" does not work properly for a non-Unicode multi-byte encoding.
3609 Solution:   Only check for composing chars for utf-8. (Taro Muraoka)
3610 Files:      src/ex_cmds.c
3612 Patch 7.0.090
3613 Problem:    Cancelling the conform() dialog on the console with Esc requires
3614             typing it twice. (Benji Fisher)
3615 Solution:   When the start of an escape sequence is found use 'timeoutlen' or
3616             'ttimeoutlen'.
3617 Files:      src/misc1.c
3619 Patch 7.0.091
3620 Problem:    Using winrestview() while 'showcmd' is set causes the cursor to be
3621             displayed in the wrong position. (Yakov Lerner)
3622 Solution:   Set the window topline properly.
3623 Files:      src/eval.c
3625 Patch 7.0.092 (after 7.0.082 and 7.0.084)
3626 Problem:    The list of internal function arguments is obsolete now that
3627             garbage collection is only done at the toplevel.
3628 Solution:   Remove the list of all arguments to internal functions.
3629 Files:      src/eval.c
3631 Patch 7.0.093
3632 Problem:    The matchparen plugin can't handle a 'matchpairs' value where a
3633             colon is matched.
3634 Solution:   Change the split() that is used to change 'matchpairs' into a
3635             List.
3636 Files:      runtime/plugin/matchparen.vim
3638 Patch 7.0.094
3639 Problem:    When a hidden buffer is made the current buffer and another file
3640             edited later, the file message will still be given.  Using
3641             ":silent" also doesn't prevent the file message. (Marvin Renich)
3642 Solution:   Reset the need_fileinfo flag when reading a file.  Don't set
3643             need_fileinfo when msg_silent is set.
3644 Files:      src/buffer.c, src/fileio.c
3646 Patch 7.0.095
3647 Problem:    The Greek tutor is not available in utf-8.  "el" is used for the
3648             language, only "gr" for the country is recognized.
3649 Solution:   Add the utf-8 Greek tutor.  Use it for conversion to iso-8859-7
3650             and cp737.  (Lefteris Dimitroulakis)
3651 Files:      runtime/tutor/Makefile, runtime/tutor/tutor.gr.utf-8,
3652             runtime/tutor/tutor.vim
3654 Patch 7.0.096
3655 Problem:    taglist() returns the filename relative to the tags file, while
3656             the directory of the tags file is unknown. (Hari Krishna Dara)
3657 Solution:   Expand the file name. (Yegappan Lakshmanan)
3658 Files:      src/tag.c
3660 Patch 7.0.097
3661 Problem:    ":tabclose N" that closes another tab page does not remove the tab
3662             pages line.  Same problem when using the mouse.
3663 Solution:   Adjust the tab pages line when needed in tabpage_close_other().
3664 Files:      src/ex_docmd.c
3666 Patch 7.0.098
3667 Problem:    Redirecting command output in a cmdline completion function
3668             doesn't work. (Hari Krishna Dara)
3669 Solution:   Enable redirection when redirection is started.
3670 Files:      src/ex_docmd.c, src/ex_getln.c
3672 Patch 7.0.099
3673 Problem:    GUI: When the popup menu is visible using the scrollbar messes up
3674             the display.
3675 Solution:   Disallow scrolling the current window.  Redraw the popup menu
3676             after scrolling another window.
3677 Files:      src/gui.c
3679 Patch 7.0.100
3680 Problem:    "zug" may report the wrong filename. (Lawrence Kesteloot)
3681 Solution:   Call home_replace() to fill NameBuff[].
3682 Files:      src/spell.c
3684 Patch 7.0.101
3685 Problem:    When the "~/.vim/spell" directory does not exist "zg" may create
3686             a wrong directory.  "zw" doesn't work.
3687 Solution:   Use the directory of the file name instead of NameBuff.  For "zw"
3688             not only remove a good word but also add the word with "!".
3689 Files:      src/spell.c
3691 Patch 7.0.102
3692 Problem:    Redrawing cmdline is not correct when using SCIM.
3693 Solution:   Don't call im_get_status(). (Yukihiro Nakadaira)
3694 Files:      src/ex_getln.c
3696 Patch 7.0.103 (after 7.0.101)
3697 Problem:    Compiler warning for uninitialized variable. (Tony Mechelynck)
3698 Solution:   Init variable.
3699 Files:      src/spell.c
3701 Patch 7.0.104
3702 Problem:    The CursorHoldI event only triggers once in Insert mode.  It also
3703             triggers after CTRL-V and other two-key commands.
3704 Solution:   Set "did_cursorhold" before getting a second key.  Reset
3705             "did_cursorhold" after handling a command.
3706 Files:      src/edit.c, src/fileio.c
3708 Patch 7.0.105
3709 Problem:    When using incremental search the statusline ruler isn't updated.
3710             (Christoph Koegl)
3711 Solution:   Update the statusline when it contains the ruler.
3712 Files:      src/ex_getln.c
3714 Patch 7.0.106
3715 Problem:    The spell popup menu uses ":amenu", triggering mappings.  Other
3716             PopupMenu autocommands are removed. (John Little)
3717 Solution:   Use ":anoremenu" and use an autocmd group.
3718 Files:      runtime/menu.vim
3720 Patch 7.0.107
3721 Problem:    Incremental search doesn't redraw the text tabline. (Ilya Bobir)
3722             Also happens in other situations with one window in a tab page.
3723 Solution:   Redraw the tabline after clearing the screen.
3724 Files:      src/screen.c
3726 Patch 7.0.108 (extra)
3727 Problem:    Amiga: Compilation problem.
3728 Solution:   Have mch_mkdir() return a failure flag. (Willy Catteau)
3729 Files:      src/os_amiga.c, src/proto/os_amiga.pro
3731 Patch 7.0.109
3732 Problem:    Lisp indenting is confused by escaped quotes in strings. (Dorai
3733             Sitaram)
3734 Solution:   Check for backslash inside strings. (Sergey Khorev)
3735 Files:      src/misc1.c
3737 Patch 7.0.110
3738 Problem:    Amiga: Compilation problems when not using libnix.
3739 Solution:   Change a few #ifdefs. (Willy Catteau)
3740 Files:      src/memfile.c
3742 Patch 7.0.111
3743 Problem:    The gzip plugin can't handle filenames with single quotes.
3744 Solution:   Add and use the shellescape() function. (partly by Alexey Froloff)
3745 Files:      runtime/autoload/gzip.vim, runtime/doc/eval.txt, src/eval.c,
3746             src/mbyte.c, src/misc2.c, src/proto/misc2.pro
3748 Patch 7.0.112
3749 Problem:    Python interface does not work with Python 2.5.
3750 Solution:   Change PyMem_DEL() to Py_DECREF(). (Sumner Hayes)
3751 Files:      src/if_python.c
3753 Patch 7.0.113
3754 Problem:    Using CTRL-L in Insert completion when there is no current match
3755             may cause a crash. (Yukihiro Nakadaira)
3756 Solution:   Check for compl_leader to be NULL
3757 Files:      src/edit.c
3759 Patch 7.0.114
3760 Problem:    When aborting an insert with CTRL-C an extra undo point is
3761             created in the GUI. (Yukihiro Nakadaira)
3762 Solution:   Call gotchars() only when advancing.
3763 Files:      src/getchar.c
3765 Patch 7.0.115
3766 Problem:    When 'ignorecase' is set, Insert mode completion only adds "foo"
3767             and not "Foo" when both are found.
3768             A found match isn't displayed right away when 'completeopt' does
3769             not have "menu" or "menuone".
3770 Solution:   Do not ignore case when checking if a completion match already
3771             exists.  call ins_compl_check_keys() also when not using a popup
3772             menu. (Yukihiro Nakadaira)
3773 Files:      src/edit.c
3775 Patch 7.0.116
3776 Problem:    64 bit Windows version reports "32 bit" in the ":version" output.
3777             (M. Veerman)
3778 Solution:   Change the text for Win64.
3779 Files:      src/version.c
3781 Patch 7.0.117
3782 Problem:    Using "extend" on a syntax item inside a region with "keepend", an
3783             intermediate item may be truncated.
3784             When applying the "keepend" and there is an offset to the end
3785             pattern the highlighting of a contained item isn't adjusted.
3786 Solution:   Use the seen_keepend flag to remember when to apply the "keepend"
3787             flag.  Adjust the keepend highlighting properly. (Ilya Bobir)
3788 Files:      src/syntax.c
3790 Patch 7.0.118
3791 Problem:    printf() does not do zero padding for strings.
3792 Solution:   Do allow zero padding for strings.
3793 Files:      src/message.c
3795 Patch 7.0.119
3796 Problem:    When going back from Insert to Normal mode the CursorHold event
3797             doesn't trigger. (Yakov Lerner)
3798 Solution:   Reset "did_cursorhold" when leaving Insert mode.
3799 Files:      src/edit.c
3801 Patch 7.0.120
3802 Problem:    Crash when using CTRL-R = at the command line and entering
3803             "getreg('=')". (James Vega)
3804 Solution:   Avoid recursiveness of evaluating the = register.
3805 Files:      src/ops.c
3807 Patch 7.0.121
3808 Problem:    GUI: Dragging the last status line doesn't work when there is a
3809             text tabline.  (Markus Wolf)
3810 Solution:   Take the text tabline into account when deciding to start modeless
3811             selection.
3812 Files:      src/gui.c
3814 Patch 7.0.122
3815 Problem:    GUI: When clearing after a bold, double-wide character half a
3816             character may be drawn.
3817 Solution:   Check for double-wide character and redraw it. (Yukihiro Nakadaira)
3818 Files:      src/screen.c
3820 Patch 7.0.123
3821 Problem:    On SCO Openserver configure selects the wrong terminal library.
3822 Solution:   Put terminfo before the other libraries. (Roger Cornelius)
3823             Also fix a small problem compiling on Mac without Darwin.
3824 Files:      src/configure.in, src/auto/configure
3826 Patch 7.0.124
3827 Problem:    getwinvar() obtains a dictionary with window-local variables, but
3828             it's always for the current window.
3829 Solution:   Get the variables of the specified window. (Geoff Reedy)
3830 Files:      src/eval.c
3832 Patch 7.0.125
3833 Problem:    When "autoselect" is in the 'clipboard' option then the '< and '>
3834             marks are set while Visual mode is still active.
3835 Solution:   Don't set the '< and '> marks when yanking the selected area for
3836             the clipboard.
3837 Files:      src/normal.c
3839 Patch 7.0.126
3840 Problem:    When 'formatexpr' uses setline() and later internal formatting is
3841             used undo information is not correct. (Jiri Cerny, Benji Fisher)
3842 Solution:   Set ins_need_undo after using 'formatexpr'.
3843 Files:      src/edit.c
3845 Patch 7.0.127
3846 Problem:    Crash when swap files has invalid timestamp.
3847 Solution:   Check return value of ctime() for being NULL.
3848 Files:      src/memline.c
3850 Patch 7.0.128
3851 Problem:    GUI: when closing gvim is cancelled because there is a changed
3852             buffer the screen isn't updated to show the changed buffer in the
3853             current window.  (Krzysztof Kacprzak)
3854 Solution:   Redraw when closing gvim is cancelled.
3855 Files:      src/gui.c
3857 Patch 7.0.129
3858 Problem:    GTK GUI: the GTK file dialog can't handle a relative path.
3859 Solution:   Make the initial directory a full path before passing it to GTK.
3860             (James Vega)  Also postpone adding the default file name until
3861             after setting the directory.
3862 Files:      src/gui_gtk.c
3864 Patch 7.0.130 (extra)
3865 Problem:    Win32: Trying to edit or write devices may cause Vim to get stuck.
3866 Solution:   Add the 'opendevice' option, default off.  Disallow
3867             reading/writing from/to devices when it's off.
3868             Also detect more devices by the full name starting with "\\.\".
3869 Files:      runtime/doc/options.txt, src/fileio.c, src/option.c, src/option.h,
3870             src/os_win32.c
3872 Patch 7.0.131
3873 Problem:    Win32: "vim -r" does not list all the swap files.
3874 Solution:   Also check for swap files starting with a dot.
3875 Files:      src/memline.c
3877 Patch 7.0.132 (after 7.0.130)
3878 Problem:    Win32: Crash when Vim reads from stdin.
3879 Solution:   Only use mch_nodetype() when there is a file name.
3880 Files:      src/fileio.c
3882 Patch 7.0.133
3883 Problem:    When searching included files messages are added to the history.
3884 Solution:   Set msg_hist_off for messages about scanning included files.
3885             Set msg_silent to avoid message about wrapping around.
3886 Files:      src/edit.c, src/globals.h, src/message.c, src/search.c
3888 Patch 7.0.134
3889 Problem:    Crash when comparing a recursively looped List or Dictionary.
3890 Solution:   Limit recursiveness for comparing to 1000.
3891 Files:      src/eval.c
3893 Patch 7.0.135
3894 Problem:    Crash when garbage collecting list or dict with loop.
3895 Solution:   Don't use DEL_REFCOUNT but don't recurse into Lists and
3896             Dictionaries when freeing them in the garbage collector.
3897             Also add allocated Dictionaries to the list of Dictionaries to
3898             avoid leaking memory.
3899 Files:      src/eval.c, src/proto/eval.pro, src/tag.c
3901 Patch 7.0.136
3902 Problem:    Using "O" while matching parens are highlighted may not remove the
3903             highlighting. (Ilya Bobir)
3904 Solution:   Also trigger CursorMoved when a line is inserted under the cursor.
3905 Files:      src/misc1.c
3907 Patch 7.0.137
3908 Problem:    Configure check for big features is wrong.
3909 Solution:   Change "==" to "=". (Martti Kuparinen)
3910 Files:      src/auto/configure, src/configure.in
3912 Patch 7.0.138 (extra)
3913 Problem:    Mac: modifiers don't work with function keys.
3914 Solution:   Use GetEventParameter() to obtain modifiers. (Nicolas Weber)
3915 Files:      src/gui_mac.c
3917 Patch 7.0.139
3918 Problem:    Using CTRL-PageUp or CTRL-PageDown in Insert mode to go to another
3919             tab page does not prepare for undo properly. (Stefano Zacchiroli)
3920 Solution:   Call start_arrow() before switching tab page.
3921 Files:      src/edit.c
3923 Patch 7.0.140 (after 7.0.134)
3924 Problem:    Comparing recursively looped List or Dictionary doesn't work well.
3925 Solution:   Detect comparing a List or Dictionary with itself.
3926 Files:      src/eval.c
3928 Patch 7.0.141
3929 Problem:    When pasting a while line on the command line an extra CR is added
3930             literally.
3931 Solution:   Don't add the trailing CR when pasting with the mouse.
3932 Files:      src/ex_getln.c, src/proto/ops.pro, src/ops.c
3934 Patch 7.0.142
3935 Problem:    Using the middle mouse button in Select mode to paste text results
3936             in an extra "y". (Kriton Kyrimis)
3937 Solution:   Let the middle mouse button replace the selected text with the
3938             contents of the clipboard.
3939 Files:      src/normal.c
3941 Patch 7.0.143
3942 Problem:    Setting 'scroll' to its default value was not handled correctly.
3943 Solution:   Compare the right field to PV_SCROLL.
3944 Files:      src/option.c
3946 Patch 7.0.144
3947 Problem:    May compare two unrelated pointers when matching a pattern against
3948             a string.  (Dominique Pelle)
3949 Solution:   Avoid calling reg_getline() when REG_MULTI is false.
3950 Files:      src/regexp.c
3952 Patch 7.0.145 (after 7.0.142)
3953 Problem:    Compiler warning.
3954 Solution:   Add type cast.
3955 Files:      src/normal.c
3957 Patch 7.0.146
3958 Problem:    When 'switchbuf' is set to "usetab" and the current tab has only a
3959             quickfix window, jumping to an error always opens a new window.
3960             Also, when the buffer is open in another tab page it's not found.
3961 Solution:   Check for the "split" value of 'switchbuf' properly.  Search in
3962             other tab pages for the desired buffer. (Yegappan Lakshmanan)
3963 Files:      src/buffer.c, src/quickfix.c
3965 Patch 7.0.147
3966 Problem:    When creating a session file and there are several tab pages and
3967             some windows have a local directory a short file name may be used
3968             when it's not valid. (Marius Roets)
3969             A session with multiple tab pages may result in "No Name" buffers.
3970             (Bill McCarthy)
3971 Solution:   Don't enter tab pages when going through the list, only use a
3972             pointer to the first window in each tab page.
3973             Use "tabedit" instead of "tabnew | edit" when possible.
3974 Files:      src/ex_docmd.c
3976 Patch 7.0.148
3977 Problem:    When doing "call a.xyz()" and "xyz" does not exist in dictionary
3978             "a" there is no error message. (Yegappan Lakshmanan)
3979 Solution:   Add the error message.
3980 Files:      src/eval.c
3982 Patch 7.0.149
3983 Problem:    When resizing a window that shows "~" lines the text sometimes
3984             jumps down.
3985 Solution:   Remove code that uses "~" lines in some situations.  Fix the
3986             computation of the screen line of the cursor.  Also set w_skipcol
3987             to handle very long lines.
3988 Files:      src/misc1.c, src/window.c
3990 Patch 7.0.150
3991 Problem:    When resizing the Vim window scrollbinding doesn't work. (Yakov
3992             Lerner)
3993 Solution:   Do scrollbinding in set_shellsize().
3994 Files:      src/term.c
3996 Patch 7.0.151
3997 Problem:    Buttons in file dialog are not according to Gnome guidelines.
3998 Solution:   Swap Cancel and Open buttons. (Stefano Zacchiroli)
3999 Files:      src/gui_gtk.c
4001 Patch 7.0.152
4002 Problem:    Crash when using lesstif 2.
4003 Solution:   Fill in the extension field. (Ben Hutchings)
4004 Files:      src/gui_xmebw.c
4006 Patch 7.0.153
4007 Problem:    When using cscope and opening the temp file fails Vim crashes.
4008             (Kaya Bekiroglu)
4009 Solution:   Check for NULL pointer returned from mch_open().
4010 Files:      src/if_cscope.c
4012 Patch 7.0.154
4013 Problem:    When 'foldnextmax' is negative Vim can hang. (James Vega)
4014 Solution:   Avoid the fold level becoming negative.
4015 Files:      src/fold.c, src/syntax.c
4017 Patch 7.0.155
4018 Problem:    When getchar() returns a mouse button click there is no way to get
4019             the mouse coordinates.
4020 Solution:   Add v:mouse_win, v:mouse_lnum and v:mouse_col.
4021 Files:      runtime/doc/eval.txt, src/eval.c, src/vim.h
4023 Patch 7.0.156 (extra)
4024 Problem:    Vim doesn't compile for Amiga OS 4.
4025 Solution:   Various changes for Amiga OS4. (Peter Bengtsson)
4026 Files:      src/feature.h, src/mbyte.c, src/memfile.c, src/memline.c,
4027             src/os_amiga.c, src/os_amiga.h, src/pty.c
4029 Patch 7.0.157
4030 Problem:    When a function is used recursively the profiling information is
4031             invalid. (Mikolaj Machowski)
4032 Solution:   Put the start time on the stack instead of in the function.
4033 Files:      src/eval.c
4035 Patch 7.0.158
4036 Problem:    In a C file with ":set foldmethod=syntax", typing {<CR> on the
4037             last line results in the cursor being in a closed fold. (Gautam
4038             Iyer)
4039 Solution:   Open fold after inserting a new line.
4040 Files:      src/edit.c
4042 Patch 7.0.159
4043 Problem:    When there is an I/O error in the swap file the cause of the error
4044             cannot be seen.
4045 Solution:   Use PERROR() instead of EMSG() where possible.
4046 Files:      src/memfile.c
4048 Patch 7.0.160
4049 Problem:    ":@a" echoes the command, Vi doesn't do that.
4050 Solution:   Set the silent flag in the typeahead buffer to avoid echoing the
4051             command.
4052 Files:      src/ex_docmd.c, src/normal.c, src/ops.c, src/proto/ops.pro
4054 Patch 7.0.161
4055 Problem:    Win32: Tab pages line popup menu isn't using the right encoding.
4056             (Yongwei Wu)
4057 Solution:   Convert the text when necessary.  Also fixes the Find/Replace
4058             dialog title. (Yegappan Lakshmanan)
4059 Files:      src/gui_w48.c
4061 Patch 7.0.162
4062 Problem:    "vim -o a b" when file "a" triggers the ATTENTION dialog,
4063             selecting "Quit" exits Vim instead of editing "b" only.
4064             When file "b" triggers the ATTENTION dialog selecting "Quit" or
4065             "Abort" results in editing file "a" in that window.
4066 Solution:   When selecting "Abort" exit Vim.  When selecting "Quit" close the
4067             window.  Also avoid hit-enter prompt when selecting Abort.
4068 Files:      src/buffer.c, src/main.c
4070 Patch 7.0.163
4071 Problem:    Can't retrieve the position of a sign after it was set.
4072 Solution:   Add the netbeans interface getAnno command. (Xavier de Gaye)
4073 Files:      runtime/doc/netbeans.txt, src/netbeans.c
4075 Patch 7.0.164
4076 Problem:    ":redir @+" doesn't work.
4077 Solution:   Accept "@+" just like "@*". (Yegappan Lakshmanan)
4078 Files:      src/ex_docmd.c
4080 Patch 7.0.165
4081 Problem:    Using CTRL-L at the search prompt adds a "/" and other characters
4082             without escaping, causing the pattern not to match.
4083 Solution:   Escape special characters with a backslash.
4084 Files:      src/ex_getln.c
4086 Patch 7.0.166
4087 Problem:    Crash in cscope code when connection could not be opened.
4088             (Kaya Bekiroglu)
4089 Solution:   Check for the file descriptor to be NULL.
4090 Files:      src/if_cscope.c
4092 Patch 7.0.167
4093 Problem:    ":function" redefining a dict function doesn't work properly.
4094             (Richard Emberson)
4095 Solution:   Allow a function name to be a number when it's a function
4096             reference.
4097 Files:      src/eval.c
4099 Patch 7.0.168
4100 Problem:    Using uninitialized memory and memory leak. (Dominique Pelle)
4101 Solution:   Use alloc_clear() instead of alloc() for w_lines.  Free
4102             b_ml.ml_stack after recovery.
4103 Files:      src/memline.c, src/window.c
4105 Patch 7.0.169
4106 Problem:    With a Visual block selection, with the cursor in the left upper
4107             corner, pressing "I" doesn't remove the highlighting. (Guopeng
4108             Wen)
4109 Solution:   When checking if redrawing is needed also check if Visual
4110             selection is still active.
4111 Files:      src/screen.c
4113 Patch 7.0.170 (extra)
4114 Problem:    Win32: Using "gvim --remote-tab foo" when gvim is minimized while
4115             it previously was maximized, un-maximizing doesn't work properly.
4116             And the labels are not displayed properly when 'encoding' is
4117             utf-8.
4118 Solution:   When minimized check for SW_SHOWMINIMIZED.  When updating the tab
4119             pages line use TCM_SETITEMW instead of TCM_INSERTITEMW. (Liu
4120             Yubao)
4121 Files:      src/gui_w48.c
4123 Patch 7.0.171 (extra)
4124 Problem:    VMS: A file name with multiple paths is written in the wrong file.
4125 Solution:   Get the actually used file name. (Zoltan Arpadffy)
4126             Also add info to the :version command about compilation.
4127 Files:      src/Make_vms.mms, src/buffer.c, src/os_unix.c, src/version.c
4129 Patch 7.0.172
4130 Problem:    Crash when recovering and quitting at the "press-enter" prompt.
4131 Solution:   Check for "msg_list" to be NULL. (Liu Yubao)
4132 Files:      src/ex_eval.c
4134 Patch 7.0.173
4135 Problem:    ":call f().TT()" doesn't work.  (Richard Emberson)
4136 Solution:   When a function returns a Dictionary or another composite continue
4137             evaluating what follows.
4138 Files:      src/eval.c    
4140 Patch 7.0.174
4141 Problem:    ":mksession" doesn't restore window layout correctly in tab pages
4142             other than the current one. (Zhibin He)
4143 Solution:   Use the correct topframe for producing the window layout commands.
4144 Files:      src/ex_docmd.c
4146 Patch 7.0.175
4147 Problem:    The result of tr() is missing the terminating NUL. (Ingo Karkat)
4148 Solution:   Add the NUL.
4149 Files:      src/eval.c
4151 Patch 7.0.176
4152 Problem:    ":emenu" isn't executed directly, causing the encryption key
4153             prompt to fail. (Life Jazzer)
4154 Solution:   Fix wrong #ifdef.
4155 Files:      src/menu.c
4157 Patch 7.0.177
4158 Problem:    When the press-enter prompt gets a character from a non-remappable
4159             mapping, it's put back in the typeahead buffer as remappable,
4160             which may cause an endless loop.
4161 Solution:   Restore the non-remappable flag and the silent flag when putting a
4162             char back in the typeahead buffer.
4163 Files:      src/getchar.c, src/message.c, src/normal.c
4165 Patch 7.0.178
4166 Problem:    When 'enc' is "utf-8" and 'ignorecase' is set the result of ":echo
4167             ("\xe4" == "\xe4")" varies.
4168 Solution:   In mb_strnicmp() avoid looking past NUL bytes.
4169 Files:      src/mbyte.c
4171 Patch 7.0.179
4172 Problem:    Using ":recover" or "vim -r" without a swapfile crashes Vim.
4173 Solution:   Check for "buf" to be unequal NULL. (Yukihiro Nakadaira)
4174 Files:      src/memline.c
4176 Patch 7.0.180 (extra, after 7.0.171)
4177 Problem:    VMS: build failed.  Problem with swapfiles.
4178 Solution:   Add "compiled_arch".  Always expand path and pass it to
4179             buf_modname().  (Zoltan Arpadffy)
4180 Files:      src/globals.h, src/memline.c, src/os_unix.c, runtime/menu.vim
4182 Patch 7.0.181
4183 Problem:    When reloading a file that starts with an empty line, the reloaded
4184             buffer has an extra empty line at the end. (Motty Lentzitzky)
4185 Solution:   Delete all lines, don't use bufempty().
4186 Files:      src/fileio.c
4188 Patch 7.0.182
4189 Problem:    When using a mix of undo and "g-" it may no longer be possible to
4190             go to every point in the undo tree.  (Andy Wokula)
4191 Solution:   Correctly update pointers in the undo tree.
4192 Files:      src/undo.c
4194 Patch 7.0.183
4195 Problem:    Crash in ":let" when redirecting to a variable that's being
4196             displayed. (Thomas Link)
4197 Solution:   When redirecting to a variable only do the assignment when
4198             stopping redirection to avoid that setting the variable causes a
4199             freed string to be accessed.
4200 Files:      src/eval.c
4202 Patch 7.0.184
4203 Problem:    When the cscope program is called "mlcscope" the Cscope interface
4204             doesn't work.
4205 Solution:   Accept "\S*cscope:" instead of "cscope:". (Frodak D. Baksik)
4206 Files:      src/if_cscope.c
4208 Patch 7.0.185
4209 Problem:    Multi-byte characters in a message are displayed with attributes
4210             from what comes before it.
4211 Solution:   Don't use the attributes for a multi-byte character.  Do use
4212             attributes for special characters. (Yukihiro Nakadaira)
4213 Files:      src/message.c
4215 Patch 7.0.186
4216 Problem:    Get an ml_get error when 'encoding' is "utf-8" and searching for
4217             "/\_s*/e" in an empty buffer.  (Andrew Maykov)
4218 Solution:   Don't try getting the line just below the last line.
4219 Files:      src/search.c
4221 Patch 7.0.187
4222 Problem:    Can't source a remote script properly.
4223 Solution:   Add the SourceCmd event. (Charles Campbell)
4224 Files:      runtime/doc/autocmd.txt, src/ex_cmds2.c, src/fileio.c, src/vim.h
4226 Patch 7.0.188 (after 7.0.186)
4227 Problem:    Warning for wrong pointer type.
4228 Solution:   Add a type cast.
4229 Files:      src/search.c
4231 Patch 7.0.189
4232 Problem:    Translated message about finding matches is truncated. (Yukihiro
4233             Nakadaira)
4234 Solution:   Enlarge the buffer.  Also use vim_snprintf().
4235 Files:      src/edit.c
4237 Patch 7.0.190
4238 Problem:    "syntax spell default" results in an error message.
4239 Solution:   Change 4 to 7 for STRNICMP(). (Raul Nunez de Arenas Coronado)
4240 Files:      src/syntax.c
4242 Patch 7.0.191
4243 Problem:    The items used by getqflist() and setqflist() don't match.
4244 Solution:   Support the "bufnum" item for setqflist(). (Yegappan Lakshmanan)
4245 Files:      runtime/doc/eval.txt, src/quickfix.c
4247 Patch 7.0.192
4248 Problem:    When 'swapfile' is switched off in an empty file it is possible
4249             that not all blocks are loaded into memory, causing ml_get errors
4250             later.
4251 Solution:   Rename "dont_release" to "mf_dont_release" and also use it to
4252             avoid using the cached line and locked block. 
4253 Files:      src/globals.h, src/memfile.c, src/memline.c
4255 Patch 7.0.193
4256 Problem:    Using --remote or --remote-tab with an argument that matches
4257             'wildignore' causes a crash.
4258 Solution:   Check the argument count before using ARGLIST[0].
4259 Files:      src/ex_cmds.c
4261 Patch 7.0.194
4262 Problem:    Once an ml_get error is given redrawing part of the screen may
4263             cause it again, resulting in an endless loop.
4264 Solution:   Don't give the error message for a recursive call.
4265 Files:      src/memline.c
4267 Patch 7.0.195
4268 Problem:    When a buffer is modified and 'autowriteall' is set, ":quit"
4269             results in an endless loop when there is a conversion error while
4270             writing. (Nikolai Weibull)
4271 Solution:   Make autowrite() return FAIL if the buffer is still changed after
4272             writing it.
4273             /* put the cursor on the last char, for 'tw' formatting */
4274 Files:      src/ex_cmds2.c
4276 Patch 7.0.196
4277 Problem:    When using ":vert ball" the computation of the mouse pointer
4278             position may be off by one column. (Stefan Karlsson)
4279 Solution:   Recompute the frame width when moving the vertical separator from
4280             one window to another.
4281 Files:      src/window.c
4283 Patch 7.0.197 (extra)
4284 Problem:    Win32: Compiling with EXITFREE doesn't work.
4285 Solution:   Adjust a few #ifdefs. (Alexei Alexandrof)
4286 Files:      src/misc2.c, src/os_mswin.c
4288 Patch 7.0.198 (extra)
4289 Problem:    Win32: Compiler warnings.  No need to generate gvim.exe.mnf.
4290 Solution:   Add type casts.  Use "*" for processorArchitecture. (George Reilly)
4291 Files:      src/Make_mvc.mak, src/eval.c, src/gvim.exe.mnf, src/misc2.c
4293 Patch 7.0.199
4294 Problem:    When using multi-byte characters the combination of completion and
4295             formatting may result in a wrong cursor position.
4296 Solution:   Don't decrement the cursor column, use dec_cursor(). (Yukihiro
4297             Nakadaira)  Also check for the column to be zero.
4298 Files:      src/edit.c
4300 Patch 7.0.200
4301 Problem:    Memory leaks when out of memory.
4302 Solution:   Free the memory.
4303 Files:      src/edit.c, src/diff.c
4305 Patch 7.0.201
4306 Problem:    Message for ":diffput" about buffer not being in diff mode may be
4307             wrong.
4308 Solution:   Check for buffer in diff mode but not modifiable.
4309 Files:      src/diff.c
4311 Patch 7.0.202
4312 Problem:    Problems on Tandem systems while compiling and at runtime.
4313 Solution:   Recognize root uid is 65535.  Check select() return value for it
4314             not being supported.  Avoid wrong function prototypes.  Mention
4315             use of -lfloss.  (Matthew Woehlke)
4316 Files:      src/Makefile, src/ex_cmds.c, src/fileio.c, src/main.c,
4317             src/osdef1.h.in, src/osdef2.h.in, src/os_unix.c, src/pty.c,
4318             src/vim.h
4320 Patch 7.0.203
4321 Problem:    0x80 characters in a register are not handled correctly for the
4322             "@" command.
4323 Solution:   Escape CSI and 0x80 characters. (Yukihiro Nakadaira)
4324 Files:      src/ops.c
4326 Patch 7.0.204
4327 Problem:    Cscope: Parsing matches for listing isn't done properly.
4328 Solution:   Check for line number being found. (Yu Zhao)
4329 Files:      src/if_cscope.c
4331 Patch 7.0.205 (after 7.0.203)
4332 Problem:    Can't compile.
4333 Solution:   Always include the vim_strsave_escape_csi function.
4334 Files:      src/getchar.c
4336 Patch 7.0.206 (after 7.0.058)
4337 Problem:    Some characters of the "gb18030" encoding are not handled
4338             properly.
4339 Solution:   Do not use "cp936" as an alias for "gb18030" encoding.  Instead
4340             initialize 'encoding' to "cp936".
4341 Files:      src/mbyte.c, src/option.c
4343 Patch 7.0.207
4344 Problem:    After patch 2.0.203 CSI and K_SPECIAL characters are escaped when
4345             recorded and then again when the register is executed.
4346 Solution:   Remove escaping before putting the recorded characters in a
4347             register.  (Yukihiro Nakadaira)
4348 Files:      src/getchar.c, src/ops.c, src/proto/getchar.pro
4350 Patch 7.0.208 (after 7.0.171 and 7.0.180)
4351 Problem:    VMS: changes to path handling cause more trouble than they solve.
4352 Solution:   Revert changes.
4353 Files:      src/buffer.c, src/memline.c, src/os_unix.c
4355 Patch 7.0.209
4356 Problem:    When replacing a line through Python the cursor may end up beyond
4357             the end of the line.
4358 Solution:   Check the cursor column after replacing the line.
4359 Files:      src/if_python.c
4361 Patch 7.0.210
4362 Problem:    ":cbuffer" and ":lbuffer" always fail when the buffer is modified.
4363             (Gary Johnson)
4364 Solution:   Support adding a !. (Yegappan Lakshmanan)
4365 Files:      runtime/doc/quickfix.txt, src/ex_cmds.h
4367 Patch 7.0.211
4368 Problem:    With ":set cindent noai bs=0" using CTRL-U in Insert mode will
4369             delete auto-indent.  After ":set ai" it doesn't.
4370 Solution:   Also check 'cindent' being set. (Ryan Lortie)
4371 Files:      src/edit.c
4373 Patch 7.0.212
4374 Problem:    The GUI can't be terminated with SIGTERM. (Mark Logan)
4375 Solution:   Use the signal protection in the GUI as in the console, allow
4376             signals when waiting for 100 msec or longer.
4377 Files:      src/ui.c
4379 Patch 7.0.213
4380 Problem:    When 'spellfile' has two regions that use the same sound folding
4381             using "z=" will cause memory to be freed twice. (Mark Woodward)
4382 Solution:   Clear the hashtable properly so that the items are only freed once.
4383 Files:      src/spell.c
4385 Patch 7.0.214
4386 Problem:    When using <f-args> in a user command it's not possible to have an
4387             argument end in '\ '.
4388 Solution:   Change the handling of backslashes. (Yakov Lerner)
4389 Files:      runtime/doc/map.txt, src/ex_docmd.c
4391 Patch 7.0.215 (extra)
4392 Problem:    Mac: Scrollbar size isn't set.  Context menu has disabled useless
4393             Help entry.  Call to MoreMasterPointers() is ignored.
4394 Solution:   Call SetControlViewSize() in gui_mch_set_scrollbar_thumb().  Use
4395             kCMHelpItemRemoveHelp for ContextualMenuSelect().  Remove call to
4396             MoreMasterPointers(). (Nicolas Weber)
4397 Files:      src/gui_mac.c
4399 Patch 7.0.216
4400 Problem:    ":tab wincmd ]" does not open a tab page. (Tony Mechelynck)
4401 Solution:   Copy the cmdmod.tab value to postponed_split_tab and use it.
4402 Files:      src/globals.h, src/ex_docmd.c, src/if_cscope.c, src/window.c
4404 Patch 7.0.217
4405 Problem:    This hangs when pressing "n": ":%s/\n/,\r/gc". (Ori Avtalion)
4406 Solution:   Set "skip_match" to advance to the next line.
4407 Files:      src/ex_cmds.c
4409 Patch 7.0.218
4410 Problem:    "%B" in 'statusline' always shows zero in Insert mode. (DervishD)
4411 Solution:   Remove the exception for Insert mode, check the column for being
4412             valid instead.
4413 Files:      src/buffer.c
4415 Patch 7.0.219
4416 Problem:    When using the 'editexisting.vim' script and a file is being
4417             edited in another tab page the window is split.  The "+123"
4418             argument is not used.
4419 Solution:   Make the tab page with the file the current tab page.  Set
4420             v:swapcommand when starting up to the first "+123" or "-c" command
4421             line argument.
4422 Files:      runtime/macros/editexisting.vim, src/main.c
4424 Patch 7.0.220
4425 Problem:    Crash when using winnr('#') in a new tab page. (Andy Wokula)
4426 Solution:   Check for not finding the window.
4427 Files:      src/eval.c
4429 Patch 7.0.221
4430 Problem:    finddir() uses 'path' by default, where "." means relative to the
4431             current file.  But it works relative to the current directory.
4432             (Tye Zdrojewski)
4433 Solution:   Add the current buffer name to find_file_in_path_option() for the
4434             relative file name.
4435 Files:      runtime/doc/eval.txt, src/eval.c
4437 Patch 7.0.222
4438 Problem:    Perl indenting using 'cindent' works almost right.
4439 Solution:   Recognize '#' to start a comment. (Alex Manoussakis)  Added '#'
4440             flag in 'cinoptions'.
4441 Files:      runtime/doc/indent.txt, src/misc1.c
4443 Patch 7.0.223
4444 Problem:    Unprintable characters in completion text mess up the popup menu.
4445             (Gombault Damien)
4446 Solution:   Use strtrans() to make the text printable.
4447 Files:      src/charset.c, src/popupmnu.c
4449 Patch 7.0.224
4450 Problem:    When expanding "##" spaces are escaped twice.  (Pavol Juhas)
4451 Solution:   Don't escape the spaces that separate arguments.
4452 Files:      src/eval.c, src/ex_docmd.c, src/proto/ex_docmd.pro
4454 Patch 7.0.225
4455 Problem:    When using setline() in an InsertEnter autocommand and doing "A"
4456             the cursor ends up on the last byte in the line. (Yukihiro
4457             Nakadaira)
4458 Solution:   Only adjust the column when using setline() for the cursor line.
4459             Move it back to the head byte if necessary.
4460 Files:      src/eval.c, src/misc2.c
4462 Patch 7.0.226
4463 Problem:    Display flickering when updating signs through the netbeans
4464             interface. (Xavier de Gaye)
4465 Solution:   Remove the redraw_later(CLEAR) call.
4466 Files:      src/netbeans.c
4468 Patch 7.0.227
4469 Problem:    Crash when closing a window in the GUI. (Charles Campbell)
4470 Solution:   Don't call out_flush() from win_free().
4471 Files:      src/window.c
4473 Patch 7.0.228
4474 Problem:    Cygwin: problem with symlink to DOS style path.
4475 Solution:   Invoke cygwin_conv_to_posix_path(). (Luca Masini)
4476 Files:      src/os_unix.c
4478 Patch 7.0.229
4479 Problem:    When 'pastetoggle' starts with Esc then pressing Esc in Insert
4480             mode will not time out. (Jeffery Small)
4481 Solution:   Use KL_PART_KEY instead of KL_PART_MAP, so that 'ttimeout' applies
4482             to the 'pastetoggle' key.
4483 Files:      src/getchar.c
4485 Patch 7.0.230
4486 Problem:    After using ":lcd" a script doesn't know how to restore the
4487             current directory.
4488 Solution:   Add the haslocaldir() function. (Bob Hiestand)
4489 Files:      runtime/doc/usr_41.txt, runtime/doc/eval.txt, src/eval.c
4491 Patch 7.0.231
4492 Problem:    When recovering from a swap file the page size is likely to be
4493             different from the minimum.  The block used for the first page
4494             then has a buffer of the wrong size, causing a crash when it's
4495             reused later.  (Zephaniah Hull)
4496 Solution:   Reallocate the buffer when the page size changes.  Also check that
4497             the page size is at least the minimum value.
4498 Files:      src/memline.c
4500 Patch 7.0.232 (extra)
4501 Problem:    Mac: doesn't support GUI tab page labels.
4502 Solution:   Add GUI tab page labels. (Nicolas Weber)
4503 Files:      src/feature.h, src/gui.c, src/gui.h, src/gui_mac.c,
4504             src/proto/gui_mac.pro
4506 Patch 7.0.233 (extra)
4507 Problem:    Mac: code formatted badly.
4508 Solution:   Fix code formatting
4509 Files:      src/gui_mac.c
4511 Patch 7.0.234
4512 Problem:    It's possible to use feedkeys() from a modeline.  That is a
4513             security issue, can be used for a trojan horse.
4514 Solution:   Disallow using feedkeys() in the sandbox.
4515 Files:      src/eval.c
4517 Patch 7.0.235
4518 Problem:    It is possible to use writefile() in the sandbox.
4519 Solution:   Add a few more checks for the sandbox.
4520 Files:      src/eval.c
4522 Patch 7.0.236
4523 Problem:    Linux 2.4 uses sysinfo() with a mem_unit field, which is not
4524             backwards compatible.
4525 Solution:   Add an autoconf check for sysinfo.mem_unit.  Let mch_total_mem()
4526             return Kbyte to avoid overflow.
4527 Files:      src/auto/configure, src/configure.in, src/config.h.in,
4528             src/option.c, src/os_unix.c
4530 Patch 7.0.237
4531 Problem:    For root it is recommended to not use 'modeline', but in
4532             not-compatible mode the default is on.
4533 Solution:   Let 'modeline' default to off for root.
4534 Files:      runtime/doc/options.txt, src/option.c
4536 Patch 7.0.238
4537 Problem:    Crash when ":match" pattern runs into 'maxmempattern'. (Yakov
4538             Lerner)
4539 Solution:   Don't free the regexp program of match_hl.
4540 Files:      src/screen.c
4542 Patch 7.0.239
4543 Problem:    When using local directories and tab pages ":mksession" uses a
4544             short file name when it shouldn't.  Window-local options from a
4545             modeline may be applied to the wrong window. (Teemu Likonen)
4546 Solution:   Add the did_lcd flag, use the full path when it's set.  Don't use
4547             window-local options from the modeline when using the current
4548             window for another buffer in ":doautoall".
4549 Files:      src/fileio.c,  src/ex_docmd.c
4551 Patch 7.0.240
4552 Problem:    Crash when splitting a window in the GUI. (opposite of 7.0.227)
4553 Solution:   Don't call out_flush() from win_alloc().  Also avoid this for
4554             win_delete().  Also block autocommands while the window structure
4555             is invalid.
4556 Files:      src/window.c
4558 Patch 7.0.241
4559 Problem:    ":windo throw 'foo'" loops forever. (Andy Wokula)
4560 Solution:   Detect that win_goto() doesn't work.
4561 Files:      src/ex_cmds2.c
4563 Patch 7.0.242 (extra)
4564 Problem:    Win32: Using "-register" in a Vim that does not support OLE causes
4565             a crash.
4566 Solution:   Don't use EMSG() but mch_errmsg().  Check p_go for being NULL.
4567             (partly by Michael Wookey)
4568 Files:      src/gui_w32.c
4570 Patch 7.0.243 (extra)
4571 Problem:    Win32: When GvimExt is built with MSVC 2005 or later, the "Edit
4572             with vim" context menu doesn't appear in the Windows Explorer.
4573 Solution:   Embed the linker manifest file into the resources of GvimExt.dll.
4574             (Mathias Michaelis)
4575 Files:      src/GvimExt/Makefile
4578 Fixes after Vim 7.1a BETA:
4580 The extra archive had CVS directories included below "farsi" and
4581 "runtime/icons".  CVS was missing the farsi icon files.
4583 Fix compiling with Gnome 2.18, undefine bind_textdomain_codeset. (Daniel
4584 Drake)
4586 Mac: "make install" didn't copy rgb.txt.
4588 When editing a compressed file while there are folds caused "ml_get" errors
4589 and some lines could be missing.  When decompressing failed option values were
4590 not restored.
4593 Patch 7.1a.001
4594 Problem:    Crash when downloading a spell file.  (Szabolcs Horvat)
4595 Solution:   Avoid that did_set_spelllang() is used recursively when a new
4596             window is opened for the download.
4597             Also avoid wiping out the wrong buffer.
4598 Files:      runtime/autoload/spellfile.vim, src/buffer.c, src/ex_cmds.c,
4599             src/spell.c
4601 Patch 7.1a.002 (extra)
4602 Problem:    Compilation error with MingW.
4603 Solution:   Check for LPTOOLTIPTEXT to be defined.
4604 Files:      src/gui_w32.c
4607 Fixes after Vim 7.1b BETA:
4609 Made the Mzscheme interface build both with old and new versions of Mzscheme,
4610 using an #ifdef. (Sergey Khorev)
4611 Mzscheme interface didn't link, missing function.  Changed order of libraries
4612 in the configure script.
4614 Ruby interface didn't compile on Mac.  Changed #ifdef. (Kevin Ballard)
4616 Patch 7.1b.001 (extra)
4617 Problem:    Random text in a source file.  No idea how it got there.
4618 Solution:   Delete the text.
4619 Files:      src/gui_w32.c
4621 Patch 7.1b.002
4622 Problem:    When 'maxmem' is large there can be an overflow in computations.
4623             (Thomas Wiegner)
4624 Solution:   Use the same mechanism as in mch_total_mem(): first reduce the
4625             multiplier as much as possible.
4626 Files:      src/memfile.c
4628 ==============================================================================
4629 VERSION 7.2                                             *version-7.2*
4631 This section is about improvements made between version 7.1 and 7.2.
4633 This is mostly a bug-fix release.  The main new feature is floating point
4634 support. |Float|
4637 Changed                                                 *changed-7.2*
4638 -------
4640 Changed the command line buffer name from "command-line" to "[Command Line]".
4642 Removed optional ! for ":caddexpr", ":cgetexpr", ":cgetfile", ":laddexpr",
4643 ":lgetexpr" and ":lgetfile".  They are not needed.  (Yegappan Lakshmanan)
4645 An offset for syntax matches worked on bytes instead of characters.  That is
4646 inconsistent and can easily be done wrong.  Use character offsets now.
4647 (Yukihiro Nakadaira)
4649 The FileChangedShellPost event was also given when a file didn't change.
4650 (John Little)
4652 When the current line is long (doesn't fit) the popup menu can't be seen.
4653 Display it below the screen line instead of below the text line.
4654 (Francois Ingelrest)
4656 Switched to autoconf version 2.62.
4658 Moved including fcntl.h to vim.h and removed it from all .c files.
4660 Introduce macro STRMOVE(d, s), like STRCPY() for overlapping strings.
4661 Use it instead of mch_memmove(p, p + x, STRLEN(p + x) + 1).
4663 Removed the bulgarian.vim keymap file, two more standard ones replace it.
4664 (Boyko Bantchev)
4666 Increased the maximum number of tag matches for command line completion from
4667 200 to 300.
4669 Renamed help file sql.txt to ft_sql.txt and ada.txt to ft_ada.txt.
4672 Added                                                   *added-7.2*
4673 -----
4675 New syntax files:
4676         CUDA (Timothy B. Terriberry)
4677         Cdrdao config (Nikolai Weibull)
4678         Coco/R (Ashish Shukla)
4679         Denyhosts config (Nikolai Weibull)
4680         Dtrace script (Nicolas Weber)
4681         Git output, commit, config, rebase, send-email (Tim Pope)
4682         HASTE and HastePreProc (M. Tranchero)
4683         Haml (Tim Pope)
4684         Host conf (Nikolai Weibull)
4685         Linden script (Timo Frenay)
4686         MS messages (Kevin Locke)
4687         PDF (Tim Pope)
4688         ProMeLa (Maurizio Tranchero)
4689         Reva Foth (Ron Aaron)
4690         Sass (Tim Pope)
4691         Symbian meta-makefile, MMP (Ron Aaron)
4692         VOS CM macro (Andrew McGill)
4693         XBL (Doug Kearns)
4695 New tutor files:
4696         Made UTF-8 versions of all the tutor files.
4697         Greek renamed from ".gr" to ".el" (Greek vs Greece).
4698         Esperanto (Dominique Pelle)
4699         Croatian (Paul B. Mahol)
4701 New filetype plugins:
4702         Cdrdao config (Nikolai Weibull)
4703         Debian control files (Debian Vim maintainers)
4704         Denyhosts (Nikolai Weibull)
4705         Dos .ini file (Nikolai Weibull)
4706         Dtrace script (Nicolas Weber)
4707         FnameScript (Nikolai Weibull)
4708         Git, Git config, Git commit, Git rebase, Git send-email (Tim Pope)
4709         Haml (Tim Pope)
4710         Host conf (Nikolai Weibull)
4711         Host access (Nikolai Weibull)
4712         Logtalk (Paulo Moura)
4713         MS messages (Kevin Locke)
4714         NSIS script (Nikolai Weibull)
4715         PDF (Tim Pope)
4716         Reva Forth (Ron Aaron)
4717         Sass (Tim Pope)
4719 New indent files:
4720         DTD (Nikolai Weibull)
4721         Dtrace script (Nicolas Weber)
4722         Erlang (Csaba Hoch)
4723         FrameScript (Nikolai Weibull)
4724         Git config (Tim Pope)
4725         Haml (Tim Pope)
4726         Logtalk (Paulo Moura)
4727         Sass (Tim Pope)
4728         Tiny Fugue (Christian J. Robinson)
4730 New compiler plugins:
4731         RSpec (Tim Pope)
4733 New keymap files:
4734         Croatian (Paul B. Mahol)
4735         Russian Dvorak (Serhiy Boiko)
4736         Ukrainian Dvorak (Serhiy Boiko)
4737         Removed plain Bulgarian, "bds" and phonetic are sufficient.
4739 Other new runtime files:
4740         Esperanto menu and message translations. (Dominique Pelle)
4741         Finnish menu and message translations. (Flammie Pirinen)
4742         Brazilian Portuguese message translations. (Eduardo Dobay)
4744 Added floating point support. |Float|
4746 Added argument to mode() to return a bit more detail about the current mode.
4747 (Ben Schmidt)
4749 Added support for BSD console mouse: |sysmouse|.  (Paul B. Mahol)
4751 Added the "newtab" value for the 'switchbuf' option.  (partly by Yegappan
4752 Lakshmanan)
4754 Improved error messages for the netbeans interface. (Philippe Fremy)
4756 Added support for using xterm mouse codes for screen. (Micah Cowan)
4758 Added support for cross compiling:
4759 Adjusted configure.in and added INSTALLcross.txt. (Marc Haisenko)  Fixed
4760 mistakes in configure.in after that.
4761 Don't use /usr/local/include and /usr/local/lib in configure. (Philip
4762 Prindeville)
4763 For cross compiling the Cygwin version on Unix, change VIM.TLB to vim.tlb in
4764 src/vim.rc. (Tsuneo Nakagawa)
4766 Added v:searchforward variable: What direction we're searching in.  (Yakov
4767 Lerner)
4770 Fixed                                                   *fixed-7.2*
4771 -----
4773 Patch 7.1.001
4774 Problem:    Still can't build with Gnome libraries.
4775 Solution:   Fix typo in bind_textdomain_codeset. (Mike Kelly)
4776 Files:      src/gui_gtk.c, src/gui_gtk_x11.c
4778 Patch 7.1.002
4779 Problem:    Oracle Pro*C/C++ files are not detected.
4780 Solution:   Add the missing star. (Micah J. Cowan)
4781 Files:      runtime/filetype.vim
4783 Patch 7.1.003 (extra)
4784 Problem:    The "Tear off this menu" message appears in the message history
4785             when using a menu. (Yongwei Wu)
4786 Solution:   Disable message history when displaying the menu tip.
4787 Files:      src/gui_w32.c
4789 Patch 7.1.004
4790 Problem:    Crash when doing ":next directory". (Raphael Finkel)
4791 Solution:   Do not use "buf", it may be invalid after autocommands.
4792 Files:      src/ex_cmds.c
4794 Patch 7.1.005
4795 Problem:    "cit" used on <foo></foo> deletes <foo>.  Should not delete
4796             anything and start insertion, like "ci'" does on "". (Michal
4797             Bozon)
4798 Solution:   Handle an empty object specifically.  Made it work consistent for
4799             various text objects.
4800 Files:      src/search.c
4802 Patch 7.1.006
4803 Problem:    Resetting 'modified' in a StdinReadPost autocommand doesn't work.
4804 Solution:   Set 'modified' before the autocommands instead of after it.
4805 Files:      src/buffer.c
4807 Patch 7.1.007 (extra)
4808 Problem:    Mac: Context menu doesn't work on Intel Macs.
4809             Scrollbars are not dimmed when Vim is not the active application.
4810 Solution:   Remove the test whether context menus are supported.  They are
4811             always there in OS/X.  Handle the dimming. (Nicolas Weber)
4812 Files:      src/gui_mac.c, src/gui.h
4814 Patch 7.1.008
4815 Problem:    getfsize() returns a negative number for very big files.
4816 Solution:   Check for overflow and return -2.
4817 Files:      runtime/doc/eval.txt, src/eval.c
4819 Patch 7.1.009
4820 Problem:    In diff mode, displaying the difference between a tab and spaces
4821             is not highlighted correctly.
4822 Solution:   Only change highlighting at the end of displaying a tab.
4823 Files:      src/screen.c
4825 Patch 7.1.010
4826 Problem:    The Gnome session file doesn't restore tab pages.
4827 Solution:   Add SSOP_TABPAGES to the session flags. (Matias D'Ambrosio)
4828 Files:      src/gui_gtk_x11.c
4830 Patch 7.1.011
4831 Problem:    Possible buffer overflow when $VIMRUNTIME is very long. (Victor
4832             Stinner)
4833 Solution:   Use vim_snprintf().
4834 Files:      src/main.c
4836 Patch 7.1.012
4837 Problem:    ":let &shiftwidth = 'asdf'" doesn't produce an error message.
4838 Solution:   Check for a string argument. (Chris Lubinski)
4839 Files:      src/option.c
4841 Patch 7.1.013
4842 Problem:    ":syn include" only loads the first file, while it is documented
4843             as doing the equivalent of ":runtime!".
4844 Solution:   Change the argument to source_runtime(). (James Vega)
4845 Files:      src/syntax.c
4847 Patch 7.1.014
4848 Problem:    Crash when doing C indenting. (Chris Monson)
4849 Solution:   Obtain the current line again after invoking cin_islabel().
4850 Files:      src/edit.c
4852 Patch 7.1.015
4853 Problem:    MzScheme interface: current-library-collection-paths produces no
4854             list.  Interface doesn't build on a Mac.
4855 Solution:   Use a list instead of a pair. (Bernhard Fisseni)  Use "-framework"
4856             argument for MZSCHEME_LIBS in configure.
4857 Files:      src/configure.in, src/if_mzsch.c, src/auto/configure
4859 Patch 7.1.016 (after patch 7.1.012)
4860 Problem:    Error message about setting 'diff' to a string.
4861 Solution:   Don't pass an empty string to set_option_value() when setting
4862             'diff'.
4863 Files:      src/quickfix.c, src/popupmnu.c
4865 Patch 7.1.017
4866 Problem:    ":confirm w" does give a prompt when 'readonly' is set, but not
4867             when the file permissions are read-only.  (Michael Schaap)
4868 Solution:   Provide a dialog in both situations.  (Chris Lubinski)
4869 Files:      src/ex_cmds.c, src/fileio.c, src/proto/fileio.pro
4871 Patch 7.1.018
4872 Problem:    When 'virtualedit' is set a "p" of a block just past the end of
4873             the line inserts before the cursor. (Engelke)
4874 Solution:   Check for the cursor being just after the line (Chris Lubinski)
4875 Files:      src/ops.c
4877 Patch 7.1.019
4878 Problem:    ":py" asks for an argument, ":py asd" then gives the error that
4879             ":py" isn't implemented.  Should already happen for ":py".
4880 Solution:   Compare with ex_script_ni. (Chris Lubinski)
4881 Files:      src/ex_docmd.c
4883 Patch 7.1.020
4884 Problem:    Reading from uninitialized memory when using a dialog. (Dominique
4885             Pelle)
4886 Solution:   In msg_show_console_dialog() append a NUL after every appended
4887             character.
4888 Files:      src/message.c
4890 Patch 7.1.021 (after 7.1.015)
4891 Problem:    Mzscheme interface doesn't compile on Win32.
4892 Solution:   Fix the problem that 7.1.015 fixed in a better way. (Sergey Khorev)
4893 Files:      src/if_mzsch.c
4895 Patch 7.1.022
4896 Problem:    When setting 'keymap' twice the b:keymap_name variable isn't set.
4897             (Milan Berta)
4898 Solution:   Don't unlet b:keymap_name for ":loadkeymap". (Martin Toft)
4899 Files:      src/digraph.c
4901 Patch 7.1.023
4902 Problem:    "dw" in a line with one character deletes the line.  Vi and nvi
4903             don't do this.  (Kjell Arne Rekaa)
4904 Solution:   Check for one-character words especially.
4905 Files:      src/search.c
4907 Patch 7.1.024
4908 Problem:    Using a pointer that has become invalid. (Chris Monson)
4909 Solution:   Obtain the line pointer again after we looked at another line.
4910 Files:      src/search.c
4912 Patch 7.1.025
4913 Problem:    search() and searchpos() don't use match under cursor at start of
4914             line when using 'bc' flags. (Viktor Kojouharov)
4915 Solution:   Don't go to the previous line when the 'c' flag is present.
4916             Also fix that "j" doesn't move the cursor to the right column.
4917 Files:      src/eval.c, src/search.c
4919 Patch 7.1.026
4920 Problem:    "[p" doesn't work in Visual mode. (David Brown)
4921 Solution:   Use checkclearop() instead of checkclearopq().
4922 Files:      src/normal.c
4924 Patch 7.1.027
4925 Problem:    On Sun systems opening /dev/fd/N doesn't work, and they are used
4926             by process substitutions.
4927 Solution:   Allow opening specific character special files for Sun systems.
4928             (Gary Johnson)
4929 Files:      src/fileio.c, src/os_unix.h
4931 Patch 7.1.028
4932 Problem:    Can't use last search pattern for ":sort". (Brian McKee)
4933 Solution:   When the pattern is empty use the last search pattern. (Martin
4934             Toft)
4935 Files:      runtime/doc/change.txt, src/ex_cmds.c
4937 Patch 7.1.029 (after 7.1.019)
4938 Problem:    Can't compile when all interfaces are used. (Taylor Venable)
4939 Solution:   Only check for ex_script_ni when it's defined.
4940 Files:      src/ex_docmd.c
4942 Patch 7.1.030
4943 Problem:    The "vimtutor" shell script checks for "vim6" but not for "vim7".
4944             (Christian Robinson)
4945 Solution:   Check for more versions, but prefer using "vim".
4946 Files:      src/vimtutor
4948 Patch 7.1.031
4949 Problem:    virtcol([123, '$']) doesn't work. (Michael Schaap)
4950 Solution:   When '$' is used for the column number get the last column.
4951 Files:      runtime/doc/eval.txt, src/eval.c
4953 Patch 7.1.032
4954 Problem:    Potential crash when editing a command line. (Chris Monson)
4955 Solution:   Check the position to avoid access before the start of an array.
4956 Files:      src/ex_getln.c
4958 Patch 7.1.033
4959 Problem:    A buffer is marked modified when it was first deleted and then
4960             added again using a ":next" command. (John Mullin)
4961 Solution:   When checking if a buffer is modified use the BF_NEVERLOADED flag.
4962 Files:      src/option.c
4964 Patch 7.1.034
4965 Problem:    Win64: A few compiler warnings.  Problems with optimizer.
4966 Solution:   Use int instead of size_t.  Disable the optimizer in one function.
4967             (George V.  Reilly)
4968 Files:      src/eval.c, src/spell.c
4970 Patch 7.1.035
4971 Problem:    After ":s/./&/#" all listed lines have a line number. (Yakov
4972             Lerner)
4973 Solution:   Reset the line number flag when not using the "&" flag.
4974 Files:      src/ex_cmds.c
4976 Patch 7.1.036
4977 Problem:    Completing ":echohl" argument should include "None". (Ori
4978             Avtalion)  ":match" should have "none" too.
4979 Solution:   Add flags to use expand_highlight().  Also fix that when disabling
4980             FEAT_CMDL_COMPL compilation fails.  (Chris Lubinski)
4981 Files:      src/eval.c, src/ex_docmd.c, src/ex_getln.c, src/proto/syntax.pro
4982             src/syntax.c
4984 Patch 7.1.037
4985 Problem:    strcpy() used for overlapping strings. (Chris Monson)
4986 Solution:   Use mch_memmove() instead.
4987 Files:      src/option.c
4989 Patch 7.1.038
4990 Problem:    When 'expandtab' is set then a Tab copied for 'copyindent' is
4991             expanded to spaces, even when 'preserveindent' is set. (Alexei
4992             Alexandrov)
4993 Solution:   Remove the check for 'expandtab'.  Also fix that ">>" doesn't obey
4994             'preserveindent'. (Chris Lubinski)
4995 Files:      src/misc1.c
4997 Patch 7.1.039
4998 Problem:    A tag in a help file that starts with "help-tags" and contains a
4999             percent sign may make Vim crash. (Ulf Harnhammar)
5000 Solution:   Use puts() instead of fprintf().
5001 Files:      src/ex_cmds.c
5003 Patch 7.1.040
5004 Problem:    ":match" only supports three matches.
5005 Solution:   Add functions clearmatches(), getmatches(), matchadd(),
5006             matchdelete() and setmatches().  Changed the data structures for
5007             this.  A small bug in syntax.c is fixed, so newly created
5008             highlight groups can have their name resolved correctly from their
5009             ID.  (Martin Toft)
5010 Files:      runtime/doc/eval.txt, runtime/doc/pattern.txt,
5011             runtime/doc/usr_41.txt, src/eval.c, src/ex_docmd.c,
5012             src/proto/window.pro, src/screen.c, src/structs.h, src/syntax.c,
5013             src/testdir/Makefile, src/testdir/test63.in,
5014             src/testdir/test63.ok, src/window.c
5016 Patch 7.1.041 (extra, after 7.1.040)
5017 Problem:    Some changes for patch 7.1.040 are in extra files.
5018 Solution:   Update the extra files.
5019 Files:      src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
5020             src/testdir/Make_os2.mak, src/testdir/Make_vms.mms
5022 Patch 7.1.042 (after 7.1.040)
5023 Problem:    Internal error when using matchadd(). (David Larson)
5024 Solution:   Check the third argument to be present before using the fourth
5025             argument. (Martin Toft)
5026 Files:      src/eval.c
5028 Patch 7.1.043
5029 Problem:    In Ex mode using CTRL-D twice may cause a crash.  Cursor isn't
5030             positioned properly after CTRL-D.
5031 Solution:   Set prev_char properly.  Position the cursor correctly. (Antony
5032             Scriven)
5033 Files:      src/ex_getln.c
5035 Patch 7.1.044
5036 Problem:    In Insert mode 0 CTRL-T deletes all indent, it should add indent.
5037             (Gautam Iyer)
5038 Solution:   Check for CTRL-D typed.
5039 Files:      src/edit.c
5041 Patch 7.1.045
5042 Problem:    Unnecessary screen redrawing. (Jjgod Jiang)
5043 Solution:   Reset "must_redraw" after clearing the screen.
5044 Files:      src/screen.c
5046 Patch 7.1.046
5047 Problem:    ":s" command removes combining characters. (Ron Aaron)
5048 Solution:   Copy composing characters individually. (Chris Lubinski)
5049 Files:      src/regexp.c
5051 Patch 7.1.047
5052 Problem:    vim_regcomp() called with invalid argument. (Xiaozhou Liu)
5053 Solution:   Change TRUE to RE_MAGIC + RE_STRING.
5054 Files:      src/ex_eval.c
5056 Patch 7.1.048
5057 Problem:    The matchparen plugin doesn't update the match when scrolling with
5058             the mouse wheel. (Ilya Bobir)
5059 Solution:   Set the match highlighting for text that can be scrolled into the
5060             viewable area without moving the cursor. (Chris Lubinski)
5061 Files:      runtime/plugin/matchparen.vim
5063 Patch 7.1.049
5064 Problem:    Cannot compile GTK2 version with Hangul input feature.
5065 Solution:   Don't define FEAT_XFONTSET when using GTK2.
5066 Files:      src/feature.h
5068 Patch 7.1.050
5069 Problem:    Possible crash when using C++ indenting. (Chris Monson)
5070 Solution:   Keep the line pointer to the line to compare with.  Avoid going
5071             past the end of line.
5072 Files:      src/misc1.c
5074 Patch 7.1.051
5075 Problem:    Accessing uninitialized memory when finding spell suggestions.
5076 Solution:   Don't try swapping characters at the end of a word.
5077 Files:      src/spell.c
5079 Patch 7.1.052
5080 Problem:    When creating a new match not all fields are initialized, which
5081             may lead to unpredictable results.
5082 Solution:   Initialise rmm_ic and rmm_maxcol.
5083 Files:      src/window.c
5085 Patch 7.1.053
5086 Problem:    Accessing uninitialized memory when giving a message.
5087 Solution:   Check going the length before checking for a NUL byte.
5088 Files:      src/message.c
5090 Patch 7.1.054
5091 Problem:    Accessing uninitialized memory when displaying the fold column.
5092 Solution:   Add a NUL to the extra array. (Dominique Pelle).  Also do this in
5093             a couple of other situations.
5094 Files:      src/screen.c
5096 Patch 7.1.055
5097 Problem:    Using strcpy() with arguments that overlap.
5098 Solution:   Use mch_memmove() instead.
5099 Files:      src/buffer.c, src/charset.c, src/eval.c, src/ex_getln.c,
5100             src/misc1.c, src/regexp.c, src/termlib.c
5102 Patch 7.1.056
5103 Problem:    More prompt does not behave correctly after scrolling back.
5104             (Randall W. Morris)
5105 Solution:   Avoid lines_left becomes negative. (Chris Lubinski)  Don't check
5106             mp_last when deciding to show the more prompt. (Martin Toft)
5107 Files:      src/message.c
5109 Patch 7.1.057
5110 Problem:    Problem with CursorHoldI when using "r" in Visual mode (Max
5111             Dyckhoff)
5112 Solution:   Ignore CursorHold(I) when getting a second character for a Normal
5113             mode command.  Also abort the "r" command in Visual when a special
5114             key is typed.
5115 Files:      src/normal.c
5117 Patch 7.1.058
5118 Problem:    When 'rightleft' is set the completion menu is positioned wrong.
5119             (Baha-Eddine MOKADEM)
5120 Solution:   Fix the completion menu. (Martin Toft)
5121 Files:      src/popupmnu.c, src/proto/search.pro, src/search.c
5123 Patch 7.1.059
5124 Problem:    When in Ex mode and doing "g/^/vi" and then pressing CTRL-C Vim
5125             hangs and beeps. (Antony Scriven)
5126 Solution:   Clear "got_int" in the main loop to avoid the hang.  When typing
5127             CTRL-C twice in a row abort the ":g" command.  This is Vi
5128             compatible.
5129 Files:      src/main.c
5131 Patch 7.1.060
5132 Problem:    Splitting quickfix window messes up window layout. (Marius
5133             Gedminas)
5134 Solution:   Compute the window size in a smarter way. (Martin Toft)
5135 Files:      src/window.c
5137 Patch 7.1.061
5138 Problem:    Win32: When 'encoding' is "latin1" 'ignorecase' doesn't work for
5139             characters with umlaut. (Joachim Hofmann)
5140 Solution:   Do not use islower()/isupper()/tolower()/toupper() but our own
5141             functions. (Chris Lubinski)
5142 Files:      src/mbyte.c, src/regexp.c, src/vim.h
5144 Patch 7.1.062 (after 7.1.038)
5145 Problem:    Indents of C comments can be wrong. (John Mullin)
5146 Solution:   Adjust ind_len. (Chris Lubinski)
5147 Files:      src/misc1.c
5149 Patch 7.1.063 (after 7.1.040)
5150 Problem:    Warning for uninitialized variable.
5151 Solution:   Initialise it to NULL.
5152 Files:      src/ex_docmd.c
5154 Patch 7.1.064
5155 Problem:    On Interix some files appear not to exist.
5156 Solution:   Remove the top bit from st_mode. (Ligesh)
5157 Files:      src/os_unix.c
5159 Patch 7.1.065 (extra)
5160 Problem:    Win32: Compilation problem for newer version of w32api.
5161 Solution:   Only define __IID_DEFINED__ when needed. (Chris Sutcliffe)
5162 Files:      src/Make_ming.mak, src/iid_ole.c
5164 Patch 7.1.066
5165 Problem:    When 'bomb' is set or reset the file should be considered
5166             modified.  (Tony Mechelynck)
5167 Solution:   Handle like 'endofline'. (Martin Toft)
5168 Files:      src/buffer.c, src/fileio.c, src/option.c, src/structs.h
5170 Patch 7.1.067
5171 Problem:    'thesaurus' doesn't work when 'infercase' is set. (Mohsin)
5172 Solution:   Don't copy the characters being completed but check the case and
5173             apply it to the suggested word.  Also fix that the first word in
5174             the thesaurus line is not used.  (Martin Toft)
5175 Files:      src/edit.c
5177 Patch 7.1.068
5178 Problem:    When 'equalalways' is set and splitting a window, it's possible
5179             that another small window gets bigger.
5180 Solution:   Only equalize window sizes when after a split the windows are
5181             smaller than another window. (Martin Toft)
5182 Files:      runtime/doc/options.txt, runtime/doc/windows.txt, src/window.c
5184 Patch 7.1.069
5185 Problem:    GTK GUI: When using confirm() without a default button there still
5186             is a default choice.
5187 Solution:   Ignore Enter and Space when there is no default button. (Chris
5188             Lubinski)
5189 Files:      src/gui_gtk.c
5191 Patch 7.1.070 (extra)
5192 Problem:    Win32 GUI: When using confirm() without a default button there
5193             still is a default choice.
5194 Solution:   Set focus on something else than a button. (Chris Lubinski)
5195 Files:      src/gui_w32.c
5197 Patch 7.1.071 (after 7.1.040)
5198 Problem:    Regexp patterns are not tested.
5199 Solution:   Add a basic test, to be expanded later.
5200             Also add (commented-out) support for valgrind.
5201 Files:      src/testdir/Makefile, src/testdir/test64.in, src/testdir/test64.ok
5203 Patch 7.1.072 (extra, after 7.1.041 and 7.1.071)
5204 Problem:    Some changes for patch 7.1.071 are in extra files.
5205 Solution:   Update the extra files.  Also fix a few warnings from the DOS test
5206             makefile.
5207 Files:      src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
5208             src/testdir/Make_os2.mak, src/testdir/Make_vms.mms
5210 Patch 7.1.073 (after 7.1.062)
5211 Problem:    Wrong cursor position and crash when 'preserveindent' is set.
5212             (Charles Campbell)
5213 Solution:   Handle the situation that we start without indent. (Chris
5214             Lubinski)
5215 Files:      src/misc1.c
5217 Patch 7.1.074
5218 Problem:    Crash when calling string() on a recursively nested List.
5219 Solution:   Check result value for being NULL. (Yukihiro Nakadaira)
5220 Files:      src/eval.c
5222 Patch 7.1.075
5223 Problem:    ":let v:statusmsg" reads memory already freed.
5224 Solution:   Don't set v:statusmsg when listing it.
5225 Files:      src/eval.c
5227 Patch 7.1.076
5228 Problem:    Another strcpy() with overlapping arguments.
5229 Solution:   Use mch_memmove(). (Dominique Pelle)  And another one.
5230 Files:      src/ex_docmd.c, src/normal.c
5232 Patch 7.1.077
5233 Problem:    Using "can_spell" without initializing it. (Dominique Pelle)
5234 Solution:   Set a default for get_syntax_attr().
5235 Files:      src/syntax.c
5237 Patch 7.1.078
5238 Problem:    Dropping a file name on gvim that contains a CSI byte doesn't work
5239             when editing the command line.
5240 Solution:   Escape the CSI byte when inserting in the input buffer. (Yukihiro
5241             Nakadaira)
5242 Files:      src/gui.c, src/ui.c
5244 Patch 7.1.079
5245 Problem:    When the locale is "C" and 'encoding' is "latin1" then the "@"
5246             character in 'isfname', 'isprint', etc. doesn't pick up accented
5247             characters.
5248 Solution:   Instead of isalpha() use MB_ISLOWER() and MB_ISUPPER().
5249 Files:      src/charset.c, src/macros.h
5251 Patch 7.1.080 (extra)
5252 Problem:    Compiler warnings for using "const char *" for "char *".
5253 Solution:   Add type casts. (Chris Sutcliffe)
5254 Files:      src/GvimExt/gvimext.cpp
5256 Patch 7.1.081
5257 Problem:    Command line completion for a shell command: "cat </tmp/file<Tab>"
5258             doesn't work.
5259 Solution:   Start the file name at any character that can't be in a file name.
5260             (Martin Toft)
5261 Files:      src/ex_docmd.c
5263 Patch 7.1.082
5264 Problem:    After a ":split" the matchparen highlighting isn't there.
5265 Solution:   Install a WinEnter autocommand.  Also fixes that after
5266             ":NoMatchParen" only the current window is updated. (Martin Toft)
5267 Files:      runtime/doc/pi_paren.txt, runtime/plugin/matchparen.vim
5269 Patch 7.1.083 (after 7.1.081)
5270 Problem:    Command line completion doesn't work with wildcards.
5271 Solution:   Add vim_isfilec_or_wc() and use it. (Martin Toft)
5272 Files:      src/charset.c, src/proto/charset.pro, src/ex_docmd.c
5274 Patch 7.1.084
5275 Problem:    Using the "-nb" argument twice causes netbeans not to get
5276             fileOpened events.
5277 Solution:   Change "&" to "&&". (Xavier de Gaye)
5278 Files:      src/ex_cmds.c
5280 Patch 7.1.085
5281 Problem:    ":e fold.c" then ":sp fold.c" results in folds of original window
5282             to disappear. (Akita Noek)
5283 Solution:   Invoke foldUpdateAll() for all windows of the changed buffer.
5284             (Martin Toft)
5285 Files:      src/ex_cmds.c
5287 Patch 7.1.086
5288 Problem:    Crash when using specific Python syntax highlighting.  (Quirk)
5289 Solution:   Check for a negative index, coming from a keyword match at the
5290             start of a line from a saved state.
5291 Files:      src/syntax.c
5293 Patch 7.1.087
5294 Problem:    Reading past ":cscope find" command.  Writing past end of a buffer.
5295 Solution:   Check length of the argument before using the pattern.  Use
5296             vim_strncpy().  (Dominique Pelle)
5297 Files:      if_cscope.c
5299 Patch 7.1.088 (extra)
5300 Problem:    The coordinates used by ":winpos" differ from what getwinposx()
5301             and getwinposy() return.
5302 Solution:   Use MoveWindowStructure() instead of MoveWindow(). (Michael Henry)
5303 Files:      src/gui_mac.c
5305 Patch 7.1.089
5306 Problem:    ":let loaded_getscriptPlugin" doesn't clear to eol, result is
5307             "#1in".
5308 Solution:   Clear to the end of the screen after displaying the first variable
5309             value.
5310 Files:      src/eval.c
5312 Patch 7.1.090
5313 Problem:    Compiler warning on Mac OS X 10.5.
5314 Solution:   Don't redeclare sigaltstack(). (Hisashi T Fujinaka)
5315 Files:      src/os_unix.c
5317 Patch 7.1.091 (extra)
5318 Problem:    Win32: Can't embed Vim inside another application.
5319 Solution:   Add the --windowid argument. (Nageshwar)
5320 Files:      runtime/doc/gui_w32.txt, runtime/doc/starting.txt,
5321             runtime/doc/vi_diff.txt, src/globals.h, src/gui_w32.c, src/main.c
5323 Patch 7.1.092 (extra, after 7.1.088)
5324 Problem:    Wrong arguments for MoveWindowStructure().
5325 Solution:   Remove "TRUE". (Michael Henry)
5326 Files:      src/gui_mac.c
5328 Patch 7.1.093
5329 Problem:    Reading past end of a screen line when determining cell width.
5330             (Dominique Pelle)
5331 Solution:   Add an argument to mb_off2cells() for the maximum offset.
5332 Files:      src/globals.h, src/gui.c, src/mbyte.c, src/proto/mbyte.pro,
5333             src/screen.c
5335 Patch 7.1.094
5336 Problem:    When checking if syntax highlighting is present, looking in the
5337             current buffer instead of the specified one.
5338 Solution:   Use "buf" instead of "curbuf".
5339 Files:      src/syntax.c
5341 Patch 7.1.095
5342 Problem:    The FocusLost and FocusGained autocommands are triggered
5343             asynchronously in the GUI.  This may cause arbitrary problems.
5344 Solution:   Put the focus event in the input buffer and handle it when ready
5345             for it.
5346 Files:      src/eval.c, src/getchar.c, src/gui.c, src/gui_gtk_x11.c,
5347             src/keymap.h
5349 Patch 7.1.096
5350 Problem:    Reading past end of a string when resizing Vim. (Dominique Pelle)
5351 Solution:   Check the string pointer before getting the char it points to.
5352 Files:      src/message.c
5354 Patch 7.1.097
5355 Problem:    ":setlocal stl=%!1+1" does not work.
5356 Solution:   Adjust check for pointer. (Politz)
5357 Files:      src/option.c
5359 Patch 7.1.098
5360 Problem:    ":call s:var()" doesn't work if "s:var" is a Funcref. (Andy Wokula)
5361 Solution:   Before converting "s:" into a script ID, check if it is a Funcref.
5362 Files:      src/eval.c
5364 Patch 7.1.099
5365 Problem:    When the 'keymap' and 'paste' options have a non-default value,
5366             ":mkexrc" and ":mksession" do not correctly set the options.
5367 Solution:   Set the options with side effects before other options.
5368 Files:      src/option.c
5370 Patch 7.1.100
5371 Problem:    Win32: Executing cscope doesn't always work properly.
5372 Solution:   Use another way to invoke cscope. (Mike Williams)
5373 Files:      src/if_cscope.c, src/if_cscope.h, src/main.c,
5374             src/proto/if_cscope.pro
5376 Patch 7.1.101
5377 Problem:    Ruby: The Buffer.line= method does not work.
5378 Solution:   Add the "self" argument to set_current_line(). (Jonathan Hankins)
5379 Files:      src/if_ruby.c
5381 Patch 7.1.102
5382 Problem:    Perl interface doesn't compile with new version of Perl.
5383 Solution:   Add two variables to the dynamic library loading. (Suresh
5384             Govindachar)
5385 Files:      src/if_perl.xs
5387 Patch 7.1.103
5388 Problem:    Using "dw" with the cursor past the end of the last line (using
5389             CTRL-\ CTRL-O from Insert mode) deletes a character. (Tim Chase)
5390 Solution:   Don't move the cursor back when the movement failed.
5391 Files:      src/normal.c
5393 Patch 7.1.104 (after 7.1.095)
5394 Problem:    When 'lazyredraw' is set a focus event causes redraw to be
5395             postponed until a key is pressed.
5396 Solution:   Instead of not returning from vgetc() when a focus event is
5397             encountered return K_IGNORE.  Add plain_vgetc() for when the
5398             caller doesn't want to get K_IGNORE.
5399 Files:      src/digraph.c, src/edit.c, src/ex_cmds.c, src/ex_getln.c,
5400             src/getchar.c, src/normal.c, src/proto/getchar.pro, src/window.c
5402 Patch 7.1.105
5403 Problem:    Internal error when using "0 ? {'a': 1} : {}". (A.Politz)
5404 Solution:   When parsing a dictionary value without using the value, don't try
5405             obtaining the key name.
5406 Files:      src/eval.c
5408 Patch 7.1.106
5409 Problem:    ":messages" doesn't quit listing on ":".
5410 Solution:   Break the loop when "got_int" is set.
5411 Files:      src/message.c
5413 Patch 7.1.107
5414 Problem:    When doing a block selection and using "s" to change the text,
5415             while triggering auto-indenting, causes the wrong text to be
5416             repeated in other lines. (Adri Verhoef)
5417 Solution:   Compute the change of indent and compensate for that.
5418 Files:      src/ops.c
5420 Patch 7.1.108 (after 7.1.100)
5421 Problem:    Win32: Compilation problems in Cscope code. (Jeff Lanzarotta)
5422 Solution:   Use (long) instead of (intptr_t) when it's not defined.
5423 Files:      src/if_cscope.c
5425 Patch 7.1.109
5426 Problem:    GTK: when there are many tab pages, clicking on the arrow left of
5427             the labels moves to the next tab page on the right. (Simeon Bird)
5428 Solution:   Check the X coordinate of the click and pass -1 as value for the
5429             left arrow.
5430 Files:      src/gui_gtk_x11.c, src/term.c
5432 Patch 7.1.110 (after 7.1.102)
5433 Problem:    Win32: Still compilation problems with Perl.
5434 Solution:   Change the #ifdefs. (Suresh Govindachar)
5435 Files:      src/if_perl.xs
5437 Patch 7.1.111
5438 Problem:    When using ":vimgrep" with the "j" flag folds from another buffer
5439             may be displayed. (A.Politz)
5440 Solution:   When not jumping to another buffer update the folds.
5441 Files:      src/quickfix.c
5443 Patch 7.1.112
5444 Problem:    Using input() with a wrong argument may crash Vim. (A.Politz)
5445 Solution:   Init the input() return value to NULL.
5446 Files:      src/eval.c
5448 Patch 7.1.113
5449 Problem:    Using map() to go over an empty list causes memory to be freed
5450             twice. (A.Politz)
5451 Solution:   Don't clear the typeval in restore_vimvar().
5452 Files:      src/eval.c
5454 Patch 7.1.114
5455 Problem:    Memory leak in getmatches().
5456 Solution:   Don't increment the refcount twice.
5457 Files:      src/eval.c
5459 Patch 7.1.115 (after 7.1.105)
5460 Problem:    Compiler warning for uninitialized variable. (Tony Mechelynck)
5461 Solution:   Init variable to NULL.
5462 Files:      src/eval.c
5464 Patch 7.1.116
5465 Problem:    Cannot display Unicode characters above 0x10000.
5466 Solution:   Remove the replacement with a question mark when UNICODE16 is not
5467             defined. (partly by Nicolas Weber)
5468 Files:      src/screen.c
5470 Patch 7.1.117
5471 Problem:    Can't check whether Vim was compiled with Gnome. (Tony Mechelynck)
5472 Solution:   Add gui_gnome to the has() list.
5473 Files:      src/eval.c
5475 Patch 7.1.118 (after 7.1.107)
5476 Problem:    Compiler warning for Visual C compiler.
5477 Solution:   Add typecast. (Mike Williams)
5478 Files:      src/ops.c
5480 Patch 7.1.119
5481 Problem:    Crash when 'cmdheight' set to very large value. (A.Politz)
5482 Solution:   Limit 'cmdheight' to 'lines' minus one.  Store right value of
5483             'cmdheight' when running out of room.
5484 Files:      src/option.c, src/window.c
5486 Patch 7.1.120
5487 Problem:    Can't properly check memory leaks while running tests.
5488 Solution:   Add an argument to garbagecollect().  Delete functions and
5489             variables in the test scripts.
5490 Files:      runtime/doc/eval.txt src/eval.c, src/globals.h, src/main.c,
5491             src/testdir/Makefile, src/testdir/test14.in,
5492             src/testdir/test26.in, src/testdir/test34.in,
5493             src/testdir/test45.in, src/testdir/test47.in,
5494             src/testdir/test49.in, src/testdir/test55.in,
5495             src/testdir/test56.in, src/testdir/test58.in,
5496             src/testdir/test59.in, src/testdir/test60.in,
5497             src/testdir/test60.vim, src/testdir/test62.in,
5498             src/testdir/test63.in, src/testdir/test64.in,
5500 Patch 7.1.121
5501 Problem:    Using ":cd %:h" when editing a file in the current directory
5502             results in an error message for using an empty string.
5503 Solution:   When "%:h" results in an empty string use ".".
5504 Files:      src/eval.c
5506 Patch 7.1.122
5507 Problem:    Mac: building Vim.app fails.  Using wrong architecture.
5508 Solution:   Use line continuation for the gui_bundle dependency.  Detect the
5509             system architecture with "uname -a".
5510 Files:      src/main.aap
5512 Patch 7.1.123
5513 Problem:    Win32: ":edit foo ~ foo" expands "~".
5514 Solution:   Change the call to expand_env().
5515 Files:      src/ex_docmd.c, src/misc1.c, src/proto/misc1.pro, src/option.c
5517 Patch 7.1.124 (extra)
5518 Problem:    Mac: When dropping a file on Vim.app that is already in the buffer
5519             list (from .viminfo) results in editing an empty, unnamed buffer.
5520             (Axel Kielhorn)  Also: warning for unused variable.
5521 Solution:   Move to the buffer of the first argument.  Delete unused variable.
5522 Files:      src/gui_mac.c
5524 Patch 7.1.125
5525 Problem:    The TermResponse autocommand event is not always triggered. (Aron
5526             Griffix)
5527 Solution:   When unblocking autocommands check if v:termresponse changed and
5528             trigger the event then.
5529 Files:      src/buffer.c, src/diff.c, src/ex_getln.c, src/fileio.c,
5530             src/globals.h, src/misc2.c, src/proto/fileio.pro, src/window.c
5532 Patch 7.1.126 (extra)
5533 Problem:    ":vimgrep */*" fails when a BufRead autocommand changes directory.
5534             (Bernhard Kuhn)
5535 Solution:   Change back to the original directory after loading a file.
5536             Also: use shorten_fname1() to avoid duplicating code.
5537 Files:      src/buffer.c, src/ex_docmd.c, src/fileio.c, src/gui_gtk.c,
5538             src/gui_w48.c, src/proto/ex_docmd.pro, src/proto/fileio.pro,
5539             src/quickfix.c
5541 Patch 7.1.127
5542 Problem:    Memory leak when doing cmdline completion. (Dominique Pelle)
5543 Solution:   Free "orig" argument of ExpandOne() when it's not used.
5544 Files:      src/ex_getln.c
5546 Patch 7.1.128 (extra)
5547 Problem:    Build problems with new version of Cygwin.
5548 Solution:   Remove -D__IID_DEFINED__, like with MingW. (Guopeng Wen)
5549 Files:      src/Make_cyg.mak
5551 Patch 7.1.129 (extra)
5552 Problem:    Win32: Can't get the user name when it is longer than 15
5553             characters.
5554 Solution:   Use UNLEN instead of MAX_COMPUTERNAME_LENGTH. (Alexei Alexandrov)
5555 Files:      src/os_win32.c
5557 Patch 7.1.130
5558 Problem:    Crash with specific order of undo and redo. (A.Politz)
5559 Solution:   Clear and adjust pointers properly.  Add u_check() for debugging.
5560 Files:      src/undo.c, src/structs.h
5562 Patch 7.1.131
5563 Problem:    ":mksession" always adds ":setlocal autoread". (Christian J.
5564             Robinson)
5565 Solution:   Skip boolean global/local option using global value.
5566 Files:      src/option.c
5568 Patch 7.1.132
5569 Problem:    getpos("'>") may return a negative column number for a Linewise
5570             selection. (A.Politz)
5571 Solution:   Don't add one to MAXCOL.
5572 Files:      src/eval.c
5574 Patch 7.1.133 (after 7.1.126)
5575 Problem:    shorten_fname1() linked when it's not needed.
5576 Solution:   Add #ifdef.
5577 Files:      src/fileio.c
5579 Patch 7.1.134 (extra)
5580 Problem:    Win32: Can't build with VC8
5581 Solution:   Detect the MSVC version instead of using NMAKE_VER.
5582             (Mike Williams)
5583 Files:      src/Make_mvc.mak
5585 Patch 7.1.135
5586 Problem:    Win32: When editing a file c:\tmp\foo and c:\tmp\\foo we have two
5587             buffers for the same file. (Suresh Govindachar)
5588 Solution:   Invoke FullName_save() when a path contains "//" or "\\".
5589 Files:      src/buffer.c
5591 Patch 7.1.136
5592 Problem:    Memory leak when using Ruby syntax highlighting. (Dominique Pelle)
5593 Solution:   Free the contained-in list.
5594 Files:      src/syntax.c
5596 Patch 7.1.137
5597 Problem:    Build failure when using EXITFREE. (Dominique Pelle)
5598 Solution:   Add an #ifdef around using clip_exclude_prog.
5599 Files:      src/misc2.c
5601 Patch 7.1.138
5602 Problem:    The Perl Msg() function doesn't stop when "q" is typed at the more
5603             prompt. (Hari Krishna Dara)
5604 Solution:   Check got_int.
5605 Files:      src/if_perl.xs
5607 Patch 7.1.139
5608 Problem:    When using marker folding and ending Insert mode with CTRL-C the
5609             current fold is truncated. (Fred Kater)
5610 Solution:   Ignore got_int while updating folds.
5611 Files:      src/fold.c
5613 Patch 7.1.140
5614 Problem:    v:count is set only after typing a non-digit, that makes it
5615             difficult to make a nice mapping.
5616 Solution:   Set v:count while still typing the count.
5617 Files:      src/normal.c
5619 Patch 7.1.141
5620 Problem:    GTK: -geom argument doesn't support a negative offset.
5621 Solution:   Compute position from the right/lower corner.
5622 Files:      src/gui_gtk_x11.c
5624 Patch 7.1.142
5625 Problem:    ":redir @A>" doesn't work.
5626 Solution:   Ignore the extra ">" also when appending. (James Vega)
5627 Files:      src/ex_docmd.c
5629 Patch 7.1.143
5630 Problem:    Uninitialized memory read when diffing three files. (Dominique
5631             Pelle)
5632 Solution:   Remove "+ !notset" so that we don't use fields that were not
5633             computed.
5634 Files:      src/diff.c
5636 Patch 7.1.144
5637 Problem:    After ":diffup" cursor can be in the wrong position.
5638 Solution:   Force recomputing the cursor position.
5639 Files:      src/diff.c
5641 Patch 7.1.145
5642 Problem:    Insert mode completion: When using the popup menu, after
5643             completing a word and typing a non-word character Vim is still
5644             completing the same word, following CTRL-N doesn't work.
5645             Insert mode Completion: When using CTRL-X O and there is only
5646             "struct." before the cursor, typing one char to reduce the
5647             matches, then BS completion stops.
5648 Solution:   When typing a character that is not part of the item being
5649             completed, stop complete mode.  For whole line completion also
5650             accept a space.  For file name completion stop at a path
5651             separator.
5652             For omni completion stay in completion mode even if completing
5653             with empty string.
5654 Files:      src/edit.c
5656 Patch 7.1.146 (extra)
5657 Problem:    VMS: Files with a very rare record organization (VFC) cannot be
5658             properly written by Vim.
5659             On older VAX systems mms runs into a syntax error.
5660 Solution:   Check for this special situation.  Do not wrap a comment, make it
5661             one long line.  (Zoltan Arpadffy)
5662 Files:      src/fileio.c, src/Make_vms.mms
5664 Patch 7.1.147 (after 7.1.127)
5665 Problem:    Freeing memory already freed when completing user name. (Meino
5666             Cramer)
5667 Solution:   Use a flag to remember if "orig" needs to be freed.
5668 Files:      src/ex_getln.c
5670 Patch 7.1.148
5671 Problem:    Some types are not found by configure.
5672 Solution:   Test for the sys/types.h header file. (Sean Boudreau)
5673 Files:      src/configure.in, src/auto/configure
5675 Patch 7.1.149
5676 Problem:    GTK GUI: When the completion popup menu is used scrolling another
5677             window by the scrollbar is OK, but using the scroll wheel it
5678             behaves line <Enter>.
5679 Solution:   Ignore K_MOUSEDOWN and K_MOUSEUP.  Fix redrawing the popup menu.
5680 Files:      src/edit.c, src/gui.c
5682 Patch 7.1.150
5683 Problem:    When 'clipboard' has "unnamed" using "p" in Visual mode doesn't
5684             work correctly. (Jianrong Yu)
5685 Solution:   When 'clipboard' has "unnamed" also obtain the selection when
5686             getting the default register.
5687 Files:      src/ops.c
5689 Patch 7.1.151
5690 Problem:    Using whole line completion with 'ignorecase' and 'infercase' set
5691             and the line is empty get an lalloc(0) error.
5692 Solution:   Don't try changing case for an empty match. (Matthew Wozniski)
5693 Files:      src/edit.c
5695 Patch 7.1.152
5696 Problem:    Display problem when 'hls' and 'cursorcolumn' are set and
5697             searching for "$".  (John Mullin)  Also when scrolling
5698             horizontally when 'wrap' is off.
5699 Solution:   Keep track of the column where highlighting was set.  Check the
5700             column offset when skipping characters.
5701 Files:      src/screen.c
5703 Patch 7.1.153
5704 Problem:    Compiler warnings on SGI.  Undefined XpmAllocColor (Charles
5705             Campbell)
5706 Solution:   Add type casts.  Init st_dev and st_ino separately.  Don't use
5707             type casts for vim_snprintf() when HAVE_STDARG_H is defined.
5708             Define XpmAllocColor when needed.
5709 Files:      src/eval.c, src/ex_cmds.c, src/fileio.c, src/misc2.c,
5710             src/gui_xmebw.c
5712 Patch 7.1.154
5713 Problem:    Compiler warning for signed/unsigned compare.
5714 Solution:   Add type cast.
5715 Files:      src/screen.c
5717 Patch 7.1.155
5718 Problem:    Crash when 'undolevels' is 0 and repeating "udd". (James Vega)
5719 Solution:   When there is only one branch use u_freeheader() to delete it.
5720 Files:      src/undo.c
5722 Patch 7.1.156
5723 Problem:    Overlapping arguments for strcpy() when expanding command line
5724             variables.
5725 Solution:   Use mch_memmove() instead of STRCPY().  Also fix a few typos.
5726             (Dominique Pelle)
5727 Files:      src/ex_docmd.c
5729 Patch 7.1.157
5730 Problem:    In Ex mode, :" gives an error at end-of-file. (Michael Hordijk)
5731 Solution:   Only give an error for an empty line, not for a comment.
5732 Files:      src/ex_docmd.c
5734 Patch 7.1.158 (extra)
5735 Problem:    Win32 console: When 'encoding' is "utf-8" and typing Alt-y the
5736             result is wrong.  Win32 GUI: Alt-y results in "u" when 'encoding'
5737             is "cp1250" (Lukas Cerman)
5738 Solution:   For utf-8 don't set the 7th bit in a byte, convert to the correct
5739             byte sequence.  For cp1250, when conversion to 'encoding' results
5740             in the 7th bit not set, set the 7th bit after conversion.
5741 Files:      src/os_win32.c, src/gui_w48.c
5743 Patch 7.1.159
5744 Problem:    strcpy() has overlapping arguments.
5745 Solution:   Use mch_memmove() instead. (Dominique Pelle)
5746 Files:      src/ex_cmds.c
5748 Patch 7.1.160
5749 Problem:    When a focus autocommand is defined, getting or losing focus
5750             causes the hit-enter prompt to be redrawn. (Bjorn Winckler)
5751 Solution:   Overwrite the last line.
5752 Files:      src/message.c
5754 Patch 7.1.161
5755 Problem:    Compilation errors with tiny features and EXITFREE.
5756 Solution:   Add #ifdefs. (Dominique Pelle)
5757 Files:      src/edit.c, src/misc2.c
5759 Patch 7.1.162
5760 Problem:    Crash when using a modifier before "while" or "for". (A.Politz)
5761 Solution:   Skip modifiers when checking for a loop command.
5762 Files:      src/proto/ex_docmd.pro, src/ex_docmd.c, src/ex_eval.c
5764 Patch 7.1.163
5765 Problem:    Warning for the unknown option 'bufsecret'.
5766 Solution:   Remove the lines .vim that use this option. (Andy Wokula)
5767 Files:      runtime/menu.vim
5769 Patch 7.1.164
5770 Problem:    Reading past end of regexp pattern. (Dominique Pelle)
5771 Solution:   Use utf_ptr2len().
5772 Files:      src/regexp.c
5774 Patch 7.1.165
5775 Problem:    Crash related to getting X window ID. (Dominique Pelle)
5776 Solution:   Don't trust the window ID that we got in the past, check it every
5777             time.
5778 Files:      src/os_unix.c
5780 Patch 7.1.166
5781 Problem:    Memory leak for using "gp" in Visual mode.
5782 Solution:   Free memory in put_register(). (Dominique Pelle)
5783 Files:      src/ops.c
5785 Patch 7.1.167
5786 Problem:    Xxd crashes when using "xxd -b -c 110". (Debian bug 452789)
5787 Solution:   Allocate more memory.  Fix check for maximum number of columns.
5788 Files:      src/xxd/xxd.c
5790 Patch 7.1.168 (extra)
5791 Problem:    Win32 GUI: Since patch 7.1.095, when the Vim window does not have
5792             focus, clicking in it doesn't position the cursor. (Juergen
5793             Kraemer)
5794 Solution:   Don't reset s_button_pending just after receiving focus.
5795 Files:      src/gui_w48.c
5797 Patch 7.1.169
5798 Problem:    Using uninitialized variable when system() fails. (Dominique
5799             Pelle)
5800 Solution:   Let system() return an empty string when it fails.
5801 Files:      src/eval.c
5803 Patch 7.1.170
5804 Problem:    Valgrind warning for overlapping arguments for strcpy().
5805 Solution:   Use mch_memmove() instead. (Dominique Pelle)
5806 Files:      src/getchar.c
5808 Patch 7.1.171
5809 Problem:    Reading one byte before allocated memory.
5810 Solution:   Check index not to become negative. (Dominique Pelle)
5811 Files:      src/ex_getln.c
5813 Patch 7.1.172
5814 Problem:    When 'buftype' is "acwrite" Vim still checks if the file or
5815             directory exists before overwriting.
5816 Solution:   Don't check for overwriting when the buffer name is not a file
5817             name.
5818 Files:      src/ex_cmds.c
5820 Patch 7.1.173
5821 Problem:    Accessing freed memory. (Dominique Pelle)
5822 Solution:   Don't call reg_getline() to check if a line is the first in the
5823             file.
5824 Files:      src/regexp.c
5826 Patch 7.1.174
5827 Problem:    Writing NUL past end of a buffer.
5828 Solution:   Copy one byte less when using strncat(). (Dominique Pelle)
5829 Files:      src/ex_cmds.c, src/ex_docmd.c,
5831 Patch 7.1.175
5832 Problem:    <BS> doesn't work with some combination of 'sts', 'linebreak' and
5833             'backspace'. (Francois Ingelrest)
5834 Solution:   When adding white space results in not moving back delete one
5835             character.
5836 Files:      src/edit.c
5838 Patch 7.1.176
5839 Problem:    Building with Aap fails when the "compiledby" argument contains
5840             '<' or '>' characters. (Alex Yeh)
5841 Solution:   Change how quoting is done in the Aap recipe.
5842 Files:      src/main.aap
5844 Patch 7.1.177
5845 Problem:    Freeing memory twice when in debug mode while reading a script.
5846 Solution:   Ignore script input while in debug mode.
5847 Files:      src/ex_cmds2.c, src/getchar.c, src/globals.h
5849 Patch 7.1.178
5850 Problem:    "%" doesn't work on "/* comment *//* comment */".
5851 Solution:   Don't handle the "//" in "*//*" as a C++ comment. (Markus
5852             Heidelberg)
5853 Files:      src/search.c
5855 Patch 7.1.179
5856 Problem:    Need to check for TCL 8.5.
5857 Solution:   Adjust configure script. (Alexey Froloff)
5858 Files:      src/configure.in, src/auto/configure
5860 Patch 7.1.180
5861 Problem:    Regexp patterns not tested sufficiently.
5862 Solution:   Add more checks to the regexp test.
5863 Files:      src/testdir/test64.in, src/testdir/test64.ok
5865 Patch 7.1.181
5866 Problem:    Accessing uninitialized memory in Farsi mode. (Dominique Pelle)
5867 Solution:   Only invoke lrF_sub() when there is something to do.
5868 Files:      src/ex_cmds.c
5870 Patch 7.1.182
5871 Problem:    When using tab pages and an argument list the session file may
5872             contain wrong "next" commands. (Alexander Bluem)
5873 Solution:   Use "argu" commands and only when needed.
5874 Files:      src/ex_docmd.c
5876 Patch 7.1.183
5877 Problem:    "Internal error" for ":echo matchstr('a', 'a\%[\&]')" (Mitanu
5878             Paul)
5879 Solution:   Inside "\%[]" detect \&, \| and \) as an error.
5880 Files:      src/regexp.c
5882 Patch 7.1.184
5883 Problem:    Crash when deleting backwards over a line break in Insert mode.
5884 Solution:   Don't advance the cursor when it's already on the NUL after a
5885             line. (Matthew Wozniski)
5886 Files:      src/normal.c
5888 Patch 7.1.185
5889 Problem:    Using "gR" with a multi-byte encoding and typing a CR pushes
5890             characters onto the replace stack incorrectly, resulting in BS
5891             putting back the wrong characters. (Paul B. Mahol)
5892 Solution:   Push multi-byte characters onto the replace stack in reverse byte
5893             order.  Add replace_push_mb().
5894 Files:      src/edit.c, src/misc1.c, src/proto/edit.pro
5896 Patch 7.1.186
5897 Problem:    "expand('<afile>')" returns a bogus value after changing
5898             directory. (Dave Fishburn)
5899 Solution:   Copy "autocmd_fname" to allocated memory and expand to full
5900             filename.  Shorten the path when expanding <afile>.
5901 Files:      src/ex_docmd.c, src/fileio.c
5903 Patch 7.1.187
5904 Problem:    Win32 GUI: Custom completion using system() no longer works
5905             after patch 7.1.104. (Erik Falor)
5906 Solution:   Loop when safe_vgetc() returns K_IGNORE.
5907 Files:      src/ex_getln.c
5909 Patch 7.1.188
5910 Problem:    When 'showmode' is off the message for changing a readonly file is
5911             given in the second column instead of the first.  (Payl B. Mahol)
5912 Solution:   Put the W10 message in the first column.
5913 Files:      src/edit.c
5915 Patch 7.1.189 (after 7.1.104)
5916 Problem:    Patch 7.1.104 was incomplete.
5917 Solution:   Also call plain_vgetc() in ask_yesno().
5918 Files:      src/misc1.c
5920 Patch 7.1.190
5921 Problem:    Cursor after end-of-line: "iA sentence.<Esc>)"
5922 Solution:   Move cursor back and make motion inclusive.
5923 Files:      src/normal.c
5925 Patch 7.1.191
5926 Problem:    Win32 GUI: after patch 7.1.168 there is still a problem when
5927             clicking in a scrollbar. (Juergen Jottkaerr)
5928 Solution:   Don't check the input buffer when dragging the scrollbar.
5929 Files:      src/gui.c
5931 Patch 7.1.192
5932 Problem:    With Visual block selection, "s" and typing something, CTRL-C
5933             doesn't stop Vim from repeating the replacement in other lines,
5934             like happens for "I".
5935 Solution:   Check for "got_int" to be set.
5936 Files:      src/ops.c
5938 Patch 7.1.193
5939 Problem:    Some Vim 5.x digraphs are missing in Vim 7, even though the
5940             character pairs are not used. (Philippe de Muyter)
5941 Solution:   Add those Vim 5.x digraphs that don't conflict with others.
5942 Files:      src/digraph.c
5944 Patch 7.1.194
5945 Problem:    ":echo glob('~/{}')" results in /home/user//.
5946 Solution:   Don't add a slash if there already is one.
5947 Files:      src/os_unix.c
5949 Patch 7.1.195
5950 Problem:    '0 mark doesn't work for "~/foo ~ foo".
5951 Solution:   Don't expand the whole file name, only "~/".
5952 Files:      src/mark.c
5954 Patch 7.1.196 (extra)
5955 Problem:    Win32 GUI: "\n" in a tooltip doesn't cause a line break. (Erik
5956             Falor)
5957 Solution:   Use the TTM_SETMAXTIPWIDTH message.
5958 Files:      src/gui_w32.c
5960 Patch 7.1.197
5961 Problem:    Mac: "make install" doesn't work when prefix defined.
5962 Solution:   Pass different arguments to "make installruntime".  (Jjgod Jiang)
5963 Files:      src/Makefile
5965 Patch 7.1.198
5966 Problem:    Hang when using ":s/\n//gn". (Burak Gorkemli)
5967 Solution:   Set "skip_match".
5968 Files:      src/ex_cmds.c
5970 Patch 7.1.199
5971 Problem:    Can't do command line completion for a specific file name
5972             extension.
5973 Solution:   When the pattern ends in "$" don't add a star for completion and
5974             remove the "$" before matching with file names.
5975 Files:      runtime/doc/cmdline.txt, src/ex_getln.c
5977 Patch 7.1.200 (after 7.1.177 and 7.1.182)
5978 Problem:    Compiler warnings for uninitialized variables.
5979 Solution:   Init variables.
5980 Files:      src/ex_cmds2.c, src/ex_docmd.c
5982 Patch 7.1.201
5983 Problem:    When reading stdin 'fenc' and 'ff are not set.
5984 Solution:   Set the options after reading stdin. (Ben Schmidt)
5985 Files:      src/fileio.c
5987 Patch 7.1.202
5988 Problem:    Incomplete utf-8 byte sequence is not checked for validity.
5989 Solution:   Check the bytes that are present for being valid. (Ben Schmidt)
5990 Files:      src/mbyte.c
5992 Patch 7.1.203
5993 Problem:    When 'virtualedit' is "onemore" then "99|" works but ":normal 99|"
5994             doesn't.  (Andy Wokula)
5995 Solution:   Check for "onemore" flag in check_cursor_col().
5996 Files:      src/misc2.c
5998 Patch 7.1.204 (extra)
5999 Problem:    Win32: Using the example at 'balloonexpr' the balloon disappears
6000             after four seconds and then comes back again.  Also moves the
6001             mouse pointer a little bit.  (Yongwei Wu)
6002 Solution:   Set the autopop time to 30 seconds (the max value).  (Sergey
6003             Khorev)  Move the mouse two pixels forward and one back to end up
6004             in the same position (really!).
6005 Files:      src/gui_w32.c
6007 Patch 7.1.205
6008 Problem:    Can't get the operator in an ":omap".
6009 Solution:   Add the "v:operator" variable. (Ben Schmidt)
6010 Files:      runtime/doc/eval.txt, src/eval.c, src/normal.c, src/vim.h
6012 Patch 7.1.206
6013 Problem:    Compiler warnings when using MODIFIED_BY.
6014 Solution:   Add type casts. (Ben Schmidt)
6015 Files:      src/version.c
6017 Patch 7.1.207
6018 Problem:    Netbeans: "remove" cannot delete one line. 
6019 Solution:   Remove partial lines and whole lines properly.  Avoid a memory
6020             leak.  (Xavier de Gaye)
6021 Files:      src/netbeans.c
6023 Patch 7.1.208
6024 Problem:    On Alpha get an unaligned access error.
6025 Solution:   Store the dictitem pointer before using it. (Matthew Luckie)
6026 Files:      src/eval.c
6028 Patch 7.1.209
6029 Problem:    GTK: When using the netrw plugin and doing ":gui" Vim hangs.
6030 Solution:   Stop getting a selection after three seconds.  This is a hack.
6031 Files:      src/gui_gtk_x11.c
6033 Patch 7.1.210
6034 Problem:    Listing mapping for 0xdb fails when 'encoding' is utf-8. (Tony
6035             Mechelynck)
6036 Solution:   Recognize K_SPECIAL KS_EXTRA KE_CSI as a CSI byte.
6037 Files:      src/mbyte.c
6039 Patch 7.1.211
6040 Problem:    The matchparen plugin may take an unexpected amount of time, so
6041             that it looks like Vim hangs.
6042 Solution:   Add a timeout to searchpair(), searchpairpos(), search() and
6043             searchpos().  Use half a second timeout in the plugin.
6044 Files:      runtime/doc/eval.txt, runtime/plugin/matchparen.vim, src/edit.c,
6045             src/eval.c, src/ex_cmds2.c, src/ex_docmd.c, src/normal.c,
6046             src/proto/eval.pro, src/proto/ex_cmds2.pro, src/proto/search.pro,
6047             src/search.c
6049 Patch 7.1.212
6050 Problem:    Accessing a byte before a line.
6051 Solution:   Check that the column is 1 or more. (Dominique Pelle)
6052 Files:      src/edit.c
6054 Patch 7.1.213
6055 Problem:    A ":tabedit" command that results in the "swap file exists" dialog
6056             and selecting "abort" doesn't close the new tab. (Al Budden)
6057 Solution:   Pass "old_curwin" to do_exedit().
6058 Files:      src/ex_docmd.c
6060 Patch 7.1.214
6061 Problem:    ":1s/g\n\zs1//" deletes characters from the first line. (A Politz)
6062 Solution:   Start replacing in the line where the match starts.
6063 Files:      src/ex_cmds.c
6065 Patch 7.1.215
6066 Problem:    It is difficult to figure out what syntax items are nested at a
6067             certain position.
6068 Solution:   Add the synstack() function.
6069 Files:      runtime/doc/eval.txt, src/eval.c, src/proto/syntax.pro,
6070             src/syntax.c
6072 Patch 7.1.216
6073 Problem:    Variants of --remote-tab are not mentioned for "vim --help".
6074 Solution:   Display optional -wait and -silent.
6075 Files:      src/main.c
6077 Patch 7.1.217
6078 Problem:    The "help-tags" tag may be missing from runtime/doc/tags when it
6079             was generated during "make install".
6080 Solution:   Add the "++t" argument to ":helptags" to force adding the tag.
6081 Files:      runtime/doc/Makefile, runtime/doc/various.txt, src/ex_cmds.c,
6082             src/ex_cmds.h
6084 Patch 7.1.218
6085 Problem:    A syntax region without a "keepend", containing a region with
6086             "extend" could be truncated at the end of the containing region.
6087 Solution:   Do not call syn_update_ends() when there are no keepend items.
6088 Files:      src/syntax.c
6090 Patch 7.1.219 (after 7.1.215)
6091 Problem:    synstack() returns situation after the current character, can't
6092             see the state for a one-character region.
6093 Solution:   Don't update ending states in the requested column.
6094 Files:      runtime/doc/eval.txt, src/eval.c, src/hardcopy.c,
6095             src/proto/syntax.pro, src/screen.c, src/spell.c, src/syntax.c
6097 Patch 7.1.220
6098 Problem:    When a ")" or word movement command moves the cursor back from the
6099             end of the line it may end up on the trail byte of a multi-byte
6100             character.  It's also moved back when it isn't needed.
6101 Solution:   Add the adjust_cursor() function.
6102 Files:      src/normal.c
6104 Patch 7.1.221
6105 Problem:    When inserting a "(", triggering the matchparen plugin, the
6106             following highlighting may be messed up.
6107 Solution:   Before triggering the CursorMovedI autocommands update the display
6108             to update the stored syntax stacks for the change.
6109 Files:      src/edit.c
6111 Patch 7.1.222 (after 7.1.217)
6112 Problem:    Wildcards in argument of ":helptags" are not expanded.  (Marcel
6113             Svitalsky)
6114 Solution:   Expand wildcards in the directory name.
6115 Files:      src/ex_cmds.c
6117 Patch 7.1.223
6118 Problem:    glob() doesn't work properly when 'shell' is "sh" or "bash" and
6119             the expanded name contains spaces, '~', single quotes and other
6120             special characters.  (Adri Verhoef, Charles Campbell)
6121 Solution:   For Posix shells define a vimglob() function to list the matches
6122             instead of using "echo" directly.
6123 Files:      src/os_unix.c
6125 Patch 7.1.224
6126 Problem:    When using "vim -F -o file1 file2" only one window is
6127             right-to-left.  Same for "-H".  (Ben Schmidt)
6128 Solution:   use set_option_value() to set 'rightleft'.
6129 Files:      src/main.c
6131 Patch 7.1.225
6132 Problem:    Using uninitialized value when XGetWMNormalHints() fails.
6133 Solution:   Check the return value. (Dominique Pelle)
6134 Files:      src/os_unix.c
6136 Patch 7.1.226
6137 Problem:    Command line completion doesn't work when a file name contains a
6138             '&' character.
6139 Solution:   Accept all characters in a file name, except ones that end a
6140             command or white space.
6141 Files:      src/ex_docmd.c
6143 Patch 7.1.227
6144 Problem:    Hang in syntax HL when moving over a ")". (Dominique Pelle)
6145 Solution:   Avoid storing a syntax state in the wrong position in the list of
6146             remembered states.
6147 Files:      src/syntax.c
6149 Patch 7.1.228
6150 Problem:    When 'foldmethod' is "indent" and a fold is created with ">>" it
6151             can't be closed with "zc".  (Daniel Shahaf)
6152 Solution:   Reset the "small" flag of a fold when adding a line to it.
6153 Files:      src/fold.c
6155 Patch 7.1.229
6156 Problem:    A fold is closed when it shouldn't when 'foldmethod' is "indent"
6157             and backspacing a non-white character so that the indent increases.
6158 Solution:   Keep the fold open after backspacing a character.
6159 Files:      src/edit.c
6161 Patch 7.1.230
6162 Problem:    Memory leak when executing SourceCmd autocommands.
6163 Solution:   Free the memory. (Dominique Pelle)
6164 Files:      src/ex_cmds2.c
6166 Patch 7.1.231
6167 Problem:    When shifting lines the change is acted upon multiple times.
6168 Solution:   Don't have shift_line() call changed_bytes.
6169 Files:      src/edit.c, src/ops.c, src/proto/edit.pro, src/proto/ops.pro
6171 Patch 7.1.232 (after 7.1.207 and 7.1.211)
6172 Problem:    Compiler warnings with MSVC.
6173 Solution:   Add type casts. (Mike Williams)
6174 Files:      src/ex_cmds2.c, src/netbeans.c
6176 Patch 7.1.233
6177 Problem:    Crash when doing Insert mode completion for a user defined
6178             command.  (Yegappan Lakshmanan)
6179 Solution:   Don't use the non-existing command line.
6180 Files:      src/ex_getln.c
6182 Patch 7.1.234
6183 Problem:    When diff'ing three files the third one isn't displayed correctly.
6184             (Gary Johnson)
6185 Solution:   Compute the size of diff blocks correctly when merging blocks.
6186             Compute filler lines correctly when scrolling.
6187 Files:      src/diff.c
6189 Patch 7.1.235
6190 Problem:    Pattern matching is slow when using a lot of simple patterns.
6191 Solution:   Avoid allocating memory by not freeing it when it's not so much.
6192             (Alexei Alexandrov)
6193 Files:      src/regexp.c
6195 Patch 7.1.236
6196 Problem:    When using 'incsearch' and 'hlsearch' a complicated pattern may
6197             make Vim hang until CTRL-C is pressed.
6198 Solution:   Add the 'redrawtime' option.
6199 Files:      runtime/doc/options.txt, src/ex_cmds.c, src/ex_docmd.c,
6200             src/ex_getln.c, src/gui.c, src/misc1.c, src/normal.c,
6201             src/option.c, src/quickfix.c, src/regexp.c, src/proto/regexp.pro,
6202             src/proto/search.pro, src/search.c, src/screen.c,
6203             src/option.h, src/spell.c, src/structs.h, src/syntax.c, src/tag.c,
6204             src/vim.h
6206 Patch 7.1.237
6207 Problem:    Compiler warning on an Alpha processor in Motif code.
6208 Solution:   Change a typecast. (Adri Verhoef)
6209 Files:      src/gui_motif.c
6211 Patch 7.1.238
6212 Problem:    Using the 'c' flag with searchpair() may cause it to fail.  Using
6213             the 'r' flag doesn't work when 'wrapscan' is set.  (A.Politz)
6214 Solution:   Only use the 'c' flag for the first search, not for repeating.
6215             When using 'r' imply 'W'. (Antony Scriven)
6216 Files:      src/eval.c
6218 Patch 7.1.239 (after 7.1.233)
6219 Problem:    Compiler warning for sprintf() argument.
6220 Solution:   Add a typecast. (Nico Weber)
6221 Files:      src/ex_getln.c
6223 Patch 7.1.240
6224 Problem:    When "gUe" turns a German sharp s into SS the operation stops
6225             before the end of the word.  Latin2 has the same sharp s but it's
6226             not changed to SS there.
6227 Solution:   Make sure all the characters are operated upon.  Detect the sharp
6228             s in latin2.  Also fixes that changing case of a multi-byte
6229             character that changes the byte count doesn't always work.
6230 Files:      src/ops.c
6232 Patch 7.1.241
6233 Problem:    Focus change events not always ignored.  (Erik Falor)
6234 Solution:   Ignore K_IGNORE in Insert mode in a few more places.
6235 Files:      src/edit.c
6237 Patch 7.1.242 (after 7.1.005)
6238 Problem:    "cib" doesn't work properly on "(x)". (Tim Pope)
6239 Solution:   Use ltoreq() instead of lt().  Also fix "ciT" on "<a>x</a>".
6240 Files:      src/search.c
6242 Patch 7.1.243 (after 7.1.240)
6243 Problem:    "U" doesn't work on all text in Visual mode. (Adri Verhoef)
6244 Solution:   Loop over all the lines to be changed.  Add tests for this.
6245 Files:      src/ops.c, src/testdir/test39.in, src/testdir/test39.ok
6247 Patch 7.1.244
6248 Problem:    GUI may have part of the command line cut off.
6249 Solution:   Don't round the number of lines up, always round down.
6250             (Tony Houghton, Scott Dillard)
6251 Files:      src/gui.c
6253 Patch 7.1.245
6254 Problem:    Pressing CTRL-\ three times causes Vim to quit.  (Ranganath Rao).
6255             Also for f CTRL-\ CTRL-\.
6256 Solution:   When going to cooked mode in mch_delay() set a flag to ignore
6257             SIGQUIT.
6258 Files:      src/os_unix.c
6260 Patch 7.1.246
6261 Problem:    Configure hangs when the man pager is something strange. (lorien)
6262 Solution:   Set MANPAGER and PAGER to "cat". (Micah Cowan)
6263 Files:      src/auto/configure, src/configure.in
6265 Patch 7.1.247
6266 Problem:    When using Netbeans backspacing in Insert mode skips a character
6267             now and then. (Ankit Jain)
6268 Solution:   Avoid calling netbeans_removed(), it frees the line pointer.
6269             (partly by Dominique Pelle).
6270 Files:      src/misc1.c
6272 Patch 7.1.248
6273 Problem:    Can't set the '" mark.  Can't know if setpos() was successful.
6274 Solution:   Allow setting the '" mark with setpos().  Have setpos() return a
6275             value indicating success/failure.
6276 Files:      runtime/doc/eval.txt, src/eval.c, src/mark.c
6278 Patch 7.1.249
6279 Problem:    After "U" the cursor can be past end of line.  (Adri Verhoef)
6280 Solution:   Adjust the cursor position in u_undoline().
6281 Files:      src/undo.c
6283 Patch 7.1.250
6284 Problem:    ":setglobal fenc=anything" gives an error message in a buffer
6285             where 'modifiable' is off.  (Ben Schmidt)
6286 Solution:   Don't give an error if 'modifiable' doesn't matter.
6287 Files:      src/option.c
6289 Patch 7.1.251
6290 Problem:    Using freed memory when spell checking enabled.
6291 Solution:   Obtain the current line again after calling spell_move_to().
6292             (Dominique Pelle)
6293 Files:      src/screen.c
6295 Patch 7.1.252 (after 7.1.243)
6296 Problem:    Test 39 fails when the environment has a utf-8 locale. (Dominique
6297             Pelle)
6298 Solution:   Force 'encoding' to be latin1.
6299 Files:      src/testdir/test39.in
6301 Patch 7.1.253
6302 Problem:    ":sort" doesn't work in a one line file. (Patrick Texier)
6303 Solution:   Don't sort if there is only one line. (Dominique Pelle)
6304 Files:      src/ex_cmds.c
6306 Patch 7.1.254
6307 Problem:    Tests 49 and 55 fail when the locale is French.
6308 Solution:   Using C messages for test 49.  Filter the error message in test 55
6309             such that it works when the number is halfway the message.
6310 Files:      src/testdir/test49.in, src/testdir/test55.in
6312 Patch 7.1.255
6313 Problem:    Vim doesn't support utf-32. (Yongwei Wu)
6314 Solution:   Add aliases for utf-32, it's the same as ucs-4.
6315 Files:      src/mbyte.c
6317 Patch 7.1.256
6318 Problem:    findfile() also returns directories.
6319 Solution:   Cleanup the code for finding files and directories in a list of
6320             directories.  Remove the ugly global ff_search_ctx.
6321 Files:      src/eval.c, src/misc2.c, src/vim.h, src/tag.c
6323 Patch 7.1.257
6324 Problem:    Configure can't always find the Tcl header files.
6325 Solution:   Also look in /usr/local/include/tcl$tclver and
6326             /usr/include/tcl$tclver (James Vega)
6327 Files:      src/auto/configure, src/configure.in
6329 Patch 7.1.258
6330 Problem:    Crash when doing "d/\n/e" and 'virtualedit' is "all". (Andy Wokula)
6331 Solution:   Avoid that the column becomes negative.  Also fixes other problems
6332             with the end of a pattern match is in column zero. (A.Politz)
6333 Files:      src/search.c
6335 Patch 7.1.259
6336 Problem:    Cursor is in the wrong position when 'rightleft' is set,
6337             'encoding' is "utf-8" and on an illegal byte.  (Dominique Pelle)
6338 Solution:   Only put the cursor in the first column when actually on a
6339             double-wide character.  (Yukihiro Nakadaira)
6340 Files:      src/screen.c
6342 Patch 7.1.260
6343 Problem:    Cursor positioning problem after ^@ wrapping halfway when
6344             'encoding' is utf-8.
6345 Solution:   Only count a position for printable characters.  (partly by
6346             Yukihiro Nakadaira)
6347 Files:      src/charset.c
6349 Patch 7.1.261
6350 Problem:    When a 2 byte BOM is detected Vim uses UCS-2, which doesn't work
6351             for UTF-16 text. (Tony Mechelynck)
6352 Solution:   Default to UTF-16.
6353 Files:      src/fileio.c, src/testdir/test42.ok
6355 Patch 7.1.262
6356 Problem:    Can't get the process ID of Vim.
6357 Solution:   Implement getpid().
6358 Files:      src/eval.c, runtime/doc/eval.txt
6360 Patch 7.1.263
6361 Problem:    The filetype can consist of two dot separated names.  This works
6362             for syntax and ftplugin, but not for indent. (Brett Stahlman)
6363 Solution:   Use split() and loop over each dot separated name.
6364 Files:      runtime/indent.vim
6366 Patch 7.1.264
6367 Problem:    Crash when indenting lines. (Dominique Pelle)
6368 Solution:   Set the cursor column when changing the cursor line.
6369 Files:      src/ops.c, src/misc1.c
6371 Patch 7.1.265
6372 Problem:    When 'isfname' contains a space, cmdline completion can hang.
6373             (James Vega)
6374 Solution:   Reset the "len" variable.
6375 Files:      src/ex_docmd.c
6377 Patch 7.1.266
6378 Problem:    When the version string returned by the terminal contains
6379             unexpected characters, it is used as typed input. (James Vega)
6380 Solution:   Assume the escape sequence ends in a letter.
6381 Files:      src/term.c
6383 Patch 7.1.267
6384 Problem:    When changing folds cursor may be positioned in the wrong place.
6385 Solution:   Call changed_window_setting_win() instead of
6386             changed_window_setting().
6387 Files:      src/fold.c
6389 Patch 7.1.268
6390 Problem:    Always shows "+" at end of screen line with: ":set
6391             listchars=eol:$,extends:+ nowrap list cursorline" (Gary Johnson)
6392 Solution:   Check for lcs_eol_one instead of lcs_eol.
6393 Files:      src/screen.c
6395 Patch 7.1.269
6396 Problem:    The matchparen plugin has an arbitrary limit for the number of
6397             lines to look for a match.
6398 Solution:   Rely on the searchpair() timeout.
6399 Files:      runtime/plugin/matchparen.vim
6401 Patch 7.1.270
6402 Problem:    ":?foo?" matches in current line since patch 7.1.025. (A.Politz)
6403 Solution:   Remove the SEARCH_START flag.
6404 Files:      src/ex_docmd.c, src/search.c
6406 Patch 7.1.271
6407 Problem:    In a Vim build without autocommands, checking a file that was
6408             changed externally causes the current buffer to be changed
6409             unexpectedly.  (Karsten Hopp)
6410 Solution:   Store "curbuf" instead of "buf".
6411 Files:      src/fileio.c
6413 Patch 7.1.272
6414 Problem:    The special buffer name [Location List] is not used for a buffer
6415             displayed in another tab page.
6416 Solution:   Use FOR_ALL_TAB_WINDOWS instead of FOR_ALL_WINDOWS. (Hiroaki
6417             Nishihara)
6418 Files:      src/buffer.c
6420 Patch 7.1.273
6421 Problem:    When profiling on Linux Vim exits early. (Liu Yubao)
6422 Solution:   When profiling don't exit on SIGPROF.
6423 Files:      src/Makefile, src/os_unix.c
6425 Patch 7.1.274 (after 7.1.272)
6426 Problem:    Compiler warning for optimized build.
6427 Solution:   Init win to NULL.
6428 Files:      src/buffer.c
6430 Patch 7.1.275 (extra)
6431 Problem:    Mac: ATSUI and 'antialias' don't work properly together.
6432 Solution:   Fix this and the input method. (Jjgod Jiang)
6433 Files:      src/vim.h, src/gui_mac.c
6435 Patch 7.1.276
6436 Problem:    "gw" uses 'formatexpr', even though the docs say it doesn't.
6437 Solution:   Don't use 'formatexpr' for "gw".
6438 Files:      src/vim.h, src/edit.c, src/ops.c, src/proto/ops.pro
6440 Patch 7.1.277
6441 Problem:    Default for 'paragraphs' misses some items (Colin Watson)
6442 Solution:   Add TP, HP, Pp, Lp and It to 'paragraphs'. (James Vega)
6443 Files:      runtime/doc/options.txt, src/option.c
6445 Patch 7.1.278 (extra, after 7.1.275)
6446 Problem:    Build failure when USE_CARBONKEYHANDLER is not defined.
6447 Solution:   Remove #ifdef.
6448 Files:      src/gui_mac.c
6450 Patch 7.1.279
6451 Problem:    When using cscope temporary files are left behind.
6452 Solution:   Send the quit command to cscope and give it two seconds to exit
6453             nicely before killing it. (partly by Dominique Pelle)
6454 Files:      src/if_cscope.c
6456 Patch 7.1.280  (after 7.1.275)
6457 Problem:    Mac: build problems when not using multibyte feature. (Nicholas
6458             Stallard)
6459 Solution:   Don't define USE_IM_CONTROL when not using multibyte.
6460 Files:      src/vim.h
6462 Patch 7.1.281 (after 7.1.279)
6463 Problem:    sa.sa_mask is not initialized.  Cscope may not exit.
6464 Solution:   Use sigemptyset().  Use SIGKILL instead of SIGTERM. (Dominique
6465             Pelle)
6466 Files:      src/if_cscope.c
6468 Patch 7.1.282 (extra)
6469 Problem:    Win64: Edit with Vim context menu isn't installed correctly.
6470             Compiler warnings and a few other things.
6471 Solution:   Add [ and ] to entry of class name.  Use UINT_PTR instead of UINT.
6472             And a fixes for the other things. (George V.  Reilly)
6473 Files:      src/GvimExt/Makefile, src/dosinst.c, src/if_ole.cpp, src/if_ole.h,
6474             src/if_ole.idl, src/INSTALLpc.txt,  src/Make_mvc.mak,
6475             src/os_win32.c,
6477 Patch 7.1.283
6478 Problem:    Non-extra part for 7.1.282.
6479 Solution:   Various changes.
6480 Files:      src/ex_docmd.c, src/globals.h, src/if_cscope.c, src/main.c,
6481             src/mark.c, src/netbeans.c, src/popupmnu.c, src/vim.h,
6482             src/window.c
6484 Patch 7.1.284
6485 Problem:    Compiler warnings for functions without prototype.
6486 Solution:   Add the function prototypes. (Patrick Texier)
6487 Files:      src/eval.c, src/quickfix.c
6489 Patch 7.1.285 (extra)
6490 Problem:    Mac: dialog hotkeys don't work.
6491 Solution:   Add hotkey support. (Dan Sandler)
6492 Files:      src/gui_mac.c
6494 Patch 7.1.286 (after 7.1.103)
6495 Problem:    "w" at the end of the buffer moves the cursor past the end of the
6496             line. (Markus Heidelberg)
6497 Solution:   Move the cursor back from the NUL when it was moved forward.
6498 Files:      src/normal.c
6500 Patch 7.1.287
6501 Problem:    Crash when reversing a list after using it. (Andy Wokula)
6502 Solution:   Update the pointer to the last used element. (Dominique Pelle)
6503 Files:      src/eval.c
6505 Patch 7.1.288 (after 7.1.281)
6506 Problem:    Cscope still leaves behind temp files when using gvim.
6507 Solution:   When getting the ECHILD error loop for a while until cscope exits.
6508             (Dominique Pelle)
6509 Files:      if_cscope.c
6511 Patch 7.1.289
6512 Problem:    When EXITFREE is defined and 'acd' is set freed memory is used.
6513             (Dominique Pelle)
6514 Solution:   Reset p_acd before freeing all buffers.
6515 Files:      src/misc2.c
6517 Patch 7.1.290
6518 Problem:    Reading bytes that were not written when spell checking and a line
6519             has a very large indent.
6520 Solution:   Don't copy the start of the next line when it only contains
6521             spaces. (Dominique Pelle)
6522 Files:      src/spell.c
6524 Patch 7.1.291 (after 7.1.288)
6525 Problem:    Compiler warning.
6526 Solution:   Change 50 to 50L.
6527 Files:      src/if_cscope.c
6529 Patch 7.1.292
6530 Problem:    When using a pattern with "\@<=" the submatches can be wrong.
6531             (Brett Stahlman)
6532 Solution:   Save the submatches when attempting a look-behind match.
6533 Files:      src/regexp.c
6535 Patch 7.1.293
6536 Problem:    Spell checking considers super- and subscript characters as word
6537             characters.
6538 Solution:   Recognize the Unicode super and subscript characters.
6539 Files:      src/spell.c
6541 Patch 7.1.294
6542 Problem:    Leaking memory when executing a shell command.
6543 Solution:   Free memory when not able to save for undo. (Dominique Pelle)
6544 Files:      src/ex_cmds.c
6546 Patch 7.1.295
6547 Problem:    Vimtutor only works with vim, not gvim.
6548 Solution:   Add the -g flag to vimtutor. (Dominique Pelle)  Add gvimtutor.
6549 Files:      src/Makefile, src/gvimtutor, src/vimtutor, runtime/doc/vimtutor.1
6551 Patch 7.1.296
6552 Problem:    SELinux is not supported.
6553 Solution:   Detect the selinux library and use mch_copy_sec(). (James Vega)
6554 Files:      src/auto/configure, src/config.h.in, src/configure.in,
6555             src/fileio.c, src/memfile.c, src/os_unix.c, src/proto/os_unix.pro
6557 Patch 7.1.297
6558 Problem:    When using the search/replace dialog the parenmatch highlighting
6559             can be wrong. (Tim Duncan)
6560 Solution:   In the GUI redraw function invoke the CursorMoved autocmd.
6561 Files:      src/gui.c
6563 Patch 7.1.298 (after 7.1.295)
6564 Problem:    src/gvimtutor is not distributed.
6565 Solution:   Add it to the list of distributed files.
6566 Files:      Filelist
6568 Patch 7.1.299
6569 Problem:    Filetype detection doesn't work properly for file names ending in
6570             a part that is ignored and contain a space or other special
6571             characters.
6572 Solution:   Escape the special characters using the new fnameescape function.
6573 Files:      runtime/doc/eval.txt, runtime/filetype.vim, src/eval.c,
6574             src/ex_getln.c, src/proto/ex_getln.pro, src/vim.h
6576 Patch 7.1.300
6577 Problem:    Value of asmsyntax argument isn't checked for valid characters.
6578 Solution:   Only accepts letters and digits.
6579 Files:      runtime/filetype.vim
6581 Patch 7.1.301
6582 Problem:    When the "File/Save" menu is used in Insert mode, a tab page label
6583             is not updated to remove the "+".
6584 Solution:   Call draw_tabline() from showruler(). (Bjorn Winckler)
6585 Files:      src/screen.c
6587 Patch 7.1.302 (after 7.1.299)
6588 Problem:    Compilation error on MS-Windows.
6589 Solution:   Don't use xp_shell when it's not defined.
6590 Files:      src/ex_getln.c
6592 Patch 7.1.303 (after 7.1.302)
6593 Problem:    Compilation error on MS-Windows, again.
6594 Solution:   Declare p.
6595 Files:      src/ex_getln.c
6597 Patch 7.1.304
6598 Problem:    Shortpath_for_invalid_fname() does not work correctly and is
6599             unnecessary complex.
6600 Solution:   Clean up shortpath_for_invalid_fname(). (mostly by Yegappan
6601             Lakshmanan)
6602 Files:      src/eval.c
6604 Patch 7.1.305
6605 Problem:    Editing a compressed file with special characters in the name
6606             doesn't work properly.
6607 Solution:   Escape special characters.
6608 Files:      runtime/autoload/gzip.vim
6610 Patch 7.1.306
6611 Problem:    Some Unicode characters are handled like word characters while
6612             they are symbols.
6613 Solution:   Adjust the table for Unicode classification.
6614 Files:      src/mbyte.c
6616 Patch 7.1.307
6617 Problem:    Many warnings when compiling with Python 2.5.
6618 Solution:   Use ssize_t instead of int for some types. (James Vega)
6619 Files:      src/if_python.c
6621 Patch 7.1.308
6622 Problem:    When in readonly mode ":options" produces an error.
6623 Solution:   Reset 'readonly'. (Gary Johnson)
6624 Files:      runtime/optwin.vim
6626 Patch 7.1.309
6627 Problem:    Installing and testing with a shadow directory doesn't work.
6628             (James Vega)
6629 Solution:   Add "po" to the list of directories to link.  Also link the Vim
6630             scripts in testdir.  And a few more small fixes.
6631 Files:      src/Makefile
6633 Patch 7.1.310
6634 Problem:    Incomplete utf-8 byte sequence at end of the file is not detected.
6635             Accessing memory that wasn't written.
6636 Solution:   Check the last bytes in the buffer for being a valid utf-8
6637             character. (mostly by Ben Schmidt)
6638             Also fix that the reported line number of the error was wrong.
6639 Files:      src/fileio.c
6641 Patch 7.1.311
6642 Problem:    Compiler warning for missing sentinel in X code.
6643 Solution:   Change 0 to NULL. (Markus Heidelberg)
6644 Files:      src/mbyte.c
6646 Patch 7.1.312
6647 Problem:    The .po files have mistakes in error numbers.
6648 Solution:   Search for these mistakes in the check script. (Dominique Pelle)
6649 Files:      src/po/check.vim
6651 Patch 7.1.313
6652 Problem:    When the netbeans interface setModified call is used the status
6653             lines and window title are not updated.
6654 Solution:   Redraw the status lines and title. (Philippe Fremy)
6655 Files:      src/netbeans.c
6657 Patch 7.1.314
6658 Problem:    The value of 'pastetoggle' is written to the session file without
6659             any escaping. (Randall Hansen)
6660 Solution:   Use put_escstr(). (Ben Schmidt)
6661 Files:      src/option.c
6663 Patch 7.1.315
6664 Problem:    Crash with specific search pattern using look-behind match.
6665             (Andreas Politz)
6666 Solution:   Also save the value of "need_clear_subexpr".
6667 Files:      src/regexp.c
6669 Patch 7.1.316
6670 Problem:    When 'cscopetag' is set ":tag" gives an error message instead of
6671             going to the next tag in the tag stack.
6672 Solution:   Don't call do_cstag() when there is no argument. (Mark Goldman)
6673 Files:      src/ex_docmd.c
6675 Patch 7.1.317
6676 Problem:    Compiler warnings in Motif calls.
6677 Solution:   Change zero to NULL. (Dominique Pelle)
6678 Files:      src/gui_motif.c
6680 Patch 7.1.318
6681 Problem:    Memory leak when closing xsmp connection.  Crash on exit when
6682             using Lesstif.
6683 Solution:   Don't close the X display to work around a Lesstif bug.  Free
6684             clientid.  Also fix a leak for Motif and Athena. (Dominique Pelle)
6685 Files:      src/gui_x11.c, src/os_unix.c
6687 Patch 7.1.319
6688 Problem:    When a register has an illegal utf-8 sequence, pasting it on the
6689             command line causes an illegal memory access.
6690 Solution:   Use mb_cptr2char_adv(). (Dominique Pelle)
6691 Files:      src/ex_getln.c
6693 Patch 7.1.320 (extra)
6694 Problem:    Win64: Warnings while compiling Python interface.
6695 Solution:   Use PyInt in more places.  Also update version message for the
6696             console. (George Reilly)
6697 Files:      src/if_python.c, src/version.c
6699 Patch 7.1.321 (extra)
6700 Problem:    Win32 / Win64: Install file is outdated.
6701 Solution:   Update the text for recent compiler. (George Reilly)
6702 Files:      src/INSTALLpc.txt
6704 Patch 7.1.322
6705 Problem:    Can't get start of Visual area in an <expr> mapping.
6706 Solution:   Add the 'v' argument to getpos().
6707 Files:      runtime/doc/eval.txt, src/eval.c
6709 Patch 7.1.323
6710 Problem:    Test 19 fails with some termcaps. (Dominique Pelle)
6711 Solution:   Set the t_kb and t_kD termcap values.
6712 Files:      src/testdir/test19.in, src/testdir/test38.in
6714 Patch 7.1.324
6715 Problem:    File name path length on Unix is limited to 1024.
6716 Solution:   Use PATH_MAX when it's more than 1000.
6717 Files:      src/os_unix.h
6719 Patch 7.1.325
6720 Problem:    When editing a command line that's longer than available space in
6721             the window, the characters at the end are in reverse order.
6722 Solution:   Increment the insert position even when the command line doesn't
6723             fit.  (Ingo Karkat)
6724 Files:      src/ex_getln.c
6726 Patch 7.1.326
6727 Problem:    ":s!from!to!" works, but ":smagic!from!to!" doesn't.  It sees the
6728             "!" as a flag to to the command.  Same for ":snomagic". (Johan
6729             Spetz)
6730 Solution:   When checking for a forced command also ignore ":smagic" and
6731             ":snomagic". (Ian Kelling)
6732 Files:      src/ex_docmd.c
6734 Patch 7.1.327
6735 Problem:    The GUI tutor is installed when there is no GUI version.
6736 Solution:   Only install gvimtutor when building a GUI version.
6737 Files:      src/Makefile
6739 Patch 7.1.328
6740 Problem:    Crash when using Cygwin and non-posix path name in tags file.
6741 Solution:   Use separate buffer for posix path. (Ben Schmidt)
6742 Files:      src/os_unix.c
6744 Patch 7.1.329
6745 Problem:    When the popup menu is removed a column of cells, the right halve
6746             of double-wide characters, may not be redrawn.
6747 Solution:   Check if the right halve of a character needs to be redrawn.
6748             (Yukihiro Nakadaira)
6749 Files:      src/screen.c
6751 Patch 7.1.330
6752 Problem:    Reading uninitialized memory when using Del in replace mode.
6753 Solution:   Use utfc_ptr2len_len() instead of mb_ptr2len(). (Dominique Pelle)
6754 Files:      src/misc1.c
6757 Warning for missing sentinel in gui_xmldlg.c. (Dominique Pelle)
6759 A search offset from the end of a match didn't work properly for multi-byte
6760 characters.  (Yukihiro Nakadaira)
6762 When displaying the value of 'key' don't show "*****" when the value is empty.
6763 (Ben Schmidt)
6765 Internal error when compiled with EXITFREE and using the nerd_tree plugin.
6766 Set last_msg_hist to NULL when history becomes empty.  Call
6767 free_all_functions() after garbage collection.  (Dominique Pelle)
6769 GTK with XIM: <S-Space> does not work.  (Yukihiro Nakadaira)
6771 Some shells do not support "echo -n", which breaks glob().  Use "echo" instead
6772 of "echo -n $1; echo".  (Gary Johnson)
6774 "echo 22,44" printed "22" on top of the command, the error messages caused
6775 the rest not to be cleared.  Added the need_clr_eos flag.
6777 Netbeans events are handled while updating the screen, causing a crash.
6778 Change the moment when events are handled.  Rename nb_parse_messages() to
6779 netbeans_parse_messages().  (Xavier de Gaye)
6781 Test 11 was broken after patch 7.1.186 on Win32 console. (Daniel Shahaf)
6782 Use shellescape() on the file name.
6784 IM was turned off in im_preedit_end_cb() for no good reason.  (Takuhiro
6785 Nishioka)
6787 A corrupted spell file could cause Vim to use lots of memory.  Better
6788 detection for running into the end of the file.  (idea from James Vega)
6790 Mac: Included a patch to make it build with GTK.  Moved language init to
6791 mac_lang_init() function.  (Ben Schmidt)
6793 Problem with 'wildmenu' after ":lcd", up/down arrows don't work. (Erik Falor)
6795 Fix configure.in to avoid "implicitly declared" warnings when running
6796 configure.
6798 Fixed a memory leak when redefining a keymap. (Dominique Pelle)
6800 Setting 'pastetoggle' to "jj" didn't work.
6802 'ic' and 'smartcase' don't work properly when using \%V in a search pattern.
6803 (Kana Natsuno)
6805 Patch 7.2a.001
6806 Problem:    On some systems X11/Xlib.h exists (from X11-dev package) but
6807             X11/Intrinsic.h does not (in Xt-dev package).  This breaks the
6808             build.  Also, on Solaris 9 sys/ptem.h isn't found.
6809 Solution:   Have configure only accept X11 when X11/Intrinsic.h exists.
6810             Check for sys/ptem.h while including sys/stream.h. (Vladimir
6811             Marek)
6812 Files:      src/auto/configure, src/configure.in
6814 Patch 7.2a.002
6815 Problem:    getbufvar(N, "") gets the dictionary of the current buffer instead
6816             of buffer N.
6817 Solution:   Set curbuf before calling find_var_in_ht(). (Kana Natsuno)
6818 Files:      src/eval.c
6820 Patch 7.2a.003
6821 Problem:    Leaking memory when using ":file name" and using access control
6822             lists.
6823 Solution:   Invoke mch_free_acl() in vim_rename(). (Dominique Pelle)
6824 Files:      src/fileio.c
6826 Patch 7.2a.004
6827 Problem:    Some systems can't get spell files by ftp.
6828 Solution:   Use http when it looks like it's possible. (James Vega)
6829 Files:      runtime/autoload/spellfile.vim
6831 Patch 7.2a.005
6832 Problem:    A few error messages use confusing names.  Misspelling.
6833 Solution:   Change "dissallows" to "disallows". (Dominique Pelle)  Change
6834             "number" to "Number".
6835 Files:      src/eval.c, src/fileio.c
6837 Patch 7.2a.006
6838 Problem:    Reading past NUL in a string.
6839 Solution:   Check for invalid utf-8 byte sequence. (Dominique Pelle)
6840 Files:      src/charset.c
6842 Patch 7.2a.007
6843 Problem:    ":let v = 1.2.3" was OK in Vim 7.1, now it gives an error.
6844 Solution:   Don't look for a floating point number after the "." operator.
6845 Files:      src/eval.c
6847 Patch 7.2a.008
6848 Problem:    printf("%g", 1) doesn't work.
6849 Solution:   Convert Number to Float when needed.
6850 Files:      src/message.c
6852 Patch 7.2a.009
6853 Problem:    cygwin_conv_to_posix_path() does not specify buffer size.
6854 Solution:   Use new Cygwin function: cygwin_conv_path(). (Corinna Vinschen)
6855 Files:      src/main.c, src/os_unix.c
6857 Patch 7.2a.010
6858 Problem:    When a file name has an illegal byte sequence Vim may read
6859             uninitialised memory.
6860 Solution:   Don't use UTF_COMPOSINGLIKE() on an illegal byte.  In
6861             msg_outtrans_len_attr() use char2cells() instead of ptr2cells().
6862             In utf_ptr2char() don't check second byte when first byte is
6863             illegal.  (Dominique Pelle)
6864 Files:      src/mbyte.c, src/message.c
6866 Patch 7.2a.011
6867 Problem:    The Edit/Startup Settings menu doesn't work.
6868 Solution:   Expand environment variables. (Ben Schmidt)
6869 Files:      runtime/menu.vim
6871 Patch 7.2a.012
6872 Problem:    Compiler warnings for casting int to pointer.
6873 Solution:   Add cast to long in between. (Martin Toft)
6874 Files:      src/gui_gtk_x11.c
6876 Patch 7.2a.013
6877 Problem:    shellescape() does not escape "%" and "#" characters.
6878 Solution:   Add find_cmdline_var() and use it when the second argument to
6879             shellescape() is non-zero.
6880 Files:      runtime/doc/eval.txt, src/eval.c, src/ex_docmd.c,
6881             src/proto/ex_docmd.pro, src/proto/misc2.pro, src/misc2.c
6883 Patch 7.2a.014
6884 Problem:    Problem with % in message.
6885 Solution:   Put % in single quotes.
6886 Files:      src/eval.c
6888 Patch 7.2a.015 (after 7.2a.010)
6889 Problem:    Misaligned messages.
6890 Solution:   Compute length of unprintable chars correctly.
6891 Files:      src/message.c
6893 Patch 7.2a.016
6894 Problem:    Using CTRL-W v in the quickfix window results in two quickfix
6895             windows, which is not allowed.  ":tab split" should be allowed to
6896             open a new quickfix window in another tab.
6897 Solution:   For CTRL-W v instead of splitting the window open a new one.
6898             When using ":tab" do allow splitting the quickfix window (was
6899             already included in patch 7.2a.013).
6900 Files:      src/window.c
6902 Patch 7.2a.017
6903 Problem:    ":doautoall" executes autocommands for all buffers instead of just
6904             for loaded buffers.
6905 Solution:   Change "curbuf" to "buf".
6906 Files:      src/fileio.c
6908 Patch 7.2a.018
6909 Problem:    Compiler warnings when compiling with Gnome. (Tony Mechelynck)
6910 Solution:   Add type casts.
6911 Files:      src/gui_gtk_x11.c
6913 Patch 7.2a.019
6914 Problem:    ":let &g:tw = 44" sets the local option value. (Cyril Slobin)
6915 Solution:   Use get_varp_scope() instead of get_varp(). (Ian Kelling)
6916 Files:      src/option.c
6918 There is no way to avoid adding /usr/local/{include|lib} to the build
6919 commands.  Add the --with-local-dir argument to configure. (Michael
6920 Haubenwallner)
6922 When using CTRL-D after ":help", the number of matches could be thousands.
6923 Restrict to TAG_MANY to avoid this taking too long. (Ian Kelling)
6925 The popup menu could be placed at a weird location.  Caused by w_wcol computed
6926 by curs_columns().  (Dominique Pelle)
6928 Overlapping STRCPY() arguments when using %r item in 'errorformat'.  Use
6929 STRMOVE() instead. (Ralf Wildenhues)
6931 Mac: On Leopard gvim, when using the mouse wheel nothing would happen until
6932 another event occurs, such as moving the mouse.  Then the recorded scrolling
6933 would take place all at once. (Eckehard Berns)
6935 Solution for cursor color not reflecting IM status for GTK 2.  Add
6936 preedit_is_active flag. (SungHyun Nam)
6938 filereadable() can hang on a FIFO on Linux.  Use open() instead of fopen(),
6939 with O_NONBLOCK. (suggested by Lars Kotthoff)
6941 Included patch to support Perl 5.10. (Yasuhiro Matsumoto)
6943 When files are dropped on gvim while the screen is being updated, ignore the
6944 drop command to avoid freeing memory that is being used.
6946 In a terminal, when drawing the popup menu over double-wide characters, half
6947 characters may not be cleared properly. (Yukihiro Nakadaira)
6949 The #ifdef for including "vimio.h" was inconsistent.  In a few files it
6950 depended on MSWIN, which isn't defined until later.
6952 Patch 7.2b.001
6953 Problem:    Compilation problem: mb_fix_col() missing with multi-byte feature
6954             but without GUI or clipboard.
6955 Solution:   Remove #ifdef.
6956 Files:      src/mbyte.c
6958 Patch 7.2b.002
6959 Problem:    Compiler warnings for signed/unsigned mismatch.
6960 Solution:   Add type casts.
6961 Files:      src/screen.c
6963 Patch 7.2b.003
6964 Problem:    Still a compilation problem, check_col() and check_row() missing.
6965 Solution:   Add FEAT_MBYTE to the #if.
6966 Files:      src/ui.c
6968 Patch 7.2b.004
6969 Problem:    Trying to free memory for a static string when using ":helpgrep".
6970             (George Reilly)
6971 Solution:   Set 'cpo' to empty_option instead of an empty string.  Also for
6972             searchpair() and substitute().
6973 Files:      src/quickfix.c, src/eval.c
6975 Patch 7.2b.005
6976 Problem:    The special character "!" isn't handled properly in shellescape().
6977             (Jan Minar)
6978 Solution:   Escape "!" when using a "csh" like shell and with
6979             shellescape(s, 1).  Twice for both.  Also escape <NL>.
6980 Files:      src/misc2.c
6982 Patch 7.2b.006
6983 Problem:    Reading past end of string when reading info from tags line.
6984 Solution:   Break the loop when encountering a NUL. (Dominique Pelle)
6985 Files:      src/tag.c
6987 Patch 7.2b.007
6988 Problem:    Part of a message cannot be translated.
6989 Solution:   Put _() around the message.
6990 Files:      src/search.c
6992 Patch 7.2b.008
6993 Problem:    A few filetypes are not detected or not detected properly.
6994 Solution:   Add filetype detection patterns. (Nikolai Weibull)
6995 Files:      runtime/filetype.vim
6997 Patch 7.2b.009
6998 Problem:    Reading past end of screen line. (Epicurus)
6999 Solution:   Avoid going past the value of Columns.
7000 Files:      src/screen.c
7002 Patch 7.2b.010
7003 Problem:    ":mksession" doesn't work for ":map , foo", ":sunmap ,". (Ethan
7004             Mallove)
7005 Solution:   Check for "nxo", "nso" and other strange mapping combinations.
7006 Files:      src/getchar.c
7008 Patch 7.2b.011
7009 Problem:    Configure for TCL ends up with include file in compiler command.
7010             (Richard Hogg)
7011 Solution:   Delete items from $TCL_DEFS that do not start with a dash.
7012 Files:      src/auto/configure, src/configure.in
7014 Patch 7.2b.012
7015 Problem:    Build failure with +multi_byte but without +diff.
7016 Solution:   Add #ifdef. (Patrick Texier)
7017 Files:      src/main.c
7019 Patch 7.2b.013
7020 Problem:    Build fails with tiny features and Perl. (Dominique Pelle)
7021 Solution:   Define missing functions.  Also when compiling Python.
7022 Files:      src/if_perl.xs, src/if_python.c
7024 Patch 7.2b.014
7025 Problem:    Configure uses an unsafe temp file to store commands.
7026 Solution:   Create the temp file in local directory.
7027 Files:      src/auto/configure, src/configure.in
7029 Patch 7.2b.015
7030 Problem:    Build fails on Mac when using Aap.
7031 Solution:   Fix typo in configure script.
7032 Files:      src/auto/configure, src/configure.in
7034 Patch 7.2b.016
7035 Problem:    Build fails with normal features but without +autocmd.
7036 Solution:   Fix #ifdefs. (Ian Kelling)
7037 Files:      src/eval.c, src/ex_cmds.c, src/quickfix.c, src/option.c,
7038             src/ex_docmd.c
7040 Patch 7.2b.017
7041 Problem:    "vim -O foo foo" results in only one window.  (Zdenek Sekera)
7042 Solution:   Handle result of ATTENTION prompt properly. (Ian Kelling)
7043 Files:      src/main.c
7045 Patch 7.2b.018
7046 Problem:    When doing command line completion on a file name for a csh-like
7047             shell argument a '!' character isn't escaped properly.
7048 Solution:   Add another backslash.
7049 Files:      src/ex_getln.c, src/misc2.c, src/proto/misc2.pro, src/screen.c
7051 Patch 7.2b.019 (extra)
7052 Problem:    Win32: Various compiler warnings.
7053 Solution:   Use __w64 attribute.  Comment-out unused parameters.  Adjust a few
7054             #ifdefs. (George Reilly)
7055 Files:      src/gui_w48.c, src/GvimExt/gvimext.cpp, src/Make_mvc.mak,
7056             src/os_mswin.c, src/os_win32.c, src/vim.h
7058 Patch 7.2b.020
7059 Problem:    ":sort n" doesn't handle negative numbers. (James Vega)
7060 Solution:   Include '-' in the number.
7061 Files:      src/charset.c, src/ex_cmds.c
7063 Patch 7.2b.021
7064 Problem:    Reloading doesn't read the BOM correctly. (Steve Gardner)
7065 Solution:   Accept utf-8 BOM when specified file encoding is utf-8.
7066 Files:      src/fileio.c
7068 Patch 7.2b.022
7069 Problem:    When using ":normal" while updating the status line the count of
7070             an operator is lost. (Dominique Pelle)
7071 Solution:   Save and restore "opcount".
7072 Files:      src/ex_docmd.c, src/globals.h, src/normal.c
7074 Patch 7.2b.023
7075 Problem:    Crash when using the result of synstack(0,0). (Matt Wozniski)
7076 Solution:   Check for v_list to be NULL in a few more places.
7077 Files:      src/eval.c
7079 Patch 7.2b.024
7080 Problem:    Using ":gui" while the netrw plugin is active causes a delay in
7081             updating the display.
7082 Solution:   Don't check for terminal codes when starting the GUI.
7083 Files:      src/term.c
7085 Patch 7.2b.025
7086 Problem:    When the CursorHold event triggers a pending count is lost.
7087             (Juergen Kraemer)
7088 Solution:   Save the counts and restore them.
7089 Files:      src/normal.c, src/structs.h
7091 Patch 7.2b.026
7092 Problem:    The GTK 2 file chooser causes the ~/.recently-used.xbel file to be
7093             written over and over again.  This may cause a significant
7094             slowdown. (Guido Berhoerster)
7095 Solution:   Don't use the GTK 2 file chooser.
7096 Files:      src/gui_gtk.c
7098 Patch 7.2b.027
7099 Problem:    Memory leak for Python, Perl, etc. script command with end marker.
7100 Solution:   Free the memory of the end marker. (Andy Kittner)
7101 Files:      src/ex_getln.c
7103 Patch 7.2b.028
7104 Problem:    Reading uninitialized memory when doing ":gui -f". (Dominique
7105             Pelle)
7106 Solution:   Don't position the cursor when the screen size is invalid.
7107 Files:      src/gui.c
7109 Patch 7.2b.029
7110 Problem:    ":help a" doesn't jump to "a" tag in docs. (Tony Mechelynck)
7111 Solution:   Get all tags and throw away more than TAG_MANY after sorting.
7112             When there is no argument find matches for "help" to avoid a long
7113             delay.
7114 Files:      src/ex_cmds.c, src/ex_getln.c
7116 Patch 7.2b.030
7117 Problem:    When changing the value of t_Co from 8 to 16 the Visual
7118             highlighting keeps both reverse and a background color.
7119 Solution:   Remove the attribute when setting the default highlight color.
7120             (Markus Heidelberg)
7121 Files:      src/syntax.c
7123 Error when cancelling completion menu and auto-formatting. (fixed by Ian
7124 Kelling)
7126 Patch 7.2c.001
7127 Problem:    ":let x=[''] | let x += x" causes hang. (Matt Wozniski)
7128 Solution:   Only insert elements up to the original length of the List.
7129 Files:      runtime/doc/eval.txt, src/eval.c
7131 Patch 7.2c.002
7132 Problem:    fnameescape() doesn't handle a leading '+' or '>'. (Jan Minar)
7133 Solution:   Escape a leading '+' and '>'.  And a single '-'.
7134 Files:      runtime/doc/eval.txt, src/ex_getln.c
7136 Patch 7.2c.003
7137 Problem:    Searching for "foo\%[bar]\+" gives a "Corrupted regexp program"
7138             error. (Joachim Hofmann)
7139 Solution:   Mark the \%[] item as not being simple.
7140 Files:      src/regexp.c
7142 On Vista access to system directories is virtualized. (Michael Mutschler)
7143 Adjusted the manifest file to avoid this. (George Reilly)
7145 Memory leak when using CTRL-C to cancel listing the jump list. (Dominique
7146 Pelle)
7148 Mac: Could not build with Perl interface.
7150 ==============================================================================
7151 VERSION 7.3                                             *version-7.3*
7153 This section is about improvements made between version 7.2 and 7.3.
7155 This is a bug-fix release and there are a few new features.
7158 Changed                                                 *changed-7.3*
7159 -------
7161 The extra and language files are no longer distributed separately.
7162 The files for all systems are included in one distribution.
7165 Added                                                   *added-7.3*
7166 -----
7168 New syntax files:
7170 New spell files:
7172 Breton. (Dominique Pelle)
7175 Fixed                                                   *fixed-7.3*
7176 -----
7180  vim:tw=78:ts=8:ft=help:norl: