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