home *** CD-ROM | disk | FTP | other *** search
/ vim.ftp.fu-berlin.de / 2015-02-03.vim.ftp.fu-berlin.de.tar / vim.ftp.fu-berlin.de / runtime / dos / doc / version5.txt < prev    next >
Encoding:
Text File  |  2010-08-15  |  309.0 KB  |  7,814 lines

  1. *version5.txt*  For Vim version 7.3.  Last change: 2008 Dec 17
  2.  
  3.  
  4.           VIM REFERENCE MANUAL    by Bram Moolenaar
  5.  
  6. Welcome to Vim Version 5.0!
  7.  
  8. This document lists the differences between Vim 4.x and Vim 5.0.
  9. Although 5.0 is mentioned here, this is also for version 5.1, 5.2, etc..
  10. See |vi_diff.txt| for an overview of differences between Vi and Vim 5.0.
  11. See |version4.txt| for differences between Vim 3.0 and Vim 4.0.
  12.  
  13. INCOMPATIBLE:                |incompatible-5|
  14.  
  15. Default value for 'compatible' changed    |cp-default|
  16. Text formatting command "Q" changed    |Q-command-changed|
  17. Command-line arguments changed        |cmdline-changed|
  18. Autocommands are kept            |autocmds-kept|
  19. Use of 'hidden' changed            |hidden-changed|
  20. Text object commands changed        |text-objects-changed|
  21. X-Windows Resources removed        |x-resources|
  22. Use of $VIM                |$VIM-use|
  23. Use of $HOME for MS-DOS and Win32    |$HOME-use|
  24. Tags file format changed        |tags-file-changed|
  25. Options changed                |options-changed|
  26. CTRL-B in Insert mode gone        |i_CTRL-B-gone|
  27.  
  28. NEW FEATURES:                |new-5|
  29.  
  30. Syntax highlighting            |new-highlighting|
  31. Built-in script language        |new-script|
  32. Perl and Python support            |new-perl-python|
  33. Win32 GUI version            |added-win32-GUI|
  34. VMS version                |added-VMS|
  35. BeOS version                |added-BeOS|
  36. Macintosh GUI version            |added-Mac|
  37. More Vi compatible            |more-compatible|
  38. Read input from stdin            |read-stdin|
  39. Regular expression patterns        |added-regexp|
  40. Overloaded tags                |tag-overloaded|
  41. New commands                |new-commands|
  42. New options                |added-options|
  43. New command-line arguments        |added-cmdline-args|
  44. Various additions            |added-various|
  45.  
  46. IMPROVEMENTS                |improvements-5|
  47.  
  48. COMPILE TIME CHANGES            |compile-changes-5|
  49.  
  50. BUG FIXES                |bug-fixes-5|
  51.  
  52. VERSION 5.1            |version-5.1|
  53. Changed                    |changed-5.1|
  54. Added                    |added-5.1|
  55. Fixed                    |fixed-5.1|
  56.  
  57. VERSION 5.2            |version-5.2|
  58. Long lines editable            |long-lines|
  59. File browser added            |file-browser-5.2|
  60. Dialogs added                |dialogs-added|
  61. Popup menu added            |popup-menu-added|
  62. Select mode added            |new-Select-mode|
  63. Session files added            |new-session-files|
  64. User defined functions and commands    |new-user-defined|
  65. New interfaces                |interfaces-5.2|
  66. New ports                |ports-5.2|
  67. Multi-byte support            |new-multi-byte|
  68. New functions                |new-functions-5.2|
  69. New options                |new-options-5.2|
  70. New Ex commands                |new-ex-commands-5.2|
  71. Changed                    |changed-5.2|
  72. Added                    |added-5.2|
  73. Fixed                    |fixed-5.2|
  74.  
  75. VERSION 5.3            |version-5.3|
  76. Changed                    |changed-5.3|
  77. Added                    |added-5.3|
  78. Fixed                    |fixed-5.3|
  79.  
  80. VERSION 5.4            |version-5.4|
  81. Runtime directory introduced        |new-runtime-dir|
  82. Filetype introduced            |new-filetype-5.4|
  83. Vim script line continuation        |new-line-continuation|
  84. Improved session files            |improved-sessions|
  85. Autocommands improved            |improved-autocmds-5.4|
  86. Encryption                |new-encryption|
  87. GTK GUI port                |new-GTK-GUI|
  88. Menu changes                |menu-changes-5.4|
  89. Viminfo improved            |improved-viminfo|
  90. Various new commands            |new-commands-5.4|
  91. Various new options            |new-options-5.4|
  92. Vim scripts                |new-script-5.4|
  93. Avoid hit-enter prompt            |avoid-hit-enter|
  94. Improved quickfix            |improved-quickfix|
  95. Regular expressions            |regexp-changes-5.4|
  96. Changed                    |changed-5.4|
  97. Added                    |added-5.4|
  98. Fixed                    |fixed-5.4|
  99.  
  100. VERSION 5.5            |version-5.5|
  101. Changed                    |changed-5.5|
  102. Added                    |added-5.5|
  103. Fixed                    |fixed-5.5|
  104.  
  105. VERSION 5.6            |version-5.6|
  106. Changed                    |changed-5.6|
  107. Added                    |added-5.6|
  108. Fixed                    |fixed-5.6|
  109.  
  110. VERSION 5.7            |version-5.7|
  111. Changed                    |changed-5.7|
  112. Added                    |added-5.7|
  113. Fixed                    |fixed-5.7|
  114.  
  115. VERSION 5.8            |version-5.8|
  116. Changed                    |changed-5.8|
  117. Added                    |added-5.8|
  118. Fixed                    |fixed-5.8|
  119.  
  120. ==============================================================================
  121.                  INCOMPATIBLE        *incompatible-5*
  122.  
  123. Default value for 'compatible' changed            *cp-default*
  124. --------------------------------------
  125.  
  126. Vim version 5.0 tries to be more Vi compatible.  This helps people who use Vim
  127. as a drop-in replacement for Vi, but causes some things to be incompatible
  128. with version 4.x.
  129.  
  130. In version 4.x the default value for the 'compatible' option was off.  Now the
  131. default is on.  The first thing you will notice is that the "u" command undoes
  132. itself.  Other side effects will be that mappings may work differently or not
  133. work at all.
  134.  
  135. Since a lot of people switching from Vim 4.x to 5.0 will find this annoying,
  136. the 'compatible' option is switched off if Vim finds a vimrc file.  This is a
  137. bit of magic to make sure that 90% of the Vim users will not be bitten by
  138. this change.
  139.  
  140. What does this mean?
  141. - If you prefer to run in 'compatible' mode and don't have a vimrc file, you
  142.   don't have to do anything.
  143. - If you prefer to run in 'nocompatible' mode and do have a vimrc file, you
  144.   don't have to do anything.
  145. - If you prefer to run in 'compatible' mode and do have a vimrc file, you
  146.   should put this line first in your vimrc file: >
  147.     :set compatible
  148. - If you prefer to run in 'nocompatible' mode and don't have a vimrc file,
  149.   you can do one of the following:
  150.     - Create an empty vimrc file (e.g.: "~/.vimrc" for Unix).
  151.     - Put this command in your .exrc file or $EXINIT: >
  152.         :set nocompatible
  153. <   - Start Vim with the "-N" argument.
  154.  
  155. If you are new to Vi and Vim, using 'nocompatible' is strongly recommended,
  156. because Vi has a lot of unexpected side effects, which are avoided by this
  157. setting.  See 'compatible'.
  158.  
  159. If you like some things from 'compatible' and some not, you can tune the
  160. compatibility with 'cpoptions'.
  161.  
  162. When you invoke Vim as "ex" or "gex", Vim always starts in compatible mode.
  163.  
  164.  
  165. Text formatting command "Q" changed            *Q-command-changed*
  166. -----------------------------------
  167.  
  168. The "Q" command formerly formatted lines to the width the 'textwidth' option
  169. specifies.  The command for this is now "gq" (see |gq| for more info).  The
  170. reason for this change is that "Q" is the standard Vi command to enter "Ex"
  171. mode, and Vim now does in fact have an "Ex" mode (see |Q| for more info).
  172.  
  173. If you still want to use "Q" for formatting, use this mapping: >
  174.     :noremap Q gq
  175. And if you also want to use the functionality of "Q": >
  176.     :noremap gQ Q
  177.  
  178.  
  179. Command-line arguments changed                *cmdline-changed*
  180. ------------------------------
  181.  
  182. Command-line file-arguments and option-arguments can now be mixed.  You can
  183. give options after the file names.  Example: >
  184.    vim main.c -g
  185.  
  186. This is not possible when editing a file that starts with a '-'.  Use the "--"
  187. argument then |---|: >
  188.    vim -g -- -main.c
  189.  
  190. "-v" now means to start Ex in Vi mode, use "-R" for read-only mode.
  191. old: "vim -v file"    |-v|
  192. new: "vim -R file"    |-R|
  193.  
  194. "-e" now means to start Vi in Ex mode, use "-q" for quickfix.
  195. old: "vim -e errorfile"    |-e|
  196. new: "vim -q errorfile" |-q|
  197.  
  198. "-s" in Ex mode now means to run in silent (batch) mode. |-s-ex|
  199.  
  200. "-x" reserved for crypt, use "-f" to avoid starting a new CLI (Amiga).
  201. old: "vim -x file"    |-x|
  202. new: "vim -f file"    |-f|
  203.  
  204. Vim allows up to ten "+cmd" and "-c cmd" arguments.  Previously Vim executed
  205. only the last one.
  206.  
  207. "-n" now overrides any setting for 'updatecount' in a vimrc file, but not in
  208. a gvimrc file.
  209.  
  210.  
  211. Autocommands are kept                    *autocmds-kept*
  212. ---------------------
  213.  
  214. Before version 5.0, autocommands with the same event, file name pattern, and
  215. command could appear only once.  This was fine for simple autocommands (like
  216. setting option values), but for more complicated autocommands, where the same
  217. command might appear twice, this restriction caused problems.  Therefore
  218. Vim stores all autocommands and keeps them in the order that they are defined.
  219.  
  220. The most obvious side effect of this change is that when you source a vimrc
  221. file twice, the autocommands in it will be defined twice.  To avoid this, do
  222. one of these:
  223.  
  224. - Remove any autocommands that might potentially defined twice before
  225.   defining them.  Example: >
  226.     :au! * *.ext
  227.     :au BufEnter *.ext ...
  228.  
  229. - Put the autocommands inside an ":if" command.  Example: >
  230.     if !exists("did_ext_autocmds")
  231.       let did_ext_autocmds = 1
  232.       autocmd BufEnter *.ext ...
  233.     endif
  234.  
  235. - Put your autocommands in a different autocommand group so you can remove
  236.   them before defining them |:augroup|: >
  237.     augroup uncompress
  238.       au!
  239.       au BufReadPost *.gz ...
  240.     augroup END
  241.  
  242.  
  243. Use of 'hidden' changed                    *hidden-changed*
  244. -----------------------
  245.  
  246. In version 4.x, only some commands used the 'hidden' option.  Now all commands
  247. uses it whenever a buffer disappears from a window.
  248.  
  249. Previously you could do ":buf xxx" in a changed buffer and that buffer would
  250. then become hidden.  Now you must set the 'hidden' option for this to work.
  251.  
  252. The new behavior is simpler: whether Vim hides buffers no longer depends on
  253. the specific command that you use.
  254. - with 'hidden' not set, you never get hidden buffers.  Exceptions are the
  255.   ":hide" and ":close!" commands and, in rare cases, where you would otherwise
  256.   lose changes to the buffer.
  257. - With 'hidden' set, you almost never unload a buffer.  Exceptions are the
  258.   ":bunload" or ":bdel" commands.
  259.  
  260. ":buffer" now supports a "!": abandon changes in current buffer.  So do
  261. ":bnext", ":brewind", etc.
  262.  
  263.  
  264. Text object commands changed                *text-objects-changed*
  265. ----------------------------
  266.  
  267. Text object commands have new names.  This allows more text objects and makes
  268. characters available for other Visual mode commands.  Since no more single
  269. characters were available, text objects names now require two characters.
  270. The first one is always 'i' or 'a'.
  271.     OLD    NEW    ~
  272.     a    aw    a word            |v_aw|
  273.     A    aW    a WORD            |v_aW|
  274.     s    as    a sentence        |v_as|
  275.     p    ap    a paragraph        |v_ap|
  276.     S    ab    a () block        |v_ab|
  277.     P    aB    a {} block        |v_aB|
  278.  
  279. There is another set of text objects that starts with "i", for "inner".  These
  280. select the same objects, but exclude white space.
  281.  
  282.  
  283. X-Windows Resources removed                *x-resources*
  284. --------------------------
  285.  
  286. Vim no longer supports the following X resources:
  287. - boldColor
  288. - italicColor
  289. - underlineColor
  290. - cursorColor
  291.  
  292. Vim now uses highlight groups to set colors.  This avoids the confusion of
  293. using a bold Font, which would imply a certain color.  See |:highlight| and
  294. |gui-resources|.
  295.  
  296.  
  297. Use of $VIM                        *$VIM-use*
  298. -----------
  299.  
  300. Vim now uses the VIM environment variable to find all Vim system files.  This
  301. includes the global vimrc, gvimrc, and menu.vim files and all on-line help
  302. and syntax files.  See |$VIM|.  Starting with version 5.4, |$VIMRUNTIME| can
  303. also be used.
  304. For Unix, Vim sets a default value for $VIM when doing "make install".
  305. When $VIM is not set, its default value is the directory from 'helpfile',
  306. excluding "/doc/help.txt".
  307.  
  308.  
  309. Use of $HOME for MS-DOS and Win32            *$HOME-use*
  310. ---------------------------------
  311.  
  312. The MS-DOS and Win32 versions of Vim now first check $HOME when searching for
  313. a vimrc or exrc file and for reading/storing the viminfo file.  Previously Vim
  314. used $VIM for these systems, but this causes trouble on a system with several
  315. users.  Now Vim uses $VIM only when $HOME is not set or the file is not found
  316. in $HOME.  See |_vimrc|.
  317.  
  318.  
  319. Tags file format changed                *tags-file-changed*
  320. ------------------------
  321.  
  322. Only tabs are allowed to separate fields in a tags file.  This allows for
  323. spaces in a file name and is still Vi compatible.  In previous versions of
  324. Vim, any white space was allowed to separate the fields.  If you have a file
  325. which doesn't use a single tab between fields, edit the tags file and execute
  326. this command: >
  327.     :%s/\(\S*\)\s\+\(\S*\)\s\+\(.*\)/\1\t\2\t\3/
  328.  
  329.  
  330. Options changed                        *options-changed*
  331. ---------------
  332.  
  333. The default value of 'errorfile' has changed from "errors.vim" to "errors.err".
  334. The reason is that only Vim scripts should have the ".vim" extensions.
  335.  
  336. The ":make" command no longer uses the 'errorfile' option.  This prevents the
  337. output of the ":make" command from overwriting a manually saved error file.
  338. ":make" uses the 'makeef' option instead.  This also allows for generating a
  339. unique name, to prevent concurrently running ":make" commands from overwriting
  340. each other's files.
  341.  
  342. With 'insertmode' set, a few more things change:
  343. - <Esc> in Normal mode goes to Insert mode.
  344. - <Esc> in Insert mode doesn't leave Insert mode.
  345. - When doing ":set im", go to Insert mode immediately.
  346.  
  347. Vim considers a buffer to be changed when the 'fileformat' (formerly the
  348. 'textmode' option) is different from the buffer's initial format.
  349.  
  350.  
  351. CTRL-B in Insert mode gone                *i_CTRL-B-gone*
  352. --------------------------
  353.  
  354. When Vim was compiled with the |+rightleft| feature, you could use CTRL-B to
  355. toggle the 'revins' option.  Unfortunately, some people hit the 'B' key
  356. accidentally when trying to type CTRL-V or CTRL-N and then didn't know how to
  357. undo this.  Since toggling the 'revins' option can easily be done with the
  358. mapping below, this use of the CTRL-B key is disabled.  You can still use the
  359. CTRL-_ key for this |i_CTRL-_|. >
  360.    :imap <C-B> <C-O>:set revins!<CR>
  361.  
  362. ==============================================================================
  363.                  NEW FEATURES        *new-5*
  364.  
  365. Syntax highlighting                    *new-highlighting*
  366. -------------------
  367.  
  368. Vim now has a very flexible way to highlighting just about any type of file.
  369. See |syntax|.  Summary: >
  370.    :syntax on
  371.  
  372. Colors and attributes can be set for the syntax highlighting, and also for
  373. other highlighted items with the ':' flag in the 'highlight' option.  All
  374. highlighted items are assigned a highlight group which specifies their
  375. highlighting.  See |:highlight|.  The default colors have been improved.
  376.  
  377. You can use the "Normal" group to set the default fore/background colors for a
  378. color terminal.  For the GUI, you can use this group to specify the font, too.
  379.  
  380. The "2html.vim" script can be used to convert any file that has syntax
  381. highlighting to HTML.  The colors will be exactly the same as how you see them
  382. in Vim.  With a HTML viewer you can also print the file with colors.
  383.  
  384.  
  385. Built-in script language                *new-script*
  386. ------------------------
  387.  
  388. A few extra commands and an expression evaluator enable you to write simple
  389. but powerful scripts.  Commands include ":if" and ":while".  Expressions can
  390. manipulate numbers and strings.  You can use the '=' register to insert
  391. directly the result of an expression.  See |expression|.
  392.  
  393.  
  394. Perl and Python support                    *new-perl-python*
  395. -----------------------
  396.  
  397. Vim can call Perl commands with ":perldo", ":perl", etc.  See |perl|.
  398. Patches made by Sven Verdoolaege and Matt Gerassimoff.
  399.  
  400. Vim can call Python commands with ":python" and ":pyfile".  See |python|.
  401.  
  402. Both of these are only available when enabled at compile time.
  403.  
  404.  
  405. Win32 GUI version                    *added-win32-GUI*
  406. -----------------
  407.  
  408. The GUI has been ported to MS Windows 95 and NT.  All the features of the X11
  409. GUI are available to Windows users now.  |gui-w32|
  410. This also fixes problems with running the Win32 console version under Windows
  411. 95, where console support has always been bad.
  412. There is also a version that supports OLE automation interface.  |if_ole.txt|
  413. Vim can be integrated with Microsoft Developer Studio using the VisVim DLL.
  414. It is possible to produce a DLL version of gvim with Borland C++ (Aaron).
  415.  
  416.  
  417. VMS version                        *added-VMS*
  418. -----------
  419.  
  420. Vim can now also be used on VMS systems.  Port done by Henk Elbers.
  421. This has not been tested much, but it should work.
  422. Sorry, no documentation!
  423.  
  424.  
  425. BeOS version                        *added-BeOS*
  426. ------------
  427.  
  428. Vim can be used on BeOS systems (including the BeBox).  (Olaf Seibert)
  429. See |os_beos.txt|.
  430.  
  431.  
  432. Macintosh GUI version                    *added-Mac*
  433. ---------------------
  434.  
  435. Vim can now be used on the Macintosh.  (Dany St-Amant)
  436. It has not been tested much yet, be careful!
  437. See |os_mac.txt|.
  438.  
  439.  
  440. More Vi compatible                    *more-compatible*
  441. ------------------
  442.  
  443. There is now a real Ex mode.  Started with the "Q" command, or by calling the
  444. executable "ex" or "gex".  |Ex-mode|
  445.  
  446. Always allow multi-level undo, also in Vi compatible mode.  When the 'u' flag
  447. in 'cpoptions' is included, CTRL-R is used for repeating the undo or redo
  448. (like "." in Nvi).
  449.  
  450.  
  451. Read input from stdin                    *read-stdin*
  452. ---------------------
  453.  
  454. When using the "-" command-line argument, Vim reads its text input from stdin.
  455. This can be used for putting Vim at the end of a pipe: >
  456.    grep "^a.*" *.c | vim -
  457. See |--|.
  458.  
  459.  
  460. Regular expression patterns                *added-regexp*
  461. ---------------------------
  462.  
  463. Added specifying a range for the number of matches of an atom: "\{a,b}". |/\{|
  464. Added the "shortest match" regexp "\{-}" (Webb).
  465. Added "\s", matches a white character.  Can replace "[ \t]".         |/\s|
  466. Added "\S", matches a non-white character.  Can replace "[^ \t]".     |/\S|
  467.  
  468.  
  469. Overloaded tags                        *tag-overloaded*
  470. ---------------
  471.  
  472. When using a language like C++, there can be several tags for the same
  473. tagname.  Commands have been added to be able to jump to any of these
  474. overloaded tags:
  475. |:tselect|    List matching tags, and jump to one of them.
  476. |:stselect|    Idem, and split window.
  477. |g_CTRL-]|    Do ":tselect" with the word under the cursor.
  478.  
  479.     After ":ta {tagname}" with multiple matches:
  480. |:tnext|    Go to next matching tag.
  481. |:tprevious|    Go to previous matching tag.
  482. |:trewind|    Go to first matching tag.
  483. |:tlast|    Go to last matching tag.
  484.  
  485. The ":tag" command now also accepts wildcards.  When doing command-line
  486. completion on tags, case-insensitive matching is also available (at the end).
  487.  
  488.  
  489. New commands                        *new-commands*
  490. ------------
  491.  
  492. |:amenu|    Define menus for all modes, inserting a CTRL-O for Insert
  493.         mode, ESC for Visual and CTRL-C for Cmdline mode.  "amenu" is
  494.         used for the default menus and the Syntax menu.
  495.  
  496. |:augroup|    Set group to be used for following autocommands.  Allows the
  497.         grouping of autocommands to enable deletion of a specific
  498.         group.
  499.  
  500. |:crewind|    Go to first error.
  501. |:clast|    Go to last error.
  502.  
  503. |:doautoall|    Execute autocommands for all loaded buffers.
  504.  
  505. |:echo|        Echo its argument, which is an expression.  Can be used to
  506.         display messages which include variables.
  507.  
  508. |:execute|    Execute its argument, which is an expression.  Can be used to
  509.         built up an Ex command with anything.
  510.  
  511. |:hide|        Works like ":close".
  512.  
  513. |:if|        Conditional execution, for built-in script language.
  514.  
  515. |:intro|    Show introductory message.  This is always executed when Vim
  516.         is started without file arguments.
  517.  
  518. |:let|        Assign a value to an internal variable.
  519.  
  520. |:omap|        Map only in operator-pending mode.  Makes it possible to map
  521.         text-object commands.
  522.  
  523. |:redir|    Redirect output of messages to a file.
  524.  
  525. |:update|    Write when buffer has changed.
  526.  
  527. |:while|    While-loop for built-in script language.
  528.  
  529. Visual mode:
  530. |v_O|        "O" in Visual block mode, moves the cursor to the other corner
  531.         horizontally.
  532. |v_D|        "D" in Visual block mode deletes till end of line.
  533.  
  534. Insert mode:
  535. |i_CTRL-]|    Triggers abbreviation, without inserting any character.
  536.  
  537.  
  538. New options                        *added-options*
  539. -----------
  540.  
  541. 'background'    Used for selecting highlight color defaults.  Also used in
  542.         "syntax.vim" for selecting the syntax colors.  Often set
  543.         automatically, depending on the terminal used.
  544.  
  545. 'complete'    Specifies how Insert mode completion works.
  546.  
  547. 'eventignore'    Makes it possible to ignore autocommands temporarily.
  548.  
  549. 'fileformat'    Current file format.  Replaces 'textmode'.
  550. 'fileformats'    Possible file formats.  Replaces 'textauto'.
  551.         New is that this also supports Macintosh format: A single <CR>
  552.         separates lines.
  553.         The default for 'fileformats' for MS-DOS, Win32 and OS/2 is
  554.         "dos,unix", also when 'compatible' set.  Unix type files
  555.         didn't work anyway when 'fileformats' was empty.
  556.  
  557. 'guicursor'    Set the cursor shape and blinking in various modes.
  558.         Default is to adjust the cursor for Insert and Replace mode,
  559.         and when an operator is pending.  Blinking is default on.
  560.  
  561. 'fkmap'        Farsi key mapping.
  562.  
  563. 'hlsearch'    Highlight all matches with the last used search pattern.
  564.  
  565. 'hkmapp'    Phonetic Hebrew mapping. (Ilya Dogolazky)
  566.  
  567. 'iconstring'    Define the name of the icon, when not empty.  (Version 5.2: the
  568.         string is used literally, a newline can be used to make two
  569.         lines.)
  570.  
  571. 'lazyredraw'    Don't redraw the screen while executing macros, registers or
  572.         other not typed commands.
  573.  
  574. 'makeef'    Errorfile to be used for ":make".  "##" is replaced with a
  575.         unique number.  Avoids that two Vim sessions overwrite each
  576.         others errorfile.  The Unix default is "/tmp/vim##.err"; for
  577.         Amiga "t:vim##.Err, for others "vim##.err".
  578.  
  579. 'matchtime'    1/10s of a second to show a matching paren, when 'showmatch'
  580.         is set.  Like Nvi.
  581.  
  582. 'mousehide'    Hide mouse pointer in GUI when typing text.
  583.  
  584. 'nrformats'    Defines what bases Vim will consider for numbers when using
  585.         the CTRL-A and CTRL-X commands.  Default: "hex,octal".
  586.  
  587. 'shellxquote'    Add extra quotes around the whole shell command, including
  588.         redirection.
  589.  
  590. 'softtabstop'    Make typing behave like tabstop is set at this value, without
  591.         changing the value of 'tabstop'.  Makes it more easy to keep
  592.         'ts' at 8, while still getting four spaces for a <Tab>.
  593.  
  594. 'titlestring'    String for the window title, when not empty.  (Version 5.2:
  595.         this string is used literally, a newline can be used to make
  596.         two lines.)
  597.  
  598. 'verbose'    Level of verbosity.  Makes it possible to show which .vimrc,
  599.         .exrc, .viminfo files etc. are used for initializing.  Also
  600.         to show autocommands that are being executed.  Can also be set
  601.         by using the "-V" command-line argument.
  602.  
  603.  
  604. New command-line arguments                *added-cmdline-args*
  605. --------------------------
  606.  
  607. |-U|        Set the gvimrc file to be used.  Like "-u" for the vimrc.
  608.  
  609. |-V|        Set the 'verbose' option.  E.g. "vim -V10".
  610.  
  611. |-N|        Start in non-compatible mode.
  612.  
  613. |-C|        Start in compatible mode.
  614.  
  615. |-Z|        Start in restricted mode, disallow shell commands.  Can also
  616.         be done by calling the executable "rvim".
  617.  
  618. |-h|        Show usage information and exit.
  619.  
  620.  
  621. Various additions                    *added-various*
  622. -----------------
  623.  
  624. Added support for SNiFF+ connection (submitted by Toni Leherbauer).  Vim can
  625. be used as an editor for SNiFF.  No documentation available...
  626.  
  627. For producing a bug report, the bugreport.vim script has been included.
  628. Can be used with ":so $VIMRUNTIME/bugreport.vim", which creates the file
  629. "bugreport.txt" in the current directory. |bugs|
  630.  
  631. Added range to ":normal" command.  Now you can repeat the same command for
  632. each line in the range.  |:normal-range|
  633.  
  634. Included support for the Farsi language (Shiran).  Only when enabled at
  635. compile time.  See |farsi|.
  636.  
  637. ==============================================================================
  638.                  IMPROVEMENTS        *improvements-5*
  639.  
  640. Performance:
  641. - When 'showcmd' was set, mappings would execute much more slowly because the
  642.   output would be flushed very often.  Helps a lot when executing the "life"
  643.   macros with 'showcmd' set.
  644. - Included patches for binary searching in tags file (David O'Neill).
  645.   Can be disabled by resetting the 'tagbsearch' option.
  646. - Don't update the ruler when repeating insert (slowed it down a lot).
  647. - For Unix, file name expansion is now done internally instead of starting a
  648.   shell for it.
  649. - Expand environment variables with expand_env(), instead of calling the
  650.   shell.  Makes ":so $VIMRUNTIME/syntax/syntax.vim" a LOT faster.
  651. - Reduced output for cursor positioning: Use CR-LF for moving to first few
  652.   columns in next few lines;  Don't output CR twice when using termios.
  653. - Optimized cursor positioning.  Use CR, BS and NL when it's shorter than
  654.   absolute cursor positioning.
  655. - Disable redrawing while repeating insert "1000ii<Esc>".
  656. - Made "d$" or "D" for long lines a lot faster (delete all characters at once,
  657.   instead of one by one).
  658. - Access option table by first letter, instead of searching from start.
  659. - Made setting special highlighting attributes a lot faster by using
  660.   highlight_attr[], instead of searching in the 'highlight' string.
  661. - Don't show the mode when redrawing is disabled.
  662. - When setting an option, only redraw the screen when required.
  663. - Improved performance of Ex commands by using a lookup table for the first
  664.   character.
  665.  
  666. Options:
  667. 'cinoptions'    Added 'g' flag, for C++ scope declarations.
  668. 'cpoptions'    Added 'E' flag: Disallow yanking, deleting, etc. empty text
  669.         area.  Default is to allow empty yanks.  When 'E' is included,
  670.         "y$" in an empty line now is handled as an error (Vi
  671.         compatible).
  672.         Added 'j' flag: Only add two spaces for a join after a '.',
  673.         not after a '?' or '!'.
  674.         Added 'A' flag: don't give ATTENTION message.
  675.         Added 'L' flag: When not included, and 'list' is set,
  676.         'textwidth' formatting works like 'list' is not set.
  677.         Added 'W' flag:  Let ":w!" behave like Vi: don't overwrite
  678.         readonly files, or a file owned by someone else.
  679. 'highlight'    Added '@' flag, for '@' characters after the last line on the
  680.         screen, and '$' at the end of the line when 'list' is set.
  681.         Added 'i' flag: Set highlighting for 'incsearch'.  Default
  682.         uses "IncSearch" highlight group, which is linked to "Visual".
  683.         Disallow 'h' flag in 'highlight' (wasn't used anymore since
  684.         3.0).
  685. 'guifont'    Win32 GUI only: When set to "*" brings up a font requester.
  686. 'guipty'    Default on, because so many people need it.
  687. 'path'        Can contain wildcards, and "**" for searching a whole tree.
  688. 'shortmess'    Added 'I' flag to avoid the intro message.
  689. 'viminfo'    Added '%' flag: Store buffer list in viminfo file.
  690.  
  691. - Increased defaults for 'maxmem' and 'maxmemtot' for Unix and Win32.  Most
  692.   machines have much more RAM now that prices have dropped.
  693. - Implemented ":set all&", set all options to their default value. |:set|
  694.  
  695. Swap file:
  696. - Don't create a swap file for a readonly file.  Then create one on the first
  697.   change.  Also create a swapfile when the amount of memory used is getting
  698.   too high. |swap-file|
  699. - Make swap file "hidden", if possible.  On Unix this is done by prepending a
  700.   dot to the swap file name.  When long file names are used, the DJGPP and
  701.   Win32 versions also prepend a dot, in case a file on a mounted Unix file
  702.   system is edited.  |:swapname|  On MSDOS the hidden file attribute is NOT
  703.   set, because this causes problems with share.exe.
  704. - 'updatecount' always defaults to non-zero, also for Vi compatible mode.
  705.   This means there is a swap file, which can be used for recovery.
  706.  
  707. Tags:
  708. - Included ctags 2.0 (Darren Hiebert).  The syntax for static tags changed
  709.   from
  710.     {tag}:{fname}    {fname}    {command}
  711.   to
  712.     {tag}    {fname}    {command};"    file:
  713.   Which is both faster to parse, shorter and Vi compatible.  The old format is
  714.   also still accepted, unless disabled in src/feature.h (see OLD_STATIC_TAGS).
  715.   |tags-file-format|
  716. - Completion of tags now also includes static tags for other files, at the
  717.   end.
  718. - Included "shtags" from Stephen Riehm.
  719. - When finding a matching tag, but the file doesn't exist, continue searching
  720.   for another match.  Helps when using the same tags file (with links) for
  721.   different versions of source code.
  722. - Give a tag with a global match in the current file a higher priority than a
  723.   global match in another file.
  724.  
  725. Included xxd version V1.8 (Juergen Weigert).
  726.  
  727. Autocommands:
  728. - VimLeave autocommands are executed after writing the viminfo file, instead
  729.   of before.  |VimLeave|
  730. - Allow changing autocommands while executing them.  This allows for
  731.   self-modifying autocommands.  (idea from Goldberg)
  732. - When using autocommands with two or more patterns, could not split
  733.   ":if/:endif" over two lines.  Now all matching autocommands are executed in
  734.   one do_cmdline().
  735. - Autocommands no longer change the command repeated with ".".
  736. - Search patterns are restored after executing autocommands.  This avoids
  737.   that the 'hlsearch' highlighting is messed up by autocommands.
  738. - When trying to execute an autocommand, also try matching the pattern with
  739.   the short file name.  Helps when short file name is different from full
  740.   file name (expanded symbolic links). |autocmd-patterns|
  741. - Made the output of ":autocmd" shorter and look better.
  742. - Expand <sfile> in an ":autocmd" when it is defined.  |<sfile>|
  743. - Added "nested" flag to ":autocmd", allows nesting.  |autocmd-nested|
  744. - Added [group] argument to ":autocmd".  Overrides the currently set group.
  745.   |autocmd-groups|
  746. - new events:
  747.   |BufUnload|        before a buffer is unloaded
  748.   |BufDelete|        before a buffer is deleted from the buffer list
  749.   |FileChangedShell|    when a file's modification time has changed after
  750.             executing a shell command
  751.   |User|        user-defined autocommand
  752. - When 'modified' was set by a BufRead* autocommand, it was reset again
  753.   afterwards.  Now the ":set modified" is remembered.
  754.  
  755. GUI:
  756. - Improved GUI scrollbar handling when redrawing is slower than the scrollbar
  757.   events are generated.
  758. - "vim -u NONE" now also stops loading the .gvimrc and other GUI inits.  |-u|
  759.   Use "-U" to use another gvimrc file.  |-U|
  760. - Handle CTRL-C for external command, also for systems where "setsid()" is
  761.   supported.
  762. - When starting the GUI, restrict the window size to the screen size.
  763. - The default menus are read from $VIMRUNTIME/menu.vim.  This allows for a
  764.   customized default menu.  |menu.vim|
  765. - Improved the default menus.  Added File/Print, a Window menu, Syntax menu,
  766.   etc.
  767. - Added priority to the ":menu" command.  Now each menu can be put in a place
  768.   where you want it, independent of the order in which the menus are defined.
  769.   |menu-priority|
  770.  
  771. Give a warning in the intro screen when running the Win32 console version on
  772. Windows 95 because there are problems using this version under Windows 95.
  773. |win32-problems|
  774.  
  775. Added 'e' flag for ":substitute" command: Don't complain when not finding a
  776. match (Campbell).  |:s|
  777.  
  778. When using search commands in a mapping, only the last one is kept in the
  779. history.  Avoids that the history is trashed by long mappings.
  780.  
  781. Ignore characters after "ex", "view" and "gvim" when checking startup mode.
  782. Allows the use of "gvim5" et. al.  |gvim| "gview" starts the GUI in readonly
  783. mode.  |gview|
  784.  
  785. When resizing windows, the cursor is kept in the same relative position, if
  786. possible.  (Webb)
  787.  
  788. ":all" and ":ball" no longer close and then open a window for the same buffer.
  789. Avoids losing options, jumplist, and other info.
  790.  
  791. "-f" command-line argument is now ignored if Vim was compiled without GUI.
  792. |-f|
  793.  
  794. In Visual block mode, the right mouse button picks up the nearest corner.
  795.  
  796. Changed default mappings for DOS et al.  Removed the DOS-specific mappings,
  797. only use the Windows ones.  Added Shift-Insert, Ctrl-Insert, Ctrl-Del and
  798. Shift-Del.
  799.  
  800. Changed the numbers in the output of ":jumps", so you can see where {count}
  801. CTRL-O takes you.  |:jumps|
  802.  
  803. Using "~" for $HOME now works for all systems.  |$HOME|
  804.  
  805. Unix: Besides using CTRL-C, also use the INTR character from the tty settings.
  806. Somebody has INTR set to DEL.
  807.  
  808. Allow a <LF> in a ":help" command argument to end the help command, so another
  809. command can follow.
  810.  
  811. Doing "%" on a line that starts with "   #if" didn't jump to matching "#else".
  812. Don't recognize "#if", "#else" etc. for '%' when 'cpo' contains the '%' flag.
  813. |%|
  814.  
  815. Insert mode expansion with "CTRL-N", "CTRL-P" and "CTRL-X" improved
  816. |ins-completion|:
  817. - 'complete' option added.
  818. - When 'nowrapscan' is set, and no match found, report the searched direction
  819.   in the error message.
  820. - Repeating CTRL-X commands adds following words/lines after the match.
  821. - When adding-expansions, accept single character matches.
  822. - Made repeated CTRL-X CTRL-N not break undo, and "." repeats the whole
  823.   insertion.  Also fixes not being able to backspace over a word that has been
  824.   inserted with CTRL-N.
  825.  
  826. When copying characters in Insert mode from previous/next line, with CTRL-E or
  827. CTRL-Y, 'textwidth' is no longer used.  |i_CTRL-E|
  828.  
  829. Commands that move in the arglist, like ":n" and ":rew", keep the old cursor
  830. position of the file (this is mostly Vi compatible).
  831.  
  832. Vim now remembers the '< and '> marks for each buffer.  This fixes a problem
  833. that a line-delete in one buffer invalidated the '< and '> marks in another
  834. buffer.  |'<|
  835.  
  836. For MSDOS, Unix and OS/2: When $VIM not set, use the path from the executable.
  837. When using the executable path for $VIM, remove "src/" when present.  Should
  838. make Vim find the docs and syntax files when it is run directly after
  839. compiling.  |$VIM|
  840.  
  841. When quitting Visual mode with <Esc>, the cursor is put at start of the Visual
  842. area (like after executing an operator).
  843.  
  844. Win32 and Unix version: Removed 1100 character limit on external commands.
  845.  
  846. Added possibility to include a space in a ":edit +command" argument, by
  847. putting a backslash before it.  |+cmd|
  848.  
  849. After recovery, BufReadPost autocommands are applied.  |:recover|
  850.  
  851. Added color support for "os2ansi", OS/2 console. (Slootman) |os2ansi|
  852.  
  853. Allow "%:p:h" when % is empty.  |:_%|
  854.  
  855. Included "<sfile>": file name from the ":source" command.  |<sfile>|
  856.  
  857. Added "<Bslash>" special character.  Helps for avoiding multiple backslashes
  858. in mappings and menus.
  859.  
  860. In a help window, a double-click jumps to the tag under the cursor (like
  861. CTRL-]).
  862.  
  863. <C-Left> and <C-Right> now work like <S-Left> and <S-Right>, move a word
  864. forward/backward (Windows compatible). |<C-Left>|
  865.  
  866. Removed the requirement for a ":version" command in a .vimrc file.  It wasn't
  867. used for anything.  You can use ":if" to handle differences between versions.
  868. |:version|
  869.  
  870. For MS-DOS, Win32 and OS/2: When comparing file names for autocommands, don't
  871. make a difference between '/' and '\' for path separator.
  872.  
  873. New termcap options:
  874. "mb": blink.  Can only be used by assigning it to one of the other highlight
  875.       options.  |t_mb|
  876. "bc": backspace character.  |t_bc|
  877. "nd": Used for moving the cursor right in the GUI, to avoid removing one line
  878.       of pixels from the last bold character.  |t_nd|
  879. "xs": highlighting not erased by overwriting, for hpterm.  Combined with
  880.       'weirdinvert'.  Visual mode works on hpterm now.  |t_xs|
  881.  
  882. Unix: Set time of patch and backup file same as original file.  (Hiebert).
  883.  
  884. Amiga: In QuickFix mode no longer opens another window.  Shell commands can be
  885. used now.
  886.  
  887. Added decmouse patches from David Binette.  Can now use Dec and Netterm mouse.
  888. But only when enabled at compile time.
  889.  
  890. Added '#' register: Alternate file name |quote#|.  Display '#' register with
  891. ":dis" command. |:display|
  892.  
  893. Removed ':' from 'isfname' default for Unix.  Check for "://" in a file name
  894. anyway.  Also check for ":\\", for MS-DOS.
  895.  
  896. Added count to "K"eyword command, when 'keywordprg' is "man", is inserted in
  897. the man command.  "2K" results in "!man 2 <cword>".  |K|
  898.  
  899. When using "gf" on a relative path name, remove "../" from the file name, like
  900. it's done for file names in the tags file. |gf|
  901.  
  902. When finishing recording, don't make the recorded register the default put
  903. register.
  904.  
  905. When using "!!", don't put ":5,5!" on the command-line, but ":.!".  And some
  906. other enhancements to replace the line number with "." or "$" when possible.
  907.  
  908. MSDOS et al.: Renamed $VIM/viminfo to $VIM/_viminfo.  It's more consistent:
  909. .vimrc/_vimrc and .viminfo/_viminfo
  910.  
  911. For systems where case doesn't matter in file names (MSDOS, Amiga), ignore
  912. case while sorting file names.  For buffer names too.
  913.  
  914. When reading from stdin doesn't work, read from stderr (helps for "foo | xargs
  915. vim").
  916.  
  917. 32 bit MS-DOS version: Replaced csdpmi3 by csdpmi4.
  918.  
  919. Changed <C-Left> and <C-Right> to skip a WORD instead of a word.
  920.  
  921. Warning for changed modified time when overwriting a file now also works on
  922. other systems than Unix.
  923.  
  924. Unix: Changed the defaults for configure to be the same as the defaults for
  925. Makefile: include GUI, Perl, and Python.
  926.  
  927. Some versions of Motif require "-lXpm".  Added check for this in configure.
  928.  
  929. Don't add "-L/usr/lib" to the link line, causes problems on a few systems.
  930.  
  931. ==============================================================================
  932.                  COMPILE TIME CHANGES    *compile-changes-5*
  933.  
  934. When compiling, allow a choice for minimal, normal or maximal features in an
  935. easy way, by changing a single line in src/feature.h.
  936. The DOS16 version has been compiled with minimal features to avoid running
  937. out of memory too quickly. |dos16|
  938. The Win32, DJGPP, and OS/2 versions use maximal features, because they have
  939. enough memory.
  940. The Amiga version is available with normal and maximal features.
  941.  
  942. Added "make test" to Unix version Makefile.  Allows for a quick check if most
  943. "normal" commands work properly.  Also tests a few specific commands.
  944.  
  945. Added setlocale() with codepage support for DJGPP version.
  946.  
  947. autoconf:
  948. - Added autoconf check for -lXdmcp.
  949. - Included check for -lXmu, no longer needed to edit the Makefile for this.
  950. - Switched to autoconf 2.12.
  951. - Added configure check for <poll.h>.  Seems to be needed when including
  952.   Perl on Linux?
  953. - termlib is now checked before termcap.
  954. - Added configure check for strncasecmp(), stricmp() and strnicmp().  Added
  955.   vim_stricmp() for when there's no library function for stricmp().
  956. - Use "datadir" in configure, instead of our own check for HELPDIR.
  957.  
  958. Removed "make proto" from Makefile.manx.  Could not make it work without a lot
  959. of #ifdefs.
  960.  
  961. Removed "proto/" from paths in proto.h.  Needed for the Mac port.
  962.  
  963. Drastically changed Makefile.mint.  Now it includes the Unix Makefile.
  964.  
  965. Added support for Dos16 in Makefile.b32 (renamed Makefile.b32 to Makefile.bor)
  966.  
  967. All source files are now edited with a tabstop of 8 instead of 4, which is
  968. better when debugging and using other tools.  'softtabstop' is set to 4, to
  969. make editing easier.
  970.  
  971. Unix: Added "link.sh" script, which removes a few unnecessary libraries from
  972. the link command.
  973.  
  974. Don't use HPUX digraphs by default, but only when HPUX_DIGRAPHS is defined.
  975. |digraphs-default|
  976.  
  977. ==============================================================================
  978.                  BUG FIXES        *bug-fixes-5*
  979.  
  980. Note:    Some of these fixes may only apply to test versions which were
  981.     created after version 4.6, but before 5.0.
  982.  
  983.  
  984. When doing ":bdel", try going to the next loaded buffer.  Don't rewind to the
  985. start of the buffer list.
  986.  
  987. mch_isdir() for Unix returned TRUE for "" on some systems.
  988.  
  989. Win32: 'shell' set to "mksnt/sh.exe" breaks ":!" commands.  Don't use
  990. backslashes in the temp file names.
  991.  
  992. On linux, with a FAT file system, could get spurious "file xxx changed since
  993. editing started" messages, because the time is rounded off to two seconds
  994. unexpectedly.
  995.  
  996. Crash in GUI, when selecting a word (double click) and then extend until an
  997. empty line.
  998.  
  999. For systems where isdigit() can't handle characters > 255, get_number() caused
  1000. a crash when moving the mouse during the prompt for recovery.
  1001.  
  1002. In Insert mode, "CTRL-O P" left the cursor on the last inserted character.
  1003. Now the cursor is left after the last putted character.
  1004.  
  1005. When quickfix found an error type other than 'e' or 'w', it was never printed.
  1006.  
  1007. A setting for 'errorfile' in a .vimrc overruled the "-q errorfile" argument.
  1008.  
  1009. Some systems create a file when generating a temp file name.  Filtering would
  1010. then create a backup file for this, which was never deleted.  Now no backup
  1011. file is made when filtering.
  1012.  
  1013. simplify_filename() could remove a ".." after a link, resulting in the wrong
  1014. file name.  Made simplify_filename also work for MSDOS.  Don't use it for
  1015. Amiga, since it doesn't have "../".
  1016.  
  1017. otherfile() was unreliable when using links.  Could think that reading/writing
  1018. was for a different file, when it was the same.
  1019.  
  1020. Pasting with mouse in Replace mode didn't replace anything.
  1021.  
  1022. Window height computed wrong when resizing a window with an autocommand (could
  1023. cause a crash).
  1024.  
  1025. ":s!foo!bar!" wasn't possible (Vi compatible).
  1026.  
  1027. do_bang() freed memory twice when called recursively, because of autocommands
  1028. (test11).  Thanks to Electric Fence!
  1029.  
  1030. "v$d" on an empty line didn't remove the "-- VISUAL --" mode message from the
  1031. command-line, and inverted the cursor.
  1032.  
  1033. ":mkexrc" didn't check for failure to open the file, causing a crash.
  1034. (Felderhoff).
  1035.  
  1036. Win32 mch_write() wrote past fixed buffer, causing terminal keys no longer to
  1037. be recognized.  Both console and GUI version.
  1038.  
  1039. Athena GUI: Crash when removing a menu item.  Now Vim doesn't crash, but the
  1040. reversing of the menu item is still wrong.
  1041.  
  1042. Always reset 'list' option for the help window.
  1043.  
  1044. When 'scrolloff' is non-zero, a 'showmatch' could cause the shown match to be
  1045. in the wrong line and the window to be scrolled (Acevedo).
  1046.  
  1047. After ":set all&", 'lines' and 'ttytype' were still non-default, because the
  1048. defaults never got set.  Now the defaults for 'lines' and 'columns' are set
  1049. after detecting the window size.  'term' and 'ttytype' defaults are set when
  1050. detecting the terminal type.
  1051.  
  1052. For (most) non-Unix systems, don't add file names with illegal characters when
  1053. expanding.  Fixes "cannot open swapfile" error when doing ":e *.burp", when
  1054. there is no match.
  1055.  
  1056. In X11 GUI, drawing part of the cursor obscured the text.  Now the text is
  1057. drawn over the cursor, like when it fills the block. (Seibert)
  1058.  
  1059. when started with "-c cmd -q errfile", the cursor would be left in line 1.
  1060. Now a ":cc" is done after executing "cmd".
  1061.  
  1062. ":ilist" never ignored case, even when 'ignorecase' set.
  1063.  
  1064. "vim -r file" for a readonly file, then making a change, got ATTENTION message
  1065. in insert mode, display mixed up until <Esc> typed.  Also don't give ATTENTION
  1066. message after recovering a file.
  1067.  
  1068. The abbreviation ":ab #i #include" could not be removed.
  1069.  
  1070. CTRL-L completion (longest common match) on command-line didn't work properly
  1071. for case-insensitive systems (MS-DOS, Windows, etc.).  (suggested by Richard
  1072. Kilgore).
  1073.  
  1074. For terminals that can hide the cursor ("vi" termcap entry), resizing the
  1075. window caused the cursor to disappear.
  1076.  
  1077. Using an invalid mark in an Ex address didn't abort the command.
  1078.  
  1079. When 'smarttab' set, would use 'shiftround' when inserting a TAB after a
  1080. space.  Now it always rounds to a tabstop.
  1081.  
  1082. Set '[ and '] marks for ":copy", ":move", ":append", ":insert", ":substitute"
  1083. and ":change".  (Acevedo).
  1084.  
  1085. "d$" in an empty line still caused an error, even when 'E' is not in
  1086. 'cpoptions'.
  1087.  
  1088. Help files were stored in the viminfo buffer list without a path.
  1089.  
  1090. GUI: Displaying cursor was not synchronized with other displaying.  Caused
  1091. several display errors.  For example, when the last two lines in the file
  1092. start with spaces, "dd" on the last line copied text to the (then) last line.
  1093.  
  1094. Win32: Needed to type CTRL-SHIFT-- to get CTRL-_.
  1095.  
  1096. GUI: Moving the cursor forwards over bold text would remove one column of bold
  1097. pixels.
  1098.  
  1099. X11 GUI: When a bold character in the last column was scrolled up or down, one
  1100. column of pixels would not be copied.
  1101.  
  1102. Using <BS> to move the cursor left can sometimes erase a character.  Now use
  1103. "le" termcap entry for this.
  1104.  
  1105. Keyword completion with regexp didn't work.  e.g., for "b.*crat".
  1106.  
  1107. Fixed: With CTRL-O that jumps to another file, cursor could end up just after
  1108. the line.
  1109.  
  1110. Amiga: '$' was missing from character recognized as wildcards, causing $VIM
  1111. sometimes not to be expanded.
  1112.  
  1113. ":change" didn't adjust marks for deleted lines.
  1114.  
  1115. ":help [range]" didn't work.  Also for [pattern], [count] and [quotex].
  1116.  
  1117. For 'cindent'ing, typing "class::method" doesn't align like a label when the
  1118. second ':' is typed.
  1119. When inserting a CR with 'cindent' set (and a bunch of other conditions) the
  1120. cursor went to a wrong location.
  1121. 'cindent' was wrong for a line that ends in '}'.
  1122. 'cindent' was wrong after "else {".
  1123.  
  1124. While editing the cmdline in the GUI, could not use the mouse to select text
  1125. from the command-line itself.
  1126.  
  1127. When deleting lines, marks in tag stack were only adjusted for the current
  1128. window, not for other windows on the same buffer.
  1129.  
  1130. Tag guessing could find a function "some_func" instead of the "func" we were
  1131. looking for.
  1132.  
  1133. Tags file name relative to the current file didn't work.
  1134.  
  1135. ":g/pat2/s//pat2/g", causing the number of subs to be reported, used to cause
  1136. a scroll up.  Now you no longer have to hit <CR>.
  1137.  
  1138. X11 GUI: Selecting text could cause a crash.
  1139.  
  1140. 32 bit DOS version: CTRL-C in external command killed Vim.  When SHELL is set
  1141. to "sh.exe", external commands didn't work.  Removed using of command.com, no
  1142. longer need to set 'shellquote'.
  1143.  
  1144. Fixed crash when using ":g/pat/i".
  1145.  
  1146. Fixed (potential) crash for X11 GUI, when using an X selection.  Was giving a
  1147. pointer on the stack to a callback function, now it's static.
  1148.  
  1149. Using "#" and "*" with an operator didn't work.  E.g. "c#".
  1150.  
  1151. Command-line expansion didn't work properly after ":*". (Acevedo)
  1152.  
  1153. Setting 'weirdinvert' caused highlighting to be wrong in the GUI.
  1154.  
  1155. ":e +4 #" didn't work, because the "4" was in unallocated memory (could cause
  1156. a crash).
  1157.  
  1158. Cursor position was wrong for ":e #", after ":e #" failed, because of changes
  1159. to the buffer.
  1160.  
  1161. When doing ":buf N", going to a buffer that was edited with ":view", the
  1162. readonly flag was reset.  Now make a difference between ":e file" and ":buf
  1163. file": Only set/reset 'ro' for the first one.
  1164.  
  1165. Avoid |hit-enter| prompt when not able to write viminfo on exit.
  1166.  
  1167. When giving error messages in the terminal where the GUI was started, GUI
  1168. escape codes would be written to the terminal.  In an xterm this could be seen
  1169. as a '$' after the message.
  1170.  
  1171. Mouse would not work directly after ":gui", because full_screen isn't set,
  1172. which causes starttermcap() not to do its work.
  1173.  
  1174. 'incsearch' did not scroll the window in the same way as the actual search.
  1175. When 'nowrap' set, incsearch didn't show a match when it was off the side of
  1176. the screen.  Now it also shows the whole match, instead of just the cursor
  1177. position (if possible).
  1178.  
  1179. ":unmap", ":unab" and ":unmenu" did not accept a double quote, it was seen as
  1180. the start of a comment.  Now it's Vi compatible.
  1181.  
  1182. Using <Up><Left><Left><Up> in the command-line, when there is no previous
  1183. cmdline in the history, inserted a NUL on the command-line.
  1184.  
  1185. "i<Esc>" when on a <Tab> in column 0 left the cursor in the wrong place.
  1186.  
  1187. GUI Motif: When adding a lot of menu items, the menu bar goes into two rows.
  1188. Deleting menu items, reducing the number of rows, now also works.
  1189.  
  1190. With ":g/pat/s//foo/c", a match in the first line was scrolled off of the
  1191. screen, so you could not see it.
  1192. When using ":s//c", with 'nowrap' set, a match could be off the side of the
  1193. screen, so you could not see it.
  1194.  
  1195. When 'helpfile' was set to a fixed, non-absolute path in feature.h, Vim would
  1196. crash.  mch_Fullname can now handle file names in read-only memory. (Lottem)
  1197.  
  1198. When using CTRL-A or CTRL-@ in Insert mode, there could be strange effects
  1199. when using CTRL-D next.  Also, when repeating inserted text that included "0
  1200. CTRL-D" or "^ CTRL-D" this didn't work. (Acevedo)
  1201. Using CTRL-D after using CTRL-E or CTRL-Y in Insert mode that inserted a '0'
  1202. or '^', removed the '0' or '^' and more indent.
  1203.  
  1204. The command "2".p" caused the last inserted text to be executed as commands.
  1205. (Acevedo)
  1206.  
  1207. Repeating the insert of "CTRL-V 048" resulted in "^@" to be inserted.
  1208.  
  1209. Repeating Insert completion could fail if there are special characters in the
  1210. text. (Acevedo)
  1211.  
  1212. ":normal /string<CR>" caused the window to scroll.  Now all ":normal" commands
  1213. are executed without scrolling messages.
  1214.  
  1215. Redo of CTRL-E or CTRL-Y in Insert mode interpreted special characters as
  1216. commands.
  1217.  
  1218. Line wrapping for 'tw' was done one character off for insert expansion
  1219. inserts.
  1220.  
  1221. buffer_exists() function didn't work properly for buffer names with a symbolic
  1222. link in them (e.g. when using buffer_exists(#)).
  1223.  
  1224. Removed the "MOTIF_COMMENT" construction from Makefile.  It now works with
  1225. FreeBSD make, and probably with NeXT make too.
  1226.  
  1227. Matching the 'define' and 'include' arguments now honor the settings for
  1228. 'ignorecase'. (Acevedo)
  1229.  
  1230. When one file shown in two windows, Visual selection mixed up cursor position
  1231. in current window and other window.
  1232.  
  1233. When doing ":e file" from a help file, the 'isk' option wasn't reset properly,
  1234. because of a modeline in the help file.
  1235.  
  1236. When doing ":e!", a cursor in another window on the same buffer could become
  1237. invalid, leading to "ml_get: invalid lnum" errors.
  1238.  
  1239. Matching buffer name for when expanded name has a different path from not
  1240. expanded name (Brugnara).
  1241.  
  1242. Normal mappings didn't work after an operator.  For example, with ":map Q gq",
  1243. "QQ" didn't work.
  1244.  
  1245. When ":make" resulted in zero errors, a "No Errors" error message was given
  1246. (which breaks mappings).
  1247.  
  1248. When ":sourcing" a file, line length was limited to 1024 characters.  CTRL-V
  1249. before <EOL> was not handled Vi compatible.  (Acevedo)
  1250.  
  1251. Unexpected exit for X11 GUI, caused by SAVE_YOURSELF event.  (Heimann)
  1252.  
  1253. CTRL-X CTRL-I only found one match per line. (Acevedo)
  1254. When using an illegal CTRL-X key in Insert mode, the CTRL-X mode message
  1255. was stuck.
  1256.  
  1257. Finally managed to ignore the "Quit" menu entry of the Window manager!  Now
  1258. Vim only exists when there are no changed buffers.
  1259.  
  1260. Trying to start the GUI when $DISPLAY is not set resulted in a crash.
  1261. When $DISPLAY is not set and gvim starts vim, title was restored to "Thanks
  1262. for flying Vim".
  1263. When $DISPLAY not set, starting "gvim" (dropping back to vim) and then
  1264. selecting text with the mouse caused a crash.
  1265.  
  1266. "J", with 'joinspaces' set, on a line ending in ". ", caused one space too
  1267. many to be added.  (Acevedo)
  1268.  
  1269. In insert mode, a CTRL-R {regname} which didn't insert anything left the '"'
  1270. on the screen.
  1271.  
  1272. ":z10" didn't work. (Clapp)
  1273.  
  1274. "Help "*" didn't work.
  1275.  
  1276. Renamed a lot of functions, to avoid clashes with POSIX name space.
  1277.  
  1278. When adding characters to a line, making it wrap, the following lines were
  1279. sometimes not shifted down (e.g. after a tag jump).
  1280.  
  1281. CTRL-E, with 'so' set and cursor on last line, now does not move cursor as
  1282. long as the last line is on the screen.
  1283.  
  1284. When there are two windows, doing "^W+^W-" in the bottom window could cause
  1285. the status line to be doubled (not redrawn correctly).
  1286.  
  1287. This command would hang: ":n `cat`".  Now connect stdin of the external
  1288. command to /dev/null, when expanding.
  1289.  
  1290. Fixed lalloc(0,) error for ":echo %:e:r".  (Acevedo)
  1291.  
  1292. The "+command" argument to ":split" didn't work when there was no file name.
  1293.  
  1294. When selecting text in the GUI, which is the output of a command-line command
  1295. or an external command, the inversion would sometimes remain.
  1296.  
  1297. GUI: "-mh 70" argument was broken.  Now, when menuheight is specified, it is
  1298. not changed anymore.
  1299.  
  1300. GUI: When using the scrollbar or mouse while executing an external command,
  1301. this caused garbage characters.
  1302.  
  1303. Showmatch sometimes jumped to the wrong position.  Was caused by a call to
  1304. findmatch() when redrawing the display (when syntax highlighting is on).
  1305.  
  1306. Search pattern "\(a *\)\{3} did not work correctly, also matched "a a".
  1307. Problem with brace_count not being decremented.
  1308.  
  1309. Wildcard expansion added too many non-matching file names.
  1310.  
  1311. When 'iskeyword' contains characters like '~', "*" and "#" didn't work
  1312. properly. (Acevedo)
  1313.  
  1314. On Linux, on a FAT file system, modification time can change by one second.
  1315. Avoid a "file has changed" warning for a one second difference.
  1316.  
  1317. When using the page-switching in an xterm, Vim would position the cursor on
  1318. the last line of the window on exit.  Also removed the cursor positioning for
  1319. ":!" commands.
  1320.  
  1321. ":g/pat/p" command (partly) overwrote the command.  Now the output is on a
  1322. separate line.
  1323.  
  1324. With 'ic' and 'scs' set, a search for "Keyword", ignore-case matches were
  1325. highlighted too.
  1326.  
  1327. "^" on a line with only white space, put cursor beyond the end of the line.
  1328.  
  1329. When deleting characters before where insertion started ('bs' == 2), could not
  1330. use abbreviations.
  1331.  
  1332. CTRL-E at end of file puts cursor below the file, in Visual mode, when 'so' is
  1333. non-zero.  CTRL-E didn't work when 'so' is big and the line below the window
  1334. wraps.  CTRL-E, when 'so' is non-zero, at end of the file, caused jumping
  1335. up-down.
  1336.  
  1337. ":retab" didn't work well when 'list' is set.
  1338.  
  1339. Amiga: When inserting characters at the last line on the screen, causing it
  1340. to wrap, messed up the display.  It appears that a '\n' on the last line
  1341. doesn't always cause a scroll up.
  1342.  
  1343. In Insert mode "0<C-D><C-D>" deleted an extra character, because Vim thought
  1344. that the "0" was still there. (Acevedo)
  1345.  
  1346. "z{count}l" ignored the count.  Also for "zh" et. al. (Acevedo)
  1347.  
  1348. "S" when 'autoindent' is off didn't delete leading white space.
  1349.  
  1350. "/<Tab>" landed on the wrong character when 'incsearch' is set.
  1351.  
  1352. Asking a yes/no question could cause a |hit-enter| prompt.
  1353.  
  1354. When the file consists of one long line (>4100 characters), making changes
  1355. caused various errors and a crash.
  1356.  
  1357. DJGPP version could not save long lines (>64000) for undo.
  1358.  
  1359. "yw" on the last char in the file didn't work.  Also fixed "6x" at the end of
  1360. the line.  "6X" at the start of a line fails, but does not break a mapping.  In
  1361. general, a movement for an operator doesn't beep or flush a mapping, but when
  1362. there is nothing to operate on it beeps (this is Vi compatible).
  1363.  
  1364. "m'" and "m`" now set the '' mark at the cursor position.
  1365.  
  1366. Unix: Resetting of signals for external program didn't work, because SIG_DFL
  1367. and NULL are the same!  For "!!yes|dd count=1|, the yes command kept on
  1368. running.
  1369.  
  1370. Partly fixed: Unix GUI: Typeahead while executing an external command was lost.
  1371. Now it's not lost while the command is producing output.
  1372.  
  1373. Typing <S-Tab> in Insert mode, when it isn't mapped, inserted "<S-Tab>".  Now
  1374. it works like a normal <Tab>, just like <C-Tab> and <M-Tab>.
  1375.  
  1376. Redrawing ruler didn't check for old value correctly (caused UMR warnings in
  1377. Purify).
  1378.  
  1379. Negative array index in finish_viminfo_history().
  1380.  
  1381. ":g/^/d|mo $" deleted all the lines.  The ":move" command now removes the
  1382. :global mark from the moved lines.
  1383.  
  1384. Using "vG" while the last line in the window is a "@" line, didn't update
  1385. correctly.  Just the "v" showed "~" lines.
  1386.  
  1387. "daw" on the last char of the file, when it's a space, moved the cursor beyond
  1388. the end of the line.
  1389.  
  1390. When 'hlsearch' was set or reset, only the current buffer was redrawn, while
  1391. this affects all windows.
  1392.  
  1393. CTRL-^, positioning the cursor somewhere from 1/2 to 1 1/2 screen down the
  1394. file, put the cursor at the bottom of the window, instead of halfway.
  1395.  
  1396. When scrolling up for ":append" command, not all windows were updated
  1397. correctly.
  1398.  
  1399. When 'hlsearch' is set, and an auto-indent is highlighted, pressing <Esc>
  1400. didn't remove the highlighting, although the indent was deleted.
  1401.  
  1402. When 'ru' set and 'nosc', using "$j" showed a wrong ruler.
  1403.  
  1404. Under Xfree 3.2, Shift-Tab didn't work (wrong keysym is used).
  1405.  
  1406. Mapping <S-Tab> didn't work.  Changed the key translations to use the shortest
  1407. key code possible.  This makes the termcode translations and mappings more
  1408. consistent.  Now all modifiers work in all combinations, not only with <Tab>,
  1409. but also with <Space>, <CR>, etc.
  1410.  
  1411. For Unix, restore three more signals.  And Vim catches SIGINT now, so CTRL-C
  1412. in Ex mode doesn't make Vim exit.
  1413.  
  1414. ""a5Y" yanked 25 lines instead of 5.
  1415.  
  1416. "vrxxx<Esc>" in an empty line could not be undone.
  1417.  
  1418. A CTRL-C that breaks ":make" caused the errorfile not to be read (annoying
  1419. when you want to handle what ":make" produced so far).
  1420.  
  1421. ":0;/pat" didn't find "pat" in line 1.
  1422.  
  1423. Search for "/test/s+1" at first char of file gave bottom-top message, or
  1424. didn't work at all with 'nowrapscan'.
  1425.  
  1426. Bug in viminfo history.  Could cause a crash on exit.
  1427.  
  1428. ":print" didn't put cursor on first non-blank in line.
  1429.  
  1430. ":0r !cat </dev/null" left cursor in line zero, with very strange effects.
  1431.  
  1432. With 'showcmd' set and 'timeoutlen' set to a few seconds, trick to position
  1433. the cursor leftwards didn't work.
  1434.  
  1435. AIX stty settings were restored to cs5 instead of cs8 (Winn).
  1436.  
  1437. File name completion didn't work for "zsh" versions that put spaces between
  1438. file names, instead of NULs.
  1439.  
  1440. Changed "XawChain*" to "XtChain*", should work for more systems.
  1441.  
  1442. Included quite a few fixes for rightleft mode (Lottem).
  1443.  
  1444. Didn't ask to |hit-enter| when GUI is started and error messages are printed.
  1445.  
  1446. When trying to edit a file in a non-existent directory, ended up with editing
  1447. "No file".
  1448.  
  1449. "gqap" to format a paragraph did too much redrawing.
  1450.  
  1451. When 'hlsearch' set, only the current window was updated for a new search
  1452. pattern.
  1453.  
  1454. Sometimes error messages on startup didn't cause a |hit-enter| prompt,
  1455. because of autocommands containing an empty line.
  1456.  
  1457. Was possible to select part of the window in the border, below the command
  1458. line.
  1459.  
  1460. '< and '> marks were not at the correct position after linewise Visual
  1461. selection.
  1462.  
  1463. When translating a help argument to "CTRL-x", prepend or append a '_', when
  1464. applicable.
  1465.  
  1466. Blockwise visual mode wasn't correct when moving vertically over a special
  1467. character (displayed as two screen characters).
  1468.  
  1469. Renamed "struct option" to "struct vimoption" to avoid name clash with GNU
  1470. getopt().
  1471.  
  1472. ":abclear" didn't work (but ":iabclear" and ":cabclear" did work).
  1473.  
  1474. When 'nowrap' used, screen wasn't always updated correctly.
  1475.  
  1476. "vim -c split file" displayed extra lines.
  1477.  
  1478. After starting the GUI, searched the termcap for a "gui" term.
  1479.  
  1480. When 'hls' used, search for "^$" caused a hang.
  1481. When 'hls' was set, an error in the last regexp caused trouble.
  1482.  
  1483. Unix: Only output an extra <EOL> on exit when outputted something in the
  1484. alternate screen, or when there is a message that needs to be cleared.
  1485.  
  1486. "/a\{" did strange things, depending on previous search.
  1487.  
  1488. "c}" only redrew one line (with -u NONE).
  1489.  
  1490. For mappings, CTRL-META-A was shown as <M-^A> instead of <MC-A>, while :map
  1491. only accepts <MC-A>.  Now <M-C-A> is shown.
  1492.  
  1493. Unix: When using full path name in a tags file, which contains a link, and
  1494. 'hidden' set and jumping to a tag in the current file, would get bogus
  1495. ATTENTION message.  Solved by always expanding file names, even when starting
  1496. with '/'.
  1497.  
  1498. 'hlsearch' highlighting of special characters (e.g., a TAB) didn't highlight
  1499. the whole thing.
  1500.  
  1501. "r<CR>" didn't work correctly on the last char of a line.
  1502.  
  1503. Sometimes a window resize or other signal caused an endless loop, involving
  1504. set_winsize().
  1505.  
  1506. "vim -r" didn't work, it would just hang (using tgetent() while 'term' is
  1507. empty).
  1508.  
  1509. "gk" while 'nowrap' set moved two lines up.
  1510.  
  1511. When windows are split, a message that causes a scroll-up messed up one of the
  1512. windows, which required a CTRL-L to be typed.
  1513.  
  1514. Possible endless loop when using shell command in the GUI.
  1515.  
  1516. Menus defined in the .vimrc were removed when GUI started.
  1517.  
  1518. Crash when pasting with the mouse in insert mode.
  1519.  
  1520. Crash with ":unmenu *" in .gvimrc for Athena.
  1521.  
  1522. "5>>" shifted 5 lines 5 times, instead of 1 time.
  1523.  
  1524. CTRL-C when getting a prompt in ":global" didn't interrupt.
  1525.  
  1526. When 'so' is non-zero, and moving the scrollbar completely to the bottom,
  1527. there was a lot of flashing.
  1528.  
  1529. GUI: Scrollbar ident must be long for DEC Alpha.
  1530.  
  1531. Some functions called vim_regcomp() without setting reg_magic, which could
  1532. lead to unpredictable magicness.
  1533.  
  1534. Crash when clicking around the status line, could get a selection with a
  1535. backwards range.
  1536.  
  1537. When deleting more than one line characterwise, the last character wasn't
  1538. deleted.
  1539.  
  1540. GUI: Status line could be overwritten when moving the scrollbar quickly (or
  1541. when 'wd' is non-zero).
  1542.  
  1543. An ESC at the end of a ":normal" command caused a wait for a terminal code to
  1544. finish.  Now, a terminal code is not recognized when its start comes from a
  1545. mapping or ":normal" command.
  1546.  
  1547. Included patches from Robert Webb for GUI.  Layout of the windows is now done
  1548. inside Vim, instead of letting the layout manager do this.  Makes Vim work
  1549. with Lesstif!
  1550.  
  1551. UMR warning in set_expand_context().
  1552.  
  1553. Memory leak: b_winlnum list was never freed.
  1554.  
  1555. Removed TIOCLSET/TIOCLGET code from os_unix.c.  Was changing some of the
  1556. terminal settings, and looked like it wasn't doing anything good.  (suggested
  1557. by Juergen Weigert).
  1558.  
  1559. Ruler overwrote "is a directory" message.  When starting up, and 'cmdheight'
  1560. set to > 1, first message could still be in the last line.
  1561.  
  1562. Removed prototype for putenv() from proto.h, it's already in osdef2.h.in.
  1563.  
  1564. In replace mode, when moving the cursor and then backspacing, wrong characters
  1565. were inserted.
  1566.  
  1567. Win32 GUI was checking for a CTRL-C too often, making it slow.
  1568.  
  1569. Removed mappings for MS-DOS that were already covered by commands.
  1570.  
  1571. When visually selecting all lines in a file, cursor at last line, then "J".
  1572. Gave ml_get errors.  Was a problem with scrolling down during redrawing.
  1573.  
  1574. When doing a linewise operator, and then an operator with a mouse click, it
  1575. was also linewise, instead of characterwise.
  1576.  
  1577. When 'list' is set, the column of the ruler was wrong.
  1578.  
  1579. Spurious error message for "/\(b\+\)*".
  1580.  
  1581. When visually selected many lines, message from ":w file" disappeared when
  1582. redrawing the screen.
  1583.  
  1584. ":set <M-b>=^[b", then insert "^[b", waited for another character.  And then
  1585. inserted "<M-b>" instead of the real <M-b> character.  Was trying to insert
  1586. K_SPECIAL x NUL.
  1587.  
  1588. CTRL-W ] didn't use count to set window height.
  1589.  
  1590. GUI: "-font" command-line argument didn't override 'guifont' setting from
  1591. .gvimrc. (Acevedo)
  1592.  
  1593. GUI: clipboard wasn't used for "*y".  And some more Win32/X11 differences
  1594. fixed for the clipboard (Webb).
  1595.  
  1596. Jumping from one help file to another help file, with 'compatible' set,
  1597. removed the 'help' flag from the buffer.
  1598.  
  1599. File-writable bit could be reset when using ":w!" for a readonly file.
  1600.  
  1601. There was a wait for CTRL-O n in Insert mode, because the search pattern was
  1602. shown.
  1603. Reduced wait, to allow reading a message, from 10 to 3 seconds.  It seemed
  1604. nothing was happening.
  1605.  
  1606. ":recover" found same swap file twice.
  1607.  
  1608. GUI: "*yy only worked the second time (when pasting to an xterm)."
  1609.  
  1610. DJGPP version (dos32): The system flags were cleared.
  1611.  
  1612. Dos32 version: Underscores were sometimes replaced with y-umlaut (Levin).
  1613.  
  1614. Version 4.1 of ncurses can't handle tputs("", ..).  Avoid calling tputs() with
  1615. an empty string.
  1616.  
  1617. <S-Tab> in the command-line worked like CTRL-P when no completion started yet.
  1618. Now it does completion, last match first.
  1619.  
  1620. Unix: Could get annoying "can't write viminfo" message after doing "su".  Now
  1621. the viminfo file is overwritten, and the user set back to the original one.
  1622.  
  1623. ":set term=builtin_gui" started the GUI in a wrong way.  Now it's not
  1624. allowed anymore.  But "vim -T gui" does start the GUI correctly now.
  1625.  
  1626. GUI: Triple click after a line only put last char in selection, when it is a
  1627. single character word.
  1628.  
  1629. When the window is bigger than the screen, the scrolling up of messages was
  1630. wrong (e.g. ":vers", ":hi").  Also when the bottom part of the window was
  1631. obscured by another window.
  1632.  
  1633. When using a wrong option only an error message is printed, to avoid that the
  1634. usage information makes it scroll off the screen.
  1635.  
  1636. When exiting because of not being able to read from stdin, didn't preserve the
  1637. swap files properly.
  1638.  
  1639. Visual selecting all chars in more than one line, then hit "x" didn't leave an
  1640. empty line.  For one line it did leave an empty line.
  1641.  
  1642. Message for which autocommand is executing messed up file write message (for
  1643. FileWritePost event).
  1644.  
  1645. "vim -h" included "-U" even when GUI is not available, and "-l" when lisp is
  1646. not available.
  1647.  
  1648. Crash for ":he <C-A>" (command-line longer than screen).
  1649.  
  1650. ":s/this/that/gc", type "y" two times, then undo, did reset the modified
  1651. option, even though the file is still modified.
  1652.  
  1653. Empty lines in a tags file caused a ":tag" to be aborted.
  1654.  
  1655. When hitting 'q' at the more prompt for ":menu", still scrolled a few lines.
  1656.  
  1657. In an xterm that uses the bold trick a single row of characters could remain
  1658. after an erased bold character.  Now erase one extra char after the bold char,
  1659. like for the GUI.
  1660.  
  1661. ":pop!" didn't work.
  1662.  
  1663. When the reading a buffer was interrupted, ":w" should not be able to
  1664. overwrite the file, ":w!" is required.
  1665.  
  1666. ":cf%" caused a crash.
  1667.  
  1668. ":gui longfilename", when forking is enabled, could leave part of the
  1669. longfilename at the shell prompt.
  1670.  
  1671. ==============================================================================
  1672. VERSION 5.1                        *version-5.1*
  1673.  
  1674. Improvements made between version 5.0 and 5.1.
  1675.  
  1676. This was mostly a bug-fix release, not many new features.
  1677.  
  1678.  
  1679. Changed                            *changed-5.1*
  1680. -------
  1681.  
  1682. The expand() function now separates file names with <NL> instead of a space.
  1683. This avoids problems for file names with embedded spaces.  To get the old
  1684. result, use substitute(expand(foo), "\n", " ", "g").
  1685.  
  1686. For Insert-expanding dictionaries allow a backslash to be used for
  1687. wildchars.  Allows expanding "ze\kra", when 'isk' includes a backslash.
  1688.  
  1689. New icon for the Win32 GUI.
  1690.  
  1691. ":tag", ":tselect" etc. only use the argument as a regexp when it starts
  1692. with '/'.  Avoids that ":tag xx~" gives an error message: "No previous sub.
  1693. regexp".  Also, when the :tag argument contained wildcard characters, it was
  1694. not Vi compatible.
  1695. When using '/', the argument is taken literally too, with a higher priority,
  1696. so it's found before wildcard matches.
  1697. Only when the '/' is used are matches with different case found, even though
  1698. 'ignorecase' isn't set.
  1699. Changed "g^]" to only do ":tselect" when there is more than on matching tag.
  1700.  
  1701. Changed some of the default colors, because they were not very readable on a
  1702. dark background.
  1703.  
  1704. A character offset to a search pattern can move the cursor to the next or
  1705. previous line.  Also fixes that "/pattern/e+2" got stuck on "pattern" at the
  1706. end of a line.
  1707.  
  1708. Double-clicks in the status line do no longer start Visual mode.  Dragging a
  1709. status line no longer stops Visual mode.
  1710.  
  1711. Perl interface: Buffers() and Windows() now use more logical arguments, like
  1712. they are used in the rest of Vim (Moore).
  1713.  
  1714. Init '" mark to the first character of the first line.  Makes it possible to
  1715. use '" in an autocommand without getting an error message.
  1716.  
  1717.  
  1718. Added                            *added-5.1*
  1719. -----
  1720.  
  1721. "shell_error" internal variable: result of last shell command.
  1722.  
  1723. ":echohl" command: Set highlighting for ":echo".
  1724.  
  1725. 'S' flag in 'highlight' and StatusLineNC highlight group: highlighting for
  1726. status line of not-current window.  Default is to use bold for current
  1727. window.
  1728.  
  1729. Added buffer_name() and buffer_number() functions (Aaron).
  1730. Added flags argument "g" to substitute() function (Aaron).
  1731. Added winheight() function.
  1732.  
  1733. Win32: When an external command starts with "start ", no console is opened
  1734. for it (Aaron).
  1735.  
  1736. Win32 console: Use termcap codes for bold/reverse based on the current
  1737. console attributes.
  1738.  
  1739. Configure check for "strip". (Napier)
  1740.  
  1741. CTRL-R CTRL-R x in Insert mode: Insert the contents of a register literally,
  1742. instead of as typed.
  1743.  
  1744. Made a few "No match" error messages more informative by adding the pattern
  1745. that didn't match.
  1746.  
  1747. "make install" now also copies the macro files.
  1748.  
  1749. tools/tcltags, a shell script to generate a tags file from a TCL file.
  1750.  
  1751. "--with-tlib" setting for configure.  Easy way to use termlib: "./configure
  1752. --with-tlib=termlib".
  1753.  
  1754. 'u' flag in 'cino' for setting the indent for contained () parts.
  1755.  
  1756. When Win32 OLE version can't load the registered type library, ask the user
  1757. if he wants to register Vim now. (Erhardt)
  1758. Win32 with OLE: When registered automatically, exit Vim.
  1759. Included VisVim 1.1b, with a few enhancements and the new icon (Heiko
  1760. Erhardt).
  1761.  
  1762. Added patch from Vince Negri for Win32s support.  Needs to be compiled with
  1763. VC 4.1!
  1764.  
  1765. Perl interface: Added $curbuf.  Rationalized Buffers() and Windows().
  1766. (Moore) Added "group" argument to Msg().
  1767.  
  1768. Included Perl files in DOS source archive.  Changed Makefile.bor and
  1769. Makefile.w32 to support building a Win32 version with Perl included.
  1770.  
  1771. Included new Makefile.w32 from Ken Scott.  Now it's able to make all Win32
  1772. versions, including OLE, Perl and Python.
  1773.  
  1774. Added CTRL-W g ] and CTRL-W g ^]: split window and do g] or g^].
  1775.  
  1776. Added "g]" to always do ":tselect" for the ident under the cursor.
  1777. Added ":tjump" and ":stjump" commands.
  1778. Improved listing of ":tselect" when tag names are a bit long.
  1779.  
  1780. Included patches for the Macintosh version.  Also for Python interface.
  1781. (St-Amant)
  1782.  
  1783. ":buf foo" now also restores cursor column, when the buffer was used before.
  1784.  
  1785. Adjusted the Makefile for different final destinations for the syntax files
  1786. and scripts (for Debian Linux).
  1787.  
  1788. Amiga: $VIM can be used everywhere.  When $VIM is not defined, "VIM:" is
  1789. used.  This fixes that "VIM:" had to be assigned for the help files, and
  1790. $VIM set for the syntax files.  Now either of these work.
  1791.  
  1792. Some xterms send vt100 compatible function keys F1-F4.  Since it's not
  1793. possible to detect this, recognize both type of keys and translate them to
  1794. <F1> - <F4>.
  1795.  
  1796. Added "VimEnter" autocommand.  Executed after loading all the startup stuff.
  1797.  
  1798. BeOS version now also runs on Intel CPUs (Seibert).
  1799.  
  1800.  
  1801. Fixed                            *fixed-5.1*
  1802. -----
  1803.  
  1804. ":ts" changed position in the tag stack when cancelled with <CR>.
  1805. ":ts" changed the cursor position for CTRL-T when cancelled with <CR>.
  1806. ":tn" would always jump to the second match.    Was using the wrong entry in
  1807. the tag stack.
  1808. Doing "tag foo", then ":tselect", overwrote the original cursor position in
  1809. the tag stack.
  1810.  
  1811. "make install" changed the vim.1 manpage in a wrong way, causing "doc/doc"
  1812. to appear for the documentation files.
  1813.  
  1814. When compiled with MAX_FEAT, xterm mouse handling failed.  Was caused by DEC
  1815. mouse handling interfering.
  1816.  
  1817. Was leaking memory when using selection in X11.
  1818.  
  1819. CTRL-D halfway a command-line left some characters behind the first line(s)
  1820. of the listing.
  1821.  
  1822. When expanding directories for ":set path=", put two extra backslashes
  1823. before a space in a directory name.
  1824.  
  1825. When 'lisp' set, first line of a function would be indented.  Now its indent
  1826. is set to zero.  And use the indent of the first previous line that is at
  1827. the same () level.  Added test33.
  1828.  
  1829. "so<Esc>u" in an empty file didn't work.
  1830.  
  1831. DOS: "seek error in swap file write" errors, when using DOS 6.2 share.exe,
  1832. because the swap file was made hidden.  It's no longer hidden.
  1833.  
  1834. ":global" command would sometimes not execute on a matching line.  Happened
  1835. when a data block is full in ml_replace().
  1836.  
  1837. For AIX use a tgetent buffer of 2048 bytes, instead of 1024.
  1838.  
  1839. Win32 gvim now only sets the console size for external commands to 25x80
  1840. on Windows 95, not on NT.
  1841.  
  1842. Win32 console: Dead key could cause a crash, because of a missing "WINAPI"
  1843. (Deshpande).
  1844.  
  1845. The right mouse button started Visual mode, even when 'mouse' is empty, and
  1846. in the command-line, a left click moved the cursor when 'mouse' is empty.
  1847. In Visual mode, 'n' in 'mouse' would be used instead of 'v'.
  1848.  
  1849. A blinking cursor or focus change cleared a non-Visual selection.
  1850.  
  1851. CTRL-Home and CTRL-End didn't work for MS-DOS versions.
  1852.  
  1853. Could include NUL in 'iskeyword', causing a crash when doing insert mode
  1854. completion.
  1855.  
  1856. Use _dos_commit() to flush the swap file to disk for MSDOS 16 bit version.
  1857.  
  1858. In mappings, CTRL-H was replaced by the backspace key code.  This caused
  1859. problems when it was used as text, e.g. ":map _U :%s/.^H//g<CR>".
  1860.  
  1861. ":set t_Co=0" was not handled like a normal term.  Now it's translated into
  1862. ":set t_Co=", which works.
  1863.  
  1864. For ":syntax keyword" the "transparent" option did work, although not
  1865. mentioned in the help.  But synID() returned wrong name.
  1866.  
  1867. "gqG" in a file with one-word-per-line (e.g. a dictionary) was very slow and
  1868. not interruptible.
  1869.  
  1870. "gq" operator inserted screen lines in the wrong situation.  Now screen
  1871. lines are inserted or deleted when this speeds up displaying.
  1872.  
  1873. cindent was wrong when an "if" contained "((".
  1874.  
  1875. 'r' flag in 'viminfo' was not used for '%'.  Could get files in the buffer
  1876. list from removable media.
  1877.  
  1878. Win32 GUI with OLE: if_ole_vc.mak could not be converted into a project.
  1879. Hand-edited to fix this...
  1880.  
  1881. With 'nosol' set, doing "$kdw" below an empty line positioned the cursor at
  1882. the end of the line.
  1883.  
  1884. Dos32 version changed "\dir\file" into "/dir/file", to work around a DJGPP
  1885. bug.  That bug appears to have been fixed, therefore this translation has
  1886. been removed.
  1887.  
  1888. "/^*" didn't work (find '*' in first column).
  1889.  
  1890. "<afile>" was not always set for autocommands.  E.g., for ":au BufEnter *
  1891. let &tags = expand("<afile>:p:h") . "/tags".
  1892.  
  1893. In an xterm, the window may be a child of the outer xterm window.  Use the
  1894. parent window when getting the title and icon names. (Smith)
  1895.  
  1896. When starting with "gvim -bg black -fg white", the value of 'background' is
  1897. only set after reading the .gvimrc file.  This causes a ":syntax on" to use
  1898. the wrong colors.  Now allow using ":gui" to open the GUI window and set the
  1899. colors.  Previously ":gui" in a gvimrc crashed Vim.
  1900.  
  1901. tempname() returned the same name all the time, unless the file was actually
  1902. created.  Now there are at least 26 different names.
  1903.  
  1904. File name used for <afile> was sometimes full path, sometimes file name
  1905. relative to current directory.
  1906.  
  1907. When 'background' was set after the GUI window was opened, it could change
  1908. colors that were set by the user in the .gvimrc file.  Now it only changes
  1909. colors that have not been set by the user.
  1910.  
  1911. Ignore special characters after a CSI in the GUI version.  These could be
  1912. interpreted as special characters in a wrong way. (St-Amant)
  1913.  
  1914. Memory leak in farsi code, when using search or ":s" command.
  1915. Farsi string reversing for a mapping was only done for new mappings.  Now it
  1916. also works for replacing a mapping.
  1917.  
  1918. Crash in Win32 when using a file name longer than _MAX_PATH. (Aaron)
  1919.  
  1920. When BufDelete autocommands were executed, some things for the buffer were
  1921. already deleted (esp. Perl stuff).
  1922.  
  1923. Perl interface: Buffer specific items were deleted too soon; fixes "screen
  1924. no longer exists" messages.  (Moore)
  1925.  
  1926. The Perl functions didn't set the 'modified' flag.
  1927.  
  1928. link.sh did not return an error on exit, which may cause Vim to start
  1929. installing, even though there is no executable to install. (Riehm)
  1930.  
  1931. Vi incompatibility: In Vi "." redoes the "y" command.  Added the 'y' flag to
  1932. 'cpoptions'.  Only for 'compatible' mode.
  1933.  
  1934. ":echohl" defined a new group, when the argument was not an existing group.
  1935.  
  1936. "syn on" and ":syn off" could move the cursor, if there is a hidden buffer
  1937. that is shorter that the current cursor position.
  1938.  
  1939. The " mark was not set when doing ":b file".
  1940.  
  1941. When a "nextgroup" is used with "skipwhite" in syntax highlighting, space at
  1942. the end of the line made the nextgroup also be found in the next line.
  1943.  
  1944. ":he g<CTRL-D>", then ":" and backspace to the start didn't redraw.
  1945.  
  1946. X11 GUI: "gvim -rv" reversed the colors twice on Sun.  Now Vim checks if the
  1947. result is really reverse video (background darker than foreground).
  1948.  
  1949. "cat link.sh | vim -" didn't set syntax highlighting.
  1950.  
  1951. Win32: Expanding "file.sw?" matched ".file.swp".  This is an error of
  1952. FindnextFile() that we need to work around.  (Kilgore)
  1953.  
  1954. "gqgq" gave an "Invalid lnum" error on the last line.
  1955. Formatting with "gq" didn't format the first line after a change of comment
  1956. leader.
  1957.  
  1958. There was no check for out-of-memory in win_alloc().
  1959.  
  1960. "vim -h" didn't mention "-register" and "-unregister" for the OLE version.
  1961.  
  1962. Could not increase 'cmdheight' when the last window is only one line.  Now
  1963. other windows are also made smaller, when necessary.
  1964.  
  1965. Added a few {} to avoid "suggest braces around" warnings from gcc 2.8.x.
  1966. Changed return type of main() from void to int. (Nam)
  1967.  
  1968. Using '~' twice in a substitute pattern caused a crash.
  1969.  
  1970. "syn on" and ":syn off" could scroll the window, if there is a hidden buffer
  1971. that is shorter that the current cursor position.
  1972.  
  1973. ":if 0 | if 1 | endif | endif" didn't work.  Same for ":while" and "elseif".
  1974.  
  1975. With two windows on modified files, with 'autowrite' set, cursor in second
  1976. window, ":qa" gave a warning for the file in the first window, but then
  1977. auto-wrote the file in the second window. (Webb)
  1978.  
  1979. Win32 GUI scrollbar could only handle 32767 lines.  Also makes the
  1980. intellimouse wheel use the configurable number of scrolls. (Robinson)
  1981.  
  1982. When using 'patchmode', and the backup file is on another partition, the file
  1983. copying messed up the write-file message.
  1984.  
  1985. GUI X11: Alt-Backspace and Alt-Delete didn't work.
  1986.  
  1987. "`0" could put the cursor after the last character in the line, causing
  1988. trouble for other commands, like "i".
  1989.  
  1990. When completing tags in insert mode with ^X^], some matches were skipped,
  1991. because the compare with other tags was wrong.  E.g., when "mnuFileSave" was
  1992. already there, "mnuFile" would be skipped. (Negri)
  1993.  
  1994. When scrolling up/down, a syntax item with "keepend" didn't work properly.
  1995. Now the flags are also stored for the syntax state at the start of each line.
  1996.  
  1997. When 'ic' was changed while 'hlsearch' is on, there was no redraw to show the
  1998. effect.
  1999.  
  2000. Win32 GUI: Don't display "No write since last chance" in a message box, but in
  2001. the Vim window.
  2002.  
  2003. ==============================================================================
  2004. VERSION 5.2                        *version-5.2*
  2005.  
  2006. Improvements made between version 5.1 and 5.2.
  2007.  
  2008.  
  2009. Long lines editable                    *long-lines*
  2010. -------------------
  2011.  
  2012. A single long line that doesn't fit in the window doesn't show a line of @@@
  2013. anymore.  Redrawing starts at a character further on in the line, such that
  2014. the text around the cursor can be seen.  This makes it possible to edit these
  2015. long lines when wrapping is on.
  2016.  
  2017.  
  2018. File browser added                    *file-browser-5.2*
  2019. ------------------
  2020.  
  2021. The Win32, Athena and Motif GUI bring up a file requester if the user asks to
  2022. ":browse" for the ":e", ":w", ":r", ":so", ":redirect" and
  2023. ":mkexrc/vimrc/vsess" commands.  ::browse e /foo/bar" opens the requester in
  2024. the /foo/bar directory, so you can have nice mapping rhs's like ":browse so
  2025. $vim/macros".  If no initial dir specified for ":browse e", can be compiled to
  2026. either begin in the current directory, or that of the current buffer. (Negri
  2027. and Kahn)
  2028. Added the 'browsedir' option, with value "current", "last" or "buffer".  Tells
  2029. whether a browse dialog starts in last used dir, dir of current buffer, or
  2030. current dir.  ":browse w" is unaffected.
  2031. The default menus have been changed to use the ":browse" command.
  2032.  
  2033.  
  2034. Dialogs added                        *dialogs-added*
  2035. -------------
  2036.  
  2037. Added the ":confirm" command.  Works on ":e", ":q", ":w", ":cl".  Win32,
  2038. Athena and Motif GUI uses a window-dialog.  All other platforms can use
  2039. prompt in command-line.  ":confirm qa" offers a choice to save all modified
  2040. files.
  2041.  
  2042. confirm() function: allows user access to the confirm engine.
  2043.  
  2044. Added 'v' flag to 'guioptions'.  When included, a vertical button layout is
  2045. always used for the Win32 GUI dialog.  Otherwise, a horizontal layout is
  2046. preferred.
  2047.  
  2048. Win32 GUI: ":promptfind" and ":promptrepl" pop up a dialog to find/replace.
  2049. To be used from a menu entry. (Negri)
  2050.  
  2051.  
  2052. Popup menu added                    *popup-menu-added*
  2053. ----------------
  2054.  
  2055. When the 'mousemodel' option is set to "popup", the right mouse button
  2056. displays the top level menu headed with "PopUp" as pop-up context menu.  The
  2057. "PopUp" menu is not displayed in the normal menu bar.  This currently only
  2058. works for Win32 and Athena GUI.
  2059.  
  2060.  
  2061. Select mode added                    *new-Select-mode*
  2062. -----------------
  2063.  
  2064. A new mode has been added: "Select mode".  It is like Visual mode, but typing
  2065. a printable character replaces the selection.
  2066. - CTRL-G can be used to toggle between Visual mode and Select mode.
  2067. - CTRL-O can be used to switch from Select mode to Visual mode for one command.
  2068. - Added 'selectmode' option: tells when to start Select mode instead of Visual
  2069.   mode.
  2070. - Added 'mousemodel' option: Change use of mouse buttons.
  2071. - Added 'keymodel' option: tells to use shifted special keys to start a
  2072.   Visual or Select mode selection.
  2073. - Added ":behave".  Can be used to quickly set 'selectmode', 'mousemodel'
  2074.   and 'keymodel' for MS-Windows and xterm behavior.
  2075. - The xterm-like selection is now called modeless selection.
  2076. - Visual mode mappings and menus are used in Select mode.  They automatically
  2077.   switch to Visual mode first.  Afterwards, reselect the area, unless it was
  2078.   deleted.  The "gV" command can be used in a mapping to skip the reselection.
  2079. - Added the "gh", "gH" and "g^H" commands: start Select (highlight) mode.
  2080. - Backspace in Select mode deletes the selected area.
  2081.  
  2082. "mswin.vim" script.  Sets behavior mostly like MS-Windows.
  2083.  
  2084.  
  2085. Session files added                    *new-session-files*
  2086. -------------------
  2087.  
  2088. ":mks[ession]" acts like "mkvimrc", but also writes the full filenames of the
  2089. currently loaded buffers and current directory, so that :so'ing the file
  2090. re-loads those files and cd's to that directory.  Also stores and restores
  2091. windows.  File names are made relative to session file.
  2092. The 'sessionoptions' option sets behavior of ":mksession". (Negri)
  2093.  
  2094.  
  2095. User defined functions and commands            *new-user-defined*
  2096. -----------------------------------
  2097.  
  2098. Added user defined functions.  Defined with ":function" until ":endfunction".
  2099. Called with "Func()".  Allows the use of a variable number of arguments.
  2100. Included support for local variables "l:name".  Return a value with ":return".
  2101. See |:function|.
  2102. Call a function with ":call".  When using a range, the function is called for
  2103. each line in the range. |:call|
  2104. "macros/justify.vim" is an example of using user defined functions.
  2105. User functions do not change the last used search pattern or the command to be
  2106. redone with ".".
  2107. 'maxfuncdepth' option.  Restricts the depth of function calls.  Avoids trouble
  2108. (crash because of out-of-memory) when a function uses endless recursion.
  2109.  
  2110. User definable Ex commands: ":command", ":delcommand" and ":comclear".
  2111. (Moore)  See |user-commands|.
  2112.  
  2113.  
  2114. New interfaces                        *interfaces-5.2*
  2115. --------------
  2116.  
  2117. Tcl interface. (Wilken)  See |tcl|.
  2118. Uses the ":tcl", ":tcldo" and "tclfile" commands.
  2119.  
  2120. Cscope support. (Kahn) (Sekera)  See |cscope|.
  2121. Uses the ":cscope" and ":cstag" commands.  Uses the options 'cscopeprg',
  2122. 'cscopetag', 'cscopetagorder' and 'cscopeverbose'.
  2123.  
  2124.  
  2125. New ports                        *ports-5.2*
  2126. ---------
  2127.  
  2128. Amiga GUI port. (Nielsen)  Not tested much yet!
  2129.  
  2130. RISC OS version. (Thomas Leonard)  See |riscos|.
  2131. This version can run either with a GUI or in text mode, depending upon where
  2132. it is invoked.
  2133. Deleted the "os_archie" files, they were not working anyway.
  2134.  
  2135.  
  2136. Multi-byte support                    *new-multi-byte*
  2137. ------------------
  2138.  
  2139. MultiByte support for Win32 GUI. (Baek)
  2140. The 'fileencoding' option decides how the text in the file is encoded.
  2141. ":ascii" works for multi-byte characters.  Multi-byte characters work on
  2142. Windows 95, even when using the US version. (Aaron)
  2143. Needs to be enabled in feature.h.
  2144. This has not been tested much yet!
  2145.  
  2146.  
  2147. New functions                        *new-functions-5.2*
  2148. -------------
  2149.  
  2150. |browse()|    puts up a file requester when available. (Negri)
  2151. |escape()|    escapes characters in a string with a backslash.
  2152. |fnamemodify()|    modifies a file name.
  2153. |input()|    asks the user to enter a line. (Aaron)  There is a separate
  2154.         history for lines typed for the input() function.
  2155. |argc()|
  2156. |argv()|    can be used to access the argument list.
  2157. |winbufnr()|    buffer number of a window. (Aaron)
  2158. |winnr()|    window number. (Aaron)
  2159. |matchstr()|    Return matched string.
  2160. |setline()|    Set a line to a string value.
  2161.  
  2162.  
  2163. New options                        *new-options-5.2*
  2164. -----------
  2165.  
  2166. 'allowrevins'    Enable the CTRL-_ command in Insert and Command-line mode.
  2167. 'browsedir'    Tells in which directory a browse dialog starts.
  2168. 'confirm'    when set, :q :w and :e commands always act as if ":confirm"
  2169.         is used.  (Negri)
  2170. 'cscopeprg'
  2171. 'cscopetag'
  2172. 'cscopetagorder'
  2173. 'cscopeverbose'    Set the |cscope| behavior.
  2174. 'filetype'    RISC-OS specific type of file.
  2175. 'grepformat'
  2176. 'grepprg'    For the |:grep| command.
  2177. 'keymodel'    Tells to use shifted special keys to start a Visual or Select
  2178.         mode selection.
  2179. 'listchars'    Set character to show in 'list' mode for end-of-line, tabs and
  2180.         trailing spaces. (partly by Smith) Also sets character to
  2181.         display if a line doesn't fit when 'nowrap' is set.
  2182. 'matchpairs'    Allows matching '<' with '>', and other single character
  2183.         pairs.
  2184. 'mousefocus'    Window focus follows mouse (partly by Terhaar).  Changing the
  2185.         focus with a keyboard command moves the pointer to that
  2186.         window.  Also move the pointer when changing the window layout
  2187.         (split window, change window height, etc.).
  2188. 'mousemodel'    Change use of mouse buttons.
  2189. 'selection'    When set to "inclusive" or "exclusive", the cursor can go one
  2190.         character past the end of the line in Visual or Select mode.
  2191.         When set to "old" the old behavior is used.  When
  2192.         "inclusive", the character under the cursor is included in the
  2193.         operation.  When using "exclusive", the new "ve" entry of
  2194.         'guicursor' is used.  The default is a vertical bar.
  2195. 'selectmode'    Tells when to start Select mode instead of Visual mode.
  2196. 'sessionoptions' Sets behavior of ":mksession". (Negri)
  2197. 'showfulltag'    When completing a tag in Insert mode, show the tag search
  2198.         pattern (tidied up) as a choice as well (if there is one).
  2199. 'swapfile'    Whether to use a swap file for a buffer.
  2200. 'syntax'    When it is set, the syntax by that name is loaded.  Allows for
  2201.         setting a specific syntax from a modeline.
  2202. 'ttymouse'    Allows using xterm mouse codes for terminals which name
  2203.         doesn't start with "xterm".
  2204. 'wildignore'    List of patterns for files that should not be completed at
  2205.         all.
  2206. 'wildmode'    Can be used to set the type of expansion for 'wildchar'.
  2207.         Replaces the CTRL-T command for command line completion.
  2208.         Don't beep when listing all matches.
  2209. 'winaltkeys'    Win32 and Motif GUI.  When "yes", ALT keys are handled
  2210.         entirely by the window system.  When "no", ALT keys are never
  2211.         used by the window system.  When "menu" it depends on whether
  2212.         a key is a menu shortcut.
  2213. 'winminheight'    Minimal height for each window.  Default is 1.  Set to 0 if
  2214.         you want zero-line windows.  Scrollbar is removed for
  2215.         zero-height windows. (Negri)
  2216.  
  2217.  
  2218.  
  2219. New Ex commands                        *new-ex-commands-5.2*
  2220. ---------------
  2221.  
  2222. |:badd|        Add file name to buffer list without side effects.  (Negri)
  2223. |:behave|    Quickly set MS-Windows or xterm behavior.
  2224. |:browse|    Use file selection dialog.
  2225. |:call|        Call a function, optionally with a range.
  2226. |:cnewer|
  2227. |:colder|    To access a stack of quickfix error lists.
  2228. |:comclear|    Clear all user-defined commands.
  2229. |:command|    Define a user command.
  2230. |:continue|    Go back to ":while".
  2231. |:confirm|    Ask confirmation if something unexpected happens.
  2232. |:cscope|    Execute cscope command.
  2233. |:cstag|    Use cscope to jump to a tag.
  2234. |:delcommand|    Delete a user-defined command.
  2235. |:delfunction|    Delete a user-defined function.
  2236. |:endfunction|    End of user-defined function.
  2237. |:function|    Define a user function.
  2238. |:grep|        Works similar to ":make". (Negri)
  2239. |:mksession|    Create a session file.
  2240. |:nohlsearch|    Stop 'hlsearch' highlighting for a moment.
  2241. |:Print|    This is Vi compatible.  Does the same as ":print".
  2242. |:promptfind|    Search dialog (Win32 GUI).
  2243. |:promptrepl|    Search/replace dialog (Win32 GUI).
  2244. |:return|    Return from a user-defined function.
  2245. |:simalt|    Win32 GUI: Simulate alt-key pressed.  (Negri)
  2246. |:smagic|    Like ":substitute", but always use 'magic'.
  2247. |:snomagic|    Like ":substitute", but always use 'nomagic'.
  2248. |:tcl|        Execute TCL command.
  2249. |:tcldo|    Execute TCL command for a range of lines.
  2250. |:tclfile|    Execute a TCL script file.
  2251. |:tearoff|    Tear-off a menu (Win32 GUI).
  2252. |:tmenu|
  2253. |:tunmenu|    Win32 GUI: menu tooltips.  (Negri)
  2254. |:star|    :*    Execute a register.
  2255.  
  2256.  
  2257. Changed                            *changed-5.2*
  2258. -------
  2259.  
  2260. Renamed functions:
  2261.         buffer_exists()       -> bufexists()
  2262.         buffer_name()      -> bufname()
  2263.         buffer_number()    -> bufnr()
  2264.         file_readable()    -> filereadable()
  2265.         highlight_exists() -> hlexists()
  2266.         highlightID()      -> hlID()
  2267.         last_buffer_nr()   -> bufnr("$")
  2268. The old ones are still there, for backwards compatibility.
  2269.  
  2270. The CTRL-_ command in Insert and Command-line mode is only available when the
  2271. new 'allowrevins' option is set.  Avoids that people who want to type SHIFT-_
  2272. accidentally enter reverse Insert mode, and don't know how to get out.
  2273.  
  2274. When a file name path in ":tselect" listing is too long, remove a part in the
  2275. middle and put "..." there.
  2276.  
  2277. Win32 GUI: Made font selector appear inside Vim window, not just any odd
  2278. place. (Negri)
  2279.  
  2280. ":bn" skips help buffers, unless currently in a help buffer. (Negri)
  2281.  
  2282. When there is a status line and only one window, don't show '^' in the status
  2283. line of the current window.
  2284.  
  2285. ":*" used to be used for "'<,'>", the Visual area.  But in Vi it's used as an
  2286. alternative for ":@".  When 'cpoptions' includes '*' this is Vi compatible.
  2287.  
  2288. When 'insertmode' is set, using CTRL-O to execute a mapping will work like
  2289. 'insertmode' was not set.  This allows "normal" mappings to be used even when
  2290. 'insertmode' is set.
  2291.  
  2292. When 'mouse' was set already (e.g., in the .vimrc file), don't automatically
  2293. set 'mouse' when the GUI starts.
  2294.  
  2295. Removed the 'N', 'I' and 'A' flags from the 'mouse' option.
  2296.  
  2297. Renamed "toggle option" to "boolean option".  Some people thought that ":set
  2298. xyz" would toggle 'xyz' on/off each time.
  2299.  
  2300. The internal variable "shell_error" contains the error code from the shell,
  2301. instead of just 0 or 1.
  2302.  
  2303. When inserting or replacing, typing CTRL-V CTRL-<CR> used to insert "<C-CR>".
  2304. That is not very useful.  Now the CTRL key is ignored and a <CR> is inserted.
  2305. Same for all other "normal" keys with modifiers.  Mapping these modified key
  2306. combinations is still possible.
  2307. In Insert mode, <C-CR> and <S-Space> can be inserted by using CTRL-K and then
  2308. the special character.
  2309.  
  2310. Moved "quotes" file to doc/quotes.txt, and "todo" file to doc/todo.txt.  They
  2311. are now installed like other documentation files.
  2312.  
  2313. winheight() function returns -1 for a non-existing window.  It used to be
  2314. zero, but that is a valid height now.
  2315.  
  2316. The default for 'selection' is "inclusive", which makes a difference when
  2317. using "$" or the mouse to move the cursor in Visual mode.
  2318.  
  2319. ":q!" does not exit when there are changed buffers which are hidden.  Use
  2320. ":qa!" to exit anyway.
  2321.  
  2322. Disabled the Perl/Python/Tcl interfaces by default.  Not many people use them
  2323. and they make the executable a lot bigger.  The internal scripting language is
  2324. now powerful enough for most tasks.
  2325.  
  2326. The strings from the 'titlestring' and 'iconstring' options are used
  2327. untranslated for the Window title and icon.  This allows for including a <CR>.
  2328. Previously a <CR> would be shown as "^M" (two characters).
  2329.  
  2330. When a mapping is started in Visual or Select mode which was started from
  2331. Insert mode (the mode shows "(insert) Visual"), don't return to Insert mode
  2332. until the mapping has ended.  Makes it possible to use a mapping in Visual
  2333. mode that also works when the Visual mode was started from Select mode.
  2334.  
  2335. Menus in $VIMRUNTIME/menu.vim no longer overrule existing menus.  This helps
  2336. when defining menus in the .vimrc file, or when sourcing mswin.vim.
  2337.  
  2338. Unix: Use /var/tmp for .swp files, if it exists.  Files there survive a
  2339. reboot (at least on Linux).
  2340.  
  2341.  
  2342. Added                            *added-5.2*
  2343. -----
  2344.  
  2345. --with-motif-lib configure argument.  Allows for using a static Motif library.
  2346.  
  2347. Support for mapping numeric keypad +,-,*,/ keys. (Negri)
  2348. When not mapped, they produce the normal character.
  2349.  
  2350. Win32 GUI: When directory dropped on Gvim, cd there and edit new buffer.
  2351. (Negri)
  2352.  
  2353. Win32 GUI: Made CTRL-Break work as interrupt, so that CTRL-C can be
  2354. used for mappings.
  2355.  
  2356. In the output of ":map", highlight the "*" to make clear it's not part of the
  2357. rhs. (Roemer)
  2358.  
  2359. When showing the Visual area, the cursor is not switched off, so that it can
  2360. be located.  The Visual area is now highlighted with a grey background in the
  2361. GUI.  This makes the cursor visible when it's also reversed.
  2362.  
  2363. Win32: When started with single full pathname (e.g. via double-clicked file),
  2364. cd to that file's directory. (Negri)
  2365.  
  2366. Win32 GUI: Tear-off menus, with ":tearoff <menu-name>" command. (Negri)
  2367. 't' option to 'guioptions': Add tearoff menu items for Win32 GUI and Motif.
  2368. It's included by default.
  2369. Win32 GUI: tearoff menu with submenus is indicated with a ">>". (Negri)
  2370.  
  2371. Added ^Kaa and ^KAA digraphs.
  2372. Added "euro" symbol to digraph.c. (Corry)
  2373.  
  2374. Support for Motif menu shortcut keys, using '&' like MS-Windows (Ollis).
  2375. Other GUIs ignore '&' in a menu name.
  2376.  
  2377. DJGPP: Faster screen updating (John Lange).
  2378.  
  2379. Clustering of syntax groups ":syntax cluster" (Bigham).
  2380. Including syntax files: ":syntax include" (Bigham).
  2381.  
  2382. Keep column when switching buffers, when 'nosol' is set (Radics).
  2383.  
  2384. Number function for Perl interface.
  2385.  
  2386. Support for Intellimouse in Athena GUI. (Jensen)
  2387.  
  2388. ":sleep" also accepts an argument in milliseconds, when "m" is used.
  2389.  
  2390. Added 'p' flag in 'guioptions': Install callbacks for enter/leave window
  2391. events.  Makes cursor blinking work for Terhaar, breaks it for me.
  2392.  
  2393. "--help" and "--version" command-line arguments.
  2394.  
  2395. Non-text in ":list" output is highlighted with NonText.
  2396.  
  2397. Added text objects: "i(" and "i)" as synonym for "ib".  "i{" and "i}" as
  2398. synonym for "iB".  New: "i<" and "i>", to select <thing>.  All this also for
  2399. "a" objects.
  2400.  
  2401. 'O' flag in 'shortmess': message for reading a file overwrites any previous
  2402. message. (Negri)
  2403.  
  2404. Win32 GUI: 'T' flag in 'guioptions': switch toolbar on/off.
  2405. Included a list with self-made toolbar bitmaps.  (Negri)
  2406.  
  2407. Added menu priority for sub-menus.  Implemented for Win32 and Motif GUI.
  2408. Display menu priority with ":menu" command.
  2409. Default and Syntax menus now include priority for items.  Allows inserting
  2410. menu items in between the default ones.
  2411.  
  2412. When the 'number' option is on, highlight line numbers with the LineNr group.
  2413.  
  2414. "Ignore" highlight group: Text highlighted with this is made blank.  It is
  2415. used to hide special characters in the help text.
  2416.  
  2417. Included Exuberant Ctags version 2.3, with C++ support, Java support and
  2418. recurse into directories. (Hiebert)
  2419.  
  2420. When a tags file is not sorted, and this is detected (in a simplistic way), an
  2421. error message is given.
  2422.  
  2423. ":unlet" accepts a "!", to ignore non-existing variables, and accepts more
  2424. than one argument. (Roemer)
  2425. Completion of variable names for ":unlet". (Roemer)
  2426.  
  2427. When there is an error in a function which is called by another function, show
  2428. the call stack in the error message.
  2429.  
  2430. New file name modifiers:
  2431. ":.": reduce file name to be relative to current dir.
  2432. ":~": reduce file name to be relative to home dir.
  2433. ":s?pat?sub?": substitute "pat" with "sub" once.
  2434. ":gs?pat?sub?": substitute "pat" with "sub" globally.
  2435.  
  2436. New configure arguments: --enable-min-features and --enable-max-features.
  2437. Easy way to switch to minimum or maximum features.
  2438.  
  2439. New compile-time feature: modify_fname.  For file name modifiers, e.g,
  2440. "%:p:h".  Can be disabled to save some code (16 bit DOS).
  2441.  
  2442. When using whole-line completion in Insert mode, and 'cindent' is set, indent
  2443. the line properly.
  2444.  
  2445. MSDOS and Win32 console: 'guicursor' sets cursor thickness. (Negri)
  2446.  
  2447. Included new set of Farsi fonts. (Shiran)
  2448.  
  2449. Accelerator text now also works in Motif.  All menus can be defined with & for
  2450. mnemonic and TAB for accelerator text.  They are ignored on systems that don't
  2451. support them.
  2452. When removing or replacing a menu, compare the menu name only up to the <Tab>
  2453. before the mnemonic.
  2454.  
  2455. 'i' and 'I' flags after ":substitute": ignore case or not.
  2456.  
  2457. "make install" complains if the runtime files are missing.
  2458.  
  2459. Unix: When finding an existing swap file that can't be opened, mention the
  2460. owner of the file in the ATTENTION message.
  2461.  
  2462. The 'i', 't' and 'k' options in 'complete' now also print the place where they
  2463. are looking for matches. (Acevedo)
  2464.  
  2465. "gJ" command: Join lines without inserting a space.
  2466.  
  2467. Setting 'keywordprg' to "man -s" is handled specifically.  The "-s" is removed
  2468. when no count given, the count is added otherwise.  Configure checks if "man
  2469. -s 2 read" works, and sets the default for 'keywordprg' accordingly.
  2470.  
  2471. If you do a ":bd" and there is only one window open, Vim tries to move to a
  2472. buffer of the same type (i.e. non-help to non-help, help to help), for
  2473. consistent behavior to :bnext/:bprev. (Negri)
  2474.  
  2475. Allow "<Nop>" to be used as the rhs of a mapping.  ":map xx <Nop>", maps "xx"
  2476. to nothing at all.
  2477.  
  2478. In a ":menu" command, "<Tab>" can be used instead of a real tab, in the menu
  2479. path.  This makes it more easy to type, no backslash needed.
  2480.  
  2481. POSIX compatible character classes for regexp patterns: [:alnum:], [:alpha:],
  2482. [:blank:], [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:], [:punct:],
  2483. [:space:], [:upper:] and [:xdigit:]. (Briscoe)
  2484.  
  2485. regexp character classes (for fast syntax highlight matching):
  2486.     digits:        \d [0-9]        \D  not digit (Roemer)
  2487.     hex:        \x [0-9a-fA-F]    \X  not hex
  2488.     octal:        \o [0-7]        \O  not octal
  2489.     word:        \w [a-zA-Z0-9_]    \W  not word
  2490.     head:        \h [a-zA-Z_]    \H  not head
  2491.     alphabetic: \a [a-zA-Z]        \A  not alphabetic
  2492.     lowercase:  \l [a-z]        \L  not lowercase
  2493.     uppercase:  \u [A-Z]        \U  not uppercase
  2494.  
  2495. ":set" now accepts "+=", |^=" and "-=": add or remove parts of a string
  2496. option, add or subtract a number from a number option.  A comma is
  2497. automagically inserted or deleted for options that are a comma separated list.
  2498.  
  2499. Filetype feature, for autocommands.  Uses a file type instead of a pattern to
  2500. match a file.  Currently only used for RISC OS.  (Leonard)
  2501.  
  2502. In a pattern for an autocommand, environment variables can be used.  They are
  2503. expanded when the autocommand is defined.
  2504.  
  2505. "BufFilePre" and "BufFilePost" autocommand evens: Before and after applying
  2506. the ":file" command to change the name of a buffer.
  2507. "VimLeavePre" autocommand event: before writing the .viminfo file.
  2508.  
  2509. For autocommands argument: <abuf> is buffer number, like <afile>.
  2510.  
  2511. Made syntax highlighting a bit faster when scrolling backwards, by keeping
  2512. more syncing context.
  2513.  
  2514. Win32 GUI: Made scrolling faster by avoiding a redraw when deleting or
  2515. inserting screen lines.
  2516.  
  2517. GUI: Made scrolling faster by not redrawing the scrollbar when the thumb moved
  2518. less than a pixel.
  2519.  
  2520. Included ":highlight" in bugreport.vim.
  2521.  
  2522. Created install.exe program, for simplistic installation on DOS and
  2523. MS-Windows.
  2524.  
  2525. New register: '_', the black hole.  When writing to it, nothing happens.  When
  2526. reading from it, it's always empty.  Can be used to avoid a delete or change
  2527. command to modify the registers, or reduce memory use for big changes.
  2528.  
  2529. CTRL-V xff enters character by hex number.  CTRL-V o123 enters character by
  2530. octal number. (Aaron)
  2531.  
  2532. Improved performance of syntax highlighting by skipping check for "keepend"
  2533. when there isn't any.
  2534.  
  2535. Moved the mode message ("-- INSERT --") to the last line of the screen.  When
  2536. 'cmdheight' is more than one, messages will remain readable.
  2537.  
  2538. When listing matching files, they are also sorted on 'suffixes', such that
  2539. they are listed in the same order as CTRL-N retrieves them.
  2540.  
  2541. synIDattr() takes a third argument (optionally), which tells for which
  2542. terminal type to get the attributes for.  This makes it possible to run
  2543. 2html.vim outside of gvim (using color names instead of #RRGGBB).
  2544.  
  2545. Memory profiling, only for debugging.  Prints at exit, and with "g^A" command.
  2546. (Kahn)
  2547.  
  2548. DOS: When using a file in the current drive, remove the drive name:
  2549. "A:\dir\file" -> "\dir\file".  This helps when moving a session file on a
  2550. floppy from "A:\dir" to "B:\dir".
  2551.  
  2552. Increased number of remembered jumps from 30 to 50 per window.
  2553.  
  2554. Command to temporarily disable 'hls' highlighting until the next search:
  2555. ":nohlsearch".
  2556.  
  2557. "gp" and "gP" commands: like "p" and "P", but leave the cursor just after the
  2558. inserted text.  Used for the CTRL-V command in MS-Windows mode.
  2559.  
  2560.  
  2561. Fixed                            *fixed-5.2*
  2562. -----
  2563.  
  2564. Win32 GUI: Could draw text twice in one place, for fake-bold text.  Removed
  2565. this, Windows will handle the bold text anyway. (Negri)
  2566.  
  2567. patch 5.1.1: Win32s GUI: pasting caused a crash (Negri)
  2568.  
  2569. patch 5.1.2: When entering another window, where characters before the cursor
  2570. have been deleted, could have a cursor beyond the end of the line.
  2571.  
  2572. patch 5.1.3: Win32s GUI: Didn't wait for external command to finish. (Negri)
  2573.  
  2574. patch 5.1.4: Makefile.w32 can now also be used to generate the OLE version
  2575. (Scott).
  2576.  
  2577. patch 5.1.5: Crashed when using syntax highlighting: cursor on a line that
  2578. doesn't fit in the window, and splitting that line in two.
  2579.  
  2580. patch 5.1.6: Visual highlighting bug: After ":set nowrap", go to end of line
  2581. (so that the window scrolls horizontally), ":set wrap".  Following Visual
  2582. selection was wrong.
  2583.  
  2584. patch 5.1.7: When 'tagbsearch' off, and 'ignorecase' off, still could do
  2585. binary searching.
  2586.  
  2587. patch 5.1.8: Win32 GUI: dragging the scrollbar didn't update the ruler.
  2588.  
  2589. patch 5.1.9: Using ":gui" in .vimrc, caused xterm cursor to disappear.
  2590.  
  2591. patch 5.1.10: A CTRL-N in Insert mode could cause a crash, when a buffer
  2592. without a name exists.
  2593.  
  2594. patch 5.1.11: "make test" didn't work in the shadow directory.  Also adjusted
  2595. "make shadow" for the links in the ctags directory.
  2596.  
  2597. patch 5.1.12: "buf 123foo" used "123" as a count, instead as the start of a
  2598. buffer name.
  2599.  
  2600. patch 5.1.13: When completing file names on the command-line, reallocating the
  2601. command-line may go wrong.
  2602.  
  2603. patch 5.1.14: ":[nvci]unmenu" removed menu for all modes, when full menu patch
  2604. specified.
  2605.  
  2606. Graceful handling of NULLs in drag-dropped file list.  Handle passing NULL to
  2607. Fullname_save(). (Negri)
  2608.  
  2609. Win32: ":!start" to invoke a program without opening a console, swapping
  2610. screens, or waiting for completion in either console or gui version, e.g. you
  2611. can type ":!start winfile".  ALSO fixes "can't delete swapfile after spawning
  2612. a shell" bug. (enhancement of Aaron patch) (Negri)
  2613.  
  2614. Win32 GUI: Fix CTRL-X default keymapping to be more Windows-like. (Negri)
  2615.  
  2616. Shorten filenames on startup.  If in /foo/bar, entering "vim ../bar/bang.c"
  2617. displays "bang.c" in status bar, not "/foo/bar/bang.c"  (Negri)
  2618.  
  2619. Win32 GUI: No copy to Windows clipboard when it's not desired.
  2620.  
  2621. Win32s: Fix pasting from clipboard - made an assumption not valid under
  2622. Win32s. (Negri)
  2623.  
  2624. Win32 GUI: Speed up calls to gui_mch_draw_string() and cursor drawing
  2625. functions. (Negri)
  2626.  
  2627. Win32 GUI: Middle mouse button emulation now works in GUI! (Negri)
  2628.  
  2629. Could skip messages when combining commands in one line, e.g.:
  2630. ":echo "hello" | write".
  2631.  
  2632. Perl interpreter was disabled before executing VimLeave autocommands.  Could
  2633. not use ":perl" in them.  (Aaron)
  2634.  
  2635. Included patch for the Intellimouse (Aaron/Robinson).
  2636.  
  2637. Could not set 'ls' to one, when last window has only one line.  (Mitterand)
  2638.  
  2639. Fixed a memory leak when removing menus.
  2640.  
  2641. After ":only" the ruler could overwrite a message.
  2642.  
  2643. Dos32: removed changing of __system_flags.  It appears to work better when
  2644. it's left at the default value.
  2645.  
  2646. p_aleph was an int instead of along, caused trouble on systems where
  2647. sizeof(int) != sizeof(long). (Schmidt)
  2648.  
  2649. Fixed enum problems for Ultrix. (Seibert)
  2650.  
  2651. Small redraw problem: "dd" on last line in file cleared wrong line.
  2652.  
  2653. Didn't interpret "cmd | endif" when "cmd" starts with a range.  E.g. "if 0 |
  2654. .d | endif".
  2655.  
  2656. Command "+|" on the last line of the file caused ml_get errors.
  2657.  
  2658. Memory underrun in eval_vars(). (Aaron)
  2659.  
  2660. Don't rename files in a difficult way, except on Windows 95 (was also done on
  2661. Windows NT).
  2662.  
  2663. Win32 GUI: An external command that produces an error code put the error
  2664. message in a dialog box.  had to close the window and close the dialog.  Now
  2665. the error code is displayed in the console. (Negri)
  2666.  
  2667. "comctl32.lib" was missing from the GUI libraries in Makefile.w32. (Battle)
  2668.  
  2669. In Insert mode, when entering a window in Insert mode, allow the cursor to be
  2670. one char beyond the text.
  2671.  
  2672. Renamed machine dependent rename() to mch_rename().  Define mch_rename() to
  2673. rename() when it works properly.
  2674.  
  2675. Rename vim_chdir() to mch_chdir(), because it's machine dependent.
  2676.  
  2677. When using an arglist, and editing file 5 of 4, ":q" could cause "-1 more
  2678. files to edit" error.
  2679.  
  2680. In if_python.c, VimCommand() caused an assertion when a do_cmdline() failed.
  2681. Moved the Python_Release_Vim() to before the VimErrorCheck().  (Harkins)
  2682.  
  2683. Give an error message for an unknown argument after "--".  E.g. for "vim
  2684. --xyz".
  2685.  
  2686. The FileChangedShell autocommand didn't set <afile> to the name of the changed
  2687. file.
  2688.  
  2689. When doing ":e file", causing the attention message, there sometimes was no
  2690. hit-enter prompt.  Caused by empty line or "endif" at end of sourced file.
  2691.  
  2692. A large number of patches for the VMS version. (Hunsaker)
  2693.  
  2694. When CTRL-L completion (find longest match) results in a shorter string, no
  2695. completion is done (happens with ":help").
  2696.  
  2697. Crash in Win32 GUI version, when using an Ex "@" command, because
  2698. LinePointers[] was used while not initialized.
  2699.  
  2700. Win32 GUI: allow mapping of Alt-Space.
  2701.  
  2702. Output from "vim -h" was sent to stderr.  Sending it to stdout is better, so
  2703. one can use "vim -h | more".
  2704.  
  2705. In command-line mode, ":vi[!]" should reload the file, just like ":e[!]".
  2706. In Ex mode, ":vi" stops Ex mode, but doesn't reload the file.  This is Vi
  2707. compatible.
  2708.  
  2709. When using a ":set ls=1" in the .gvimrc file, would get a status line for a
  2710. single window.  (Robinson)
  2711.  
  2712. Didn't give an error message for ":set ai,xx". (Roemer)
  2713. Didn't give an error message for ":set ai?xx", ":set ai&xx", ":set ai!xx".
  2714.  
  2715. Non-Unix systems: That a file exists but is unreadable is recognized as "new
  2716. file".  Now check for existence when file can't be opened (like Unix).
  2717.  
  2718. Unix: osdef.sh didn't handle declarations where the function name is at the
  2719. first column of the line.
  2720.  
  2721. DJGPP: Shortening of file names didn't work properly, because get_cwd()
  2722. returned a path with backslashes. (Negri)
  2723.  
  2724. When using a 'comments' part where a space is required after the middle part,
  2725. always insert a space when starting a new line.  Helps for C comments, below a
  2726. line with "/****".
  2727.  
  2728. Replacing path of home directory with "~/" could be wrong for file names
  2729. with embedded spaces or commas.
  2730.  
  2731. A few fixes for the Sniff interface. (Leherbauer)
  2732.  
  2733. When asking to hit 'y' or 'n' (e.g. for ":3,1d"), using the mouse caused
  2734. trouble.  Same for ":s/x/y/c" prompt.
  2735.  
  2736. With 'nowrap' and 'list', a Tab halfway on the screen was displayed as blanks,
  2737. instead of the characters specified with 'listchars'.  Also for other
  2738. characters that take more than one screen character.
  2739.  
  2740. When setting 'guifont' to an unknown font name, the previous font was lost and
  2741. a default font would be used. (Steed)
  2742.  
  2743. DOS: Filenames in the root directory didn't get shortened properly. (Negri)
  2744.  
  2745. DJGPP: making a full path name out of a file name didn't work properly when
  2746. there is no _fullpath() function. (Negri)
  2747.  
  2748. Win32 console: ":sh" caused a crash. (Negri)
  2749.  
  2750. Win32 console: Setting 'lines' and/or 'columns' in the _vimrc failed miserably
  2751. (could hang Windows 95). (Negri)
  2752.  
  2753. Win32: The change-drive function was not correct, went to the wrong drive.
  2754. (Tsindlekht)
  2755.  
  2756. GUI: When editing a command line in Ex mode, Tabs were sometimes not
  2757. backspaced properly, and unprintable characters were displayed directly.
  2758. non-GUI can still be wrong, because a system function is called for this.
  2759.  
  2760. ":set" didn't stop after an error.  For example ":set no ai" gave an error for
  2761. "no", but still set "ai".  Now ":set" stops after the first error.
  2762.  
  2763. When running configure for ctags, $LDFLAGS wasn't passed to it, causing
  2764. trouble for IRIX.
  2765.  
  2766. "@%" and "@#" when file name not set gave an error message.  Now they just
  2767. return an empty string. (Steed)
  2768.  
  2769. CTRL-X and CTRL-A didn't work correctly with negative hex and octal numbers.
  2770. (Steed)
  2771.  
  2772. ":echo" always started with a blank.
  2773.  
  2774. Updating GUI cursor shape didn't always work (e.g., when blinking is off).
  2775.  
  2776. In silent Ex mode ("ex -s" or "ex <file") ":s///p" didn't print a line.  Also
  2777. a few other commands that explicitly print a text line didn't work.  Made this
  2778. Vi compatible.
  2779.  
  2780. Win32 version of _chdrive() didn't return correct value. (Tsindlekht)
  2781.  
  2782. When using 't' in 'complete' option, no longer give an error message for a
  2783. missing tags file.
  2784.  
  2785. Unix: tgoto() can return NULL, which was not handled correctly in configure.
  2786.  
  2787. When doing ":help" from a buffer where 'binary' is set, also edited the help
  2788. file in binary mode.  Caused extra ^Ms for DOS systems.
  2789.  
  2790. Cursor position in a file was reset to 1 when closing a window.
  2791.  
  2792. ":!ls" in Ex mode switched off echo.
  2793.  
  2794. When doing a double click in window A, while currently in window B, first
  2795. click would reset double click time, had to click three times to select a
  2796. word.
  2797.  
  2798. When using <F11> in mappings, ":mkexrc" produced an exrc file that can't be
  2799. used in Vi compatible mode.  Added setting of 'cpo' to avoid this.  Also, add
  2800. a CTRL-V in front of a '<', to avoid a normal string to be interpreted as a
  2801. special key name.
  2802.  
  2803. Gave confusing error message for ":set guifont=-*-lucida-*": first "font is
  2804. not fixed width", then "Unknown font".
  2805.  
  2806. Some options were still completely left out, instead of included as hidden
  2807. options.
  2808.  
  2809. While running the X11 GUI, ignore SIGHUP signals.  Avoids a crash after
  2810. executing an external command (in rare cases).
  2811.  
  2812. In os_unixx.h, signal() was defined to sigset(), while it already was.
  2813.  
  2814. Memory leak when executing autocommands (was reported as a memory leak in
  2815. syntax highlighting).
  2816.  
  2817. Didn't print source of error sometimes, because pointers were the same,
  2818. although names were different.
  2819.  
  2820. Avoid a number of UMR errors from Purify (third argument to open()).
  2821.  
  2822. A swap file could still be created just after setting 'updatecount' to zero,
  2823. when there is an empty buffer and doing ":e file". (Kutschera)
  2824.  
  2825. Test 35 failed on 64 bit machines. (Schild)
  2826.  
  2827. With "p" and "P" commands, redrawing was slow.
  2828.  
  2829. Awk script for html documentation didn't work correctly with AIX awk.
  2830. Replaced "[ ,.);\]    ]" with "[] ,.);    ]". (Briscoe)
  2831. The makehtml.awk script had a small problem, causing extra lines to be
  2832. inserted. (Briscoe)
  2833.  
  2834. "gqgq" could not be repeated.  Repeating for "gugu" and "gUgU" worked in a
  2835. wrong way.  Also made "gqq" work to be consistent with "guu".
  2836.  
  2837. C indent was wrong after "case ':':".
  2838.  
  2839. ":au BufReadPre *.c put": Line from put text was deleted, because the buffer
  2840. was still assumed to be empty.
  2841.  
  2842. Text pasted with the Edit/Paste menu was subject to 'textwidth' and
  2843. 'autoindent'.  That was inconsistent with using the mouse to paste.  Now "*p
  2844. is used.
  2845.  
  2846. When using CTRL-W CTRL-] on a word that's not a tag, and then CTRL-] on a tag,
  2847. window was split.
  2848.  
  2849. ":ts" got stuck on a tags line that has two extra fields.
  2850.  
  2851. In Insert mode, with 'showmode' on, <C-O><C-G> message was directly
  2852. overwritten by mode message, if preceded with search command warning message.
  2853.  
  2854. When putting the result of an expression with "=<expr>p, newlines were
  2855. inserted like ^@ (NUL in the file).  Now the string is split up in lines at
  2856. the newline.
  2857.  
  2858. putenv() was declared with "const char *" in pty.c, but with "char *" in
  2859. osdef2.h.in.  Made the last one also "const char *".
  2860.  
  2861. ":help {word}", where +{word} is a feature, jumped to the feature list instead
  2862. of where the command was explained.  E.g., ":help browse", ":help autocmd".
  2863.  
  2864. Using the "\<xx>" form in an expression only got one byte, even when using a
  2865. special character that uses several bytes (e.g., "\<F9>").
  2866. Changed "\<BS>" to produce CTRL-H instead of the special key code for the
  2867. backspace key.  "\<Del>" produces 0x7f.
  2868.  
  2869. ":mkvimrc" didn't write a command to set 'compatible' or 'nocompatible'.
  2870.  
  2871. The shell syntax didn't contain a "syn sync maxlines" setting.  In a long file
  2872. without recognizable items, syncing took so long it looked like Vim hangs.
  2873. Added a maxlines setting, and made syncing interruptible.
  2874.  
  2875. The "gs" command didn't flush output before waiting.
  2876.  
  2877. Memory leaks for:
  2878.     ":if 0 | let a = b . c | endif"
  2879.     "let a = b[c]"
  2880.     ":so {file}" where {file} contains a ":while"
  2881.  
  2882. GUI: allocated fonts were never released. (Leonard)
  2883.  
  2884. Makefile.bor:
  2885. - Changed $(DEFINES) into a list of "-D" options, so that it can also be used
  2886.   for the resource compiler. (not tested!)
  2887. - "bcc.cfg" was used for all configurations.  When building for another
  2888.   configuration, the settings for the previous one would be used.  Moved
  2889.   "bcc.cfg" to the object directory. (Geddes)
  2890. - Included targets for vimrun, install, ctags and xxd.  Changed the default to
  2891.   use the Borland DLL Runtime Library, makes Vim.exe a log smaller. (Aaron)
  2892.  
  2893. "2*" search for the word under the cursor with "2" prepended. (Leonard)
  2894.  
  2895. When deleting into a specific register, would still overwrite the non-Win32
  2896. GUI selection.  Now ""x"*P works.
  2897.  
  2898. When deleting into the "" register, would write to the last used register.
  2899. Now ""x always writes to the unnamed register.
  2900.  
  2901. GUI Athena: A submenu with a '.' in it didn't work.  E.g.,
  2902. ":amenu Syntax.XY\.Z.foo lll".
  2903.  
  2904. When first doing ":tag foo" and then ":tnext" and/or ":tselect" the order of
  2905. matching tags could change, because the current file is different.  Now the
  2906. existing matches are kept in the same order, newly found matches are added
  2907. after them, not matter what the current file is.
  2908.  
  2909. ":ta" didn't find the second entry in a tags file, if the second entry was
  2910. longer than the first one.
  2911.  
  2912. When using ":set si tw=7" inserting "foo {^P}" made the "}" inserted at the
  2913. wrong position.  can_si was still TRUE when the cursor is not in the indent of
  2914. the line.
  2915.  
  2916. Running an external command in Win32 version had the problem that Vim exits
  2917. when the X on the console is hit (and confirmed).  Now use the "vimrun"
  2918. command to start the external command indirectly. (Negri)
  2919.  
  2920. Win32 GUI: When running an external filter, do it in a minimized DOS box.
  2921. (Negri)
  2922.  
  2923. ":let" listed variables without translation into printable characters.
  2924.  
  2925. Win32 console: When resizing the window, switching back to the old size
  2926. (when exiting or executing an external command) sometimes failed. (Negri)
  2927. This appears to also fix a "non fixable" problem:
  2928. Win32 console in NT 4.0: When running Vim in a cmd window with a scrollbar,
  2929. the scrollbar disappeared and was not restored when Vim exits.  This does work
  2930. under NT 3.51, it appears not to be a Vim problem.
  2931.  
  2932. When executing BufDelete and BufUnload autocommands for a buffer without a
  2933. name, the name of the current buffer was used for <afile>.
  2934.  
  2935. When jumping to a tag it reported "tag 1 of >2", while in fact there could be
  2936. only two matches.  Changed to "tag 1 of 2 or more".
  2937.  
  2938. ":tjump tag" did a linear search in the tags file, which can be slow.
  2939.  
  2940. Configure didn't find "LibXm.so.2.0", a Xm library with a version number.
  2941.  
  2942. Win32 GUI: When using a shifted key with ALT, the shift modifier would remain
  2943. set, even when it was already used by changing the used key.  E.g., "<M-S-9>"
  2944. resulted in "<M-S-(>", but it should be "<M-(>". (Negri)
  2945.  
  2946. A call to ga_init() was often followed by setting growsize and itemsize.
  2947. Created ga_init2() for this, which looks better. (Aaron)
  2948.  
  2949. Function filereadable() could call fopen() with an empty string, which might
  2950. be illegal.
  2951.  
  2952. X Windows GUI: When executing an external command that outputs text, could
  2953. write one character beyond the end of a buffer, which caused a crash. (Kohan)
  2954.  
  2955. When using "*" or "#" on a string that includes '/' or '?' (when these are
  2956. included in 'isk'), they were not escaped. (Parmelan)
  2957.  
  2958. When adding a ToolBar menu in the Motif GUI, the submenu_id field was not
  2959. cleared, causing random problems.
  2960.  
  2961. When adding a menu, the check if this menu (or submenu) name already exists
  2962. didn't compare with the simplified version (no mnemonic or accelerator) of the
  2963. new menu.  Could get two menus with the same name, e.g., "File" and "&File".
  2964.  
  2965. Breaking a line because of 'textwidth' at the last line in the window caused a
  2966. redraw of the whole window instead of a scroll.  Speeds up normal typing with
  2967. 'textwidth' a lot for slow terminals.
  2968.  
  2969. An invalid line number produced an "invalid range" error, even when it wasn't
  2970. to be executed (inside "if 0").
  2971.  
  2972. When the unnamed, first buffer is re-used, the "BufDelete" autocommand was
  2973. not called.  It would stick in a buffer list menu.
  2974.  
  2975. When doing "%" on the NUL after the line, a "{" or "}" in the last character
  2976. of the line was not found.
  2977.  
  2978. The Insert mode menu was not used for the "s" command, the Operator-pending
  2979. menu was used instead.
  2980.  
  2981. With 'compatible' set, some syntax highlighting was not correct, because of
  2982. using "[\t]" for a search pattern.  Now use the regexps for syntax
  2983. highlighting like the 'cpoptions' option is empty (as was documented already).
  2984.  
  2985. When using "map <M-Space> ms" or "map <Space> sss" the output of ":map" didn't
  2986. show any lhs for the mapping (if 'isprint' includes 160).  Now always use
  2987. <Space> and <M-Space>, even when they are printable.
  2988.  
  2989. Adjusted the Syntax menu, so that the lowest entry fits on a small screen (for
  2990. Athena, where menus don't wrap).
  2991.  
  2992. When using CTRL-E or CTRL-Y in Insert mode for characters like 'o', 'x' and
  2993. digits, repeating the insert didn't work.
  2994.  
  2995. The file "tools/ccfilter.README.txt" could not be unpacked when using short
  2996. file names, because of the two dots.  Renamed it to
  2997. "tools/ccfilter_README.txt".
  2998.  
  2999. For a dark 'background', using Blue for Directory and SpecialKey highlight
  3000. groups is not very readable.  Use Cyan instead.
  3001.  
  3002. In the function uc_scan_attr() in ex_docmd.c there was a goto that jumped into
  3003. a block with a local variable.  That's illegal for some compilers.
  3004.  
  3005. Win32 GUI: There was a row of pixels at the bottom of the window which was not
  3006. drawn. (Aaron)
  3007.  
  3008. Under DOS, editing "filename/" created a swap file of "filename/.swp".  Should
  3009. be "filename/_swp".
  3010.  
  3011. Win32 GUI: pointer was hidden when executing an external command.
  3012.  
  3013. When 'so' is 999, "J" near the end of the file didn't redisplay correctly.
  3014.  
  3015. ":0a" inserted after the first line, instead of before the first line.
  3016.  
  3017. Unix: Wildcard expansion didn't handle single quotes and {} patterns.  Now
  3018. ":file 'window.c'" removes the quotes and ":e 'main*.c'" works (literal '*').
  3019. ":file {o}{n}{e}" now results in file name "one".
  3020.  
  3021. Memory leak when setting a string option back to its default value.
  3022.  
  3023. ==============================================================================
  3024. VERSION 5.3                        *version-5.3*
  3025.  
  3026. Version 5.3 was a bug-fix version of 5.2.  There are not many changes.
  3027. Improvements made between version 5.2 and 5.3:
  3028.  
  3029. Changed                            *changed-5.3*
  3030. -------
  3031.  
  3032. Renamed "IDE" menu to "Tools" menu.
  3033.  
  3034.  
  3035. Added                            *added-5.3*
  3036. -----
  3037.  
  3038. Win32 GUI: Give a warning when Vim is activated, and one of the files changed
  3039. since editing started. (Negri)
  3040.  
  3041.  
  3042. Fixed                            *fixed-5.3*
  3043. -----
  3044.  
  3045. 5.2.1: Win32 GUI: space for external command was not properly allocated, could
  3046. cause a crash. (Aaron)  This was the reason to bring out 5.3 quickly after
  3047. 5.2.
  3048.  
  3049. 5.2.2: Some commands didn't complain when used without an argument, although
  3050. they need one: ":badd", ":browse", ":call", ":confirm", ":behave",
  3051. ":delfunction", ":delcommand" and ":tearoff".
  3052. ":endfunction" outside of a function gave wrong error message: "Command not
  3053. implemented".  Should be ":endfunction not inside a function".
  3054.  
  3055. 5.2.3: Win32 GUI: When gvim was installed in "Program files", or another path
  3056. with a space in it, executing external commands with vimrun didn't work.
  3057.  
  3058. 5.2.4: Pasting with the mouse in Insert mode left the cursor on the last
  3059. pasted character, instead of behind it.
  3060.  
  3061. 5.2.5: In Insert mode, cursor after the end of the line, a shift-cursor-left
  3062. didn't include the last character in the selection.
  3063.  
  3064. 5.2.6: When deleting text from Insert mode (with "<C-O>D" or the mouse), which
  3065. includes the last character in the line, the cursor could be left on the last
  3066. character in the line, instead of just after it.
  3067.  
  3068. 5.2.7: Win32 GUI: scrollbar was one pixel too big.
  3069.  
  3070. 5.2.8: Completion of "PopUp" menu showed the derivatives "PopUpc", "PopUPi",
  3071. etc.  ":menu" also showed these.
  3072.  
  3073. 5.2.9: When using two input() functions on a row, the prompt would not be
  3074. drawn in column 0.
  3075.  
  3076. 5.2.10: A loop with input() could not be broken with CTRL-C.
  3077.  
  3078. 5.2.11: ":call asdf" and ":call asdf(" didn't give an error message.
  3079.  
  3080. 5.2.12: Recursively using ":normal" crashes Vim after a while.  E.g.:
  3081. ":map gq :normal gq<CR>"
  3082.  
  3083. 5.2.13: Syntax highlighting used 'iskeyword' from wrong buffer.  When using
  3084. ":help", then "/\k*" in another window with 'hlsearch' set.
  3085.  
  3086. 5.2.14: When using ":source" from a function, global variables would not be
  3087. available unless "g:" was used.
  3088.  
  3089. 5.2.15: XPM files can have the extension ".pm", which is the same as for Perl
  3090. modules.  Added "syntax/pmfile.vim" to handle this.
  3091.  
  3092. 5.2.16: On Win32 and Amiga, "echo expand("%:p:h")" removed one dirname in an
  3093. empty buffer.  mch_Fullname() didn't append a slash at the end of a directory
  3094. name.
  3095.  
  3096. Should include the character under the cursor in the Visual area when using
  3097. 'selection' "exclusive".  This wasn't done for "%", "e", "E", "t" and "f".
  3098.  
  3099. ""p would always put register 0, instead of the unnamed (last used) register.
  3100. Reverse the change that ""x doesn't write in the unnamed (last used) register.
  3101. It would always write in register 0, which isn't very useful.  Use "-x for the
  3102. paste mappings in Visual mode.
  3103.  
  3104. When there is one long line on the screen, and 'showcmd' is off, "0$" didn't
  3105. redraw the screen.
  3106.  
  3107. Win32 GUI: When using 'mousehide', the pointer would flicker when the cursor
  3108. shape is changed. (Negri)
  3109.  
  3110. When cancelling Visual mode, and the cursor moves to the start, the wanted
  3111. column wasn't set, "k" or "j" moved to the wrong column.
  3112.  
  3113. When using ":browse" or ":confirm", was checking for a comment and separating
  3114. bar, which can break some commands.
  3115.  
  3116. Included fixes for Macintosh. (Kielhorn)
  3117.  
  3118. ==============================================================================
  3119. VERSION 5.4                        *version-5.4*
  3120.  
  3121. Version 5.4 adds new features, useful changes and a lot of bug fixes.
  3122.  
  3123.  
  3124. Runtime directory introduced                *new-runtime-dir*
  3125. ----------------------------
  3126.  
  3127. The distributed runtime files are now in $VIMRUNTIME, the user files in $VIM.
  3128. You normally don't set $VIMRUNTIME but let Vim find it, by using
  3129. $VIM/vim{version}, or use $VIM when that doesn't exist.  This allows for
  3130. separating the user files from the distributed files and makes it more easy to
  3131. upgrade to another version.  It also makes it possible to keep two versions of
  3132. Vim around, each with their own runtime files.
  3133.  
  3134. In the Unix distribution the runtime files have been moved to the "runtime"
  3135. directory.  This makes it possible to copy all the runtime files at once,
  3136. without the need to know what needs to be copied.
  3137.  
  3138. The archives for DOS, Windows, Amiga and OS/2 now have an extra top-level
  3139. "vim" directory.  This is to make clear that user-modified files should be put
  3140. here.  The directory that contains the executables doesn't have '-' or '.'
  3141. characters.  This avoids strange extensions.
  3142.  
  3143. The $VIM and $VIMRUNTIME variables are set when they are first used.  This
  3144. allows them to be used by Perl, for example.
  3145.  
  3146. The runtime files are also found in a directory called "$VIM/runtime".  This
  3147. helps when running Vim after just unpacking the runtime archive.  When using
  3148. an executable in the "src" directory, Vim checks if "vim54" or "runtime" can
  3149. be added after removing it.  This make the runtime files be found just after
  3150. compiling.
  3151.  
  3152. A default for $VIMRUNTIME can be given in the Unix Makefile.  This is useful
  3153. if $VIM doesn't point to above the runtime directory but to e.g., "/etc/".
  3154.  
  3155.  
  3156. Filetype introduced                    *new-filetype-5.4*
  3157. -------------------
  3158.  
  3159. Syntax files are now loaded with the new FileType autocommand.  Old
  3160. "mysyntaxfile" files will no longer work. |filetypes|
  3161.  
  3162. The scripts for loading syntax highlighting have been changed to use the
  3163. new Syntax autocommand event.
  3164.  
  3165. This combination of Filetype and Syntax events allows tuning the syntax
  3166. highlighting a bit more, also when selected from the Syntax menu.  The
  3167. FileType autocommand can also be used to set options and mappings specifically
  3168. for that type of file.
  3169.  
  3170. The "$VIMRUNTIME/filetype.vim" file is not loaded automatically.  The
  3171. ":filetype on" command has been added for this.  ":syntax on" also loads it.
  3172.  
  3173. The 'filetype' option has been added.  It is used to trigger the FileType
  3174. autocommand event, like the 'syntax' option does for the Syntax event.
  3175.  
  3176. ":set syntax=OFF" and ":set syntax=ON" can be used (in a modeline) to switch
  3177. syntax highlighting on/off for the current file.
  3178.  
  3179. The Syntax menu commands have been moved to $VIMRUNTIME/menu.vim.  The Syntax
  3180. menu is included both when ":filetype on" and when ":syntax manual" is used.
  3181.  
  3182. Renamed the old 'filetype' option to 'osfiletype'.  It was only used for
  3183. RISCOS.  'filetype' is now used for the common file type.
  3184.  
  3185. Added the ":syntax manual" command.  Allows manual selection of the syntax to
  3186. be used, e.g., from a modeline.
  3187.  
  3188.  
  3189. Vim script line continuation            *new-line-continuation*
  3190. ----------------------------
  3191.  
  3192. When an Ex line starts with a backslash, it is concatenated to the previous
  3193. line.  This avoids the need for long lines. |line-continuation| (Roemer)
  3194. Example: >
  3195.     if   has("dialog_con") ||
  3196.        \ has("dialog_gui")
  3197.         :let result = confirm("Enter your choice",
  3198.                 \ "&Yes\n&No\n&Maybe",
  3199.                 \ 2)
  3200.     endif
  3201.  
  3202.  
  3203. Improved session files                *improved-sessions*
  3204. ----------------------
  3205.  
  3206. New words for 'sessionoptions':
  3207. - "help"    Restore the help window.
  3208. - "blank"    Restore empty windows.
  3209. - "winpos"    Restore the Vim window position.  Uses the new ":winpos"
  3210.         command
  3211. - "buffers"    Restore hidden and unloaded buffers.  Without it only the
  3212.         buffers in windows are restored.
  3213. - "slash"    Replace backward by forward slashes in file names.
  3214. - "globals"    Store global variables.
  3215. - "unix"    Use unix file format (<NL> instead of <CR><NL>)
  3216.  
  3217. The ":mksession" and 'sessionoptions' are now in the +mksession feature.
  3218.  
  3219. The top line of the window is also restored when using a session file.
  3220.  
  3221. ":mksession" and ":mkvimrc" don't store 'fileformat', it should be detected
  3222. when loading a file.
  3223.  
  3224. (Most of this was done by Vince Negri and Robert Webb)
  3225.  
  3226.  
  3227. Autocommands improved                *improved-autocmds-5.4*
  3228. ---------------------
  3229.  
  3230. New events:
  3231. |FileType|    When the file type has been detected.
  3232. |FocusGained|    When Vim got input focus. (Negri)
  3233. |FocusLost|    When Vim lost input focus. (Negri)
  3234. |BufCreate|    Called just after a new buffer has been created or has been
  3235.         renamed. (Madsen)
  3236. |CursorHold|    Triggered when no key has been typed for 'updatetime'.  Can be
  3237.         used to do something with the word under the cursor. (Negri)
  3238.         Implemented CursorHold autocommand event for Unix. (Zellner)
  3239.         Also for Amiga and MS-DOS.
  3240. |GUIEnter|    Can be used to do something with the GUI window after it has
  3241.         been created (e.g., a ":winpos 100 50").
  3242. |BufHidden|    When a buffer becomes hidden.  Used to delete the
  3243.         option-window when it becomes hidden.
  3244.  
  3245. Also trigger |BufDelete| just before a buffer is going to be renamed. (Madsen)
  3246.  
  3247. The "<amatch>" pattern can be used like "<afile>" for autocommands, except
  3248. that it is the matching value for the FileType and Syntax events.
  3249.  
  3250. When ":let @/ = <string>" is used in an autocommand, this last search pattern
  3251. will be used after the autocommand finishes.
  3252.  
  3253. Made loading autocommands a bit faster.  Avoid doing strlen() on each exiting
  3254. pattern for each new pattern by remembering the length.
  3255.  
  3256.  
  3257. Encryption                        *new-encryption*
  3258. ----------
  3259.  
  3260. Files can be encrypted when writing and decrypted when reading.  Added the
  3261. 'key' option, "-x" command line argument and ":X" command. |encryption| (based
  3262. on patch from Mohsin Ahmed)
  3263.  
  3264. When reading a file, there is an automatic detection whether it has been
  3265. crypted.  Vim will then prompt for the key.
  3266.  
  3267. Note that the encryption method is not compatible with Vi.  The encryption is
  3268. not unbreakable.  This allows it to be exported from the US.
  3269.  
  3270.  
  3271. GTK GUI port                        *new-GTK-GUI*
  3272. ------------
  3273.  
  3274. New GUI port for GTK+.  Includes a toolbar, menu tearoffs, etc. |gui-gtk|
  3275. Added the |:helpfind| command. (Kahn and Dalecki)
  3276.  
  3277.  
  3278. Menu changes                        *menu-changes-5.4*
  3279. ------------
  3280.  
  3281. Menus can now also be used in the console.  It is enabled by the new
  3282. 'wildmenu' option.  This shows matches for command-line completion like a
  3283. menu.  This works as a minimal file browser.
  3284.  
  3285. The new |:emenu| command can be used to execute a menu item.
  3286.  
  3287. Uses the last status line to list items, or inserts a line just above the
  3288. command line.  (Negri)
  3289.  
  3290. The 'wildcharx' option can be used to trigger 'wildmenu' completion from a
  3291. mapping.
  3292.  
  3293. When compiled without menus, this can be detected with has("menu").  Also show
  3294. this in the ":version" output.  Allow compiling GUI versions without menu
  3295. support.  Only include toolbar support when there is menu support.
  3296.  
  3297. Moved the "Window" menu all the way to the right (priority 70).  Looks more
  3298. familiar for people working with MS-Windows, shouldn't matter for others.
  3299.  
  3300. Included "Buffers" menu.  Works with existing autocommands and functions.  It
  3301. can be disabled by setting the "no_buffers_menu" variable.  (Aaron and Madsen)
  3302.  
  3303. Win32 supports separators in a menu: "-.*-". (Geddes)
  3304. Menu separators for Motif now work too.
  3305.  
  3306. Made Popup menu for Motif GUI work. (Madsen)
  3307.  
  3308. 'M' flag in 'guioptions': Don't source the system menu.
  3309.  
  3310. All the menu code has been moved from gui.c to menu.c.
  3311.  
  3312.  
  3313. Viminfo improved                    *improved-viminfo*
  3314. ----------------
  3315.  
  3316. New flags for 'viminfo':
  3317. '!'    Store global variables in the viminfo file if they are in uppercase
  3318.     letters. (Negri)
  3319. 'h'    Do ":nohlsearch" when loading a viminfo file.
  3320.  
  3321. Store search patterns in the viminfo file with their offset, magic, etc.  Also
  3322. store the flag whether 'hlsearch' highlighting is on or off (which is not used
  3323. if the 'h' flag is in 'viminfo').
  3324.  
  3325. Give an error message when setting 'viminfo' without commas.
  3326.  
  3327.  
  3328. Various new commands                    *new-commands-5.4*
  3329. --------------------
  3330.  
  3331. Operator |g?|: rot13 encoding. (Negri)
  3332.  
  3333. |zH| and |zL| commands: Horizontal scrolling by half a page.
  3334. |gm| move cursor to middle of screen line. (Ideas by Campbell)
  3335.  
  3336. Operations on Visual blocks: |v_b_I|, |v_b_A|, |v_b_c|, |v_b_C|, |v_b_r|,
  3337. |v_b_<| and |v_b_>|. (Kelly)
  3338.  
  3339. New command: CTRL-\ CTRL-N, which does nothing in Normal mode, and goes to
  3340. Normal mode when in Insert or Command-line mode.  Can be used by VisVim or
  3341. other OLE programs to make sure Vim is in Normal mode, without causing a beep.
  3342. |CTRL-\_CTRL-N|
  3343.  
  3344. ":cscope kill" command to use the connection filename. |:cscope| (Kahn)
  3345.  
  3346. |:startinsert| command: Start Insert mode next.
  3347.  
  3348. |:history| command, to show all four types of histories. (Roemer)
  3349.  
  3350. |[m|, |[M|, |]m| and |]M| commands, for jumping backward/forward to start/end
  3351. of method in a (Java) class.
  3352.  
  3353. ":@*" executes the * register. |:@| (Acevedo)
  3354.  
  3355. |go| and |:goto| commands: Jump to byte offset in the file.
  3356.  
  3357. |gR| and |gr| command: Virtual Replace mode.  Replace characters without
  3358. changing the layout. (Webb)
  3359.  
  3360. ":cd -" changes to the directory from before the previous ":cd" command.
  3361. |:cd-| (Webb)
  3362.  
  3363. Tag preview commands |:ptag|.  Shows the result of a ":tag" in a dedicated
  3364. window.  Can be used to see the context of the tag (e.g., function arguments).
  3365. (Negri)
  3366. |:pclose| command, and CTRL-W CTRL-Z: Close preview window. (Moore)
  3367. 'previewheight' option, height for the preview window.
  3368. Also |:ppop|, |:ptnext|, |:ptprevious|, |:ptNext|, |:ptrewind|, |:ptlast|.
  3369.  
  3370. |:find| and |:sfind| commands: Find a file in 'path', (split window) and edit
  3371. it.
  3372.  
  3373. The |:options| command opens an option window that shows the current option
  3374. values.  Or use ":browse set" to open it.  Options are grouped by function.
  3375. Offers short help on each option.  Hit <CR> to jump to more help.  Edit the
  3376. option value and hit <CR> on a "set" line to set a new value.
  3377.  
  3378.  
  3379. Various new options                    *new-options-5.4*
  3380. -------------------
  3381.  
  3382. Scroll-binding: 'scrollbind' and 'scrollopt' options.  Added |:syncbind|
  3383. command.  Makes windows scroll the same amount (horizontally and/or
  3384. vertically). (Ralston)
  3385.  
  3386. 'conskey' option for MS-DOS.  Use direct console I/O.  This should work with
  3387. telnet (untested!).
  3388.  
  3389. 'statusline' option: Configurable contents of the status line.  Also allows
  3390. showing the byte offset in the file.  Highlighting with %1* to %9*, using the
  3391. new highlight groups User1 to User9.  (Madsen)
  3392.  
  3393. 'rulerformat' option: Configurable contents of the ruler, like 'statusline'.
  3394. (Madsen)
  3395.  
  3396. 'write' option: When off, writing files is not allowed.  Avoids overwriting a
  3397. file even with ":w!".  The |-m| command line option resets 'write'.
  3398.  
  3399. 'clipboard' option: How the clipboard is used.  Value "unnamed": Use unnamed
  3400. register like "*. (Cortopassi)  Value "autoselect": Like what 'a' in
  3401. 'guioptions' does but works in the terminal.
  3402.  
  3403. 'guifontset' option: Specify fonts for the +fontset feature, for the X11 GUI
  3404. versions.  Allows using normal fonts when vim is compiled with this feature.
  3405. (Nam)
  3406.  
  3407. 'guiheadroom' option: How much room to allow above/below the GUI window.
  3408. Used for Motif, Athena and GTK.
  3409.  
  3410. Implemented 'tagstack' option: When off, pushing tags onto the stack is
  3411. disabled (Vi compatible).  Useful for mappings.
  3412.  
  3413. 'shellslash' option.  Only for systems that use a backslash as a file
  3414. separator.  This option will use a forward slash in file names when expanding
  3415. it.  Useful when 'shell' is sh or csh.
  3416.  
  3417. 'pastetoggle' option: Key sequence that toggles 'paste'.  Works around the
  3418. problem that mappings don't work in Insert mode when 'paste' is set.
  3419.  
  3420. 'display' option: When set to "lastline", the last line fills the window,
  3421. instead of being replaced with "@" lines.  Only the last three characters are
  3422. replaced with "@@@", to indicate that the line has not finished yet.
  3423.  
  3424. 'switchbuf' option: Allows re-using existing windows on a buffer that is being
  3425. jumped to, or split the window to open a new buffer. (Roemer)
  3426.  
  3427. 'titleold' option.  Replaces the fixed string "Thanks for flying Vim", which
  3428. is used to set the title when exiting. (Schild)
  3429.  
  3430.  
  3431. Vim scripts                        *new-script-5.4*
  3432. -----------
  3433.  
  3434. The |exists()| function can also check for existence of a function. (Roemer)
  3435. An internal function is now found with a binary search, should be a bit
  3436. faster. (Roemer)
  3437.  
  3438. New functions:
  3439. - |getwinposx()| and |getwinposy()|: get Vim window position. (Webb)
  3440. - |histnr()|, |histadd()|, |histget()| and |histdel()|: Make history
  3441.   available. (Roemer)
  3442. - |maparg()|: Returns rhs of a mapping.  Based on a patch from Vikas.
  3443. - |mapcheck()|: Check if a map name matches with an existing one.
  3444. - |visualmode()|: Return type of last Visual mode. (Webb)
  3445. - |libcall()|: Call a function in a library.  Currently only for Win32. (Negri)
  3446. - |bufwinnr()|: find window that contains the specified buffer. (Roemer)
  3447. - |bufloaded()|: Whether a buffer exists and is loaded.
  3448. - |localtime()| and |getftime()|: wall clock time and last modification time
  3449.   of a file (Webb)
  3450. - |glob()|: expand file name wildcards only.
  3451. - |system()|: get the raw output of an external command. (based on a patch
  3452.   from Aaron).
  3453. - |strtrans()|: Translate String into printable characters.  Used for
  3454.   2html.vim script.
  3455. - |append()|: easy way to append a line of text in a buffer.
  3456.  
  3457. Changed functions:
  3458. - Optional argument to |strftime()| to give the time in seconds. (Webb)
  3459. - |expand()| now also returns names for files that don't exist.
  3460.  
  3461. Allow numbers in the name of a user command. (Webb)
  3462.  
  3463. Use "v:" for internal Vim variables: "v:errmsg", "v:shell_error", etc.  The
  3464. ones from version 5.3 can be used without "v:" too, for backwards
  3465. compatibility.
  3466.  
  3467. New variables:
  3468. "v:warningmsg" and "v:statusmsg" internal variables.  Contain the last given
  3469. warning and status message. |v:warningmsg| |v:statusmsg| (Madsen)
  3470. "v:count1" variable: like "v:count", but defaults to one when no count is
  3471. used. |v:count1|
  3472.  
  3473. When compiling without expression evaluation, "if 1" can be used around the
  3474. not supported commands to avoid it being executed.  Works like in Vim 4.x.
  3475. Some of the runtime scripts gave errors when used with a Vim that was compiled
  3476. with minimal features.  Now "if 1" is used around code that is not always
  3477. supported.
  3478.  
  3479. When evaluating an expression with && and ||, skip the parts that will not
  3480. influence the outcome.  This makes it faster and avoids error messages. (Webb)
  3481. Also optimized the skipping of expressions inside an "if 0".
  3482.  
  3483.  
  3484. Avoid hit-enter prompt                    *avoid-hit-enter*
  3485. -----------------------
  3486.  
  3487. Added 'T' flag to 'shortmess': Truncate all messages that would cause the
  3488. hit-enter prompt (unless that would happen anyway).
  3489. The 'O' flag in 'shortmess' now also applies to quickfix messages, e.g., from
  3490. the ":cn" command.
  3491.  
  3492. The default for 'shortmess' is now "filnxtToO", to make most messages fit on
  3493. the command line, and not cause the hit-enter prompt.
  3494.  
  3495. Previous messages can be viewed with the new |:messages| command.
  3496.  
  3497. Some messages are shown fully, even when 'shortmess' tells to shorten
  3498. messages, because the user is expected to want to see them in full: CTRL-G and
  3499. some quickfix commands.
  3500.  
  3501.  
  3502. Improved quickfix                    *improved-quickfix*
  3503. -----------------
  3504.  
  3505. Parse change-directory lines for gmake: "make[1]: Entering directory 'name'".
  3506. Uses "%D" and "%X" in 'errorformat'.
  3507. Also parse "Making {target} in {dir}" messages from make.  Helps when not
  3508. using GNU make. (Schandl)
  3509.  
  3510. Use 'isfname' for "%f" in 'errorformat'.
  3511.  
  3512. Parsing of multi-line messages. |errorformat-multi-line|
  3513.  
  3514. Allow a range for the |:clist| command. (Roemer)
  3515.  
  3516. Support for "global" file names, for error formats that output the file name
  3517. once for several errors. (Roemer)
  3518.  
  3519. |:cnfile| jumps to first error in next file.
  3520.  
  3521. "$*" in 'makeprg' is replaced by arguments to ":make". (Roemer)
  3522.  
  3523.  
  3524. Regular expressions                    *regexp-changes-5.4*
  3525. -------------------
  3526.  
  3527. In a regexp, a '$' before "\)" is also considered to be an end-of-line. |/$|
  3528. In patterns "^" after "\|" or "\(" is a start-of-line. |/^| (Robinson)
  3529.  
  3530. In a regexp, in front of "\)" and "\|" both "$" and "\$" were considered
  3531. end-of-line.  Now use "$" as end-of-line and "\$" for a literal dollar.  Same
  3532. for '^' after "\(" and "\|". |/\$| |/\^|
  3533.  
  3534. Some search patterns can be extremely slow, even though they are not really
  3535. illegal.  For example: "\([^a-z]\+\)\+Q".  Allow interrupting any regexp
  3536. search with CTRL-C.
  3537.  
  3538. Register "/: last search string (read-only). (Kohan)  Changed to use last used
  3539. search pattern (like what 'hlsearch' uses).  Can set the search pattern with
  3540. ":let @/ = {expr}".
  3541.  
  3542. Added character classes to search patterns, to avoid the need for removing the
  3543. 'l' flag from 'cpoptions': |[:tab:]|, |[:return:]|, |[:backspace:]| and
  3544. |[:escape:]|.
  3545.  
  3546. By adding a '?' after a comparative operator in an expression, the comparison
  3547. is done by ignoring case. |expr-==?|
  3548.  
  3549.  
  3550. Other improvements made between version 5.3 and 5.4
  3551. ---------------------------------------------------
  3552.  
  3553. Changed                            *changed-5.4*
  3554. -------
  3555.  
  3556. Unix: Use $TMPDIR for temporary files, if it is set and exists.
  3557.  
  3558. Removed "Empty buffer" message.  It isn't useful and can cause a hit-enter
  3559. prompt. (Negri)
  3560.  
  3561. "ex -" now reads commands from stdin and works in silent mode.  This is to be
  3562. compatible with the original "ex" command that is used for scripts.
  3563.  
  3564. Default range for ":tcldo" is the whole file.
  3565.  
  3566. Cancelling Visual mode with ESC moved the cursor.  There appears to be no
  3567. reason for this.  Now leave the cursor where it is.
  3568.  
  3569. The ":grep" and ":make" commands see " as part of the arguments, instead of
  3570. the start of a comment.
  3571.  
  3572. In expressions the "=~" and "!~" operators no longer are affected by
  3573. 'ignorecase'.
  3574.  
  3575. Renamed vimrc_example to vimrc_example.vim and gvimrc_example to
  3576. gvimrc_example.vim.  Makes them being recognized as vim scripts.
  3577.  
  3578. "gd" no longer starts searching at the end of the previous function, but at
  3579. the first blank line above the start of the current function.  Avoids that
  3580. using "gd" in the first function finds global a variable.
  3581.  
  3582. Default for 'complete' changed from ".,b" to ".,w,b,u,t,i".  Many more matches
  3583. will be found, at the cost of time (the search can be interrupted).
  3584.  
  3585. It is no longer possible to set 'shell*' options from a modeline.  Previously
  3586. only a warning message was given.  This reduces security risks.
  3587.  
  3588. The ordering of the index of documentation files was changed to make it more
  3589. easy to find a subject.
  3590.  
  3591. On MS-DOS and win32, when $VIM was not set, $HOME was used.  This caused
  3592. trouble if $HOME was set to e.g., "C:\" for some other tool, the runtime files
  3593. would not be found.  Now use $HOME only for _vimrc, _gvimrc, etc., not to find
  3594. the runtime file.
  3595.  
  3596. When 'tags' is "./{fname}" and there is no file name for the current buffer,
  3597. just use it.  Previously it was skipped, causing "vim -t {tag}" not to find
  3598. many tags.
  3599.  
  3600. When trying to select text in the 'scrolloff' area by mouse dragging, the
  3601. resulting scrolling made this difficult.  Now 'scrolloff' is temporarily set
  3602. to 0 or 1 to avoid this.  But still allow scrolling in the top line to extend
  3603. to above the displayed text.
  3604.  
  3605. Default for 'comments' now includes "sl:/*,mb: *,ex:*/", to make javadoc
  3606. comments work.  Also helps for C comments that start with "/*******".
  3607.  
  3608. CTRL-X CTRL-] Insert mode tag expansion tried to expand to all tags when used
  3609. after a non-ID character, which can take a very long time.  Now limit this to
  3610. 200 matches.  Also used for command-line tag completion.
  3611.  
  3612. The OS/2 distribution has been split in two files.  It was too big to fit on a
  3613. floppy.  The same runtime archive as for the PC is now used.
  3614.  
  3615. In the documentation, items like <a-z> have been replaced with {a-z} for
  3616. non-optional arguments.  This avoids confusion with key names: <C-Z> is a
  3617. CTRL-Z, not a character between C and Z, that is {C-Z}.
  3618.  
  3619.  
  3620. Added                            *added-5.4*
  3621. -----
  3622.  
  3623. Color support for the iris-ansi builtin termcap entry. (Tubman)
  3624.  
  3625. Included VisVim version 1.3a. (Erhardt)
  3626.  
  3627. Win32 port for SNiFF+ interface. (Leherbauer)
  3628. Documentation file for sniff interface: if_sniff.txt. (Leherbauer)
  3629.  
  3630. Included the "SendToVim" and "OpenWithVim" programs in the OleVim directory.
  3631. To be used with the OLE version of gvim under MS-Windows. (Schaller)
  3632.  
  3633. Included Exuberant Ctags version 3.2.4 with Eiffel support. (Hiebert)
  3634.  
  3635. When a file that is being edited is deleted, give a warning (like when the
  3636. time stamp changed).
  3637.  
  3638. Included newer versions of the HTML-generating Awk and Perl scripts. (Colombo)
  3639.  
  3640. Linux console mouse support through "gpm". (Tsindlekht)
  3641.  
  3642. Security fix: Disallow changing 'secure' and 'exrc' from a modeline.  When
  3643. 'secure' is set, give a warning for changing options that contain a program
  3644. name.
  3645.  
  3646. Made the Perl interface work with Perl 5.005 and threads. (Verdoolaege)
  3647.  
  3648. When giving an error message for an ambiguous mapping, include the offending
  3649. mapping. (Roemer)
  3650.  
  3651. Command line editing:
  3652. - Command line completion of mappings. (Roemer)
  3653. - Command line completion for ":function", ":delfunction", ":let", ":call",
  3654.   ":if", etc. (Roemer)
  3655. - When using CTRL-D completion for user commands that have
  3656.   "-complete=tag_listfiles" also list the file names.  (Madsen)
  3657. - Complete the arguments of the ":command" command. (Webb)
  3658. - CTRL-R . in command line inserts last inserted text.  CTRL-F, CTRL-P, CTRL-W
  3659.   and CTRL-A after CTRL-R are used to insert an object from under the cursor.
  3660.   (Madsen)
  3661.  
  3662. Made the text in uganda.txt about copying Vim a bit more clear.
  3663.  
  3664. Updated the Vim tutor.  Added the "vimtutor" command, which copies the tutor
  3665. and starts Vim on it.  "make install" now also copies the tutor.
  3666.  
  3667. In the output of ":clist" the current entry is highlighted, with the 'i'
  3668. highlighting (same as used for 'incsearch').
  3669.  
  3670. For the ":clist" command, you can scroll backwards with "b" (one screenful),
  3671. "u" (half a screenful) and "k" (one line).
  3672.  
  3673. Multi-byte support:
  3674. - X-input method for multi-byte characters.  And various fixes for multi-byte
  3675.   support. (Nam)
  3676. - Hangul input method feature: |hangul|. (Nam)
  3677. - Cleaned up configuration of multi-byte support, XIM, fontset and Hangul
  3678.   input.  Each is now configurable separately.
  3679. - Changed check for GTK_KEYBOARD to HANGUL_KEYBOARD_TYPE. (Nam)
  3680. - Added doc/hangulin.txt: Documentation for the Hangul input code. (Nam)
  3681. - XIM support for GTK+. (Nam)
  3682. - First attempt to include support for SJIS encoding. (Nagano)
  3683. - When a double-byte character doesn't fit at the end of the line, put a "~"
  3684.   there and print it on the next line.
  3685. - Optimize output of multi-byte text. (Park)
  3686. - Win32 IME: preedit style is like over-the-spot. (Nagano)
  3687. - Win32 IME: IME mode change now done with ImmSetOpenStatus. (Nagano)
  3688. - GUI Athena: file selection dialog can display multi-byte characters.
  3689.   (Nagano)
  3690. - Selection reply for XA_TEXT as XA_STRING. (Nagano)
  3691.  
  3692. "runtime/macros/diffwin.vim".  Mappings to make a diff window. (Campbell)
  3693.  
  3694. Added ".obj" to the 'suffixes' option.
  3695.  
  3696. Reduced size of syntax/synload.vim by using the ":SynAu" user command.
  3697. Automated numbering of Syntax menu entries in menu.vim.
  3698. In the Syntax menu, insert separators between syntax names that start with
  3699. a different letter. (Geddes)
  3700.  
  3701. Xterm:
  3702. - Clipboard support when using the mouse in an xterm. (Madsen)
  3703. - When using the xterm mouse, track dragging of the mouse.  Use xterm escape
  3704.   sequences when possible.  It is more precise than other methods, but
  3705.   requires a fairly recent xterm version.  It is enabled with "xterm2" in
  3706.   'ttymouse'.  (Madsen)
  3707. - Check xterm patch level, to set the value of 'ttymouse'.  Has only been
  3708.   added to xterm recently (patch level > 95).  Uses the new 't_RV' termcap
  3709.   option.  Set 'ttymouse' to "xterm2" when a correct response is recognized.
  3710.   Will make xterm mouse dragging work better.
  3711. - Support for shifted function keys on xterm.  Changed codes for shifted
  3712.   cursor keys to what the xterm actually produces.  Added codes for shifted
  3713.   <End> and <Home>.
  3714. - Added 't_WP' to set the window position in pixels and 't_WS' to set the
  3715.   window size in characters.  Xterm can now move (used for ":winpos") and
  3716.   resize (use for ":set lines=" and ":set columns=").
  3717.  
  3718. X11:
  3719. - When in Visual mode but not owning the selection, display the Visual area
  3720.   with the VisualNOS group to show this. (Madsen)
  3721. - Support for requesting the type of clipboard support.  Used for AIX and
  3722.   dtterm. (Wittig)
  3723. - Support compound_text selection (even when compiled without multi-byte).
  3724.  
  3725. Swap file:
  3726. - New variation for naming swap files: Replace path separators into %, place
  3727.   all swap files in one directory.  Used when a name in 'dir' ends in two path
  3728.   separators. (Madsen)
  3729. - When a swap file is found, show whether it contains modifications or not in
  3730.   the informative message. (Madsen)
  3731. - When dialogs are supported, use a dialog to ask the user what to do when a
  3732.   swapfile already exists.
  3733.  
  3734. "popup_setpos" in 'mousemodel' option.  Allows for moving the cursor when
  3735. using the right mouse button.
  3736.  
  3737. When a buffer is deleted, the selection for which buffer to display instead
  3738. now uses the most recent entry from the jump list. (Madsen)
  3739.  
  3740. When using CTRL-O/CTRL-I, skip deleted buffers.
  3741.  
  3742. A percentage is shown in the ruler, when there is room.
  3743.  
  3744. Used autoconf 1.13 to generate configure.
  3745.  
  3746. Included get_lisp_indent() from Dirk van Deun.  Does better Lisp indenting
  3747. when 'p' flag in 'cpoptions' is not included.
  3748.  
  3749. Made the 2html.vim script quite a bit faster.  (based on ideas from Geddes)
  3750.  
  3751. Unix:
  3752. - Included the name of the user that compiled Vim and the system name it was
  3753.   compiled on in the version message.
  3754. - "make install" now also installs the "tools" directory.  Makes them
  3755.   available for everybody.
  3756. - "make check" now does the same as "make test".  "make test" checks for
  3757.   Visual block mode shift, insert, replace and change.
  3758. - Speed up comparing a file name with existing buffers by storing the
  3759.   device/inode number with the buffer.
  3760. - Added configure arguments "--disable-gtk", "--disable-motif" and
  3761.   "--disable-athena", to be able to disable a specific GUI (when it doesn't
  3762.   work).
  3763. - Renamed the configure arguments for disabling the check for specific GUIs.
  3764.   Should be clearer now. (Kahn)
  3765. - On a Digital Unix system ("OSF1") check for the curses library before
  3766.   termlib and termcap. (Schild)
  3767. - "make uninstall_runtime" will only delete the version-specific files.  Can
  3768.   be used to delete the runtime files of a previous version.
  3769.  
  3770. Macintosh: (St-Amant)
  3771. - Dragging the scrollbar, like it's done for the Win32 GUI.  Moved common code
  3772.   from gui_w32.c to gui.c
  3773. - Added dialogs and file browsing.
  3774. - Resource fork preserved, warning when it will be lost.
  3775. - Copy original file attributes to newly written file.
  3776. - Set title/notitle bug solved.
  3777. - Filename completion improved.
  3778. - Grow box limit resize to a char by char size.
  3779. - Use of rgb.txt for more colors (but give back bad color).
  3780. - Apple menu works (beside the about...).
  3781. - Internal border now vim compliant.
  3782. - Removing a menu doesn't crash anymore.
  3783. - Weak-linking of Python 1.5.1 (only on PPC).  Python is supported when the
  3784.   library is available.
  3785. - If an error is encountered when sourcing the users .vimrc, the alert box now
  3786.   shows right away with the OK button defaulted.  There's no more "Delete"-key
  3787.   sign at the start of each line
  3788. - Better management of environment variables.  Now $VIM is calculated only
  3789.   once, not regenerated every time it is used.
  3790. - No more CPU hog when in background.
  3791. - In a sourced Vim script the Mac file format can be recognized, just like DOS
  3792.   file format is.
  3793.  
  3794. When both "unix" and "mac" are present in 'fileformats', prefer "mac" format
  3795. when there are more CR than NL characters.
  3796. When using "mac" fileformat, use CR instead of a NL, because NL is used for
  3797. NUL.  Will preserve all characters in a file. (Madsen)
  3798.  
  3799. The DOS install.exe now contains checks for an existing installation.  It
  3800. avoids setting $VIM and $PATH again.
  3801. The install program for Dos/Windows can now install Vim in the popup menu, by
  3802. adding two registry keys.
  3803.  
  3804. Port to EGCS/mingw32.  New Makefile.ming. (Aaron)
  3805.  
  3806. DOS 16 bit: Don't include cursor shape stuff.  Save some bytes.
  3807.  
  3808. TCL support to Makefile.w32. (Duperval)
  3809.  
  3810. OS/2: Use argv[0] to find runtime files.
  3811.  
  3812. When using "gf" to go to a buffer that has already been used, jump to the
  3813. line where the cursor last was.
  3814.  
  3815. Colored the output of ":tselect" a bit more.  Different highlighting between
  3816. tag name and file name.  Highlight field name ("struct:") separately from
  3817. argument.
  3818.  
  3819. Backtick expansion for non-Unix systems.  Based on a patch from Aaron.
  3820. Allows the use of things like ":n `grep -l test *.c`" and
  3821. "echo expand('`ls m*`')".
  3822.  
  3823. Check for the 'complete' option when it is set. (Acevedo)
  3824. 'd' flag in 'complete' searches for defined names or macros.
  3825. While searching for Insert mode completions in include files and tags files,
  3826. check for typeahead, so that you can use matches early. (Webb)
  3827. The '.' flag in 'complete' now scans the current buffer completely, ignoring
  3828. 'nowrapscan'.  (Webb)
  3829.  
  3830. Added '~' flag to 'whichwrap'. (Acevedo)
  3831.  
  3832. When ending the Visual mode (e.g., with ESC) don't grab ownership of the
  3833. selection.
  3834.  
  3835. In a color terminal, "fg" and "bg" can be used as color names.  They stand for
  3836. the "Normal" colors.
  3837.  
  3838. A few cscope cleanups. (Kahn)
  3839.  
  3840. Included changed vimspell.sh from Schemenauer.
  3841.  
  3842. Concatenation of strings in an expression with "." is a bit faster. (Roemer)
  3843.  
  3844. The ":redir" command can now redirect to a register: ":redir @r". (Roemer)
  3845.  
  3846. Made the output of ":marks" and ":jumps" look similar.  When the mark is in
  3847. the current file, show the text at the mark.  Also for ":tags".
  3848.  
  3849. When configure finds ftello() and fseeko(), they are used in tag.c (for when
  3850. you have extremely big tags files).
  3851.  
  3852. Configure check for "-FOlimit,2000" argument for the compiler. (Borsenkow)
  3853.  
  3854. GUI:
  3855. - When using ":gui" in a non-GUI Vim, give a clear error message.
  3856. - "gvim -v" doesn't start the GUI (if console support is present).
  3857. - When in Ex mode, use non-Visual selection for the whole screen.
  3858. - When starting with "gvim -f" and using ":gui" in the .gvimrc file, Vim
  3859.   forked anyway.  Now the "-f" flag is remembered for ":gui".  Added "gui -b"
  3860.   to run gvim in the background anyway.
  3861.  
  3862. Motif GUI:
  3863. - Check for "-lXp" library in configure (but it doesn't work yet...).
  3864. - Let configure check for Lesstif in "/usr/local/Lesstif/Motif*".  Changed the
  3865.   order to let a local Motif version override a system standard version.
  3866.  
  3867. Win32 GUI:
  3868. - When using "-register" or "-unregister" in the non-OLE version, give an
  3869.   error message.
  3870. - Use GTK toolbar icons.  Make window border look better.  Use sizing handles
  3871.   on the lower left&right corners of the window. (Negri)
  3872. - When starting an external command with ":!start" and the command can not be
  3873.   executed, give an error message. (Webb)
  3874. - Use sizing handles for the grey rectangles below the scrollbars.  Can draw
  3875.   toolbar in flat mode now, looks better. (Negri)
  3876. - Preparations for MS-Windows 3.1 addition.  Mostly changing WIN32 to MSWIN
  3877.   and USE_GUI_WIN32 to USE_GUI_MSWIN. (Negri)
  3878.  
  3879. Avoid allocating the same string four times in buflist_findpat(). (Williams)
  3880.  
  3881. Set title and icon text with termcap options 't_ts', 't_fs', 't_IS' and
  3882. 't_IE'.  Allows doing this on any terminal that supports setting the title
  3883. and/or icon text. (Schild)
  3884.  
  3885. New 'x' flag in 'comments': Automatically insert the end part when its last
  3886. character is typed.  Helps to close a /* */ comment in C. (Webb)
  3887.  
  3888. When expand() has a second argument which is non-zero, don't use 'suffixes'
  3889. and 'wildignore', return all matches.
  3890.  
  3891. 'O' flag in 'cpoptions: When not included, Vim will not overwrite a file, if
  3892. it didn't exist when editing started but it does exist when the buffer is
  3893. written to the file.  The file must have been created outside of Vim, possibly
  3894. without the user knowing it.  When this is detected after a shell command,
  3895. give a warning message.
  3896.  
  3897. When editing a new file, CTRL-G will show [New file].  When there were errors
  3898. while reading the file, CTRL-G will show [Read errors].
  3899.  
  3900. ":wall" can now use a dialog and file-browsing when needed.
  3901.  
  3902. Grouped functionality into new features, mainly to reduce the size of the
  3903. minimal version:
  3904. +linebreak:    'showbreak', 'breakat' and 'linebreak'
  3905. +visualextra:    "I"nsert and "A"ppend in Visual block mode, "c"hange all lines
  3906.         in a block, ">" and "<": Shifting a block, "r": Replacing a
  3907.         Visual area with one character.
  3908. +comments:    'comments'
  3909. +cmdline_info:    'ruler' and 'showcmd'.  Replaces +showcmd.
  3910. "+title"    Don't add code to set title or icon for MSDOS, this was not
  3911.         possible anyway.
  3912. +cmdline_compl    Disable commandline completion at compile time, except for
  3913.         files, directories and help items.
  3914.  
  3915. Moved features from a list of function calls into an array.  Should save a bit
  3916. of space.
  3917.  
  3918. While entering the body of a function, adjust indent according to "if" and
  3919. "while" commands.
  3920.  
  3921. VMS: Adjusted os_vms.mms a bit according to suggestions from Arpadffy.
  3922.  
  3923. The flags in the 'comments' option can now include an offset.  This makes it
  3924. possible to align "/*****", "/*   xxx" and "/*" comments with the same
  3925. 'comments' setting.  The default value for 'comments' uses this.
  3926. Added 'O' flag: Don't use this part for the "O" command.  Useful for "set
  3927. com=sO:*\ -,mO:*\ \ ,exO:*/"
  3928.  
  3929. FileType autocommands recognize ".bak", ".orig" and "~" extensions and remove
  3930. them to find the relevant extension.
  3931.  
  3932. The tutorial for writing a Vim script file has been extended.
  3933.  
  3934. Some more highlighting in help files, for items that are not typed literally.
  3935.  
  3936. Can use "CTRL-W CTRL-G" like "CTRL-W g".
  3937.  
  3938. "make test" for OS/2.
  3939.  
  3940. Adjusted configure to automatically use the GUI for BeOS.
  3941.  
  3942.  
  3943. Fixed                            *fixed-5.4*
  3944. -----
  3945.  
  3946. 5.3.1: When using an autocommand for BufWritePre that changes the name of the
  3947. buffer, freed memory would be used. (Geddes)
  3948.  
  3949. Mac: Compiler didn't understand start of skip_class_name().
  3950.  
  3951. Win32 GUI:
  3952. - When cancelling the font requester, don't give an error message.
  3953. - When a tearoff-menu is open and its menu is deleted, Vim could crash.
  3954.   (Negri)
  3955. - There was a problem on Windows 95 with (un)maximizing the window.
  3956.   (Williams)
  3957. - when 'mousehide' is set, the mouse would stay hidden when a menu is dropped
  3958.   with the keyboard. (Ralston)
  3959. - The tempname() function already created the file.  Caused problems when
  3960.   using ":w".  Now the file is deleted.
  3961. - Cursor disappeared when ending up in the top-left character on the screen
  3962.   after scrolling. (Webb)
  3963. - When adding a submenu for a torn-off menu, it was not updated.
  3964. - Menu tooltip was using the toolbar tooltip. (Negri)
  3965. - Setting 'notitle' didn't remove the title. (Steed)
  3966. - Using ":!start cmd" scrolled the screen one line up, and didn't wait for
  3967.   return when the command wasn't found.
  3968.  
  3969. Cscope interface: Sorting of matches was wrong.  Starting the interface could
  3970. fail. (Kahn)
  3971.  
  3972. Motif GUI: Could not compile with Motif 1.1, because some tear-off
  3973. functionality was not in #ifdefs.
  3974.  
  3975. Configure could sometimes not compile or link the test program for sizeof(int)
  3976. properly.  This caused alignment problems for the undo structure allocations.
  3977. Added a safety check that SIZEOF_INT is not zero.
  3978.  
  3979. Added configure check to test if strings.h can be included after string.h.
  3980. Some systems can't handle it.
  3981. Some systems need both string.h and strings.h included.  Adjusted vim.h for
  3982. that.  Removed including string.h from os_unixx.h, since it's already in
  3983. vim.h. (Savage)
  3984. AIX: defining _NO_PROTO in os_unix.h causes a conflict between string.h and
  3985. strings.h, but after the configure check said it was OK.  Also define
  3986. _NO_PROTO for AIX in the configure check. (Winn)
  3987.  
  3988. When closing a window with CTRL-W c, the value of 'hidden' was not taken into
  3989. account, the buffer was always unloaded. (Negri)
  3990.  
  3991. Unix Makefile: "make install" always tried to rename an older executable and
  3992. remove it.  This caused an error message when it didn't exit.  Added a check
  3993. for the existence of an old executable.
  3994. The command line for "make install" could get too long, because of the many
  3995. syntax files.  Now first do a "cd" to reduce the length.
  3996.  
  3997. On RISCOS and MSDOS, reading a file could fail, because the short filename was
  3998. used, which can be wrong after a ":!cd".
  3999.  
  4000. In the DOS versions, the wrong install.exe was included (required Windows).
  4001. Now the install.exe version is included that is the same as the Vim version.
  4002. This also supports long file names where possible.
  4003.  
  4004. When recording, and stopping while in Insert mode with CTRL-O q, the CTRL-O
  4005. would also be recorded.
  4006.  
  4007. 32bit DOS version: "vim \file", while in a subdirectory, resulted in "new
  4008. file" for "file" in the local directory, while "\file" did exist.  When
  4009. "file" in the current directory existed, this didn't happen.
  4010.  
  4011. MSDOS: Mouse could not go beyond 80 columns in 132 columns mode. (Young)
  4012.  
  4013. "make test" failed in the RedHat RPM, because compatible is off by default.
  4014.  
  4015. In Insert mode <C-O><C-W><C-W> changes to other window, but the status bars
  4016. were not updated until another character was typed.
  4017.  
  4018. MSDOS: environment options in lowercase didn't work, although they did in the
  4019. Win32 versions. (Negri)
  4020.  
  4021. After ":nohlsearch", a tag command switched highlighting back on.
  4022.  
  4023. When using "append" command as the last line in an autocommand, Vim would
  4024. crash.
  4025.  
  4026. RISCOS: The scroll bumpers (?) were not working properly. (Leonard)
  4027.  
  4028. "zl" and "zh" could move the cursor, but this didn't set the column in which
  4029. e.g., "k" would move the cursor.
  4030.  
  4031. When doing ":set all&" the value of 'scroll' was not set correctly.  This
  4032. caused an error message when later setting any other number option.
  4033.  
  4034. When 'hlsearch' highlighting has been disabled with ":nohlsearch",
  4035. incremental searching would switch it back on too early.
  4036.  
  4037. When listing tags for ":tselect", and using a non-search command, and the last
  4038. character was equal to the first (e.g., "99"), the last char would not be
  4039. shown.
  4040.  
  4041. When searching for tags with ":tag" Vim would assume that all matches had been
  4042. found when there were still more (e.g. from another tags file).
  4043.  
  4044. Win32: Didn't recognize "c:\" (e.g., in tags file) as absolute path when
  4045. upper/lowercase was different.
  4046.  
  4047. Some xterms (Debian) send <Esc>OH for HOME and <Esc>OF for END.  Added these
  4048. to the builtin-xterm.
  4049.  
  4050. In ex mode, any CR was seen as the end of the line.  Only a NL should be
  4051. handled that way.  broke ":s/foo/some^Mtext/".
  4052.  
  4053. In menu.vim, a vmenu was used to override an amenu.  That didn't work, because
  4054. the system menu file doesn't overwrite existing menus.  Added explicit vunmenu
  4055. to solve this.
  4056.  
  4057. Configure check for terminal library could find a library that doesn't work at
  4058. runtime (Solaris: shared library not found).  Added a check that a program
  4059. with tgoto() can run correctly.
  4060.  
  4061. Unix: "echo -n" in the Makefile doesn't work on all systems, causing errors
  4062. compiling pathdef.c.  Replaced it with "tr".
  4063.  
  4064. Perl: DO_JOIN was redefined by Perl.  Undefined it in the perl files.
  4065.  
  4066. Various XIM and multi-byte fixes:
  4067. - Fix user cannot see his language while he is typing his language with
  4068.   off-the-spot method. (Nagano)
  4069. - Fix preedit position using text/edit area (using gui.wid). (Nagano)
  4070. - remove 'fix dead key' codes.  It was needed since XNFocusWindow was
  4071.   "x11_window", XNFocusWindow is now gui.wid. (Nagano)
  4072. - Remove some compile warnings and fix typos. (Namsh)
  4073. - For status area, check the gtk+ version while Vim runs.  I believe it is
  4074.   better than compile time check. (Namsh)
  4075. - Remove one FIXME for gtk+-xim. (Namsh)
  4076. - XIM: Dead keys didn't work for Czech. (Vyskovsky)
  4077. - Multibyte: If user input only 3byte such as mb1_mb2_eng or eng_mb1_mb2 VIM
  4078.   could convert it to special character. (Nam)
  4079. - Athena/Motif with XIM: fix preedit area. (Nam)
  4080. - XIM: Composed strings were sometimes ignored.  Vim crashed when compose
  4081.   string was longer than 256 bytes.  IM's geometry control is fixed. (Nam,
  4082.   Nagano)
  4083. - Win32 multi-byte: hollowed cursor width on a double byte char was wrong.
  4084.   (Nagano)
  4085. - When there is no GUI, selecting XIM caused compilation problems.
  4086.   Automatically disable XIM when there is no GUI in configure.
  4087. - Motif and Athena: When compiled with XIM, but the input method was not
  4088.   enabled, there would still be a status line.  Now the status line is gone if
  4089.   the input method doesn't work. (Nam)
  4090.  
  4091. Win32: tooltip was not removed when selecting a parent menu (it was when
  4092. selecting a menu entry). (Negri)
  4093.  
  4094. Unix with X: Some systems crash on exit, because of the XtCloseDisplay() call.
  4095. Removed it, it should not be necessary when exiting.
  4096.  
  4097. Win32: Crash on keypress when compiled with Borland C++. (Aaron)
  4098.  
  4099. When checking for Motif library files, prefer the same location as the include
  4100. files (with "include" replaced with "lib") above another entry.
  4101.  
  4102. Athena GUI: Changed "XtOffset()" in gui_at_fs.c to "XtOffsetOf()", like it's
  4103. used in gui_x11.c.
  4104.  
  4105. Win32: When testing for a timestamp of a file on floppy, would get a dialog
  4106. box when the floppy has been removed.  Now return with an error.  (Negri)
  4107.  
  4108. Win32 OLE: When forced to come to the foreground, a minimized window was still
  4109. minimized, now it's restored. (Zivkov)
  4110.  
  4111. There was no check for a positive 'shiftwidth'.  A negative value could cause
  4112. a hangup, a zero value a crash.
  4113.  
  4114. Athena GUI: horizontal scrollbar wasn't updated correctly when clicking right
  4115. or left of the thumb.
  4116.  
  4117. When making a Visual-block selection in one window, and trying to scroll
  4118. another, could cause errors for accessing non-existent line numbers.
  4119.  
  4120. When 'matchpairs' contains "`:'", jumping from the ` to the ' didn't work
  4121. properly.
  4122.  
  4123. Changed '\"' to '"' to make it compatible with old C compilers.
  4124.  
  4125. The command line expansion for mappings caused a script with a TAB between lhs
  4126. and rhs of a map command to fail.  Assume the TAB is to separate lhs and rhs
  4127. when there are no mappings to expand.
  4128.  
  4129. When editing a file with very long lines with 'scrolloff' set, "j" would
  4130. sometimes end up in a line which wasn't displayed.
  4131.  
  4132. When editing a read-only file, it was completely read into memory, even when
  4133. it would not fit.  Now create a swap file for a read-only file when running
  4134. out of memory while reading the file.
  4135.  
  4136. When using ":set cino={s,e-s", a line after "} else {" was not indented
  4137. properly.  Also added a check for this in test3.in.
  4138.  
  4139. The Hebrew mapping for the command line was remembered for the next command
  4140. line.  That isn't very useful, a command is not Hebrew. (Kol)
  4141.  
  4142. When completing file names with embedded spaces, like "Program\ files", this
  4143. didn't work.  Also for user commands.  Moved backslash_halve() down to
  4144. mch_expandpath().
  4145.  
  4146. When using "set mouse=a" in Ex mode, mouse events were handled like typed
  4147. text.  Then typing "quit" screwed up the mouse behavior of the xterm.
  4148.  
  4149. When repeating an insert with "." that contains a CTRL-Y, a number 5 was
  4150. inserted as "053".
  4151.  
  4152. Yanking a Visual area, with the cursor past the line, didn't move the cursor
  4153. back onto the line.  Same for "~", "u", "U" and "g?"
  4154.  
  4155. Win32: Default for 'grepprg' could be "findstr /n" even though there is no
  4156. findstr.exe (Windows 95).  Check if it exists, and fall back to "grep -n" if
  4157. it doesn't.
  4158.  
  4159. Because gui_mouse_moved() inserted a leftmouse click in the input buffer,
  4160. remapping a leftmouse click caused strange effects.  Now Insert another code
  4161. in the input buffer.  Also insert a leftmouse release, to avoid the problem
  4162. with ":map <LeftMouse> l" that the next release is seen as the release for the
  4163. focus click.
  4164.  
  4165. With 'wrap' on, when using a line that doesn't fit on the screen, if the start
  4166. of the Visual area is before the start of the screen, there was no
  4167. highlighting.  Also, 'showbreak' doesn't work properly.
  4168.  
  4169. DOS, Win32: A pattern "[0-9]\+" didn't work in autocommands.
  4170.  
  4171. When creating a swap file for a buffer which isn't the current buffer, could
  4172. get a mixup of short file name, resulting in a long file name when a short
  4173. file name was required.  makeswapname() was calling modname() instead of
  4174. buf_modname().
  4175.  
  4176. When a function caused an error, and the error message was very long because
  4177. of recursiveness, this would cause a crash.
  4178.  
  4179. 'suffixes' were always compared with matching case.  For MS-DOS, Win32 and
  4180. OS/2 case is now ignored.
  4181.  
  4182. The use of CHARBITS in regexp.c didn't work on some Linux.  Don't use it.
  4183.  
  4184. When generating a script file, 'cpo' was made empty.  This caused backslashes
  4185. to disappear from mappings.  Set it to "B" to avoid that.
  4186.  
  4187. Lots of typos in the documentation. (Campbell)
  4188.  
  4189. When editing an existing (hidden) buffer, jump to the last used cursor
  4190. position. (Madsen)
  4191.  
  4192. On a Sun the xterm screen was not restored properly when suspending. (Madsen)
  4193.  
  4194. When $VIMINIT is processed, 'nocompatible' was only set after processing it.
  4195.  
  4196. Unix: Polling for a character wasn't done for GPM, Sniff and Xterm clipboard
  4197. all together.  Cleaned up the code for using select() too.
  4198.  
  4199. When executing external commands from the GUI, some typeahead was lost.  Added
  4200. some code to regain as much typeahead as possible.
  4201.  
  4202. When the window height is 5 lines or fewer, <PageDown> didn't use a one-line
  4203. overlap, while <PageUp> does.  Made sure that <PageUp> uses the same overlap
  4204. as <PageDown>, so that using them both always displays the same lines.
  4205.  
  4206. Removed a few unused functions and variables (found with lint).
  4207.  
  4208. Dictionary completion didn't use 'infercase'. (Raul)
  4209.  
  4210. Configure tests failed when the Perl library was not in LD_LIBRARY_PATH.
  4211. Don't use the Perl library for configure tests, add it to the linker line only
  4212. when linking Vim.
  4213.  
  4214. When using ncurses/terminfo, could get a 't_Sf' and 't_Sb' termcap entry that
  4215. has "%d" instead of "%p1%d".  The light background colors didn't work then.
  4216.  
  4217. GTK GUI with ncurses: Crashed when starting up in tputs().  Don't use tputs()
  4218. when the GUI is active.
  4219.  
  4220. Could use the ":let" command to set the "count", "shell_error" and "version"
  4221. variables, but that didn't work.  Give an error message when trying to set
  4222. them.
  4223.  
  4224. On FreeBSD 3.0, tclsh is called tclsh8.0.  Adjusted configure.in to find it.
  4225.  
  4226. When Vim is linked with -lncurses, but python uses -ltermcap, this causes
  4227. trouble: "OOPS".  Configure now removes the -ltermcap.
  4228.  
  4229. :@" and :*" didn't work properly, because the " was recognized as the start of
  4230. a comment.
  4231.  
  4232. Win32s GUI: Minimizing the console where a filter command runs in caused
  4233. trouble for detecting that the filter command has finished. (Negri)
  4234.  
  4235. After executing a filter command from an xterm, the mouse would be disabled.
  4236. It would work again after changing the mode.
  4237.  
  4238. Mac GUI: Crashed in newenv(). (St-Amant)
  4239.  
  4240. The menus and mappings in mswin.vim didn't handle text ending in a NL
  4241. correctly. (Acevedo)
  4242.  
  4243. The ":k" command didn't check if it had a valid argument or extra characters.
  4244. Now give a meaningful error message. (Webb)
  4245.  
  4246. On SGI, the signal function doesn't always have three arguments.  Check for
  4247. struct sigcontext to find out.  Might still be wrong...
  4248.  
  4249. Could crash when using 'hlsearch' and search pattern is "^".
  4250.  
  4251. When search patterns were saved and restored, status of no_hlsearch was not
  4252. also saved and restored (from ":nohlsearch" command).
  4253.  
  4254. When using setline() to make a line shorter, the cursor position was not
  4255. adjusted.
  4256.  
  4257. MS-DOS and Win95: When trying to edit a file and accidentally adding a slash
  4258. or backslash at the end, the file was deleted.  Probably when trying to create
  4259. the swap file.  Explicitly check for a trailing slash or backslash before
  4260. trying to read a file.
  4261.  
  4262. X11 GUI: When starting the GUI failed and received a deadly signal while
  4263. setting the title, would lock up when trying to exit, because the title is
  4264. reset again.  Avoid using mch_settitle() recursively.
  4265.  
  4266. X11 GUI: When starting the GUI fails, and then trying it again, would crash,
  4267. because argv[] has been freed and x11_display was reset to NULL.
  4268.  
  4269. Win32: When $HOME was set, would put "~user" in the swap file, which would
  4270. never compare with a file name, and never cause the attention message.  Put
  4271. the full path in the swap file instead.
  4272.  
  4273. Win32 console: There were funny characters at the end of the "vim -r" swap
  4274. files message (direct output of CR CR LF).
  4275.  
  4276. DOS 32 bit: "vim -r" put the text at the top of the window.
  4277.  
  4278. GUI: With 'mousefocus' set, got mouse codes as text with "!sleep 100" or "Q".
  4279.  
  4280. Motif and Win32 GUI: When changing 'guifont' to a font of the same size the
  4281. screen wasn't redrawn.
  4282.  
  4283. Unix: When using ":make", jumping to a file b.c, which is already open as a
  4284. symbolic link a.c, opened a new buffer instead of using the existing one.
  4285.  
  4286. Inserting text in the current buffer while sourcing the .vimrc file would
  4287. cause a crash or hang.  The memfile for the current buffer was never
  4288. allocated.  Now it's allocated as soon as something is written in the buffer.
  4289.  
  4290. DOS 32 bit: "lightblue" background worked for text, but not drawn parts were
  4291. black.
  4292.  
  4293. DOS: Colors of console were not restored upon exiting.
  4294.  
  4295. When recording, with 'cmdheight' set to 2 and typing Esc> in Insert mode
  4296. caused the "recording" message to be doubled.
  4297.  
  4298. Spurious "file changed" messages could happen on Windows.  Now tolerate a one
  4299. second difference, like for Linux.
  4300.  
  4301. GUI: When returning from Ex mode, scrollbars were not updated.
  4302.  
  4303. Win32: Copying text to the clipboard containing a <CR>, pasting it would
  4304. replace it with a <NL> and drop the next character.
  4305.  
  4306. Entering a double byte character didn't work if the second byte is in [xXoO].
  4307. (Eric Lee)
  4308.  
  4309. vim_realloc was both defined and had a prototype in proto/misc2.pro.  Caused
  4310. conflicts on Solaris.
  4311.  
  4312. A pattern in an autocommand was treated differently on DOS et al. than on
  4313. Unix.  Now it's the same, also when using backslashes.
  4314.  
  4315. When using <Tab> twice for command line completion, without a match, the <Tab>
  4316. would be inserted. (Negri)
  4317.  
  4318. Bug in MS-Visual C++ 6.0 when compiling ex_docmd.c with optimization. (Negri)
  4319.  
  4320. Testing the result of mktemp() for failure was wrong.  Could cause a crash.
  4321. (Peters)
  4322.  
  4323. GUI: When checking for a ".gvimrc" file in the current directory, didn't check
  4324. for a "_gvimrc" file too.
  4325.  
  4326. Motif GUI: When using the popup menu and then adding an item to the menu bar,
  4327. the menu bar would get very high.
  4328.  
  4329. Mouse clicks and special keys (e.g. cursor keys) quit the more prompt and
  4330. dialogs.  Now they are ignored.
  4331.  
  4332. When at the more-prompt, xterm selection didn't work.  Now use the 'r' flag in
  4333. 'mouse' also for the more-prompt.
  4334.  
  4335. When selecting a Visual area of more than 1023 lines, with 'guioptions' set to
  4336. "a", could mess up the display because of a message in free_yank().  Removed
  4337. that message, except for the Amiga.
  4338.  
  4339. Moved auto-selection from ui_write() to the screen update functions.  Avoids
  4340. unexpected behavior from a low-level function.  Also makes the different
  4341. feedback of owning the selection possible.
  4342.  
  4343. Vi incompatibility: Using "i<CR>" in an indent, with 'ai' set, used the
  4344. original indent instead of truncating it at the cursor. (Webb)
  4345.  
  4346. ":echo x" didn't stop at "q" for the more prompt.
  4347.  
  4348. Various fixes for Macintosh. (St-Amant)
  4349.  
  4350. When using 'selectmode' set to "exclusive", selecting a word and then using
  4351. CTRL-] included the character under the cursor.
  4352.  
  4353. Using ":let a:name" in a function caused a crash. (Webb)
  4354.  
  4355. When using ":append", an empty line didn't scroll up.
  4356.  
  4357. DOS etc.: A file name starting with '!' didn't work.  Added '!' to default for
  4358. 'isfname'.
  4359.  
  4360. BeOS: Compilation problem with prototype of skip_class_name(). (Price)
  4361.  
  4362. When deleting more than one line, e.g., with "de", could still use "U"
  4363. command, which didn't work properly then.
  4364.  
  4365. Amiga: Could not compile ex_docmd.c, it was getting too big.  Moved some
  4366. functions to ex_cmds.c.
  4367.  
  4368. The expand() function would add a trailing slash for directories.
  4369.  
  4370. Didn't give an error message when trying to assign a value to an argument of a
  4371. function.  (Webb)
  4372.  
  4373. Moved including sys/ptem.h to after termios.h.  Needed for Sinix.
  4374.  
  4375. OLE interface: Don't delete the object in CVimCF::Release() when the reference
  4376. count becomes zero. (Cordell)
  4377. VisVim could still crash on exit. (Erhardt)
  4378.  
  4379. "case a: case b:" (two case statements in one line) aligned with the second
  4380. case.  Now it uses one 'sw' for indent. (Webb)
  4381.  
  4382. Font initialisation wasn't right for Athena/Motif GUI.  Moved the call to
  4383. highlight_gui_started() gui_mch_init() to gui_mch_open(). (Nam)
  4384.  
  4385. In Replace mode, backspacing over a TAB before where the replace mode started
  4386. while 'sts' is different from 'ts', would delete the TAB.
  4387.  
  4388. Win32 console: When executing external commands and switching between the two
  4389. console screens, Vim would copy the text between the buffers.  That caused the
  4390. screen to be messed up for backtick expansion.
  4391.  
  4392. ":winpos -1" then ":winpos" gave wrong error message.
  4393.  
  4394. Windows commander creates files called c:\tmp\$wc\abc.txt.  Don't remove the
  4395. backslash before the $.  Environment variables were not expanded anyway,
  4396. because of the backslash before the dollar.
  4397.  
  4398. Using "-=" with ":set" could remove half a part when it contains a "\,".
  4399. E.g., ":set path+=a\\,b" and then "set path-=b"  removed ",b".
  4400.  
  4401. When Visually selecting lines, with 'selection' set to "inclusive", including
  4402. the last char of the line, "<<" moved an extra line.  Also for other operators
  4403. that always work on lines.
  4404.  
  4405. link.sh changed "-lnsl_s" to "_s" when looking for "nsl" to be removed.
  4406. Now it only remove whole words.
  4407.  
  4408. When jumped to a mark or using "fz", and there is an error, the current column
  4409. was lost.  E.g. when using "$fzj".
  4410.  
  4411. The "g CTRL-G" command could not be interrupted, even though it can take a
  4412. long time.
  4413.  
  4414. Some terminals do have <F4> and <xF4>.  <xF4> was always interpreted as <F4>.
  4415. Now map <xF4> to <F4>, so that the user can override this.
  4416.  
  4417. When compiling os_win32.c with MIN_FEAT the apply_autocmds() should not be
  4418. used. (Aaron)
  4419.  
  4420. This autocommand looped forever: ":au FileChangedShell * nested e <afile>"
  4421. Now FileChangeShell never nests. (Roemer)
  4422.  
  4423. When evaluating an ":elseif" that was not going to matter anyway, ignore
  4424. errors. (Roemer)
  4425.  
  4426. GUI Lesstif: Tearoff bar was the last item, instead of the first.
  4427.  
  4428. GUI Motif: Colors of tear-off widgets was wrong when 't' flag added to
  4429. 'guioptions' afterwards.  When 't' flag in 'guioptions' is excluded, would
  4430. still get a tearoff item in a new menu.
  4431.  
  4432. An inode number can be "long long".  Use ino_t instead of long.  Added
  4433. configure check for ino_t.
  4434.  
  4435. Binary search for tags was using a file offset "long" instead of "off_t".
  4436.  
  4437. Insert mode completion of tags was not using 'ignorecase' properly.
  4438.  
  4439. In Insert mode, the <xFn> keys were not properly mapped to <Fn> for the
  4440. default mappings.  Also caused errors for ":mkvimrc" and ":mksession".
  4441.  
  4442. When jumping to another window while in Insert mode, would get the "warning:
  4443. changing readonly file" even when not making a change.
  4444.  
  4445. A '(' or '{' inside a trailing "//" comment would disturb C-indenting.
  4446. When using two labels below each other, the second one was not indented
  4447. properly.  Comments could mess up C-indenting in many places.  (Roemer)
  4448.  
  4449. Could delete or redefine a function while it was being used.  Could cause a
  4450. crash.
  4451. In a function it's logical to prepend "g:" to a system variable, but this
  4452. didn't work. (Roemer)
  4453.  
  4454. Hangul input: Buffer would overflow when user inputs invalid key sequence.
  4455. (Nam)
  4456.  
  4457. When BufLoad or BufEnter autocommands change the topline of the buffer in the
  4458. window, it was overruled and the cursor put halfway the window.  Now only put
  4459. the cursor halfway if the autocommands didn't change the topline.
  4460.  
  4461. Calling exists("&option") always returned 1. (Roemer)
  4462.  
  4463. Win32: Didn't take actually available memory into account. (Williams)
  4464.  
  4465. White space after an automatically inserted comment leader was not removed
  4466. when 'ai' is not set and <CR> hit just after inserting it. (Webb)
  4467.  
  4468. A few menus had duplicated accelerators. (Roemer)
  4469.  
  4470. Spelling errors in documentation, quite a few "the the". (Roemer)
  4471.  
  4472. Missing prototypes for Macintosh. (Kielhorn)
  4473.  
  4474. Win32: When using 'shellquote' or 'shellxquote', the "!start cmd" wasn't
  4475. executed in a disconnected process.
  4476.  
  4477. When resizing the window, causing a line before the cursor to wrap or unwrap,
  4478. the cursor was displayed in the wrong position.
  4479.  
  4480. There was quite a bit of dead code when compiling with minimal features.
  4481.  
  4482. When doing a ":%s///" command that makes lines shorter, such that lines above
  4483. the final cursor position no longer wrap, the cursor position was not updated.
  4484.  
  4485. get_id_list() could allocate an array one too small, when a "contains=" item
  4486. has a wildcard that matches a group name that is added just after it.  E.g.:
  4487. "contains=a.*b,axb".  Give an error message for it.
  4488.  
  4489. When yanking a Visual area and using the middle mouse button -> crash.  When
  4490. clipboard doesn't work, now make "* always use "".
  4491.  
  4492. Win32: Using ":buf a\ b\file" didn't work, it was interpreted as "ab\file".
  4493.  
  4494. Using ":ts ident", then hit <CR>, with 'cmdheight' set to 2: command line was
  4495. not cleared, the tselect prompt was on the last but one line.
  4496.  
  4497. mksession didn't restore the cursor column properly when it was after a tab.
  4498. Could not get all windows back when using a smaller terminal screen.  Didn't
  4499. restore all windows when "winsize" was not in 'sessionoptions'. (Webb)
  4500.  
  4501. Command line completion for ":buffer" depended on 'ignorecase' for Unix, but
  4502. not for DOS et al..  Now don't use 'ignorecase', but let it depend on whether
  4503. file names are case sensitive or not (like when expanding file names).
  4504.  
  4505. Win32 GUI: (Negri)
  4506. - Redrawing the background caused flicker when resizing the window.  Removed
  4507.   _OnEraseBG().  Removed CS_HREDRAW and CS_VREDRAW flags from the
  4508.   sndclass.style.
  4509. - Some parts of the window were drawn in grey, instead of using the color from
  4510.   the user color scheme.
  4511. - Dropping a file on gvim didn't activate the window.
  4512. - When there is no menu ('guioptions' excludes 'm'), never use the ALT key for
  4513.   it.
  4514.  
  4515. GUI: When resizing the window, would make the window height a bit smaller.
  4516. Now round off to the nearest char cell size. (Negri)
  4517.  
  4518. In Vi the ")" and "(" commands don't stop at a single space after a dot.
  4519. Added 'J' flag in 'cpoptions' to make this behave Vi compatible. (Roemer)
  4520.  
  4521. When saving a session without any buffers loaded, there would be a ":normal"
  4522. command without arguments in it. (Webb)
  4523.  
  4524. Memory leaks fixed: (Madsen)
  4525. - eval.c: forgot to release func structure when func deleted
  4526. - ex_docmd.c: forgot to release string after "<sfile>"
  4527. - misc1.c: leak when completion pattern had no matches.
  4528. - os_unix.c: forgot to release regexp after file completions
  4529.  
  4530. Could crash when using a buffer without a name. (Madsen)
  4531. Could crash when doing file name completion, because of backslash_halve().
  4532. (Madsen)
  4533.  
  4534. ":@a" would do mappings on register a, which is not Vi compatible. (Roemer)
  4535.  
  4536. ":g/foo.*()/s/foobar/_&/gc" worked fine, but then "n" searched for "foobar"
  4537. and displayed "/foo.*()". (Roemer)
  4538.  
  4539. OS/2: get_cmd_output() was not included.  Didn't check for $VIM/.vimrc file.
  4540.  
  4541. Command line completion of options didn't work after "+=" and "-=".
  4542.  
  4543. Unix configure: Test for memmove()/bcopy()/memcpy() tried redefining these
  4544. functions, which could fail if they are defined already.  Use mch_memmove() to
  4545. redefine.
  4546.  
  4547. Unix: ":let a = expand("`xterm`&")" started an xterm asynchronously, but
  4548. ":let a = expand("`xterm&`")" generated an error message, because the
  4549. redirection was put after the '&'.
  4550.  
  4551. Win32 GUI: Dialog buttons could not be selected properly with cursor keys,
  4552. when the default is not the first button. (Webb)
  4553.  
  4554. The "File has changed since editing started" (when regaining focus) could not
  4555. always be seen. (Webb)
  4556.  
  4557. When starting with "ex filename", the file message was overwritten with
  4558. the "entering Ex mode" message.
  4559.  
  4560. Output of ":tselect" listed name of file directly from the tags file.  Now it
  4561. is corrected for the position of the tags file.
  4562.  
  4563. When 'backspace' is 0, could backspace over autoindent.  Now it is no longer
  4564. allowed (Vi compatible).
  4565.  
  4566. In Replace mode, when 'noexpandtab' and 'smarttab' were set, and inserting
  4567. Tabs, backspacing didn't work correctly for Tabs inserted at the start of the
  4568. line (unless 'sts' was set too).  Also, when replacing the first non-blank
  4569. after which is a space, rounding the indent was done on the first non-blank
  4570. instead of on the character under the cursor.
  4571.  
  4572. When 'sw' at 4, 'ts' at 8 and 'smarttab' set: When a tab was appended after
  4573. four spaces (they are replaced with a tab) couldn't backspace over the tab.
  4574.  
  4575. In Insert mode, with 'bs' set to 0, couldn't backspace to before autoindent,
  4576. even when it was removed with CTRL-D.
  4577.  
  4578. When repeating an insert command where a <BS>, <Left> or other key causes an
  4579. error, would flush buffers and remain in Insert mode.  No longer flush
  4580. buffers, only beep and continue with the insert command.
  4581.  
  4582. Dos and Win32 console: Setting t_me didn't work to get another color.  Made
  4583. this works backwards compatible.
  4584.  
  4585. For Turkish (LANG = "tr") uppercase 'i' is not an 'I'.  Use ASCII uppercase
  4586. translation in vim_strup() to avoid language problems. (Komur)
  4587.  
  4588. Unix: Use usleep() or nanosleep() for mch_delay() when available.  Hopefully
  4589. this avoids a hangup in select(0, ..) for Solaris 2.6.
  4590.  
  4591. Vim would crash when using a script file with 'let &sp = "| tee"', starting
  4592. vim with "vim -u test", then doing ":set sp=".  The P_WAS_SET flag wasn't set
  4593. for a string option, could cause problems with any string option.
  4594.  
  4595. When using "cmd | vim -", stdin is not a terminal.  This gave problems with
  4596. GPM (Linux console mouse) and when executing external commands.  Now close
  4597. stdin and re-open it as a copy of stderr.
  4598.  
  4599. Syntax highlighting: A "nextgroup" item was not properly stored in the state
  4600. list.  This caused missing of next groups when not redrawing from start to
  4601. end, but starting halfway.
  4602.  
  4603. Didn't check for valid values of 'ttymouse'.
  4604.  
  4605. When executing an external command from the GUI, waiting for the child to
  4606. terminate might not work, causing a hang. (Parmelan)
  4607.  
  4608. "make uninstall" didn't delete the vimrc_example.vim and gvimrc_example.vim
  4609. files and the vimtutor.
  4610.  
  4611. Win32: "expand("%:p:h")" with no buffer name removed the directory name.
  4612. "fnamemodify("", ":p")" did not add a trailing slash, fname_case() removed it.
  4613.  
  4614. Fixed: When 'hlsearch' was set and the 'c' flag was not in 'cpoptions':
  4615. highlighting was not correct.  Now overlapping matches are handled correctly.
  4616.  
  4617. Athena, Motif and GTK GUI: When started without focus, cursor was shown as if
  4618. with focus.
  4619.  
  4620. Don't include 'shellpipe' when compiled without quickfix, it's not used.
  4621. Don't include 'dictionary' option when compiled without the +insert_expand
  4622. feature.
  4623. Only include the 'shelltype' option for the Amiga.
  4624.  
  4625. When making a change to a line, with 'hlsearch' on, causing it to wrap, while
  4626. executing a register, the screen would not be updated correctly.  This was a
  4627. generic problem in update_screenline() being called while must_redraw is
  4628. VALID.
  4629.  
  4630. Using ":bdelete" in a BufUnload autocommand could cause a crash.  The window
  4631. height was added to another window twice in close_window().
  4632.  
  4633. Win32 GUI: When removing a menu item, the tearoff wasn't updated. (Negri)
  4634.  
  4635. Some performance bottlenecks removed.  Allocating memory was not efficient.
  4636. For Win32 checking for available memory was slow, don't check it every time
  4637. now.  On NT obtaining the user name takes a long time, cache the result (for
  4638. all systems).
  4639.  
  4640. fnamemodify() with an argument ":~:." or ":.:~" didn't work properly.
  4641.  
  4642. When editing a new file and exiting, the marks for the buffer were not saved
  4643. in the viminfo file.
  4644.  
  4645. ":confirm only" didn't put up a dialog.
  4646.  
  4647. These text objects didn't work when 'selection' was "exclusive": va( vi( va{
  4648. vi{ va< vi< vi[ va[.
  4649.  
  4650. The dialog for writing a readonly file didn't have a valid default. (Negri)
  4651.  
  4652. The line number used for error messages when sourcing a file was reset when
  4653. modelines were inspected.  It was wrong when executing a function.
  4654.  
  4655. The file name and line number for an error message wasn't displayed when it
  4656. was the same as for the last error, even when this was long ago.  Now reset
  4657. the name/lnum after a hit-enter prompt.
  4658.  
  4659. In a session file, a "%" in a file name caused trouble, because fprintf() was
  4660. used to write it to the file.
  4661.  
  4662. When skipping statements, a mark in an address wasn't skipped correctly:
  4663. "ka|if 0|'ad|else|echo|endif". (Roemer)
  4664.  
  4665. ":wall" could overwrite a not-edited file without asking.
  4666.  
  4667. GUI: When $DISPLAY was not set or starting the GUI failed in another way, the
  4668. console mode then started with wrong colors and skipped initializations.  Now
  4669. do an early check if the GUI can be started.  Don't source the menu.vim or
  4670. gvimrc when it will not.  Also do normal terminal initializations if the GUI
  4671. might not start.
  4672.  
  4673. When using a BufEnter autocommand to position the cursor and scroll the
  4674. window, the cursor was always put at the last used line and halfway the window
  4675. anyhow.
  4676.  
  4677. When 'wildmode' was set to "longest,list:full", ":e *.c<Tab><Tab>" didn't list
  4678. the matches.  Also avoid that listing after a "longest" lists the wrong
  4679. matches when the first expansion changed the string in front of the cursor.
  4680.  
  4681. When using ":insert", ":append" or ":change" inside a while loop, was not able
  4682. to break out of it with a CTRL-C.
  4683.  
  4684. Win32: ":e ." took an awful long time before an error message when used in
  4685. "C:\".  Was caused by adding another backslash and then trying to get the full
  4686. name for "C:\\".
  4687.  
  4688. ":winpos -10 100" was working like ":winpos -10 -10", because a pointer was
  4689. not advanced past the '-' sign.
  4690.  
  4691. When obtaining the value of a hidden option, would give an error message.  Now
  4692. just use a zero value.
  4693.  
  4694. OS/2: Was using argv[0], even though it was not a useful name.  It could be
  4695. just "vim", found in the search path.
  4696.  
  4697. Xterm: ":set columns=78" didn't redraw properly (when lines wrap/unwrap) until
  4698. after a delay of 'updatetime'.  Didn't check for the size-changed signal.
  4699.  
  4700. 'scrollbind' didn't work in Insert mode.
  4701. Horizontal scrollbinding didn't always work for "0" and "$" commands (e.g.,
  4702. when 'showcmd' was off).
  4703.  
  4704. When compiled with minimal features but with GUI, switching on the mouse in an
  4705. xterm caused garbage, because the mouse codes were not recognized.  Don't
  4706. enable the mouse when it can't be recognized.  In the GUI it also didn't work,
  4707. the arguments to the mouse code were not interpreted.
  4708.  
  4709. When 'showbreak' used, in Insert mode, when the cursor is just after the last
  4710. character in the line, which is also the in the rightmost column, the cursor
  4711. position would be like the 'showbreak' string is shown, but it wasn't.
  4712.  
  4713. Autocommands could move the cursor in a new file, so that CTRL-W i didn't show
  4714. the right line.  Same for when using a filemark to jump to another file.
  4715.  
  4716. When redefining the argument list, the title used for other windows could be
  4717. showing the wrong info about the position in the argument list.  Also update
  4718. this for a ":split" command without arguments.
  4719.  
  4720. When editing file 97 of 13, ":Next" didn't work.  Now it goes to the last
  4721. file in the argument list.
  4722.  
  4723. Insert mode completion (for dictionaries or included files) could not be
  4724. interrupted by typing an <Esc>.  Could get hit-enter prompt after line
  4725. completion, or whenever the informative message would get too long.
  4726.  
  4727. When using the ":edit" command to re-edit the same file, an autocommand to
  4728. jump to the last cursor position caused the cursor to move.  Now set the last
  4729. used cursor position to avoid this.
  4730.  
  4731. When 'comments' has a part that starts with white space, formatting the
  4732. comment didn't work.
  4733.  
  4734. At the ":tselect" prompt Normal mode mappings were used.  That has been
  4735. disabled.
  4736.  
  4737. When 'selection' is not "old", some commands still didn't allow the cursor
  4738. past the end-of-line in Visual mode.
  4739.  
  4740. Athena: When a menu was deleted, it would appear again (but not functional)
  4741. when adding another menu.  Now they don't reappear anymore (although they are
  4742. not really deleted either).
  4743.  
  4744. Borland C++ 4.x had an optimizer problem in fill_breakat_flags(). (Negri)
  4745.  
  4746. "ze" didn't work when 'number' was on. (Davis)
  4747.  
  4748. Win32 GUI: Intellimouse code didn't work properly on Windows 98. (Robinson)
  4749.  
  4750. A few files were including proto.h a second time, after vim.h had already done
  4751. that, which could cause problems with the vim_realloc() macro.
  4752.  
  4753. Win32 console: <M-x> or ALT-x was not recognized.  Also keypad '+', '-' and
  4754. '*'. (Negri)
  4755. MS-DOS: <M-x> didn't work, produced a two-byte code.  Now the alphabetic and
  4756. number keys work. (Negri)
  4757.  
  4758. When finding a lot of matches for a tag completion, the check for avoiding
  4759. double matches could take a lot of time.  Add a line_breakcheck() to be able
  4760. to interrupt this. (Deshpande)
  4761.  
  4762. When the command line was getting longer than the screen, the more-prompt
  4763. would be given regularly, and the cursor position would be wrong.  Now only
  4764. show the part of the command line that fits on the screen and force the cursor
  4765. to be positioned on the visible part.  There can be text after the cursor
  4766. which isn't editable.
  4767.  
  4768. At the more prompt and with the console dialog, a cursor key was interpreted
  4769. as <Esc> and OA.  Now recognize special keys in get_keystroke().  Ignore mouse
  4770. and scrollbar events.
  4771.  
  4772. When typing a BS after inserting a middle comment leader, typing the last char
  4773. of the end comment leader still changed it into the end comment leader. (Webb)
  4774.  
  4775. When a file system is full, writing to a swap file failed.  Now first try to
  4776. write one block to the file.  Try next entry in 'dir' if it fails.
  4777.  
  4778. When "~" is in 'whichwrap', doing "~" on last char of a line didn't update the
  4779. display.
  4780.  
  4781. Unix: Expanding wildcards for ":file {\\}" didn't work, because "\}" was
  4782. translated to "}" before the shell got it.  Now don't remove backslashes when
  4783. wildcards are going to be expanded.
  4784.  
  4785. Unix: ":e /tmp/$uid" didn't work.  When expanding environment variables in a
  4786. file name doesn't work, use the shell to expand the file name.  ":e /tmp/$tty"
  4787. still doesn't work though.
  4788.  
  4789. "make test" didn't always work on DOS/Windows for test30, because it depended
  4790. on the external "echo" command.
  4791.  
  4792. The link.sh script used "make" instead of $MAKE from the Makefile.  Caused
  4793. problems for generating pathdef.c when "make" doesn't work properly.
  4794.  
  4795. On versions that can do console and GUI: In the console a typed CSI code could
  4796. cause trouble.
  4797.  
  4798. The patterns in expression evaluation didn't ignore the 'l' flag in
  4799. 'cpoptions'.  This broke the working of <CR> in the options window.
  4800.  
  4801. When 'hls' off and 'ai' on, "O<Esc>" did remove the indent, but it was still
  4802. highlighted red for trailing space.
  4803.  
  4804. Win32 GUI: Dropping an encrypted file on a running gvim didn't work right.  Vim
  4805. would loop while outputting "*" characters.  vgetc() was called recursively,
  4806. thus it returns NUL.  Added safe_vgetc(), which reads input directly from the
  4807. user in this situation.
  4808.  
  4809. While reading text from stdin, only an empty screen was shown.  Now show that
  4810. Vim is reading from stdin.
  4811.  
  4812. The cursor shape wasn't set properly when returning to Insert mode, after
  4813. using a CTRL-O /asdf command which fails.  It would be OK after a few seconds.
  4814. Now it's OK right away.
  4815.  
  4816. The 'isfname' default for DOS/Windows didn't include the '@' character.  File
  4817. names that contained "dir\@file" could not be edited.
  4818.  
  4819. Win32 console: <C-S-Left> could cause a crash when compiled with Borland or
  4820. egcs. (Aaron)
  4821.  
  4822. Unix and VMS: "#if HAVE_DIRENT_H" caused problems for some compilers.  Use
  4823. "#ifdef HAVE_DIRENT_H" instead. (Jones)
  4824.  
  4825. When a matching tag is in the current file but has a search pattern that
  4826. doesn't match, the cursor would jump to the first line.
  4827.  
  4828. Unix: Dependencies for pty.c were not included in Makefile.  Dependency of
  4829. ctags/config.h was not included (only matters for parallel make).
  4830.  
  4831. Removed a few Uninitialized Memory Reads (potential crashes).  In do_call()
  4832. calling clear_var() when not evaluating.  In win32_expandpath() and
  4833. dos_expandpath() calling backslash_halve() past the end of a file name.
  4834.  
  4835. Removed memory leaks: Set_vim_var_string() never freed the value.  The
  4836. next_list for a syntax keyword was never freed.
  4837.  
  4838. On non-Unix systems, using a file name with wildcards without a match would
  4839. silently fail.  E.g., ":e *.sh".  Now give a "No match" error message.
  4840.  
  4841. The life/life.mac, urm/urm.mac and hanoi/hanoi.mac files were not recognized
  4842. as Vim scripts.  Renamed them to *.vim.
  4843.  
  4844. [Note: some numbered patches are not relevant when upgrading from version 5.3,
  4845. they have been removed]
  4846.  
  4847. Patch 5.4m.1
  4848. Problem:    When editing a file with a long name, would get the hit-enter
  4849.         prompt, even though all settings are such that the name should be
  4850.         truncated to avoid that.  filemess() was printing the file name
  4851.         without truncating it.
  4852. Solution:   Truncate the message in filemess().  Use the same code as for
  4853.         msg_trunc_attr(), which is moved to the new function
  4854.         msg_may_trunc().
  4855. Files:        src/message.c, src/proto/message.pro, src/fileio.c
  4856.  
  4857. Patch 5.4m.3
  4858. Problem:    The Motif libraries were not found by configure for Digital Unix.
  4859. Solution:   Add "/usr/shlib" to the search path. (Andy Kahn)
  4860. Files:        src/configure.in, src/configure
  4861.  
  4862. Patch 5.4m.5
  4863. Problem:    Win32 GUI: When using the Save-As menu entry and selecting an
  4864.         existing file in the file browser, would get a dialog to confirm
  4865.         overwriting twice.  (Ed Krall)
  4866. Solution:   Removed the dialog from the file browser.  It would be nicer to
  4867.         set the "forceit" flag and skip Vim's ":confirm" dialog, but it
  4868.         requires quite a few changes to do that.
  4869. Files:        src/gui_w32.c
  4870.  
  4871. Patch 5.4m.6
  4872. Problem:    Win32 GUI: When reading text from stdin, e.g., "cat foo | gvim -",
  4873.         a message box would pop up with "-stdin-" (when exiting). (Michael
  4874.         Schaap)
  4875. Solution:   Don't switch off termcap mode for versions that are GUI-only.
  4876.         They use another terminal to read from stdin.
  4877. Files:        src/main.c, src/fileio.c
  4878.  
  4879. Patch 5.4m.7
  4880. Problem:    Unix: running configure with --enable-gtk-check,
  4881.         --enable-motif-check, --enable-athena-check or --enable-gtktest
  4882.         had the reverse effect. (Thomas Koehler)
  4883. Solution:   Use $enable_gtk_check variable correctly in AC_ARG_ENABLE().
  4884. Files:        src/configure.in, src/configure
  4885.  
  4886. Patch 5.4m.9
  4887. Problem:    Multi-byte: With wrapping lines, the cursor was sometimes 2
  4888.         characters to the left.  Syntax highlighting was wrong when a
  4889.         double-byte character was split for a wrapping line.  When
  4890.         'showbreak' was on the splitting also didn't work.
  4891. Solution:   Adjust getvcol() and win_line(). (Chong-Dae Park)
  4892. Files:        src/charset.c, src/screen.c
  4893.  
  4894. Patch 5.4m.11
  4895. Problem:    The ":call" command didn't check for illegal trailing characters.
  4896.         (Stefan Roemer)
  4897. Solution:   Add the check in do_call().
  4898. Files:        src/eval.c
  4899.  
  4900. Patch 5.4m.13
  4901. Problem:    With the ":s" command:
  4902.         1. When performing a substitute command, the mouse would be
  4903.            disabled and enabled for every substitution.
  4904.         2. The cursor position could be beyond the end of the line.
  4905.            Calling line_breakcheck() could try to position the cursor,
  4906.            which causes a crash in the Win32 GUI.
  4907.         3. When using ":s" in a ":g" command, the cursor was not put on
  4908.            the first non-white in the line.
  4909.         4. There was a hit-enter prompt when confirming the substitution
  4910.            and the replacement was a bit longer.
  4911. Solution:   1. Only disable/enable the mouse when asking for confirmation.
  4912.         2. Always put the cursor on the first character, it is going to be
  4913.            moved to the first non-blank anyway.
  4914.            Don't use the cursor position in gui_mch_draw_hollow_cursor(),
  4915.            get the character from the screen buffer.
  4916.         3. Added global_need_beginline flag to call beginline() after ":g"
  4917.            has finished all substitutions.
  4918.         4. Clear the need_wait_return flag after prompting the user.
  4919. Files:        src/ex_cmds.c, src/gui_w32.c
  4920.  
  4921. Patch 5.4m.14
  4922. Problem:    When doing "vim xxx", ":opt", ":only" and then ":e xxx" we end
  4923.         up with two swapfiles for "xxx".  That is caused by the ":bdel"
  4924.         command which is executed when unloading the option-window.
  4925.         Also, there was no check if closing a buffer made the new one
  4926.         invalid, this could cause a crash.
  4927. Solution:   When closing a buffer causes the current buffer to be deleted,
  4928.         use the new buffer to replace it.  Also detect that the new buffer
  4929.         has become invalid as a side effect of closing the current one.
  4930.         Make autocommand that calls ":bdel" in optwin.vim nested, so that
  4931.         the buffer loading it triggers also executes autocommands.
  4932.         Also added a test for this in test13.
  4933. Files:        runtime/optwin.vim, src/buffer.c, src/ex_cmds.c, src/globals.h
  4934.         src/testdir/test13.in, src/testdir/test13.ok
  4935.  
  4936. Patch 5.4m.15
  4937. Problem:    When using a BufEnter autocommand to reload the syntax file,
  4938.         conversion to HTML caused a crash. (Sung-Hyun Nam)
  4939. Solution:   When using ":syntax clear" the current stack of syntax items was
  4940.         not cleared.  This will cause memory to be used that has already
  4941.         been freed.  Added call to invalidate_current_state() in
  4942.         syntax_clear().
  4943. Files:        src/syntax.c
  4944.  
  4945. Patch 5.4m.17
  4946. Problem:    When omitting a ')' in an expression it would not be seen as a
  4947.         failure.
  4948.         When detecting an error inside (), there would be an error message
  4949.         for a missing ')' too.
  4950.         When using ":echo 1+|echo 2" there was no error message. (Roemer)
  4951.         When using ":exe 1+" there was no error message.
  4952.         When using ":return 1+" there was no error message.
  4953. Solution:   Fix do_echo(), do_execute() and do_return() to give an error
  4954.         message when eval1() returns FAIL.
  4955.         Fix eval6() to handle trailing ')' correctly and return FAIL when
  4956.         it's missing.
  4957. Files:        src/eval.c
  4958.  
  4959. Patch 5.4m.18
  4960. Problem:    When using input() from inside an expression entered with
  4961.         "CTRL-R =" on the command line, there could be a crash.  And the
  4962.         resulting command line was wrong.
  4963. Solution:   Added getcmdline_prompt(), which handles recursive use of
  4964.         getcmdline() correctly.  It also sets the command line prompt.
  4965.         Removed cmdline_prompt().  Also use getcmdline_prompt() for
  4966.         getting the crypt key in get_crypt_key().
  4967. Files:        src/proto/ex_getln.pro, src/ex_getln.c, src/eval.c, src/misc2.c
  4968.  
  4969. Patch 5.4m.21
  4970. Problem:    When starting up, the screen structures were first allocated at
  4971.         the minimal size, then initializations were done with Rows
  4972.         possibly different from screen_Rows.  Caused a crash in rare
  4973.         situations (GTK with XIM and fontset).
  4974. Solution:   Call screenalloc() in main() only after calling ui_get_winsize().
  4975.         Also avoids a potential delay because of calling screenclear()
  4976.         while "starting" is non-zero.
  4977. Files:        src/main.c
  4978.  
  4979. Patch 5.4m.22
  4980. Problem:    In the GUI it was possible that the screen was resized and the
  4981.         screen structures re-allocated while redrawing the screen.  This
  4982.         could cause a crash (hard to reproduce).  The call sequence goes
  4983.         through update_screen() .. syntax_start() .. ui_breakcheck() ..
  4984.         gui_resize_window() .. screenalloc().
  4985. Solution:   Set updating_screen while redrawing.  If the window is resized
  4986.         remember the new size and handle it only after redrawing is
  4987.         finished.
  4988.         This also fixes that resizing the screen while still redrawing
  4989.         (slow syntax highlighting) would not work properly.
  4990.         Also disable display_hint, it was never used.
  4991. Files:        src/globals.h, src/gui.c, src/screen.c, src/proto/gui.pro
  4992.  
  4993. Patch 5.4m.23
  4994. Problem:    When using expand("<cword>") when there was no word under the
  4995.         cursor, would get an error message.  Same for <cWORD> and <cfile>.
  4996. Solution:   Don't give an error message, return an empty string.
  4997. Files:        src/eval.c
  4998.  
  4999. Patch 5.4m.24
  5000. Problem:    ":help \|" didn't find anything.  It was translated to "/\\|".
  5001. Solution:   Translate "\|" into "\\bar".  First check the table for specific
  5002.         translations before checking for "\x".
  5003. Files:        src/ex_cmds.c
  5004.  
  5005. Patch 5.4m.25
  5006. Problem:    Unix: When using command line completion on files that contain
  5007.         ''', '"' or '|' the file name could not be used.
  5008.         Adding this file name to the Buffers menu caused an error message.
  5009. Solution:   Insert a backslash before these three characters.
  5010.         Adjust Mungename() function to insert a backslash before '|'.
  5011. Files:        src/ex_getln.c, runtime/menu.vim
  5012.  
  5013. Patch 5.4m.26
  5014. Problem:    When using a mapping of two function keys, e.g., <F1><F1>, and
  5015.         only the first char of the second key has been read, the mapping
  5016.         would not be recognized.  Noticed on some Unix systems with xterm.
  5017. Solution:   Add 'K' flag to 'cpoptions' to wait for the whole key code, even
  5018.         when halfway a mapping.
  5019. Files:        src/option.h, src/term.c
  5020.  
  5021. Patch 5.4m.27
  5022. Problem:    When making test33 without the lisp feature it hangs. Interrupting
  5023.         the execution of the script then might cause a crash.
  5024. Solution:   In inchar(), after closing a script, don't use buf[] anymore.
  5025.         closescript() has freed typebuf[] and buf[] might be pointing
  5026.         inside typebuf[].
  5027.         Avoid that test33 hangs when the lisp feature is missing.
  5028. Files:        src/getchar.c src/testdir/test33.in
  5029.  
  5030. "os2" was missing from the feature list.  Useful for has("os2").
  5031.  
  5032. BeOS:
  5033. - Included patches from Richard Offer for BeOS R4.5.
  5034. - menu code didn't work right.  Crashed in the Buffers menu.  The window title
  5035.   wasn't set. (Offer)
  5036.  
  5037. Patch 5.4n.3
  5038. Problem:    C-indenting was wrong after "  } else".  The white space was not
  5039.         skipped.  Visible when 'cino' has "+10".
  5040. Solution:   Skip white space before calling cin_iselse(). (Norbert Zeh)
  5041. Files:        src/misc1.c
  5042.  
  5043. Patch 5.4n.4
  5044. Problem:    When the 't' flag in 'cpoptions' is included, after a
  5045.         ":nohlsearch" the search highlighting would not be enabled again
  5046.         after a tag search. (Norbert Zeh)
  5047. Solution:   When setting the new search pattern in jumpto_tag(), don't restore
  5048.         no_hlsearch.
  5049. Files:        src/tag.c
  5050.  
  5051. Patch 5.4n.5
  5052. Problem:    When using ":normal" from a CursorHold autocommand Vim hangs.  The
  5053.         autocommand is executed down from vgetc().  Calling vgetc()
  5054.         recursively to execute the command doesn't work then.
  5055. Solution:   Forbid the use of ":normal" when vgetc_busy is set.  Give an error
  5056.         message when this happens.
  5057. Files:        src/ex_docmd.c, runtime/doc/autocmd.txt
  5058.  
  5059. Patch 5.4n.6
  5060. Problem:    "gv" could reselect a Visual that starts and/or ends past the end
  5061.         of a line. (Robert Webb)
  5062. Solution:   Check that the start and end of the Visual area are on a valid
  5063.         character by calling adjust_cursor().
  5064. Files:        src/normal.c
  5065.  
  5066. Patch 5.4n.8
  5067. Problem:    When a mark was on a non existing line (e.g., when the .viminfo
  5068.         was edited), jumping to it caused ml_get errors. (Alexey
  5069.         Marinichev).
  5070. Solution:   Added check_cursor_lnum() in nv_gomark().
  5071. Files:        src/normal.c
  5072.  
  5073. Patch 5.4n.9
  5074. Problem:    ":-2" moved the cursor to a negative line number. (Ralf Schandl)
  5075. Solution:   Give an error message for a negative line number.
  5076. Files:        src/ex_docmd.c
  5077.  
  5078. Patch 5.4n.10
  5079. Problem:    Win32 GUI: At the hit-enter prompt, it was possible to scroll the
  5080.         text.  This erased the prompt and made Vim look like it is in
  5081.         Normal mode, while it is actually still waiting for a <CR>.
  5082. Solution:   Disallow scrolling at the hit-enter prompt for systems that use
  5083.         on the fly scrolling.
  5084. Files:        src/message.c
  5085.  
  5086. Patch 5.4n.14
  5087. Problem:    Win32 GUI: When using ":winsize 80 46" and the height is more than
  5088.         what fits on the screen, the window size was made smaller than
  5089.         asked for (that's OK) and Vim crashed (that's not OK)>
  5090. Solution:   Call check_winsize() from gui_set_winsize() to resize the windows.
  5091. Files:        src/gui.c
  5092.  
  5093. Patch 5.4n.16
  5094. Problem:    Win32 GUI: The <F10> key both selected the menu and was handled as
  5095.         a key hit.
  5096. Solution:   Apply 'winaltkeys' to <F10>, like it is used for Alt keys.
  5097. Files:        src/gui_w32.c
  5098.  
  5099. Patch 5.4n.17
  5100. Problem:    Local buffer variables were freed when the buffer is unloaded.
  5101.         That's not logical, since options are not freed. (Ron Aaron)
  5102. Solution:   Free local buffer variables only when deleting the buffer.
  5103. Files:        src/buffer.c
  5104.  
  5105. Patch 5.4n.19
  5106. Problem:    Doing ":e" (without argument) in an option-window causes trouble.
  5107.         The mappings for <CR> and <Space> are not removed.  When there is
  5108.         another buffer loaded, the swap file for it gets mixed up.
  5109.         (Steve Mueller)
  5110. Solution:   Also remove the mappings at the BufUnload event, if they are still
  5111.         present.
  5112.         When re-editing the same file causes the current buffer to be
  5113.         deleted, don't try editing it.
  5114.         Also added a test for this situation.
  5115. Files:        runtime/optwin.vim, src/ex_cmds.c, src/testdir/test13.in,
  5116.         src/testdir/test13.ok
  5117.  
  5118. Patch 5.4n.24
  5119. Problem:    BeOS: configure never enabled the GUI, because $with_x was "no".
  5120.         Unix prototypes caused problems, because Display and Widget are
  5121.         undefined.
  5122.         Freeing fonts on exit caused a crash.
  5123. Solution:   Only disable the GUI when $with_x is "no" and  $BEOS is not "yes".
  5124.         Add dummy defines for Display and Widget in proto.h.
  5125.         Don't free the fonts in gui_exit() for BeOS.
  5126. Files:        src/configure.in, src/configure, src/proto.h, src/gui.c.
  5127.  
  5128.  
  5129. The runtime/vim48x48.xpm icon didn't have a transparent background. (Schild)
  5130.  
  5131. Some versions of the mingw32/egcs compiler didn't have WINBASEAPI defined.
  5132. (Aaron)
  5133.  
  5134. VMS:
  5135. - mch_setenv() had two arguments instead of three.
  5136. - The system vimrc and gvimrc files were called ".vimrc" and ".gvimrc".
  5137.   Removed the dot.
  5138. - call to RealWaitForChar() had one argument too many. (Campbell)
  5139. - WaitForChar() is static, removed the prototype from proto/os_vms.pro.
  5140. - Many file accesses failed, because Unix style file names were used.
  5141.   Translate file names to VMS style by using vim_fopen().
  5142. - Filtering didn't work, because the temporary file name was generated wrong.
  5143. - There was an extra newline every 9192 characters when writing a file.  Work
  5144.   around it by writing line by line. (Campbell)
  5145. - os_vms.c contained "# typedef int DESC".  Should be "typedef int DESC;".
  5146.   Only mattered for generating prototypes.
  5147. - Added file name translation to many places.  Made easy by defining macros
  5148.   mch_access(), mch_fopen(), mch_fstat(), mch_lstat() and mch_stat().
  5149. - Set default for 'tagbsearch' to off, because binary tag searching apparently
  5150.   doesn't work for VMS.
  5151. - make mch_get_host_name() work with /dec and /standard=vaxc. (Campbell)
  5152.  
  5153.  
  5154. Patch 5.4o.2
  5155. Problem:    Crash when using "gf" on "file.c://comment here". (Scott Graham)
  5156. Solution:   Fix wrong use of pointers in get_file_name_in_path().
  5157. Files:        src/window.c
  5158.  
  5159. Patch 5.4o.3
  5160. Problem:    The horizontal scrollbar was not sized correctly when 'number' is
  5161.         set and 'wrap' not set.
  5162.         Athena: Horizontal scrollbar wasn't updated when the cursor was
  5163.         positioned with a mouse click just after dragging.
  5164. Solution:   Subtract 8 from the size when 'number' set and 'wrap' not set.
  5165.         Reset gui.dragged_sb when a mouse click is received.
  5166. Files:        src/gui.c
  5167.  
  5168. Patch 5.4o.4
  5169. Problem:    When running in an xterm and $WINDOWID is set to an illegal value,
  5170.         Vim would exit with "Vim: Got X error".
  5171. Solution:   When using the display which was opened for the xterm clipboard,
  5172.         check if x11_window is valid by trying to obtain the window title.
  5173.         Also add a check in setup_xterm_clip(), for when using X calls to
  5174.         get the pointer position in an xterm.
  5175. Files:        src/os_unix.c
  5176.  
  5177. Patch 5.4o.5
  5178. Problem:    Motif version with Lesstif: When removing the menubar and then
  5179.         using a menu shortcut key, Vim would crash. (raf)
  5180. Solution:   Disable the menu mnemonics when the menu bar is removed.
  5181. Files:        src/gui_motif.c
  5182.  
  5183. Patch 5.4o.9
  5184. Problem:    The DOS install.exe program used the "move" program.  That doesn't
  5185.         work on Windows NT, where "move" is internal to cmd.exe.
  5186. Solution:   Don't use an external program for moving the executables.  Use C
  5187.         functions to copy the file and delete the original.
  5188. Files:        src/dosinst.c
  5189.  
  5190. Motif and Athena obtained the status area height differently from GTK.  Moved
  5191. status_area_enabled from global.h to gui_x11.c and call
  5192. xim_get_status_area_height() to get the status area height.
  5193.  
  5194. Patch 5.4p.1
  5195. Problem:    When using auto-select, and the "gv" command is used, would not
  5196.         always obtain ownership of the selection.  Caused by the Visual
  5197.         area still being the same, but ownership taken away by another
  5198.         program.
  5199. Solution:   Reset the clipboard Visual mode to force updating the selection.
  5200. Files:        src/normal.c
  5201.  
  5202. Patch 5.4p.2
  5203. Problem:    Motif and Athena with XIM: Typing 3-byte
  5204.         <multibyte><multibyte><space> doesn't work correctly with Ami XIM.
  5205. Solution:   Avoid using key_sym XK_VoidSymbol. (Nam)
  5206. Files:        src/multbyte.c, src/gui_x11.c
  5207.  
  5208. Patch 5.4p.4
  5209. Problem:    Win32 GUI: The scrollbar values were reduced for a file with more
  5210.         than 32767 lines.  But this info was kept global for all
  5211.         scrollbars, causing a mixup between the windows.
  5212.         Using the down arrow of a scrollbar in a large file didn't work.
  5213.         Because of round-off errors there is no scroll at all.
  5214. Solution:   Give each scrollbar its own scroll_shift field.  When the down
  5215.         arrow is used, scroll several lines.
  5216. Files:        src/gui.h, src/gui_w32.c
  5217.  
  5218. Patch 5.4p.5
  5219. Problem:    When changing buffers in a BufDelete autocommand, there could be
  5220.         ml_line errors and/or a crash. (Schandl)  Was caused by deleting
  5221.         the current buffer.
  5222. Solution:   When the buffer to be deleted unexpectedly becomes the current
  5223.         buffer, don't delete it.
  5224.         Also added a check for this in test13.
  5225. Files:        src/buffer.c, src/testdir/test13.in, src/testdir/test13.ok
  5226.  
  5227. Patch 5.4p.7
  5228. Problem:    Win32 GUI: When using 'mousemodel' set to "popup_setpos" and
  5229.         clicking the right mouse button outside of the selected area, the
  5230.         selected area wasn't removed until the popup menu has gone.
  5231.         (Aaron)
  5232. Solution:   Set the cursor and update the display before showing the popup
  5233.         menu.
  5234. Files:        src/normal.c
  5235.  
  5236. Patch 5.4p.8
  5237. Problem:    The generated bugreport didn't contain information about
  5238.         $VIMRUNTIME and whether runtime files actually exist.
  5239. Solution:   Added a few checks to the bugreport script.
  5240. Files:        runtime/bugreport.vim
  5241.  
  5242. Patch 5.4p.9
  5243. Problem:    The windows install.exe created a wrong entry in the popup menu.
  5244.         The "%1" was "".  The full directory was included, even when the
  5245.         executable had been moved elsewhere. (Ott)
  5246. Solution:   Double the '%' to get one from printf.  Only include the path to
  5247.         gvim.exe when it wasn't moved and it's not in $PATH.
  5248. Files:        src/dosinst.c
  5249.  
  5250. Patch 5.4p.10
  5251. Problem:    Win32: On top of 5.4p.9: The "Edit with Vim" entry sometimes used
  5252.         a short file name for a directory.
  5253. Solution:   Change the "%1" to "%L" in the registry entry.
  5254. Files:        src/dosinst.c
  5255.  
  5256. Patch 5.4p.11
  5257. Problem:    Motif, Athena and GTK: When closing the GUI window when there is a
  5258.         changed buffer, there was only an error message and Vim would not
  5259.         exit.
  5260. Solution:   Put up a dialog, like for ":confirm qa".  Uses the code that was
  5261.         already used for MS-Windows.
  5262. Files:        src/gui.c, src/gui_w32.c
  5263.  
  5264. Patch 5.4p.12
  5265. Problem:    Win32: Trying to expand a string that is longer than 256
  5266.         characters could cause a crash. (Steed)
  5267. Solution:   For the buffer in win32_expandpath() don't use a fixed size array,
  5268.         allocate it.
  5269. Files:        src/os_win32.c
  5270.  
  5271. MSDOS: Added "-Wall" to Makefile.djg compile flags.  Function prototypes for
  5272. fname_case() and mch_update_cursor() were missing.  "fd" was unused in
  5273. mf_sync().  "puiLocation" was unused in myputch().  "newcmd" unused in
  5274. mch_call_shell() for DJGPP version.
  5275.  
  5276. ==============================================================================
  5277. VERSION 5.5                        *version-5.5*
  5278.  
  5279. Version 5.5 is a bug-fix version of 5.4.
  5280.  
  5281.  
  5282. Changed                            *changed-5.5*
  5283. -------
  5284.  
  5285. The DJGPP version is now compiled with "-O2" instead of "-O4" to reduce the
  5286. size of the executables.
  5287.  
  5288. Moved the src/STYLE file to runtime/doc/develop.txt.  Added the design goals
  5289. to it.
  5290.  
  5291. 'backspace' is now a string option.  See patch 5.4.15.
  5292.  
  5293.  
  5294. Added                            *added-5.5*
  5295. -----
  5296.  
  5297. Included Exuberant Ctags version 3.3. (Darren Hiebert)
  5298.  
  5299. In runtime/mswin.vim, map CTRL-Q to CTRL-V, so that CTRL-Q can be used
  5300. everywhere to do what CTRL-V used to do.
  5301.  
  5302. Support for decompression of bzip2 files in vimrc_example.vim.
  5303.  
  5304. When a patch is included, the patch number is entered in a table in version.c.
  5305. This allows skipping a patch without breaking a next one.
  5306.  
  5307. Support for mouse scroll wheel in X11.  See patch 5.5a.14.
  5308.  
  5309. line2byte() can be used to get the size of the buffer.  See patch 5.4.35.
  5310.  
  5311. The CTRL-R CTRL-O r and CTRL-R CTRL-P r commands in Insert mode are used to
  5312. insert a register literally.  See patch 5.4.48.
  5313.  
  5314. Uninstall program for MS-Windows.  To be able to remove the registry entries
  5315. for "Edit with Vim".  It is registered to be run from the "Add/Remove
  5316. programs" application.  See patch 5.4.x7.
  5317.  
  5318.  
  5319. Fixed                            *fixed-5.5*
  5320. -----
  5321.  
  5322. When using vimrc_example.vim: An error message when the cursor is on a line
  5323. higher than the number of lines in the compressed file.  Move the autocommand
  5324. for jumping to the last known cursor position to after the decompressing
  5325. autocommands.
  5326.  
  5327. ":mkexrc" and ":mksession" wrote the current value of 'textmode'.  That may
  5328. mark a file as modified, which causes problems.  This is a buffer-specific
  5329. setting, it should not affect all files.
  5330.  
  5331. "vim --version" wrote two empty lines.
  5332.  
  5333. Unix: The alarm signal could kill Vim.  It is generated by the Perl alarm()
  5334. function.  Ignore SIGALRM.
  5335.  
  5336. Win32 GUI: Toolbar still had the yellow bitmap for running a Vim script.
  5337.  
  5338. BeOS: "tmo" must be bigtime_t, instead of double. (Seibert)
  5339.  
  5340. Patch 5.4.1
  5341. Problem:    Test11 fails when $GZIP is set to "-v". (Matthew Jackson)
  5342. Solution:   Set $GZIP to an empty string.
  5343. Files:        src/testdir/test11.in
  5344.  
  5345. Patch 5.4.2
  5346. Problem:    Typing <Esc> at the crypt key prompt caused a crash. (Kallingal)
  5347. Solution:   Check for a NULL pointer returned from get_crypt_key().
  5348. Files:        src/fileio.c
  5349.  
  5350. Patch 5.4.3
  5351. Problem:    Python: Trying to use the name of an unnamed buffer caused a
  5352.         crash. (Daniel Burrows)
  5353. Solution:   Check for b_fname being a NULL pointer.
  5354. Files:        src/if_python.c
  5355.  
  5356. Patch 5.4.4
  5357. Problem:    Win32: When compiled without toolbar, but the 'T' flag is in
  5358.         'guioptions', there would be an empty space for the toolbar.
  5359. Solution:   Add two #ifdefs where checking for the 'T' flag. (Vince Negri)
  5360. Files:        src/gui.c
  5361.  
  5362. Patch 5.4.5
  5363. Problem:    Athena GUI: Using the Buffers.Refresh menu entry caused a crash.
  5364.         Looks like any ":unmenu" command may cause trouble.
  5365. Solution:   Disallow ":unmenu" in the Athena version.  Disable the Buffers
  5366.         menu, because the Refresh item would not work.
  5367. Files:        src/menu.c, runtime/menu.vim
  5368.  
  5369. Patch 5.4.6
  5370. Problem:    GTK GUI: Using ":gui" in the .gvimrc file caused an error.  Only
  5371.         happens when the GUI forks.
  5372. Solution:   Don't fork in a recursive call of gui_start().
  5373. Files:        src/gui.c
  5374.  
  5375. Patch 5.4.7
  5376. Problem:    Typing 'q' at the more prompt for the ATTENTION message causes the
  5377.         file loading to be interrupted. (Will Day)
  5378. Solution:   Reset got_int after showing the ATTENTION message.
  5379. Files:        src/memline.c
  5380.  
  5381. Patch 5.4.8
  5382. Problem:    Edit some file, ":he", ":opt": options from help window are shown,
  5383.         but pressing space updates from the other window. (Phillipps)
  5384.         Also: When there are changes in the option-window, ":q!" gives an
  5385.         error message.
  5386. Solution:   Before creating the option-window, go to a non-help window.
  5387.         Use ":bdel!" to delete the buffer.
  5388. Files:        runtime/optwin.vim
  5389.  
  5390. Patch 5.4.9
  5391.         Just updates version.h.  The real patch has been moved to 5.4.x1.
  5392.         This patch is just to keep the version number correct.
  5393.  
  5394. Patch 5.4.10
  5395. Problem:    GTK GUI: When $DISPLAY is invalid, "gvim -f" just exits.  It
  5396.         should run in the terminal.
  5397. Solution:   Use gtk_init_check() instead of gtk_init().
  5398. Files:        src/gui_gtk_x11.c
  5399.  
  5400. Patch 5.4.11
  5401. Problem:    When using the 'S' flag in 'cpoptions', 'tabstop' is not copied to
  5402.         the next buffer for some commands, e.g., ":buffer".
  5403. Solution:   When the BCO_NOHELP flag is given to buf_copy_options(), still
  5404.         copy the options used by do_help() when neither the "from" or "to"
  5405.         buffer is a help buffer.
  5406. Files:        src/option.c
  5407.  
  5408. Patch 5.4.12
  5409. Problem:    When using 'smartindent', there would be no extra indent if the
  5410.         current line did not have any indent already. (Hanus Adler)
  5411. Solution:   There was a wrongly placed "else", that previously matched with
  5412.         the "if" that set trunc_line.  Removed the "else" and added a
  5413.         check for trunc_line to be false.
  5414. Files:        src/misc1.c
  5415.  
  5416. Patch 5.4.13
  5417. Problem:    New SGI C compilers need another option for optimisation.
  5418. Solution:   Add a check in configure for "-OPT:Olimit". (Chin A Young)
  5419. Files:        src/configure.in, src/configure
  5420.  
  5421. Patch 5.4.14
  5422. Problem:    Motif GUI: When the popup menu is present, a tiny window appears
  5423.         on the desktop for some users.
  5424. Solution:   Set the menu widget ID for a popup menu to 0. (Thomas Koehler)
  5425. Files:        src/gui_motif.c
  5426.  
  5427. Patch 5.4.15
  5428. Problem:    Since 'backspace' set to 0 has been made Vi compatible, it is no
  5429.         longer possible to only allow deleting autoindent.
  5430. Solution:   Make 'backspace' a list of parts, to allow each kind of
  5431.         backspacing separately.
  5432. Files:        src/edit.c, src/option.c, src/option.h, src/proto/option.pro,
  5433.         runtime/doc/option.txt, runtime/doc/insert.txt
  5434.  
  5435. Patch 5.4.16
  5436. Problem:    Multibyte: Locale zh_TW.Big5 was not checked for in configure.
  5437. Solution:   Add zh_TW.Big5 to configure check. (Chih-Tsun Huang)
  5438. Files:        src/configure.in, src/configure
  5439.  
  5440. Patch 5.4.17
  5441. Problem:    GUI: When started from inside gvim with ":!gvim", Vim would not
  5442.         start.  ":!gvim -f" works fine.
  5443. Solution:   After forking, wait a moment in the parent process, to give the
  5444.         child a chance to set its process group.
  5445. Files:        src/gui.c
  5446.  
  5447. Patch 5.4.18
  5448. Problem:    Python: The clear_history() function also exists in a library.
  5449. Solution:   Rename clear_history() to clear_hist().
  5450. Files:        src/ex_getln.c, src/eval.c, src/proto/ex_getln.pro
  5451.  
  5452. Patch 5.4.19
  5453. Problem:    In a terminal with 25 lines, there is a more prompt after the
  5454.         ATTENTION message.  When hitting 'q' here the dialog prompt
  5455.         doesn't appear and file loading is interrupted. (Will Day)
  5456. Solution:   Don't allow quitting the printing of a message for the dialog
  5457.         prompt.  Added the msg_noquit_more flag for this.
  5458. Files:        src/message.c
  5459.  
  5460. Patch 5.4.20
  5461. Problem:    GTK: When starting gvim, would send escape sequences to the
  5462.         terminal to switch the cursor off and on.
  5463. Solution:   Don't call msg_start() if the GUI is expected to start.
  5464. Files:        src/main.c
  5465.  
  5466. Patch 5.4.21
  5467. Problem:    Motif: Toplevel menu ordering was wrong when using tear-off items.
  5468. Solution:   Don't add one to the index for a toplevel menu.
  5469. Files:        src/gui_motif.c
  5470.  
  5471. Patch 5.4.22
  5472. Problem:    In Insert mode, <C-Left>, <S-Left>, <C-Right> and <S-Right> didn't
  5473.         update the column used for vertical movement.
  5474. Solution:   Set curwin->w_set_curswant for those commands.
  5475. Files:        src/edit.c
  5476.  
  5477. Patch 5.4.23
  5478. Problem:    When a Visual selection is lost to another program, and then the
  5479.         same text is Visually selected again, the clipboard ownership
  5480.         wasn't regained.
  5481. Solution:   Set clipboard.vmode to NUL to force regaining the clipboard.
  5482. Files:        src/normal.c
  5483.  
  5484. Patch 5.4.24
  5485. Problem:    Encryption: When using ":r file" while 'key' has already entered,
  5486.         the 'key' option would be messed up.  When writing the file it
  5487.         would be encrypted with an unknown key and lost! (Brad Despres)
  5488. Solution:   Don't free cryptkey when it is equal to the 'key' option.
  5489. Files:        src/fileio.c
  5490.  
  5491. Patch 5.4.25
  5492. Problem:    When 'cindent' is set, but 'autoindent' isn't, comments are not
  5493.         properly indented when starting a new line. (Mitterand)
  5494. Solution:   When there is a comment leader for the new line, but 'autoindent'
  5495.         isn't set, do C-indenting.
  5496. Files:        src/misc1.c
  5497.  
  5498. Patch 5.4.26
  5499. Problem:    Multi-byte: a multi-byte character is never recognized in a file
  5500.         name, causing a backslash before it to be removed on Windows.
  5501. Solution:   Assume that a leading-byte character is a file name character in
  5502.         vim_isfilec().
  5503. Files:        src/charset.c
  5504.  
  5505. Patch 5.4.27
  5506. Problem:    Entries in the PopUp[nvic] menus were added for several modes, but
  5507.         only deleted for the mode they were used for.  This resulted in
  5508.         the  entry remaining in the PopUp menu.
  5509.         When removing a PopUp[nvic] menu, the name had been truncated,
  5510.         could result in greying-out the whole PopUp menu.
  5511. Solution:   Remove entries for all modes from the PopUp[nvic] menus.  Remove
  5512.         the PopUp[nvic] menu entries first, before the name is changed.
  5513. Files:        src/menu.c
  5514.  
  5515. Patch 5.4.28
  5516. Problem:    When using a BufWritePre autocommand to change 'fileformat', the
  5517.         new value would not be used for writing the file.
  5518. Solution:   Check 'fileformat' after executing the autocommands instead of
  5519.         before.
  5520. Files:        src/fileio.c
  5521.  
  5522. Patch 5.4.29
  5523. Problem:    Athena GUI: When removing the 'g' flag from 'guioptions', using a
  5524.         menu can result in a crash.
  5525. Solution:   Always grey-out menus for Athena, don't hide them.
  5526. Files:        src/menu.c
  5527.  
  5528. Patch 5.4.30
  5529. Problem:    BeOS: Suspending Vim with CTRL-Z didn't work (killed Vim).  The
  5530.         first character typed after ":sh" goes to Vim, instead of the
  5531.         started shell.
  5532. Solution:   Don't suspend Vim, start a new shell.  Kill the async read thread
  5533.         when starting a new shell.  It will be restarted later. (Will Day)
  5534. Files:        src/os_unix.c, src/ui.c
  5535.  
  5536. Patch 5.4.31
  5537. Problem:    GUI: When 'mousefocus' is set, moving the mouse over where a
  5538.         window boundary was, causes a hit-enter prompt to be finished.
  5539.         (Jeff Walker)
  5540. Solution:   Don't use 'mousefocus' at the hit-enter prompt.  Also ignore it
  5541.         for the more prompt and a few other situations.  When an operator
  5542.         is pending, abort it first.
  5543. Files:        src/gui.c
  5544.  
  5545. Patch 5.4.32
  5546. Problem:    Unix: $LDFLAGS was not passed to configure.
  5547. Solution:   Pass $LDFLAGS to configure just like $CFLAGS. (Jon Miner)
  5548. Files:        src/Makefile
  5549.  
  5550. Patch 5.4.33
  5551. Problem:    Unix: After expanding an environment variable with the shell, the
  5552.         next expansion would also use the shell, even though it is not
  5553.         needed.
  5554. Solution:   Reset "recursive" before returning from gen_expand_wildcards().
  5555. Files:        src/misc1.c
  5556.  
  5557. Patch 5.4.34 (also see 5.4.x5)
  5558. Problem:    When editing a file, and the file name is relative to a directory
  5559.         above the current directory, the file name was made absolute.
  5560.         (Gregory Margo)
  5561. Solution:   Add an argument to shorten_fnames() which indicates if all file
  5562.         names should be shortened, or only absolute names.  In main() only
  5563.         use shorten_fnames() to shorten absolute names.
  5564. Files:        src/ex_docmd.c, src/fileio.c, src/main.c, src/proto/fileio.pro
  5565.  
  5566. Patch 5.4.35
  5567. Problem:    There is no function to get the current file size.
  5568. Solution:   Allow using line2byte() with the number of lines in the file plus
  5569.         one.  This returns the offset of the line past the end of the
  5570.         file, which is the file size plus one.
  5571. Files:        src/eval.c, runtime/doc/eval.txt
  5572.  
  5573. Patch 5.4.36
  5574. Problem:    Comparing strings while ignoring case didn't work correctly for
  5575.         some machines. (Mide Steed)
  5576. Solution:   vim_stricmp() and vim_strnicmp() only returned 0 or 1.  Changed
  5577.         them to return -1 when the first argument is smaller.
  5578. Files:        src/misc2.c
  5579.  
  5580. Patch 5.4.37 (also see 5.4.40 and 5.4.43)
  5581. Problem:    Long strings from the viminfo file are truncated.
  5582. Solution:   When writing a long string to the viminfo file, first write a line
  5583.         with the length, then the string itself in a second line.
  5584. Files:        src/eval.c, src/ex_cmds.c, src/ex_getln.c, src/mark.c, src/ops.c,
  5585.         src/search.c, src/proto/ex_cmds.pro, runtime/syntax/viminfo.vim
  5586.  
  5587. Patch 5.4.38
  5588. Problem:    In the option-window, ":set go&" resulted in 'go' being handled
  5589.         like a boolean option.
  5590.         Mappings for <Space> and <CR> were overruled by the option-window.
  5591. Solution:   When the value of an option isn't 0 or 1, don't handle it like a
  5592.         boolean option.
  5593.         Save and restore mappings for <Space> and <CR> when entering and
  5594.         leaving the option-window.
  5595. Files:        runtime/optwin.vim
  5596.  
  5597. Patch 5.4.39
  5598. Problem:    When setting a hidden option, spaces before the equal sign were
  5599.         not skipped and cause an error message.  E.g., ":set csprg =cmd".
  5600. Solution:   When skipping over a hidden option, check for a following "=val"
  5601.         and skip it too.
  5602. Files:        src/option.c
  5603.  
  5604. Patch 5.4.40 (depends on 5.4.37)
  5605. Problem:    Compiler error for "atol(p + 1)". (Axel Kielhorn)
  5606. Solution:   Add a typecast: "atol((char *)p + 1)".
  5607. Files:        src/ex_cmds.c
  5608.  
  5609. Patch 5.4.41
  5610. Problem:    Some commands that were not included would give an error message,
  5611.         even when after "if 0".
  5612. Solution:   Don't give an error message for an unsupported command when not
  5613.         executing the command.
  5614. Files:        src/ex_docmd.c
  5615.  
  5616. Patch 5.4.42
  5617. Problem:    ":w" would also cause a truncated message to appear in the message
  5618.         history.
  5619. Solution:   Don't put a kept message in the message history when it starts
  5620.         with "<".
  5621. Files:        src/message.c
  5622.  
  5623. Patch 5.4.43 (depends on 5.4.37)
  5624. Problem:    Mixing long lines with multiple lines in a register causes errors
  5625.         when writing the viminfo file. (Robinson)
  5626. Solution:   When reading the viminfo file to skip register contents, skip
  5627.         lines that start with "<".
  5628. Files:        src/ops.c
  5629.  
  5630. Patch 5.4.44
  5631. Problem:    When 'whichwrap' includes '~', a "~" command that goes on to the
  5632.         next line cannot be properly undone. (Zellner)
  5633. Solution:   Save each line for undo in n_swapchar().
  5634. Files:        src/normal.c
  5635.  
  5636. Patch 5.4.45 (also see 5.4.x8)
  5637. Problem:    When expand("$ASDF") fails, there is an error message.
  5638. Solution:   Remove the global expand_interactively.  Pass a flag down to skip
  5639.         the error message.
  5640.         Also: expand("$ASDF") returns an empty string if $ASDF isn't set.
  5641.         Previously it returned "$ASDF" when 'shell' is "sh".
  5642.         Also: system() doesn't print an error when the command returns an
  5643.         error code.
  5644. Files:        many
  5645.  
  5646. Patch 5.4.46
  5647. Problem:    Backspacing did not always use 'softtabstop' after hitting <CR>,
  5648.         inserting a register, moving the cursor, etc.
  5649. Solution:   Reset inserted_space much more often in edit().
  5650. Files:        src/edit.c
  5651.  
  5652. Patch 5.4.47
  5653. Problem:    When executing BufWritePre or BufWritePost autocommands for a
  5654.         hidden buffer, the cursor could be moved to a non-existing
  5655.         position. (Vince Negri)
  5656. Solution:   Save and restore the cursor and topline for the current window
  5657.         when it is going to be used to execute autocommands for a hidden
  5658.         buffer.  Use an existing window for the buffer when it's not
  5659.         hidden.
  5660. Files:        src/fileio.c
  5661.  
  5662. Patch 5.4.48
  5663. Problem:    A paste with the mouse in Insert mode was not repeated exactly the
  5664.         same with ".".  For example, when 'autoindent' is set and pasting
  5665.         text with leading indent. (Perry)
  5666. Solution:   Add the CTRL-R CTRL-O r and CTRL-R CTRL-P r commands in Insert
  5667.         mode, which insert the contents of a register literally.
  5668. Files:        src/edit.c, src/normal.c, runtime/doc/insert.txt
  5669.  
  5670. Patch 5.4.49
  5671. Problem:    When pasting text with [ <MiddleMouse>, the cursor could end up
  5672.         after the last character of the line.
  5673. Solution:   Correct the cursor position for the change in indent.
  5674. Files:        src/ops.c
  5675.  
  5676. Patch 5.4.x1 (note: Replaces patch 5.4.9)
  5677. Problem:    Win32 GUI: menu hints were never used, because WANT_MENU is not
  5678.         defined until vim.h is included.
  5679. Solution:   Move the #ifdef WANT_MENU from where MENUHINTS is defined to where
  5680.         it is used.
  5681. Files:        src/gui_w32.c
  5682.  
  5683. Patch 5.4.x2
  5684. Problem:    BeOS: When pasting text, one character was moved to the end.
  5685. Solution:   Re-enable the BeOS code in fill_input_buf(), and fix timing out
  5686.         with acquire_sem_etc(). (Will Day)
  5687. Files:        src/os_beos.c, src/ui.c
  5688.  
  5689. Patch 5.4.x3
  5690. Problem:    Win32 GUI: When dropping a directory on a running gvim it crashes.
  5691. Solution:   Avoid using a NULL file name.  Also display a message to indicate
  5692.         that the current directory was changed.
  5693. Files:        src/gui_w32.c
  5694.  
  5695. Patch 5.4.x4
  5696. Problem:    Win32 GUI: Removing an item from the popup menu doesn't work.
  5697. Solution:   Don't remove the item from the menubar, but from the parent popup
  5698.         menu.
  5699. Files:        src/gui_w32.c
  5700.  
  5701. Patch 5.4.x5 (addition to 5.4.34)
  5702. Files:        src/gui_w32.c
  5703.  
  5704. Patch 5.4.x6
  5705. Problem:    Win32: Expanding (dir)name starting with a dot doesn't work.
  5706.         (McCormack)  Only when there is a path before it.
  5707. Solution:   Fix the check, done before expansion, if the file name pattern
  5708.         starts with a dot.
  5709. Files:        src/os_win32.c
  5710.  
  5711. Patch 5.4.x7
  5712. Problem:    Win32 GUI: Removing "Edit with Vim" from registry is difficult.
  5713. Solution:   Add uninstall program to remove the registry keys. It is installed
  5714.         in the "Add/Remove programs" list for ease of use.
  5715.         Also: don't set $VIM when the executable is with the runtime files.
  5716.         Also: Add a text file with a step-by-step description of how to
  5717.         uninstall Vim for DOS and Windows.
  5718. Files:        src/uninstal.c, src/dosinst.c, src/Makefile.w32, uninstal.txt
  5719.  
  5720. Patch 5.4.x8 (addition to 5.4.45)
  5721. Files:        many
  5722.  
  5723. Patch 5.4.x9
  5724. Problem:    Win32 GUI: After executing an external command, focus is not
  5725.         always regained (when using focus-follows-mouse).
  5726. Solution:   Add SetFocus() in mch_system(). (Mike Steed)
  5727. Files:        src/os_win32.c
  5728.  
  5729.  
  5730. Patch 5.5a.1
  5731. Problem:    ":let @* = @:" did not work.  The text was not put on the
  5732.     I   clipboard.  (Fisher)
  5733. Solution:   Own the clipboard and put the text on it.
  5734. Files:        src/ops.c
  5735.  
  5736. Patch 5.5a.2
  5737. Problem:    append() did not mark the buffer modified.  Marks below the
  5738.         new line were not adjusted.
  5739. Solution:   Fix the f_append() function.
  5740. Files:        src/eval.c
  5741.  
  5742. Patch 5.5a.3
  5743. Problem:    Editing compressed ".gz" files doesn't work on non-Unix systems,
  5744.         because there is no "mv" command.
  5745. Solution:   Add the rename() function and use it instead of ":!mv".
  5746.         Also: Disable the automatic jump to the last position, because it
  5747.         changes the jumplist.
  5748. Files:        src/eval.c, runtime/doc/eval.txt, runtime/vimrc_example.vim
  5749.  
  5750. Patch 5.5a.4
  5751. Problem:    When using whole-line completion in insert mode while the cursor
  5752.         is in the indent, get "out of memory" error. (Stekrt)
  5753. Solution:   Don't allocate a negative amount of memory in ins_complete().
  5754. Files:        src/edit.c
  5755.  
  5756. Patch 5.5a.5
  5757. Problem:    Win32: The 'path' option can hold only up to 256 characters,
  5758.         because _MAX_PATH is 256.  (Robert Webb)
  5759. Solution:   Use a fixed path length of 1024.
  5760. Files:        src/os_win32.h
  5761.  
  5762. Patch 5.5a.6
  5763. Problem:    Compiling with gcc on Win32, using the Unix Makefile, didn't work.
  5764. Solution:   Add $(SUFFIX) to all places where an executable is used.  Also
  5765.         pass it to ctags.  (Reynolds)
  5766. Files:        src/Makefile
  5767.  
  5768. Patch 5.5a.7
  5769. Problem:    When using "cat | vim -" in an xterm, the xterm version reply
  5770.         would end up in the file.
  5771. Solution:   Read the file from stdin before switching the terminal to RAW
  5772.         mode.  Should also avoid problems with programs that use a
  5773.         specific terminal setting.
  5774.         Also: when using the GUI, print "Reading from stdin..." in the GUI
  5775.         window, to give a hint why it doesn't do anything.
  5776. Files:        src/main.c, src/fileio.c
  5777.  
  5778. Patch 5.5a.8
  5779. Problem:    On multi-threaded Solaris, suspending doesn't work.
  5780. Solution:   Call pause() when the SIGCONT signal was not received after
  5781.         sending the SIGTSTP signal. (Nagano)
  5782. Files:        src/os_unix.c
  5783.  
  5784. Patch 5.5a.9
  5785. Problem:    'winaltkeys' could be set to an empty argument, which is illegal.
  5786. Solution:   Give an error message when doing ":set winaltkeys=".
  5787. Files:        src/option.c
  5788.  
  5789. Patch 5.5a.10
  5790. Problem:    Win32 console: Using ALTGR on a German keyboard to produce "}"
  5791.         doesn't work, because the 8th bit is set when ALT is pressed.
  5792. Solution:   Don't set the 8th bit when ALT and CTRL are used. (Leipert)
  5793. Files:        src/os_win32.c
  5794.  
  5795. Patch 5.5a.11
  5796. Problem:    Tcl: Configure always uses tclsh8.0.
  5797.         Also: Loading a library doesn't work.
  5798. Solution:   Add "--with-tclsh" configure argument to allow specifying another
  5799.         name for the tcl shell.
  5800.         Call Tcl_Init() in tclinit() to make loading libraries work.
  5801.         (Johannes Zellner)
  5802. Files:        src/configure.in, src/configure, src/if_tcl.c
  5803.  
  5804. Patch 5.5a.12
  5805. Problem:    The "user_commands" feature is called "user-commands".
  5806. Solution:   Replace "user-commands" with "user_commands". (Kim Sung-bom)
  5807.         Keep "user-commands" for the has() function, to remain backwards
  5808.         compatible with 5.4.
  5809. Files:        src/eval.c, src/version.c
  5810.  
  5811. Patch 5.5a.13
  5812. Problem:    OS/2: When $HOME is not defined, "C:/" is used for the viminfo
  5813.         file.  That is very wrong when OS/2 is on another partition.
  5814. Solution:   Use $VIM for the viminfo file when it is defined, like for MSDOS.
  5815.         Also: Makefile.os2 didn't depend on os_unix.h.
  5816. Files:        src/os_unix.h, src/Makefile.os2
  5817.  
  5818. Patch 5.5a.14
  5819. Problem:    Athena, Motif and GTK: The Mouse scroll wheel doesn't work.
  5820. Solution:   Interpret a click of the wheel as a key press of the <MouseDown>
  5821.         or <MouseUp> keys.  Default behavior is to scroll three lines, or
  5822.         a full page when Shift is used.
  5823. Files:        src/edit.c, src/ex_getln.c, src/gui.c, src/gui_gtk_x11.c,
  5824.         src/gui_x11.c, src/keymap.h, src/message.c, src/misc1.c,
  5825.         src/misc2.c, src/normal.c,  src/proto/normal.pro, src/vim.h,
  5826.         runtime/doc/scroll.txt
  5827.  
  5828. Patch 5.5a.15
  5829. Problem:    Using CTRL-A in Insert mode doesn't work correctly when the insert
  5830.         started with the <Insert> key. (Andreas Rohrschneider)
  5831. Solution:   Replace <Insert> with "i" before setting up the redo buffer.
  5832. Files:        src/normal.c
  5833.  
  5834. Patch 5.5a.16
  5835. Problem:    VMS: GUI does not compile and run.
  5836. Solution:   Various fixes. (Zoltan Arpadffy)
  5837.         Moved functions from os_unix.c to ui.c, so that VMS can use them
  5838.         too: open_app_context(), x11_setup_atoms() and clip_x11* functions.
  5839.         Made xterm_dpy global, it's now used by ui.c and os_unix.c.
  5840.         Use gethostname() always, sys_hostname doesn't exist.
  5841. Files:        src/globals.h, src/gui_x11.c, src/os_vms.mms, src/os_unix.c,
  5842.         src/os_vms.c, src/ui.c, src/proto/os_unix.pro, src/proto/ui.pro
  5843.  
  5844. Renamed AdjustCursorForMultiByteCharacter() to AdjustCursorForMultiByteChar()
  5845. to avoid symbol length limit of 31 characters. (Steve P. Wall)
  5846.  
  5847. Patch 5.5b.1
  5848. Problem:    SASC complains about dead assignments and implicit type casts.
  5849. Solution:   Removed the dead assignments.  Added explicit type casts.
  5850. Files:        src/buffer.c, src/edit.c, src/eval.c, src/ex_cmds.c,
  5851.         src/ex_getln.c, src/fileio.c, src/getchar.c, src/memline.c,
  5852.         src/menu.c, src/misc1.c, src/normal.c, src/ops.c, src/quickfix.c,
  5853.         src/screen.c
  5854.  
  5855. Patch 5.5b.2
  5856. Problem:    When using "CTRL-O O" in Insert mode, hit <Esc> and then "o" in
  5857.         another line truncates that line. (Devin Weaver)
  5858. Solution:   When using a command that starts Insert mode from CTRL-O, reset
  5859.         "restart_edit" first.  This avoids that edit() is called with a
  5860.         mix of starting a new edit command and restarting a previous one.
  5861. Files:        src/normal.c
  5862.  
  5863. ==============================================================================
  5864. VERSION 5.6                        *version-5.6*
  5865.  
  5866. Version 5.6 is a bug-fix version of 5.5.
  5867.  
  5868.  
  5869. Changed                            *changed-5.6*
  5870. -------
  5871.  
  5872. Small changes to OleVim files. (Christian Schaller)
  5873.  
  5874. Inserted "/**/" between patch numbers in src/version.c.  This allows for one
  5875. line of context, which some versions of patch need.
  5876.  
  5877. Reordered the Syntax menu to avoid long submenus.  Removed keyboard shortcuts
  5878. for alphabetical items to avoid a clash with fixed items.
  5879.  
  5880.  
  5881. Added                            *added-5.6*
  5882. -----
  5883.  
  5884. Included Exuberant Ctags version 3.4. (Darren Hiebert)
  5885.  
  5886. OpenWithVim in Python. (Christian Schaller)
  5887.  
  5888. Win32 GUI: gvimext.dll, for the context menu "Edit with Vim" entry.  Avoids
  5889. the reported problems with the MS Office taskbar.  Now it's a Shell Extension.
  5890. (Tianmiao Hu)
  5891.  
  5892. New syntax files:
  5893. abel        Abel (John Cook)
  5894. aml        Arc Macro Language (Nikki Knuit)
  5895. apachestyle    Apache-style config file (Christian Hammers)
  5896. cf        Cold Fusion (Jeff Lanzarotta)
  5897. ctrlh        files with CTRL-H sequences (Bram Moolenaar)
  5898. cupl        CUPL (John Cook)
  5899. cuplsim        CUPL simulation (John Cook)
  5900. erlang        Erlang (Kresimir Marzic)
  5901. gedcom        Gedcom (Paul Johnson)
  5902. icon        Icon (Wendell Turner)
  5903. ist        MakeIndex style (Peter Meszaros)
  5904. jsp        Java Server Pages (Rafael Garcia-Suarez)
  5905. rcslog        Rcslog (Joe Karthauser)
  5906. remind        Remind (Davide Alberani)
  5907. sqr        Structured Query Report Writer (Paul Moore)
  5908. tads        TADS (Amir Karger)
  5909. texinfo        Texinfo (Sandor Kopanyi)
  5910. xpm2        X Pixmap v2 (Steve Wall)
  5911.  
  5912. The 'C' flag in 'cpoptions' can be used to switch off concatenation for
  5913. sourced lines.  See patch 5.5.013 below. |line-continuation|
  5914.  
  5915. "excludenl" argument for the ":syntax" command.  See patch 5.5.032 below.
  5916. |:syn-excludenl|
  5917.  
  5918. Implemented |z+| and |z^| commands.  See patch 5.5.050 below.
  5919.  
  5920. Vim logo in Corel Draw format.  Can be scaled to any resolution.
  5921.  
  5922.  
  5923. Fixed                            *fixed-5.6*
  5924. -----
  5925.  
  5926. Using this mapping in Select mode, terminated completion:
  5927. ":vnoremap <C-N> <Esc>a<C-N>" (Benji Fisher)
  5928. Ignore K_SELECT in ins_compl_prep().
  5929.  
  5930. VMS (Zoltan Arpadffy, David Elins):
  5931. - ioctl() in pty.c caused trouble, #ifndef VMS added.
  5932. - Cut & paste mismatch corrected.
  5933. - Popup menu line crash corrected.  (Patch 5.5.047)
  5934. - Motif directories during open and save as corrected.
  5935. - Handle full file names with version numbers. (Patch 5.5.046)
  5936. - Directory handling (CD command etc.)
  5937. - Corrected file name conversion VMS to Unix and v.v.
  5938. - Recovery was not working.
  5939. - Terminal and signal handling was outdated compared to os_unix.c.
  5940. - Improved os_vms.txt.
  5941.  
  5942. Configure used fprintf() instead of printf() to check for __DATE__ and
  5943. __TIME__. (John Card II)
  5944.  
  5945. BeOS: Adjust computing the char_height and char_ascent.  Round them up
  5946. separately, avoids redrawing artifacts. (Mike Steed)
  5947.  
  5948. Fix a few multi-byte problems in menu_name_skip(), set_reg_ic(), searchc() and
  5949. findmatchlimit(). (Taro Muraoka)
  5950.  
  5951. GTK GUI:
  5952. - With GTK 1.2.5 and later the scrollbars were not redrawn correctly.
  5953. - Adjusted the gtk_form_draw() function.
  5954. - SNiFF connection didn't work.
  5955. - 'mousefocus' was not working. (Dalecki)
  5956. - Some keys were not working with modifiers: Shift-Tab, Ctrl-Space and CTRL-@.
  5957.  
  5958.  
  5959. Patch 5.5.001
  5960. Problem:    Configure in the top directory did not pass on an argument with a
  5961.         space correctly.  For example "./configure --previs="/My home".
  5962.         (Stephane Chazelas)
  5963. Solution:   Use '"$@"' instead of '$*' to pass on the arguments.
  5964. Files:        configure
  5965.  
  5966. Patch 5.5.002
  5967. Problem:    Compilation error for using "fds[] & POLLIN". (Jeff Walker)
  5968. Solution:   Use "fds[].revents & POLLIN".
  5969. Files:        src/os_unix.c
  5970.  
  5971. Patch 5.5.003
  5972. Problem:    The autoconf check for sizeof(int) is wrong on machines where
  5973.         sizeof(size_t) != sizeof(int).
  5974. Solution:   Use our own configure check.  Also fixes the warning for
  5975.         cross-compiling.
  5976. Files:        src/configure.in, src/configure
  5977.  
  5978. Patch 5.5.004
  5979. Problem:    On Unix it's not possible to interrupt ":sleep 100".
  5980. Solution:   Switch terminal to cooked mode while asleep, to allow a SIGINT to
  5981.         wake us up.  But switch off echo, added TMODE_SLEEP.
  5982. Files:        src/term.h, src/os_unix.c
  5983.  
  5984. Patch 5.5.005
  5985. Problem:    When using <f-args> with a user command, an empty argument to the
  5986.         command resulted in one empty string, while no string was
  5987.         expected.
  5988. Solution:   Catch an empty argument and pass no argument to the function.
  5989.         (Paul Moore)
  5990. Files:        src/ex_docmd.c
  5991.  
  5992. Patch 5.5.006
  5993. Problem:    Python: When platform-dependent files are in another directory
  5994.         than the platform-independent files it doesn't work.
  5995. Solution:   Also check the executable directory, and add it to CFLAGS. (Tessa
  5996.         Lau)
  5997. Files:        src/configure.in, src/configure
  5998.  
  5999. Patch 5.5.007 (extra)
  6000. Problem:    Win32 OLE: Occasional crash when exiting while still being used
  6001.         via OLE.
  6002. Solution:   Move OleUninitialize() to before deleting the application object.
  6003.         (Vince Negri)
  6004. Files:        src/if_ole.cpp
  6005.  
  6006. Patch 5.5.008
  6007. Problem:    10000@@ takes a long time and cannot be interrupted.
  6008. Solution:   Check for CTRL-C typed while in the loop to push the register.
  6009. Files:        src/normal.c
  6010.  
  6011. Patch 5.5.009
  6012. Problem:    Recent Sequent machines don't link with "-linet". (Kurtis Rader)
  6013. Solution:   Remove configure check for Sequent.
  6014. Files:        src/configure.in, src/configure
  6015.  
  6016. Patch 5.5.010
  6017. Problem:    Ctags freed a memory block twice when exiting.  When out of
  6018.         memory, a misleading error message was given.
  6019. Solution:   Update to ctags 3.3.2.  Also fixes a few other problems. (Darren
  6020.         Hiebert)
  6021. Files:        src/ctags/*
  6022.  
  6023. Patch 5.5.011
  6024. Problem:    After "CTRL-V s", the cursor jumps back to the start, while all
  6025.         other operators leave the cursor on the last changed character.
  6026.         (Xiangjiang Ma)
  6027. Solution:   Position cursor on last changed character, if possible.
  6028. Files:        src/ops.c
  6029.  
  6030. Patch 5.5.012
  6031. Problem:    Using CTRL-] in Visual mode doesn't work when the text includes a
  6032.         space (just where it's useful). (Stefan Bittner)
  6033. Solution:   Don't escape special characters in a tag name with a backslash.
  6034. Files:        src/normal.c
  6035.  
  6036. Patch 5.5.013
  6037. Problem:    The ":append" and ":insert" commands allow using a leading
  6038.         backslash in a line.  The ":source" command concatenates those
  6039.         lines. (Heinlein)
  6040. Solution:   Add the 'C' flag in 'cpoptions' to switch off concatenation.
  6041. Files:        src/ex_docmd.c, src/option.h, runtime/doc/options.txt,
  6042.         runtime/filetype.vim, runtime/scripts.vim
  6043.  
  6044. Patch 5.5.014
  6045. Problem:    When executing a register with ":@", the ":append" command would
  6046.         get text lines with a ':' prepended. (Heinlein)
  6047. Solution:   Remove the ':' characters.
  6048. Files:        src/ex_docmd.c, src/ex_getln.c, src/globals.h
  6049.  
  6050. Patch 5.5.015
  6051. Problem:    When using ":g/pat/p", it's hard to see where the output starts,
  6052.         the ":g" command is overwritten.  Vi keeps the ":g" command.
  6053. Solution:   Keep the ":g" command, but allow overwriting it with the report
  6054.         for the number of changes.
  6055. Files:        src/ex_cmds.c
  6056.  
  6057. Patch 5.5.016 (extra)
  6058. Problem:    Win32: Using regedit to install Vim in the popup menu requires the
  6059.         user to confirm this in a dialog.
  6060. Solution:   Use "regedit /s" to avoid the dialog
  6061. Files:        src/dosinst.c
  6062.  
  6063. Patch 5.5.017
  6064. Problem:    If an error occurs when closing the current window, Vim could get
  6065.         stuck in the error handling.
  6066. Solution:   Don't set curwin to NULL when closing the current window.
  6067. Files:        src/window.c
  6068.  
  6069. Patch 5.5.018
  6070. Problem:    Absolute paths in shell scripts do not always work.
  6071. Solution:   Use /usr/bin/env to find out the path.
  6072. Files:        runtime/doc/vim2html.pl, runtime/tools/efm_filter.pl,
  6073.         runtime/tools/shtags.pl
  6074.  
  6075. Patch 5.5.019
  6076. Problem:    A function call in 'statusline' stops using ":q" twice from
  6077.         exiting, when the last argument hasn't been edited.
  6078. Solution:   Don't decrement quitmore when executing a function. (Madsen)
  6079. Files:        src/ex_docmd.c
  6080.  
  6081. Patch 5.5.020
  6082. Problem:    When the output of CTRL-D completion in the commandline goes all
  6083.         the way to the last column, there is an empty line.
  6084. Solution:   Don't add a newline when the cursor wrapped already. (Madsen)
  6085. Files:        src/ex_getln.c
  6086.  
  6087. Patch 5.5.021
  6088. Problem:    When checking if a file name in the tags file is relative,
  6089.         environment variables were not expanded.
  6090. Solution:   Expand the file name before checking if it is relative. (Madsen)
  6091. Files:        src/tag.c
  6092.  
  6093. Patch 5.5.022
  6094. Problem:    When setting or resetting 'paste' the ruler wasn't updated.
  6095. Solution:   Update the status lines when 'ruler' changes because of 'paste'.
  6096. Files:        src/option.c
  6097.  
  6098. Patch 5.5.023
  6099. Problem:    When editing a new file and autocommands change the cursor
  6100.         position, the cursor was moved back to the first non-white, unless
  6101.         'startofline' was reset.
  6102. Solution:   Keep the new column, just like the line number.
  6103. Files:        src/ex_cmds.c
  6104.  
  6105. Patch 5.5.024 (extra)
  6106. Problem:    Win32 GUI: When using confirm() to put up a dialog without a
  6107.         default button, the dialog would not have keyboard focus.
  6108.         (Krishna)
  6109. Solution:   Always set focus to the dialog window.  Only set focus to a button
  6110.         when a default one is specified.
  6111. Files:        src/gui_w32.c
  6112.  
  6113. Patch 5.5.025
  6114. Problem:    When using "keepend" in a syntax region, a contained match that
  6115.         includes the end-of-line could still force that region to
  6116.         continue, if there is another contained match in between.
  6117. Solution:   Check the keepend_level in check_state_ends().
  6118. Files:        src/syntax.c
  6119.  
  6120. Patch 5.5.026
  6121. Problem:    When starting Vim in a white-on-black xterm, with 'bg' set to
  6122.         "dark", and then starting the GUI with ":gui", setting 'bg' to
  6123.         "light" in the gvimrc, the highlighting isn't set.  (Tsjokwing)
  6124. Solution:   Set the highlighting when 'bg' is changed in the gvimrc, even
  6125.         though full_screen isn't set.
  6126. Files:        src/option.c
  6127.  
  6128. Patch 5.5.027
  6129. Problem:    Unix: os_unix.c doesn't compile when XTERM_CLIP is used but
  6130.         WANT_TITLE isn't. (Barnum)
  6131. Solution:   Move a few functions that are used by the X11 title and clipboard
  6132.         and put another "#if" around it.
  6133. Files:        src/os_unix.c
  6134.  
  6135. Patch 5.5.028 (extra)
  6136. Problem:    Win32 GUI: When a file is dropped on Win32 gvim while at the ":"
  6137.         prompt, the file is edited but the command line is actually still
  6138.         there, the cursor goes back to command line on the next command.
  6139.         (Krishna)
  6140. Solution:   When dropping a file or directory on gvim while at the ":" prompt,
  6141.         insert the name of the file/directory.  Allows using the
  6142.         file/directory name for any Ex command.
  6143. Files:        src/gui_w32.c
  6144.  
  6145. Patch 5.5.029
  6146. Problem:    "das" at the end of the file didn't delete the last character of
  6147.         the sentence.
  6148. Solution:   When there is no character after the sentence, make the operation
  6149.         inclusive in current_sent().
  6150. Files:        src/search.c
  6151.  
  6152. Patch 5.5.030
  6153. Problem:    Unix: in os_unix.c, "term_str" is used, which is also defined in
  6154.         vim.h as a macro. (wuxin)
  6155. Solution:   Renamed "term_str" to "buf" in do_xterm_trace().
  6156. Files:        src/os_unix.c
  6157.  
  6158. Patch 5.5.031 (extra)
  6159. Problem:    Win32 GUI: When exiting Windows, gvim will leave swap files behind
  6160.         and will be killed ungracefully. (Krishna)
  6161. Solution:   Catch the WM_QUERYENDSESSION and WM_ENDSESSION messages and try to
  6162.         exit gracefully.  Allow the user to cancel the shutdown if there
  6163.         is a changed buffer.
  6164. Files:        src/gui_w32.c
  6165.  
  6166. Patch 5.5.032
  6167. Problem:    Patch 5.5.025 wasn't right.  And C highlighting was still not
  6168.         working correctly for a #define.
  6169. Solution:   Added "excludenl" argument to ":syntax", to be able not to extend
  6170.         a containing item when there is a match with the end-of-line.
  6171. Files:        src/syntax.c, runtime/doc/syntax.txt, runtime/syntax/c.vim
  6172.  
  6173. Patch 5.5.033
  6174. Problem:    When reading from stdin, a long line in viminfo would mess up the
  6175.         file message.  readfile() uses IObuff for keep_msg, which could be
  6176.         overwritten by anyone.
  6177. Solution:   Copy the message from IObuff to msg_buf and set keep_msg to that.
  6178.         Also change vim_fgets() to not use IObuff any longer.
  6179. Files:        src/fileio.c
  6180.  
  6181. Patch 5.5.034
  6182. Problem:    "gvim -rv" caused a crash.  Using 't_Co' before it's set.
  6183. Solution:   Don't try to initialize the highlighting before it has been
  6184.         initialized from main().
  6185. Files:        src/syntax.c
  6186.  
  6187. Patch 5.5.035
  6188. Problem:    GTK with XIM: Resizing with status area was messy, and
  6189.         ":set guioptions+=b" didn't work.
  6190. Solution:   Make status area a separate widget, but not a separate window.
  6191.         (Chi-Deok Hwang)
  6192. Files:        src/gui_gtk_f.c, src/gui_gtk_x11.c, src/multbyte.c
  6193.  
  6194. Patch 5.5.036
  6195. Problem:    The GZIP_read() function in $VIMRUNTIME/vimrc_example.vim to
  6196.         uncompress a file did not do detection for 'fileformat'.  This is
  6197.         because the filtering is done with 'binary' set.
  6198. Solution:   Split the filtering into separate write, filter and read commands.
  6199. Files:        runtime/vimrc_example.vim
  6200.  
  6201. Patch 5.5.037
  6202. Problem:    The "U" command didn't mark the buffer as changed. (McCormack)
  6203. Solution:   Set the 'modified' flag when using "U".
  6204. Files:        src/undo.c
  6205.  
  6206. Patch 5.5.038
  6207. Problem:    When typing a long ":" command, so that the screen scrolls up,
  6208.         causes the hit-enter prompt, even though the user just typed
  6209.         return to execute the command.
  6210. Solution:   Reset need_wait_return if (part of) the command was typed in
  6211.         getcmdline().
  6212. Files:        src/ex_getln.c
  6213.  
  6214. Patch 5.5.039
  6215. Problem:    When using a custom status line, "%a" (file # of #) reports the
  6216.         index of the current window for all windows.
  6217. Solution:   Pass a window pointer to append_arg_number(), and pass the window
  6218.         being updated from build_stl_str_hl(). (Stephen P. Wall)
  6219. Files:        src/buffer.c, src/screen.c, src/proto/buffer.pro
  6220.  
  6221. Patch 5.5.040
  6222. Problem:    Multi-byte: When there is some error in xim_real_init(), it can
  6223.         close XIM and return.  After this there can be a segv.
  6224. Solution:   Test "xic" for being non-NULL, don't set "xim" to NULL.  Also try
  6225.         to find more matches for supported styles. (Sung-Hyun Nam)
  6226. Files:        src/multbyte.c
  6227.  
  6228. Patch 5.5.041
  6229. Problem:    X11 GUI: CTRL-_ requires the SHIFT key only on some machines.
  6230. Solution:   Translate CTRL-- to CTRL-_. (Robert Webb)
  6231. Files:        src/gui_x11.c
  6232.  
  6233. Patch 5.5.042
  6234. Problem:    X11 GUI: keys with ALT were assumed to be used for the menu, even
  6235.         when the menu has been disabled by removing 'm' from 'guioptions'.
  6236. Solution:   Ignore keys with ALT only when gui.menu_is_active is set. (Raf)
  6237. Files:        src/gui_x11.c
  6238.  
  6239. Patch 5.5.043
  6240. Problem:    GTK: Handling of fontset fonts was not right when 'guifontset'
  6241.         contains exactly 14 times '-'.
  6242. Solution:   Avoid setting fonts when working with a fontset. (Sung-Hyun Nam)
  6243. Files:        src/gui_gtk_x11.c
  6244.  
  6245. Patch 5.5.044
  6246. Problem:    pltags.pl contains an absolute path "/usr/local/bin/perl".  That
  6247.         might not work everywhere.
  6248. Solution:   Use "/usr/bin/env perl" instead.
  6249. Files:        runtime/tools/pltags.pl
  6250.  
  6251. Patch 5.5.045
  6252. Problem:    Using "this_session" variable does not work, requires preceding it
  6253.         with "v:".  Default filename for ":mksession" isn't mentioned
  6254.         in the docs. (Fisher)
  6255. Solution:   Support using "this_session" to be backwards compatible.
  6256. Files:        src/eval.c, runtime/doc/options.txt
  6257.  
  6258. Patch 5.5.046 (extra)
  6259. Problem:    VMS: problems with path and filename.
  6260. Solution:   Truncate file name at last ';', etc. (Zoltan Arpadffy)
  6261. Files:        src/buffer.c, src/fileio.c, src/gui_motif.c, src/os_vms.c,
  6262.         src/proto/os_vms.pro
  6263.  
  6264. Patch 5.5.047
  6265. Problem:    VMS: Crash when using the popup menu
  6266. Solution:   Turn the #define MENU_MODE_CHARS into an array. (Arpadffy)
  6267. Files:        src/structs.h, src/menu.c
  6268.  
  6269. Patch 5.5.048
  6270. Problem:    HP-UX 11: Compiling doesn't work, because both string.h and
  6271.         strings.h are included. (Squassabia)
  6272. Solution:   The configure test for including both string.h and strings.h
  6273.         must include <Xm/Xm.h> first, because it causes problems.
  6274. Files:        src/configure.in, src/configure, src/config.h.in
  6275.  
  6276. Patch 5.5.049
  6277. Problem:    Unix: When installing Vim, the protection bits of files might be
  6278.         influenced by the umask.
  6279. Solution:   Add $(FILEMOD) to Makefile. (Shetye)
  6280. Files:        src/Makefile
  6281.  
  6282. Patch 5.5.050
  6283. Problem:    "z+" and "z^" commands are missing.
  6284. Solution:   Implemented "z+" and "z^".
  6285. Files:        src/normal.c, runtime/doc/scroll.txt, runtime/doc/index.txt
  6286.  
  6287. Patch 5.5.051
  6288. Problem:    Several Unix systems have a problem with the optimization limits
  6289.         check in configure.
  6290. Solution:   Removed the configure check, let the user add it manually in
  6291.         Makefile or the environment.
  6292. Files:        src/configure.in, src/configure, src/Makefile
  6293.  
  6294. Patch 5.5.052
  6295. Problem:    Crash when using a cursor key at the ATTENTION prompt. (Alberani)
  6296. Solution:   Ignore special keys at the console dialog.  Also ignore characters
  6297.         > 255 for other uses of tolower() and toupper().
  6298. Files:        src/menu.c, src/message.c, src/misc2.c
  6299.  
  6300. Patch 5.5.053
  6301. Problem:    Indenting is wrong after a function when 'cino' has "fs".  Another
  6302.         problem when 'cino' has "{s".
  6303. Solution:   Put line after closing "}" of a function at the left margin.
  6304.         Apply ind_open_extra in the right way after a '{'.
  6305. Files:        src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
  6306.  
  6307. Patch 5.5.054
  6308. Problem:    Unix: ":e #" doesn't work if the alternate file name contains a
  6309.         space or backslash. (Hudacek)
  6310. Solution:   When replacing "#", "%" or other items that stand for a file name,
  6311.         prepend a backslash before special characters.
  6312. Files:        src/ex_docmd.c
  6313.  
  6314. Patch 5.5.055
  6315. Problem:    Using "<C-V>$r-" in blockwise Visual mode replaces one character
  6316.         beyond the end of the line. (Zivkov)
  6317. Solution:   Only replace existing characters.
  6318. Files:        src/ops.c
  6319.  
  6320. Patch 5.5.056
  6321. Problem:    After "z20<CR>" messages were printed at the old command line
  6322.         position once.  (Veselinovic)
  6323. Solution:   Set msg_row and msg_col when changing cmdline_row in
  6324.         win_setheight().
  6325. Files:        src/window.c
  6326.  
  6327. Patch 5.5.057
  6328. Problem:    After "S<Esc>" it should be possible to restore the line with "U".
  6329.         (Veselinovic)
  6330. Solution:   Don't call u_clearline() in op_delete() when changing only one
  6331.         line.
  6332. Files:        src/ops.c
  6333.  
  6334. Patch 5.5.058
  6335. Problem:    Using a long search pattern and then "n" causes the hit-enter
  6336.         prompt.  (Krishna)
  6337. Solution:   Truncate the echoed pattern, like other messages.  Moved code for
  6338.         truncating from msg_attr() to msg_strtrunc().
  6339. Files:        src/message.c, src/proto/message.pro, src/search.c
  6340.  
  6341. Patch 5.5.059
  6342. Problem:    GTK GUI: When $term is invalid, using "gvim" gives an error
  6343.         message, even though $term isn't really used.  (Robbins)
  6344. Solution:   When the GUI is about to start, skip the error messages for a
  6345.         wrong $term.
  6346. Files:        src/term.c
  6347.  
  6348. Patch 5.5.060 (extra)
  6349. Problem:    Dos 32 bit: When a directory in 'backupdir' doesn't exist, ":w"
  6350.         causes the file to be renamed to "axlqwqhy.ba~". (Matzdorf)
  6351. Solution:   The code to work around a LFN bug in Windows 95 doesn't handle a
  6352.         non-existing target name correctly.  When renaming fails, make
  6353.         sure the file has its original name.  Also do this for the Win32
  6354.         version, although it's unlikely that it runs into this problem.
  6355. Files:        src/os_msdos.c, src/os_win32.c
  6356.  
  6357. Patch 5.5.061
  6358. Problem:    When using "\:" in a modeline, the backslash is included in the
  6359.         option value. (Mohsin)
  6360. Solution:   Remove one backslash before the ':' in a modeline.
  6361. Files:        src/buffer.c, runtime/doc/options.txt
  6362.  
  6363. Patch 5.5.062 (extra)
  6364. Problem:    Win32 console: Temp files are created in the root of the current
  6365.         drive, which may be read-only. (Peterson)
  6366. Solution:   Use the same mechanism of the GUI version: Use $TMP, $TEMP or the
  6367.         current directory.  Cleaned up vim_tempname() a bit.
  6368. Files:        src/fileio.c, src/os_win32.h, runtime/doc/os_dos.txt
  6369.  
  6370. Patch 5.5.063
  6371. Problem:    When using whole-line completion in Insert mode, 'cindent' is
  6372.         applied, even after changing the indent of the line.
  6373. Solution:   Don't reindent the completed line after inserting/removing indent.
  6374.         (Robert Webb)
  6375. Files:        src/edit.c
  6376.  
  6377. Patch 5.5.064
  6378. Problem:    has("sniff") doesn't work correctly.
  6379. Solution:   Return 1 when Vim was compiled with the +sniff feature. (Pruemmer)
  6380. Files:        src/eval.c
  6381.  
  6382. Patch 5.5.065
  6383. Problem:    When dropping a file on Vim, the 'shellslash' option is not
  6384.         effective. (Krishna)
  6385. Solution:   Fix the slashes in the dropped file names according to
  6386.         'shellslash'.
  6387. Files:        src/ex_docmd.c, runtime/doc/options.txt
  6388.  
  6389. Patch 5.5.066
  6390. Problem:    For systems with backslash in file name: Setting a file name
  6391.         option to a value starting with "\\machine" removed a backslash.
  6392. Solution:   Keep the double backslash for "\\machine", but do change
  6393.         "\\\\machine" to "\\machine" for backwards compatibility.
  6394. Files:        src/option.c, runtime/doc/options.txt
  6395.  
  6396. Patch 5.5.067
  6397. Problem:    With 'hlsearch' set, the pattern "\>" doesn't highlight the first
  6398.         match in a line. (Benji Fisher)
  6399. Solution:   Fix highlighting an empty match.  Also highlight the first
  6400.         character in an empty line for "$".
  6401. Files:        src/screen.c
  6402.  
  6403. Patch 5.5.068
  6404. Problem:    Crash when a ":while" is used with an argument that has an error.
  6405.         (Sylvain Viart)
  6406. Solution:   Was using an uninitialized index in the cs_line[] array.  The
  6407.         crash only happened when the index was far off.  Made sure the
  6408.         uninitialized index isn't used.
  6409. Files:        src/ex_docmd.c
  6410.  
  6411. Patch 5.5.069
  6412. Problem:    Shifting lines in blockwise Visual mode didn't set the 'modified'
  6413.         flag.
  6414. Solution:   Do set the 'modified' flag.
  6415. Files:        src/ops.c
  6416.  
  6417. Patch 5.5.070
  6418. Problem:    When editing a new file, creating that file outside of Vim, then
  6419.         editing it again, ":w" still warns for overwriting an existing
  6420.         file. (Nam)
  6421. Solution:   The BF_NEW flag in the "b_flags" field wasn't cleared properly.
  6422. Files:        src/buffer.c, src/fileio.c
  6423.  
  6424. Patch 5.5.071
  6425. Problem:    Using a matchgroup in a ":syn region", which is the same syntax
  6426.         group as the region, didn't stop a contained item from matching in
  6427.         the start pattern.
  6428. Solution:   Also push an item on the stack when the syntax ID of the
  6429.         matchgroup is the same as the syntax ID of the region.
  6430. Files:        src/syntax.c
  6431.  
  6432. Patch 5.5.072 (extra)
  6433. Problem:    Dos 32 bit: When setting 'columns' to a too large value, Vim may
  6434.         crash, and the DOS console too.
  6435. Solution:   Check that the value of 'columns' isn't larger than the number of
  6436.         columns that the BIOS reports.
  6437. Files:        src/os_msdos.c, src/proto/os_msdos.pro, src/option.c
  6438.  
  6439. Patch 5.5.073 (extra)
  6440. Problem:    Win 32 GUI: The Find and Find/Replace dialogs didn't show the
  6441.         "match case" checkbox.  The Find/Replace dialog didn't handle the
  6442.         "match whole word" checkbox.
  6443. Solution:   Support the "match case" and "match whole word" checkboxes.
  6444. Files:        src/gui_w32.c
  6445.  
  6446. Patch 5.6a.001
  6447. Problem:    Using <C-End> with a count doesn't work like it does with "G".
  6448.         (Benji Fisher)
  6449. Solution:   Accept a count for <C-End> and <C-Home>.
  6450. Files:        src/normal.c
  6451.  
  6452. Patch 5.6a.002
  6453. Problem:    The script for conversion to HTML was an older version.
  6454. Solution:   Add support for running 2html.vim on a color terminal.
  6455. Files:        runtime/syntax/2html.vim
  6456.  
  6457. Patch 5.6a.003
  6458. Problem:    Defining a function inside a function didn't give an error
  6459.         message.  A missing ":endfunction" doesn't give an error message.
  6460. Solution:   Allow defining a function inside a function.
  6461. Files:        src/eval.c, runtime/doc/eval.txt
  6462.  
  6463. Patch 5.6a.004
  6464. Problem:    A missing ":endwhile" or ":endif" doesn't give an error message.
  6465.         (Johannes Zellner)
  6466. Solution:   Check for missing ":endwhile" and ":endif" in sourced files.
  6467.         Add missing ":endif" in file selection macros.
  6468. Files:        src/ex_docmd.c, runtime/macros/file_select.vim
  6469.  
  6470. Patch 5.6a.005
  6471. Problem:    'hlsearch' was not listed alphabetically.  The value of 'toolbar'
  6472.         was changed when 'compatible' is set.
  6473. Solution:   Moved entry of 'hlsearch' in options[] table down.
  6474.         Don't reset 'toolbar' option to the default value when
  6475.         'compatible' is set.
  6476. Files:        src/option.c
  6477.  
  6478. Patch 5.6a.006
  6479. Problem:    Using a backwards range inside ":if 0" gave an error message.
  6480. Solution:   Don't complain about a range when it is not going to be used.
  6481.         (Stefan Roemer)
  6482. Files:        src/ex_docmd.c
  6483.  
  6484. Patch 5.6a.007
  6485. Problem:    ":let" didn't show internal Vim variables.  (Ron Aaron)
  6486. Solution:   Do show ":v" variables for ":let" and ":let v:name".
  6487. Files:        src/eval.c
  6488.  
  6489. Patch 5.6a.008
  6490. Problem:    Selecting a syntax from the Syntax menu gives an error message.
  6491. Solution:   Replace "else if" in SetSyn() with "elseif".  (Ronald Schild)
  6492. Files:        runtime/menu.vim
  6493.  
  6494. Patch 5.6a.009
  6495. Problem:    When compiling with +extra_search but without +syntax, there is a
  6496.         compilation error in screen.c. (Axel Kielhorn)
  6497. Solution:   Adjust the #ifdef for declaring and initializing "line" in
  6498.         win_line().  Also solve compilation problem when +statusline is
  6499.         used without +eval.  Another one when +cmdline_compl is used
  6500.         without +eval.
  6501. Files:        src/screen.c, src/misc2.c
  6502.  
  6503. Patch 5.6a.010
  6504. Problem:    In a function, ":startinsert!" does not append to the end of the
  6505.         line if a ":normal" command was used to move the cursor. (Fisher)
  6506. Solution:   Reset "w_set_curswant" to avoid that w_curswant is changed again.
  6507. Files:        src/ex_docmd.c
  6508.  
  6509. Patch 5.6a.011 (depends on 5.6a.004)
  6510. Problem:    A missing ":endif" or ":endwhile" in a function doesn't give an
  6511.         error message.
  6512. Solution:   Give that error message.
  6513. Files:        src/ex_docmd.c
  6514.  
  6515. Patch 5.6a.012 (depends on 5.6a.008)
  6516. Problem:    Some Syntax menu entries caused a hit-enter prompt.
  6517. Solution:   Call a function to make the command shorter.  Also rename a few
  6518.         functions to avoid name clashes.
  6519. Files:        runtime/menu.vim
  6520.  
  6521. Patch 5.6a.013
  6522. Problem:    Command line completion works different when another completion
  6523.         was done earlier. (Johannes Zellner)
  6524. Solution:   Reset wim_index when starting a new completion.
  6525. Files:        src/ex_getln.c
  6526.  
  6527. Patch 5.6a.014
  6528. Problem:    Various warning messages when compiling and running lint with
  6529.         different combinations of features.
  6530. Solution:   Fix the warning messages.
  6531. Files:        src/eval.c, src/ex_cmds.c, src/ex_docmd.c, src/gui_gtk_x11.c,
  6532.         src/option.c, src/screen.c, src/search.c, src/syntax.c,
  6533.         src/feature.h, src/globals.h
  6534.  
  6535. Patch 5.6a.015
  6536. Problem:    The vimtutor command doesn't always know the value of $VIMRUNTIME.
  6537. Solution:   Let Vim expand $VIMRUNTIME, instead of the shell.
  6538. Files:        src/vimtutor
  6539.  
  6540. Patch 5.6a.016 (extra)
  6541. Problem:    Mac: Window size is restricted when starting.  Cannot drag the
  6542.         window all over the desktop.
  6543. Solution:   Get real screen size instead of assuming 640x400.  Do not use a
  6544.         fixed number for the drag limits. (Axel Kielhorn)
  6545. Files:        src/gui_mac.c
  6546.  
  6547. Patch 5.6a.017
  6548. Problem:    The "Paste" entry in popup menu for Visual, Insert and Cmdline
  6549.         mode is in the wrong position. (Stol)
  6550. Solution:   Add priority numbers for all Paste menu entries.
  6551. Files:        runtime/menu.vim
  6552.  
  6553. Patch 5.6a.018
  6554. Problem:    GTK GUI: submenu priority doesn't work.
  6555.         Help dialog could be destroyed too soon.
  6556.         When closing a dialog window (e.g. the "ATTENTION" one), Vim would
  6557.         just hang.
  6558.         When GTK theme is changed, Vim doesn't adjust to the new colors.
  6559.         Argument for ":promptfind" isn't used.
  6560. Solution:   Fixed the mentioned problems.
  6561.         Made the dialogs look&feel nicer.
  6562.         Moved functions to avoid the need for a forward declaration.
  6563.         Fixed reentrancy of the file browser dialog.
  6564.         Added drag&drop support for GNOME.
  6565.         Init the text for the Find/replace dialog from the last used
  6566.         search string.  Set "match whole word" toggle button correctly.
  6567.         Made repeat rate for drag outside of window depend on the
  6568.         distance from the window.  (Marcin Dalecki)
  6569.         Made the drag in Visual mode actually work.
  6570.         Removed recursiveness protection from gui_mch_get_rgb(), it might
  6571.         cause more trouble than it solves.
  6572. Files:        src/ex_docmd.c, src/gui_gtk.c, src/gui_gtk_x11.c, src/ui.c,
  6573.         src/proto/ui.pro, src/misc2.c
  6574.  
  6575. Patch 5.6a.019
  6576. Problem:    When trying to recover through NFS, which uses a large block size,
  6577.         Vim might think the swap file is empty, because mf_blocknr_max is
  6578.         zero.  (Scott McDermott)
  6579. Solution:   When computing the number of blocks of the file in mf_open(),
  6580.         round up instead of down.
  6581. Files:        src/memfile.c
  6582.  
  6583. Patch 5.6a.020
  6584. Problem:    GUI GTK: Could not set display for gvim.
  6585. Solution:   Add "-display" and "--display" arguments. (Marcin Dalecki)
  6586. Files:        src/gui_gtk_x11.c
  6587.  
  6588. Patch 5.6a.021
  6589. Problem:    Recovering still may not work when the block size of the device
  6590.         where the swap file is located is larger than 4096.
  6591. Solution:   Read block 0 with the minimal block size.
  6592. Files:        src/memline.c, src/memfile.c, src/vim.h
  6593.  
  6594. Patch 5.6a.022 (extra)
  6595. Problem:    Win32 GUI: When an error in the vimrc causes a dialog to pop up
  6596.         (e.g., for an existing swap file), Vim crashes. (David Elins)
  6597. Solution:   Before showing a dialog, open the main window.
  6598. Files:        src/gui_w32.c
  6599.  
  6600. Patch 5.6a.023
  6601. Problem:    Using expand("%:gs??/?") causes a crash. (Ron Aaron)
  6602. Solution:   Check for running into the end of the string in do_string_sub().
  6603. Files:        src/eval.c
  6604.  
  6605. Patch 5.6a.024
  6606. Problem:    Using an autocommand to delete a buffer when leaving it can cause
  6607.         a crash when jumping to a tag. (Franz Gorkotte)
  6608. Solution:   In do_tag(), store tagstacklen before jumping to another buffer.
  6609.         Check tagstackidx after jumping to another buffer.
  6610.         Add extra check in win_split() if tagname isn't NULL.
  6611. Files:        src/tag.c, src/window.c
  6612.  
  6613. Patch 5.6a.025 (extra)
  6614. Problem:    Win32 GUI: The tables for toupper() and tolower() are initialized
  6615.         too late. (Mike Steed)
  6616. Solution:   Move the initialization to win32_init() and call it from main().
  6617. Files:        src/main.c, src/os_w32.c, src/proto/os_w32.pro
  6618.  
  6619. Patch 5.6a.026
  6620. Problem:    When the SNiFF connection is open, shell commands hang. (Pruemmer)
  6621. Solution:   Skip a second wait() call if waitpid() already detected that the
  6622.         child has exited.
  6623. Files:        src/os_unix.c
  6624.  
  6625. Patch 5.6a.027 (extra)
  6626. Problem:    Win32 GUI: The "Edit with Vim" popup menu entry causes problems
  6627.         for the Office toolbar.
  6628. Solution:   Use a shell extension dll. (Tianmiao Hu)
  6629.         Added it to the install and uninstal programs, replaces the old
  6630.         "Edit with Vim" menu registry entries.
  6631. Files:        src/dosinst.c, src/uninstal.c, gvimext/*, runtime/doc/gui_w32.txt
  6632.  
  6633. Patch 5.6a.028 (extra)
  6634. Problem:    Win32 GUI: Dialogs and tear-off menus can't handle multi-byte
  6635.         characters.
  6636. Solution:   Adjust nCopyAnsiToWideChar() to handle multi-byte characters
  6637.         correctly.
  6638. Files:        src/gui_w32.c
  6639.  
  6640. ==============================================================================
  6641. VERSION 5.7                        *version-5.7*
  6642.  
  6643. Version 5.7 is a bug-fix version of 5.6.
  6644.  
  6645. Changed                            *changed-5.7*
  6646. -------
  6647.  
  6648. Renamed src/INSTALL.mac to INSTALL_mac.txt to avoid it being recognized with a
  6649. wrong file type.  Also renamed src/INSTALL.amiga to INSTALL_ami.txt.
  6650.  
  6651.  
  6652. Added                            *added-5.7*
  6653. -----
  6654.  
  6655. New syntax files:
  6656. stp        Stored Procedures (Jeff Lanzarotta)
  6657. snnsnet, snnspat, snnsres    SNNS (Davide Alberani)
  6658. mel        MEL (Robert Minsk)
  6659. ruby        Ruby (Mirko Nasato)
  6660. tli        TealInfo (Kurt W. Andrews)
  6661. ora        Oracle config file (Sandor Kopanyi)
  6662. abaqus        Abaqus (Carl Osterwisch)
  6663. jproperties    Java Properties (Simon Baldwin)
  6664. apache        Apache config (Allan Kelly)
  6665. csp        CSP (Jan Bredereke)
  6666. samba        Samba config (Rafael Garcia-Suarez)
  6667. kscript        KDE script (Thomas Capricelli)
  6668. hb        Hyper Builder (Alejandro Forero Cuervo)
  6669. fortran        Fortran (rewritten) (Ajit J. Thakkar)
  6670. sml        SML (Fabrizio Zeno Cornelli)
  6671. cvs        CVS commit (Matt Dunford)
  6672. aspperl        ASP Perl (Aaron Hope)
  6673. bc        BC calculator (Vladimir Scholtz)
  6674. latte        Latte (Nick Moffitt)
  6675. wml        WML (Gerfried Fuchs)
  6676.  
  6677. Included Exuberant ctags 3.5.1. (Darren Hiebert)
  6678.  
  6679. "display" and "fold" arguments for syntax items.  For future extension, they
  6680. are ignored now.
  6681.  
  6682. strftime() function for the Macintosh.
  6683.  
  6684. macros/explorer.vim: A file browser script (M A Aziz Ahmed)
  6685.  
  6686.  
  6687. Fixed                            *fixed-5.7*
  6688. -----
  6689.  
  6690. The 16 bit MS-DOS version is now compiled with Bcc 3.1 instead of 4.0.  The
  6691. executable is smaller.
  6692.  
  6693. When a "make test" failed, the output file was lost.  Rename it to
  6694. test99.failed to be able to see what went wrong.
  6695.  
  6696. After sourcing bugreport.vim, it's not clear that bugreport.txt has been
  6697. written in the current directory.  Edit bugreport.txt to avoid that.
  6698.  
  6699. Adding IME support when using Makefile.w32 didn't work. (Taro Muraoka)
  6700.  
  6701. Win32 console: Mouse drags were passed on even when the mouse didn't move.
  6702.  
  6703. Perl interface: In Buffers(), type of argument to SvPV() was int, should be
  6704. STRLEN. (Tony Leneis)
  6705.  
  6706. Problem with prototype for index() on AIX 4.3.0.  Added check for _AIX43 in
  6707. os_unix.h. (Jake Hamby)
  6708.  
  6709. Mappings in mswin.vim could break when some commands are mapped.  Add "nore"
  6710. to most mappings to avoid re-mapping.
  6711.  
  6712. modify_fname() made a copy of a file name for ":p" when it already was a full
  6713. path name, which is a bit slow.
  6714.  
  6715. Win32 with Borland C++ 5.5: Pass the path to the compiler on to xxd and ctags,
  6716. to avoid depending on $PATH.  Fixed "make clean".
  6717.  
  6718. Many fixes to Macintosh specific parts: (mostly by Dany StAmant)
  6719. - Only one Help menu.
  6720. - No more crash when removing a menu item.
  6721. - Support as External Editor for Codewarrior (still some little glitches).
  6722. - Popup menu support.
  6723. - Fixed crash when pasting after application switch.
  6724. - Color from rgb.txt properly displayed.
  6725. - 'isprint' default includes all chars above '~'. (Axel Kielhorn)
  6726. - mac_expandpath() was leaking memory.
  6727. - Add digraphs table. (Axel Kielhorn)
  6728. - Multi-byte support: (Kenichi Asai)
  6729.   Switch keyscript when going in/out of Insert mode.
  6730.   Draw multi-byte character correctly.
  6731.   Don't use mblen() but highest bit of char to detect multi-byte char.
  6732.   Display value of multi-byte in statusline (also for other systems).
  6733. - mouse button was not initialized properly to MOUSE_LEFT when
  6734.   USE_CTRLCLICKMENU not defined.
  6735. - With Japanese SJIS characters: Make "w", "b", and "e" work
  6736.   properly.  (Kenichi Asai)
  6737. - Replaced old CodeWarrior file os_mac.CW9.hqx with os_mac.cw5.sit.hqx.
  6738.  
  6739. Fixes for VMS: (Zoltan Arpadffy) (also see patch 5.6.045 below)
  6740. - Added Makefile_vms.mms and vimrc.vms to src/testdir to be able to run the
  6741.   tests.
  6742. - Various fixes.
  6743. - Set 'undolevels' to 1000 by default.
  6744. - Made mch_settitle() equivalent to the one in os_unix.c.
  6745.  
  6746. RiscOS: A few prototypes for os_riscos.c were outdated.  Generate prototypes
  6747. automatically.
  6748.  
  6749.  
  6750. Previously released patches:
  6751.  
  6752. Patch 5.6.001
  6753. Problem:    When using "set bs=0 si cin", Inserting "#<BS>" or "}<BS>" which
  6754.         reduces the indent doesn't delete the "#" or "}". (Lorton)
  6755. Solution:   Adjust ai_col in ins_try_si().
  6756. Files:        src/edit.c
  6757.  
  6758. Patch 5.6.002
  6759. Problem:    When using the vim.vim syntax file, a comment with all uppercase
  6760.         characters causes a hang.
  6761. Solution:   Adjust pattern for vimCommentTitle (Charles Campbell)
  6762. Files:        runtime/syntax/vim.vim
  6763.  
  6764. Patch 5.6.003
  6765. Problem:    GTK GUI: Loading a user defined toolbar bitmap gives a warning
  6766.         about the colormap.  Probably because the window has not been
  6767.         opened yet.
  6768. Solution:   Use gdk_pixmap_colormap_create_from_xpm() to convert the xpm file.
  6769.         (Keith Radebaugh)
  6770. Files:        src/gui_gtk.c
  6771.  
  6772. Patch 5.6.004 (extra)
  6773. Problem:    Win32 GUI with IME: When setting 'guifont' to "*", the font
  6774.         requester appears twice.
  6775. Solution:   In gui_mch_init_font() don't call get_logfont() but copy
  6776.         norm_logfont from fh. (Yasuhiro Matsumoto)
  6777. Files:        src/gui_w32.c
  6778.  
  6779. Patch 5.6.005
  6780. Problem:    When 'winminheight' is zero, CTRL-W - with a big number causes a
  6781.         crash.  (David Kotchan)
  6782. Solution:   Check for negative window height in win_setheight().
  6783. Files:        src/window.c
  6784.  
  6785. Patch 5.6.006
  6786. Problem:    GTK GUI: Bold font cannot always be used.  Memory is freed too
  6787.         early in gui_mch_init_font().
  6788. Solution:   Move call to g_free() to after where sdup is used. (Artem Hodyush)
  6789. Files:        src/gui_gtk_x11.c
  6790.  
  6791. Patch 5.6.007 (extra)
  6792. Problem:    Win32 IME: Font is not changed when screen font is changed. And
  6793.         IME composition window does not trace the cursor.
  6794. Solution:   Initialize IME font.  When cursor is moved, set IME composition
  6795.         window with ImeSetCompositionWindow().  Add call to
  6796.         ImmReleaseContext() in several places. (Taro Muraoka)
  6797. Files:        src/gui.c, src/gui_w32.c, src/proto/gui_w32.pro
  6798.  
  6799. Patch 5.6.008 (extra)
  6800. Problem:    Win32: When two files exist with the same name but different case
  6801.         (through NFS or Samba), fixing the file name case could cause the
  6802.         wrong one to be edited.
  6803. Solution:   Prefer a perfect match above a match while ignoring case in
  6804.         fname_case().  (Flemming Madsen)
  6805. Files:        src/os_win32.c
  6806.  
  6807. Patch 5.6.009 (extra)
  6808. Problem:    Win32 GUI: Garbage in Windows Explorer help line when selecting
  6809.         "Edit with Vim" popup menu entry.
  6810. Solution:   Only return the help line when called with the GCS_HELPTEXT flag.
  6811.         (Tianmiao Hu)
  6812. Files:        GvimExt/gvimext.cpp
  6813.  
  6814. Patch 5.6.010
  6815. Problem:    A file name which contains a TAB was not read correctly from the
  6816.         viminfo file and the ":ls" listing was not aligned properly.
  6817. Solution:   Parse the buffer list lines in the viminfo file from the end
  6818.         backwards.  Count a Tab for two characters to align the ":ls" list.
  6819. Files:        src/buffer.c
  6820.  
  6821. Patch 5.6.011
  6822. Problem:    When 'columns' is huge (using a tiny font) and 'statusline' is
  6823.         used, Vim can crash.
  6824. Solution:   Limit maxlen to MAXPATHL in win_redr_custom(). (John Mullin)
  6825. Files:        src/screen.c
  6826.  
  6827. Patch 5.6.012
  6828. Problem:    When using "zsh" for /bin/sh, toolcheck may hang until "exit" is
  6829.         typed. (Kuratczyk)
  6830. Solution:   Add "-c exit" when checking for the shell version.
  6831. Files:        src/toolcheck
  6832.  
  6833. Patch 5.6.013
  6834. Problem:    Multibyte char in tooltip is broken.
  6835. Solution:   Consider multibyte char in replace_termcodes(). (Taro Muraoka)
  6836. Files:      src/term.c
  6837.  
  6838. Patch 5.6.014
  6839. Problem:    When cursor is at the end of line and the character under cursor
  6840.         is a multibyte character, "yl" doesn't yank 1 multibyte-char.
  6841.         (Takuhiro Nishioka)
  6842. Solution:   Recognize a multibyte-char at end-of-line correctly in oneright().
  6843.         (Taro Muraoka)
  6844.         Also: make "+quickfix" in ":version" output appear alphabetically.
  6845. Files:        src/edit.c
  6846.  
  6847. Patch 5.6.015
  6848. Problem:    New xterm delete key sends <Esc>[3~ by default.
  6849. Solution:   Added <kDel> and <kIns> to make the set of keypad keys complete.
  6850. Files:        src/edit.c, src/ex_getln.c, src/keymap.h, src/misc1.c,
  6851.         src/misc2.c, src/normal.c, src/os_unix.c, src/term.c
  6852.  
  6853. Patch 5.6.016
  6854. Problem:    When deleting a search string from history from inside a mapping,
  6855.         another entry is deleted too. (Benji Fisher)
  6856. Solution:   Reset last_maptick when deleting the last entry of the search
  6857.         history.  Also: Increment maptick when starting a mapping from
  6858.         typed characters to avoid a just added search string being
  6859.         overwritten or removed from history.
  6860. Files:        src/ex_getln.c, src/getchar.c
  6861.  
  6862. Patch 5.6.017
  6863. Problem:    ":s/e/\^M/" should replace an "e" with a CTRL-M, not split the
  6864.         line. (Calder)
  6865. Solution:   Replace the backslash with a CTRL-V internally. (Stephen P. Wall)
  6866. Files:        src/ex_cmds.c
  6867.  
  6868. Patch 5.6.018
  6869. Problem:    ":help [:digit:]" takes a long time to jump to the wrong place.
  6870. Solution:   Insert a backslash to avoid the special meaning of '[]'.
  6871. Files:        src/ex_cmds.c
  6872.  
  6873. Patch 5.6.019
  6874. Problem:    "snd.c", "snd.java", etc. were recognized as "mail" filetype.
  6875. Solution:   Make pattern for mail filetype more strict.
  6876. Files:        runtime/filetype.vim
  6877.  
  6878. Patch 5.6.020 (extra)
  6879. Problem:    The DJGPP version eats processor time (Walter Briscoe).
  6880. Solution:   Call __dpmi_yield() in the busy-wait loop.
  6881. Files:        src/os_msdos.c
  6882.  
  6883. Patch 5.6.021
  6884. Problem:    When 'selection' is "exclusive", a double mouse click in Insert
  6885.         mode doesn't select last char in line. (Lutz)
  6886. Solution:   Allow leaving the cursor on the NUL past the line in this case.
  6887. Files:        src/edit.c
  6888.  
  6889. Patch 5.6.022
  6890. Problem:    ":e \~<Tab>" expands to ":e ~\$ceelen", which doesn't work.
  6891. Solution:   Re-insert the backslash before the '~'.
  6892. Files:        src/ex_getln.c
  6893.  
  6894. Patch 5.6.023 (extra)
  6895. Problem:    Various warnings for the Ming compiler.
  6896. Solution:   Changes to avoid the warnings. (Bill McCarthy)
  6897. Files:        src/ex_cmds.c, src/gui_w32.c, src/os_w32exe.c, src/os_win32.c,
  6898.         src/syntax.c, src/vim.rc
  6899.  
  6900. Patch 5.6.024 (extra)
  6901. Problem:    Win32 console: Entering CTRL-_ requires the shift key. (Kotchan)
  6902. Solution:   Specifically catch keycode 0xBD, like the GUI.
  6903. Files:        src/os_win32.c
  6904.  
  6905. Patch 5.6.025
  6906. Problem:    GTK GUI: Starting the GUI could be interrupted by a SIGWINCH.
  6907.         (Nils Lohner)
  6908. Solution:   Repeat the read() call to get the gui_in_use value when
  6909.         interrupted by a signal.
  6910. Files:        src/gui.c
  6911.  
  6912. Patch 5.6.026 (extra)
  6913. Problem:    Win32 GUI: Toolbar bitmaps are searched for in
  6914.         $VIMRUNTIME/bitmaps, while GTK looks in $VIM/bitmaps. (Keith
  6915.         Radebaugh)
  6916. Solution:   Use $VIM/bitmaps for both, because these are not part of the
  6917.         distribution but defined by the user.
  6918. Files:        src/gui_w32.c, runtime/doc/gui.txt
  6919.  
  6920. Patch 5.6.027
  6921. Problem:    TCL: Crash when using a Tcl script (reported for Win32).
  6922. Solution:   Call Tcl_FindExecutable() in main(). (Brent Fulgham)
  6923. Files:        src/main.c
  6924.  
  6925. Patch 5.6.028
  6926. Problem:    Xterm patch level 126 sends codes for mouse scroll wheel.
  6927.         Fully works with xterm patch level 131.
  6928. Solution:   Recognize the codes for button 4 (0x60) and button 5 (0x61).
  6929. Files:        src/term.c
  6930.  
  6931. Patch 5.6.029
  6932. Problem:    GTK GUI: Shortcut keys cannot be used for a dialog. (Johannes
  6933.         Zellner)
  6934. Solution:   Add support for shortcut keys. (Marcin Dalecki)
  6935. Files:        src/gui_gtk.c
  6936.  
  6937. Patch 5.6.030
  6938. Problem:    When closing a window and 'ea' is set, Vim can crash. (Yasuhiro
  6939.         Matsumoto)
  6940. Solution:   Set "curbuf" to a valid value in win_close().
  6941. Files:        src/window.c
  6942.  
  6943. Patch 5.6.031
  6944. Problem:    Multi-byte: When a double-byte character ends in CSI, Vim waits
  6945.         for another character to be typed.
  6946. Solution:   Recognize the CSI as the second byte of a character and don't wait
  6947.         for another one. (Yasuhiro Matsumoto)
  6948. Files:        src/getchar.c
  6949.  
  6950. Patch 5.6.032
  6951. Problem:    Functions with an argument that is a line number don't all accept
  6952.         ".", "$", etc. (Ralf Arens)
  6953. Solution:   Add get_art_lnum() and use it for setline(), line2byte() and
  6954.         synID().
  6955. Files:        src/eval.c
  6956.  
  6957. Patch 5.6.033
  6958. Problem:    Multi-byte: "f " sometimes skips to the second space.  (Sung-Hyun
  6959.         Nam)
  6960. Solution:   Change logic in searchc() to skip trailing byte of a double-byte
  6961.         character.
  6962.         Also: Ask for second byte when searching for double-byte
  6963.         character. (Park Chong-Dae)
  6964. Files:        src/search.c
  6965.  
  6966. Patch 5.6.034 (extra)
  6967. Problem:    Compiling with Borland C++ 5.5 fails on tolower() and toupper().
  6968. Solution:   Use TO_LOWER() and TO_UPPER() instead.  Also adjust the Makefile
  6969.         to make using bcc 5.5 easier.
  6970. Files:        src/edit.c, src/ex_docmd.c, src/misc1.c, src/Makefile.bor
  6971.  
  6972. Patch 5.6.035
  6973. Problem:    Listing the"+comments" feature in the ":version" output depended
  6974.         on the wrong ID. (Stephen P. Wall)
  6975. Solution:   Change "CRYPTV" to "COMMENTS".
  6976. Files:        src/version.c
  6977.  
  6978. Patch 5.6.036
  6979. Problem:    GTK GUI: Copy/paste text doesn't work between gvim and Eterm.
  6980. Solution:   Support TEXT and COMPOUND_TEXT selection targets. (ChiDeok Hwang)
  6981. Files:        src/gui_gtk_x11.c
  6982.  
  6983. Patch 5.6.037
  6984. Problem:    Multi-byte: Can't use "f" command with multi-byte character in GUI.
  6985. Solution:   Enable XIM in Normal mode for the GUI. (Sung-Hyun Nam)
  6986. Files:        src/gui_gtk_x11.c, src/multbyte.c
  6987.  
  6988. Patch 5.6.038
  6989. Problem:    Multi-clicks in GUI are interpreted as a mouse wheel click.  When
  6990.         'ttymouse' is "xterm" a mouse click is interpreted as a mouse
  6991.         wheel click.
  6992. Solution:   Don't recognize the mouse wheel in check_termcode() in the GUI.
  6993.         Use 0x43 for a mouse drag in do_xterm_trace(), not 0x63.
  6994. Files:        src/term.c, src/os_unix.c
  6995.  
  6996. Patch 5.6.039
  6997. Problem:    Motif GUI under KDE: When trying to logout, Vim hangs up the
  6998.         system. (Hermann Rochholz)
  6999. Solution:   When handling the WM_SAVE_YOURSELF event, set the WM_COMMAND
  7000.         property of the window to let the session manager know we finished
  7001.         saving ourselves.
  7002. Files:        src/gui_x11.c
  7003.  
  7004. Patch 5.6.040
  7005. Problem:    When using ":s" command, matching the regexp is done twice.
  7006. Solution:   After copying the matched line, adjust the pointers instead of
  7007.         finding the match again. (Loic Grenie)  Added vim_regnewptr().
  7008. Files:        src/ex_cmds.c, src/regexp.c, src/proto/regexp.pro
  7009.  
  7010. Patch 5.6.041
  7011. Problem:    GUI: Athena, Motif and GTK don't give more than 10 dialog buttons.
  7012. Solution:   Remove the limit on the number of buttons.
  7013.         Also support the 'v' flag in 'guioptions'.
  7014.         For GTK: Center the buttons.
  7015. Files:        src/gui_athena.c, src/gui_gtk.c, src/gui_motif.c
  7016.  
  7017. Patch 5.6.042
  7018. Problem:    When doing "vim -u vimrc" and vimrc contains ":q", the cursor in
  7019.         the terminal can remain off.
  7020. Solution:   Call cursor_on() in mch_windexit().
  7021. Files:        src/os_unix.c
  7022.  
  7023. Patch 5.6.043 (extra)
  7024. Problem:    Win32 GUI: When selecting guifont with the dialog, 'guifont'
  7025.         doesn't include the bold or italic attributes.
  7026. Solution:   Append ":i" and/or ":b" to 'guifont' in gui_mch_init_font().
  7027. Files:        src/gui_w32.c
  7028.  
  7029. Patch 5.6.044 (extra)
  7030. Problem:    MS-DOS and Windows: The line that dosinst.exe appends to
  7031.         autoexec.bat to set PATH is wrong when Vim is in a directory with
  7032.         an embedded space.
  7033. Solution:   Use double quotes for the value when there is an embedded space.
  7034. Files:        src/dosinst.c
  7035.  
  7036. Patch 5.6.045 (extra) (fixed version)
  7037. Problem:    VMS: Various small problems.
  7038. Solution:   Many small changes. (Zoltan Arpadffy)
  7039.         File name modifier ":h" keeps the path separator.
  7040.         File name modifier ":e" also removes version.
  7041.         Compile with MAX_FEAT by default.
  7042.         When checking for autocommands ignore version in file name.
  7043.         Be aware of file names being case insensitive.
  7044.         Added vt320 builtin termcap.
  7045.         Be prepared for an empty default_vim_dir.
  7046. Files:        runtime/gvimrc_example.vim, runtime/vimrc_example.vim,
  7047.         runtime/doc/os_vms.txt, src/eval.c, src/feature.h, src/fileio.c,
  7048.         src/gui_motif.c, src/gui_vms_conf.h, src/main.c, src/memline.c,
  7049.         src/misc1.c, src/option.c, src/os_vms_conf.h, src/os_vms.c,
  7050.         src/os_vms.h, src/os_vms.mms, src/tag.c, src/term.c, src/version.c
  7051.  
  7052. Patch 5.6.046
  7053. Problem:    Systems with backslash in file name: With 'shellslash' set, "vim
  7054.         */*.c" only uses a slash for the first file name.  (Har'El)
  7055. Solution:   Fix slashes in file name arguments after reading the vimrc file.
  7056. Files:        src/option.c
  7057.  
  7058. Patch 5.6.047
  7059. Problem:    $CPPFLAGS is not passed on to ctags configure.
  7060. Solution:   Add it. (Walter Briscoe)
  7061. Files:        src/config.mk.in, src/Makefile
  7062.  
  7063. Patch 5.6.048
  7064. Problem:    CTRL-R in Command-line mode is documented to insert text as typed,
  7065.         but inserts text literally.
  7066. Solution:   Make CTRL-R insert text as typed, use CTRL-R CTRL-R to insert
  7067.         literally.  This is consistent with Insert mode.  But characters
  7068.         that end Command-line mode are inserted literally.
  7069. Files:        runtime/doc/index.txt, runtime/doc/cmdline.txt, src/ex_getln.c,
  7070.         src/ops.c, src/proto/ops.pro
  7071.  
  7072. Patch 5.6.049
  7073. Problem:    Documentation for [!] after ":ijump" is wrong way around. (Benji
  7074.         Fisher)
  7075. Solution:   Fix the documentation.  Also improve the code to check for a match
  7076.         after a /* */ comment.
  7077. Files:        runtime/doc/tagsearch.txt, src/search.c
  7078.  
  7079. Patch 5.6.050
  7080. Problem:    Replacing is wrong when replacing a single-byte char with
  7081.         double-byte char or the other way around.
  7082. Solution:   Shift the text after the character when it is replaced.
  7083.         (Yasuhiro Matsumoto)
  7084. Files:        src/normal.c, src/misc1.c
  7085.  
  7086. Patch 5.6.051
  7087. Problem:    ":tprev" and ":tnext" don't give an error message when trying to
  7088.         go before the first or beyond the last tag. (Robert Webb)
  7089. Solution:   Added error messages.  Also: Delay a second when a file-read
  7090.         message is going to overwrite an error message, otherwise it won't
  7091.         be seen.
  7092. Files:        src/fileio.c, src/tag.c
  7093.  
  7094. Patch 5.6.052
  7095. Problem:    Multi-byte: When an Ex command has a '|' or '"' as a second byte,
  7096.         it terminates the command.
  7097. Solution:   Skip second byte of multi-byte char when checking for '|' and '"'.
  7098.         (Asai Kenichi)
  7099. Files:        src/ex_docmd.c
  7100.  
  7101. Patch 5.6.053
  7102. Problem:    CTRL-] doesn't work on a tag that contains a '|'. (Cesar Crusius)
  7103. Solution:   Escape '|', '"' and '\' in tag names when using CTRL-] and also
  7104.         for command-line completion.
  7105. Files:        src/ex_getln.c, src/normal.c
  7106.  
  7107. Patch 5.6.054
  7108. Problem:    When using ":e" and ":e #" the cursor is put in the first column
  7109.         when 'startofline' is set. (Cordell)
  7110. Solution:   Use the last known column when 'startofline' is set.
  7111.         Also, use ECMD_LAST more often to simplify the code.
  7112. Files:        src/buffer.c, src/ex_cmds.c, src/ex_docmd.c, src/proto/buffer.pro
  7113.  
  7114. Patch 5.6.055
  7115. Problem:    When 'statusline' only contains a text without "%" and doesn't fit
  7116.         in the window, Vim crashes. (Ron Aaron)
  7117. Solution:   Don't use the pointer for the first item if there is no item.
  7118. Files:        src/screen.c
  7119.  
  7120. Patch 5.6.056 (extra)
  7121. Problem:    MS-DOS: F11 and F12 don't work when 'bioskey' is set.
  7122. Solution:   Use enhanced keyboard functions. (Vince Negri)
  7123.         Detect presence of enhanced keyboard and set bioskey_read and
  7124.         bioskey_ready.
  7125. Files:        src/os_msdos.c
  7126.  
  7127. Patch 5.6.057 (extra)
  7128. Problem:    Win32 GUI: Multi-byte characters are wrong in dialogs and tear-off
  7129.         menus.
  7130. Solution:   Use system font instead of a fixed font. (Matsumoto, Muraoka)
  7131. Files:        src/gui_w32.c
  7132.  
  7133. Patch 5.6.058
  7134. Problem:    When the 'a' flag is not in 'guioptions', non-Windows systems
  7135.         copy Visually selected text to the clipboard/selection on a yank
  7136.         or delete command anyway.  On Windows it isn't done even when the
  7137.         'a' flag is included.
  7138. Solution:   Respect the 'a' flag in 'guioptions' on all systems.
  7139. Files:        src/normal.c
  7140.  
  7141. Patch 5.6.059 (extra)
  7142. Problem:    When moving the cursor over italic text and the characters spill
  7143.         over to the cell on the right, that spill-over is deleted.
  7144.         Noticed in the Win32 GUI, can happen on other systems too.
  7145. Solution:   Redraw italic text starting from a blank, like this is already
  7146.         done for bold text. (Vince Negri)
  7147. Files:        src/gui.c, src/gui.h, src/gui_w32.c
  7148.  
  7149. Patch 5.6.060
  7150. Problem:    Some bold characters spill over to the cell on the left, that
  7151.         spill-over can remain sometimes.
  7152. Solution:   Redraw a character when the next character was bold and needs
  7153.         redrawing. (Robert Webb)
  7154. Files:        src/screen.c
  7155.  
  7156. Patch 5.6.061
  7157. Problem:    When xterm sends 8-bit controls, recognizing the version response
  7158.         doesn't work.
  7159.         When using CSI instead of <Esc>[ for the termcap color codes,
  7160.         using 16 colors doesn't work. (Neil Bird)
  7161. Solution:   Also accept CSI in place of <Esc>[ for the version string.
  7162.         Also check for CSI when handling colors 8-15 in term_color().
  7163.         Use CSI for builtin xterm termcap entries when 'term' contains
  7164.         "8bit".
  7165. Files:        runtime/doc/term.txt, src/ex_cmds.c, src/option.c, src/term.c,
  7166.         src/os_unix.c, src/proto/option.pro, src/proto/term.pro
  7167.  
  7168. Patch 5.6.062
  7169. Problem:    The documentation says that setting 'smartindent' doesn't have an
  7170.         effect when 'cindent' is set, but it does make a difference for
  7171.         lines starting with "#". (Neil Bird)
  7172. Solution:   Really ignore 'smartindent' when 'cindent' is set.
  7173. Files:        src/misc1.c, src/ops.c
  7174.  
  7175. Patch 5.6.063
  7176. Problem:    Using "I" in Visual-block mode doesn't accept a count. (Johannes
  7177.         Zellner)
  7178. Solution:   Pass the count on to do_insert() and edit(). (Allan Kelly)
  7179. Files:        src/normal.c, src/ops.c, src/proto/ops.pro
  7180.  
  7181. Patch 5.6.064
  7182. Problem:    MS-DOS and Win32 console: Mouse doesn't work correctly after
  7183.         including patch 5.6.28. (Vince Negri)
  7184. Solution:   Don't check for mouse scroll wheel when the mouse code contains
  7185.         the number of clicks.
  7186. Files:        src/term.c
  7187.  
  7188. Patch 5.6.065
  7189. Problem:    After moving the cursor around in Insert mode, typing a space can
  7190.         still trigger an abbreviation. (Benji Fisher)
  7191. Solution:   Don't check for an abbreviation after moving around in Insert mode.
  7192. Files:        src/edit.c
  7193.  
  7194. Patch 5.6.066
  7195. Problem:    Still a few bold character spill-over remains after patch 60.
  7196. Solution:   Clear character just in front of blanking out rest of the line.
  7197.         (Robert Webb)
  7198. Files:        src/screen.c
  7199.  
  7200. Patch 5.6.067
  7201. Problem:    When a file name contains a NL, the viminfo file is corrupted.
  7202. Solution:   Use viminfo_writestring() to convert the NL to CTRL-V n.
  7203.         Also fix the Buffers menu and listing a menu name with a newline.
  7204. Files:        runtime/menu.vim, src/buffer.c, src/mark.c, src/menu.c
  7205.  
  7206. Patch 5.6.068
  7207. Problem:    Compiling the Perl interface doesn't work with Perl 5.6.0.
  7208.         (Bernhard Rosenkraenzer)
  7209. Solution:   Also check xs_apiversion for the version number when prepending
  7210.         defines for PL_*.
  7211. Files:        src/Makefile
  7212.  
  7213. Patch 5.6.069
  7214. Problem:    "go" doesn't always end up at the right character when
  7215.         'fileformat' is "dos". (Bruce DeVisser)
  7216. Solution:   Correct computations in ml_find_line_or_offset().
  7217. Files:        src/memline.
  7218.  
  7219. Patch 5.6.070 (depends on 5.6.068)
  7220. Problem:    Compiling the Perl interface doesn't work with Perl 5.6.0.
  7221.         (Bernhard Rosenkraenzer)
  7222. Solution:   Simpler check instead of the one from patch 68.
  7223. Files:        src/Makefile
  7224.  
  7225. Patch 5.6.071
  7226. Problem:    "A" in Visual block mode on a Tab positions the cursor one char to
  7227.         the right. (Michael Haumann)
  7228. Solution:   Correct the column computation in op_insert().
  7229. Files:        src/ops.c
  7230.  
  7231. Patch 5.6.072
  7232. Problem:    When starting Vim with "vim +startinsert", it enters Insert mode
  7233.         only after typing the first command. (Andrew Pimlott)
  7234. Solution:   Insert a dummy command in the stuff buffer.
  7235. Files:        src/main.c
  7236.  
  7237. Patch 5.6.073 (extra) (depends on 5.6.034)
  7238. Problem:    Win32 GUI: When compiled with Bcc 5.5 menus don't work.
  7239.         In dosinst.c toupper() and tolower() give an "internal compiler
  7240.         error" for Bcc 5.5.
  7241. Solution:   Define WINVER to 4 to avoid compiling for Windows 2000. (Dan
  7242.         Sharp)  Also cleaned up compilation arguments.
  7243.         Use our own implementation of toupper() in dosinst.c.  Use
  7244.         mytoupper() instead of tolower().
  7245. Files:        src/Makefile.bor, src/dosinst.c
  7246.  
  7247. Patch 5.6.074 (extra)
  7248. Problem:    Entering CSI directly doesn't always work, because it's recognized
  7249.         as the start of a special key.  Mostly a problem with multi-byte
  7250.         in the GUI.
  7251. Solution:   Use K_CSI for a typed CSI character.  Use <CSI> for a normal CSI,
  7252.         <xCSI> for a CSI typed in the GUI.
  7253. Files:        runtime/doc/intro.txt, src/getchar.c, src/gui_amiga.c,
  7254.         src/gui_gtk_x11.c, src/gui_mac.c, src/gui_riscos.c, src/gui_w32.c,
  7255.         src/keymap.h, src/misc2.c
  7256.  
  7257. Patch 5.6.075
  7258. Problem:    When using "I" or "A" in Visual block mode while 'sts' is set may
  7259.         change spaces to a Tab the inserted text is not correct. (Mike
  7260.         Steed)  And some other problems when using "A" to append after the
  7261.         end of the line.
  7262. Solution:   Check for change in spaces/tabs after inserting the text.  Append
  7263.         spaces to fill the gap between the end-of-line and the right edge
  7264.         of the block.
  7265. Files:        src/ops.c
  7266.  
  7267. Patch 5.6.076
  7268. Problem:    GTK GUI: Mapping <M-Space> doesn't work.
  7269. Solution:   Don't use the "Alt" modifier twice in key_press_event().
  7270. Files:        src/gui_gtk_x11.c
  7271.  
  7272. Patch 5.6.077
  7273. Problem:    GUI: When interrupting an external program with CTRL-C, gvim might
  7274.         crash. (Benjamin Korvemaker)
  7275. Solution:   Avoid using a NULL pointer in ui_inchar_undo().
  7276. Files:        src/ui.c
  7277.  
  7278. Patch 5.6.078
  7279. Problem:    Locale doesn't always work on FreeBSD. (David O'Brien)
  7280. Solution:   Link with the "xpg4" library when available.
  7281. Files:        src/configure.in, src/configure
  7282.  
  7283. Patch 5.6.079
  7284. Problem:    Vim could crash when several Tcl interpreters are created and
  7285.         destroyed.
  7286. Solution:   handle the "exit" command and nested ":tcl" commands better. (Ingo
  7287.         Wilken)
  7288. Files:        runtime/doc/if_tcl.txt, src/if_tcl.c
  7289.  
  7290. Patch 5.6.080
  7291. Problem:    When jumping to a tag, generating the tags file and jumping to the
  7292.         same tag again uses the old search pattern. (Sung-Hyun Nam)
  7293. Solution:   Flush cached tag matches when executing an external command.
  7294. Files:        src/misc2.c, src/proto/tag.pro, src/tag.c
  7295.  
  7296. Patch 5.6.081
  7297. Problem:    ":syn include" uses a level for the included file, this confuses
  7298.         contained items included at the same level.
  7299. Solution:   Use a unique tag for each included file.  Changed sp_syn_inc_lvl
  7300.         to sp_syn_inc_tag. (Scott Bigham)
  7301. Files:        src/syntax.c, src/structs.h
  7302.  
  7303. Patch 5.6.082
  7304. Problem:    When using cscope, Vim can crash.
  7305. Solution:   Initialize tag_fname in find_tags(). (Anton Blanchard)
  7306. Files:        src/tag.c
  7307.  
  7308. Patch 5.6.083 (extra)
  7309. Problem:    Win32: The visual beep can't be seen. (Eric Roesinger)
  7310. Solution:   Flush the output before waiting with GdiFlush(). (Maurice S. Barnum)
  7311.         Also: Allow specifying the delay in t_vb for the GUI.
  7312. Files:        src/gui.c, src/gui_amiga.c, src/gui_gtk_x11.c, src/gui_mac.c,
  7313.         src/gui_riscos.c, src/gui_w32.c, src/gui_x11.c, src/gui_beos.cc,
  7314.         src/proto/gui_amiga.pro, src/proto/gui_gtk_x11.pro,
  7315.         src/proto/gui_mac.pro, src/proto/gui_riscos.pro,
  7316.         src/proto/gui_w32.pro, src/proto/gui_x11.pro,
  7317.         src/proto/gui_beos.pro
  7318.  
  7319. Patch 5.6.084 (depends on 5.6.074)
  7320. Problem:    GUI: Entering CSI doesn't always work for Athena and Motif.
  7321. Solution:   Handle typed CSI as <xCSI> (forgot this bit in 5.6.074).
  7322. Files:        src/gui_x11.c
  7323.  
  7324. Patch 5.6.085
  7325. Problem:    Multi-byte: Using "r" to replace a double-byte char with a
  7326.         single-byte char moved the cursor one character. (Matsumoto)
  7327.         Also, using a count when replacing a single-byte char with a
  7328.         double-byte char didn't work.
  7329. Solution:   Don't use del_char() to delete the second byte.
  7330.         Get "ptr" again after calling ins_char().
  7331. Files:        src/normal.c
  7332.  
  7333. Patch 5.6.086 (extra)
  7334. Problem:    Win32: When using libcall() and the returned value is not a valid
  7335.         pointer, Vim crashes.
  7336. Solution:   Use IsBadStringPtr() to check if the pointer is valid.
  7337. Files:        src/os_win32.c
  7338.  
  7339. Patch 5.6.087
  7340. Problem:    Multi-byte: Commands and messages with multi-byte characters are
  7341.         displayed wrong.
  7342. Solution:   Detect double-byte characters. (Yasuhiro Matsumoto)
  7343. Files:        src/ex_getln.c, src/message.c, src/misc2.c, src/screen.c
  7344.  
  7345. Patch 5.6.088
  7346. Problem:    Multi-byte with Motif or Athena: The message "XIM requires
  7347.         fontset" is annoying when Vim was compiled with XIM support but it
  7348.         is not being used.
  7349. Solution:   Remove that message.
  7350. Files:        src/multbyte.c
  7351.  
  7352. Patch 5.6.089
  7353. Problem:    On non-Unix systems it's possible to overwrite a read-only file
  7354.         without using "!".
  7355. Solution:   Check if the file permissions allow overwriting before moving the
  7356.         file to become the backup file.
  7357. Files:        src/fileio.c
  7358.  
  7359. Patch 5.6.090
  7360. Problem:    When editing a file in "/home/dir/home/dir" this was replaced with
  7361.         "~~".  (Andreas Jellinghaus)
  7362. Solution:   Replace the home directory only once in home_replace().
  7363. Files:        src/misc1.c
  7364.  
  7365. Patch 5.6.091
  7366. Problem:    When editing many "no file" files, can't create swap file, because
  7367.         .sw[a-p] have all been used.  (Neil Bird)
  7368. Solution:   Also use ".sv[a-z]", ".su[a-z]", etc.
  7369. Files:        src/memline.c
  7370.  
  7371. Patch 5.6.092
  7372. Problem:    FreeBSD: When setting $TERM to a non-valid terminal name, Vim
  7373.         hangs in tputs().
  7374. Solution:   After tgetent() returns an error code, call it again with the
  7375.         terminal name "dumb".  This apparently creates an environment in
  7376.         which tputs() doesn't fail.
  7377. Files:        src/term.c
  7378.  
  7379. Patch 5.6.093 (extra)
  7380. Problem:    Win32 GUI: "ls | gvim -" will show a message box about reading
  7381.         stdin when Vim exits. (Donohue)
  7382. Solution:   Don't write a message about the file read from stdin until the GUI
  7383.         has started.
  7384. Files:        src/fileio.c
  7385.  
  7386. Patch 5.6.094
  7387. Problem:    Problem with multi-byte string for ":echo var".
  7388. Solution:   Check for length in msg_outtrans_len_attr(). (Sung-Hyun Nam)
  7389.         Also make do_echo() aware of multi-byte characters.
  7390. Files:        src/eval.c, src/message.c
  7391.  
  7392. Patch 5.6.095
  7393. Problem:    With an Emacs TAGS file that include another a relative path
  7394.         doesn't always work.
  7395. Solution:   Use expand_tag_fname() on the name of the included file.
  7396.         (Utz-Uwe Haus)
  7397. Files:        src/tag.c
  7398.  
  7399. Patch 5.6.096
  7400. Problem:    Unix: When editing many files, startup can be slow. (Paul
  7401.         Ackersviller)
  7402. Solution:   Halve the number of stat() calls used to add a file to the buffer
  7403.         list.
  7404. Files:        src/buffer.c
  7405.  
  7406. Patch 5.7a.001
  7407. Problem:    GTK doesn't respond on drag&drop from ROX-Filer.
  7408. Solution:   Add "text/uri-list" target. (Thomas Leonard)
  7409.         Also: fix problem with checking for trash arguments.
  7410. Files:        src/gui_gtk_x11.c
  7411.  
  7412. Patch 5.7a.002
  7413. Problem:    Multi-byte: 'showmatch' is performed when second byte of an
  7414.         inserted double-byte char is a paren or brace.
  7415. Solution:   Check IsTrailByte() before calling showmatch(). (Taro Muraoka)
  7416. Files:        src/misc1.c
  7417.  
  7418. Patch 5.7a.003
  7419. Problem:    Multi-byte: After using CTRL-O in Insert mode with the cursor at
  7420.         the end of the line on a multi-byte character the cursor moves to
  7421.         the left.
  7422. Solution:   Check for multi-byte character at end-of-line. (Taro Muraoka)
  7423.         Also: fix cls() to detect a double-byte character. (Chong-Dae Park)
  7424. Files:        src/edit.c, src/search.c
  7425.  
  7426. Patch 5.7a.004
  7427. Problem:    When reporting the search pattern offset, the string could be
  7428.         unterminated, which may cause a crash.
  7429. Solution:   Terminate the string for the search offset. (Stephen P. Wall)
  7430. Files:        src/search.c
  7431.  
  7432. Patch 5.7a.005
  7433. Problem:    When ":s//~/" doesn't find a match it reports "[NULL]" for the
  7434.         pattern.
  7435. Solution:   Use get_search_pat() to obtain the actually used pattern.
  7436. Files:        src/ex_cmds.c, src/proto/search.pro, src/search.c
  7437.  
  7438. Patch 5.7a.006 (extra)
  7439. Problem:    VMS: Various problems, also with the VAXC compiler.
  7440. Solution:   In many places use the Unix code for VMS too.
  7441.         Added time, date and compiler version to version message.
  7442.         (Zoltan Arpadffy)
  7443. Files:        src/ex_cmds.c, src/ex_docmd.c, src/globals.h, src/gui_vms_conf.h,
  7444.         src/main.c, src/message.c, src/misc1.c, src/os_vms.c,
  7445.         src/os_vms.h, src/os_vms.mms, src/os_vms_conf.h,
  7446.         src/proto/os_vms.pro, src/proto/version.pro, src/term.c,
  7447.         src/version.c, src/xxd/os_vms.mms, src/xxd/xxd.c
  7448.  
  7449. Patch 5.7a.007
  7450. Problem:    Motif and Athena GUI: CTRL-@ is interpreted as CTRL-C.
  7451. Solution:   Only use "intr_char" when it has been set.
  7452. Files:        src/gui_x11.c
  7453.  
  7454. Patch 5.7a.008
  7455. Problem:    GTK GUI: When using CTRL-L the screen is redrawn twice, causing
  7456.         trouble for bold characters.  Also happens when moving with the
  7457.         scrollbar.  Best seen when 'writedelay' is non-zero.
  7458.         When starting the GUI with ":gui" the screen is redrawn once with
  7459.         the wrong colors.
  7460. Solution:   Only set the geometry hints when the window size really changed.
  7461.         This avoids setting it each time the scrollbar is forcefully
  7462.         redrawn.
  7463.         Don't redraw in expose_event() when gui.starting is still set.
  7464. Files:        src/gui_gtk_x11.c
  7465.  
  7466.  
  7467. ==============================================================================
  7468. VERSION 5.8                        *version-5.8*
  7469.  
  7470. Version 5.8 is a bug-fix version of 5.7.
  7471.  
  7472.  
  7473. Changed                            *changed-5.8*
  7474. -------
  7475.  
  7476. Ctags is no longer included with Vim.  It has grown into a project of its own.
  7477. You can find it here:  http://ctags.sf.net.  It is highly recommended as a Vim
  7478. companion when you are writing programs.
  7479.  
  7480.  
  7481. Added                            *added-5.8*
  7482. -----
  7483.  
  7484. New syntax files:
  7485. acedb        AceDB (Stewart Morris)
  7486. aflex        Aflex (Mathieu Clabaut)
  7487. antlr        Antlr (Mathieu Clabaut)
  7488. asm68k        68000 Assembly (Steve Wall)
  7489. automake    Automake (John Williams)
  7490. ayacc        Ayacc (Mathieu Clabaut)
  7491. b        B (Mathieu Clabaut)
  7492. bindzone    BIND zone (glory hump)
  7493. blank        Blank (Rafal Sulejman)
  7494. cfg        Configure files (Igor Prischepoff)
  7495. changelog    ChangeLog (Gediminas Paulauskas)
  7496. cl        Clever (Phil Uren)
  7497. crontab        Crontab (John Hoelzel)
  7498. csc        Essbase script (Raul Segura Acevedo)
  7499. cynlib        Cynlib(C++) (Phil Derrick)
  7500. cynpp        Cyn++ (Phil Derrick)
  7501. debchangelog    Debian Changelog (Wichert Akkerman)
  7502. debcontrol    Debian Control (Wichert Akkerman)
  7503. dns        DNS zone file (Jehsom)
  7504. dtml        Zope's DTML (Jean Jordaan)
  7505. dylan        Dylan, Dylan-intr and Dylan-lid (Brent Fulgham)
  7506. ecd        Embedix Component Description (John Beppu)
  7507. fgl        Informix 4GL (Rafal Sulejman)
  7508. foxpro        FoxPro (Powing Tse)
  7509. gsp        GNU Server Pages (Nathaniel Harward)
  7510. gtkrc        GTK rc (David Necas)
  7511. hercules    Hercules (Avant! Corporation) (Dana Edwards)
  7512. htmlos        HTML/OS by Aestiva (Jason Rust)
  7513. inittab        SysV process control (David Necas)
  7514. iss        Inno Setup (Dominique Stephan)
  7515. jam        Jam (Ralf Lemke)
  7516. jess        Jess (Paul Baleme)
  7517. lprolog        LambdaProlog (Markus Mottl)
  7518. ia64        Intel Itanium (parth malwankar)
  7519. kix        Kixtart (Nigel Gibbs)
  7520. mgp        MaGic Point (Gerfried Fuchs)
  7521. mason        Mason (HTML with Perl) (Andrew Smith)
  7522. mma        Mathematica (Wolfgang Waltenberger)
  7523. nqc        Not Quite C (Stefan Scherer)
  7524. omnimark    Omnimark (Paul Terray)
  7525. openroad    OpenROAD (Luis Moreno Serrano)
  7526. named        BIND configuration (glory hump)
  7527. papp        PApp (Marc Lehmann)
  7528. pfmain        Postfix main config (Peter Kelemen)
  7529. pic        PIC assembly (Aleksandar Veselinovic)
  7530. ppwiz        PPWizard (Stefan Schwarzer)
  7531. progress    Progress (Phil Uren)
  7532. psf        Product Specification File (Rex Barzee)
  7533. r        R (Tom Payne)
  7534. registry    MS-Windows registry (Dominique Stephan)
  7535. robots        Robots.txt (Dominique Stephan)
  7536. rtf        Rich Text Format (Dominique Stephan)
  7537. setl        SETL (Alex Poylisher)
  7538. sgmldecl    SGML Declarations (Daniel A. Molina W.)
  7539. sinda        Sinda input (Adrian Nagle)
  7540. sindacmp    Sinda compare (Adrian Nagle)
  7541. sindaout    Sinda output (Adrian Nagle)
  7542. smith        SMITH (Rafal Sulejman)
  7543. snobol4        Snobol 4 (Rafal Sulejman)
  7544. strace        Strace (David Necas)
  7545. tak        TAK input (Adrian Nagle)
  7546. takcmp        TAK compare (Adrian Nagle)
  7547. takout        TAK output (Adrian Nagle)
  7548. tasm        Turbo assembly (FooLman)
  7549. texmf        TeX configuration (David Necas)
  7550. trasys        Trasys input (Adrian Nagle)
  7551. tssgm        TSS Geometry (Adrian Nagle)
  7552. tssop        TSS Optics (Adrian Nagle)
  7553. tsscl        TSS Command line (Adrian Nagle)
  7554. virata        Virata Configuration Script (Manuel M.H. Stol)
  7555. vsejcl        VSE JCL (David Ondrejko)
  7556. wdiff        Wordwise diff (Gerfried Fuchs)
  7557. wsh        Windows Scripting Host (Paul Moore)
  7558. xkb        X Keyboard Extension (David Necas)
  7559.  
  7560. Renamed php3 to php, it now also supports php4 (Lutz Eymers)
  7561.  
  7562. Patch 5.7.015
  7563. Problem:    Syntax files for Vim 6.0 can't be used with 5.x.
  7564. Solution:   Add the "default" argument to the ":highlight" command: Ignore the
  7565.         command if highlighting was already specified.
  7566. Files:        src/syntax.c
  7567.  
  7568. Generate the Syntax menu with makemenu.vim, so that it doesn't have to be done
  7569. when Vim is starting up.  Reduces the startup time of the GUI.
  7570.  
  7571.  
  7572. Fixed                            *fixed-5.8*
  7573. -----
  7574.  
  7575. Conversion of docs to HTML didn't convert "|tag|s" to a hyperlink.
  7576.  
  7577. Fixed compiling under NeXT. (Jeroen C.M. Goudswaard)
  7578.  
  7579. optwin.vim gave an error when used in Vi compatible mode ('cpo' contains 'C').
  7580.  
  7581. Tcl interpreter: "buffer" command didn't check for presence of an argument.
  7582. (Dave Bodenstab)
  7583.  
  7584. dosinst.c: Added checks for too long file name.
  7585.  
  7586. Amiga: a file name starting with a colon was considered absolute but it isn't.
  7587. Amiga: ":pwd" added a slash when in the root of a drive.
  7588.  
  7589. Macintosh: Warnings for unused variables. (Bernhard Pruemmer)
  7590.  
  7591. Unix: When catching a deadly signal, handle it in such a way that it's
  7592. unlikely that Vim will hang.  Call _exit() instead of exit() in case of a
  7593. severe problem.
  7594.  
  7595. Setting the window title from nothing to something didn't work after patch 29.
  7596.  
  7597. Check for ownership of .exrc and .vimrc was done with stat().  Use lstat() as
  7598. well for extra security.
  7599.  
  7600. Win32 GUI: Printing a file with 'fileformat' "unix" didn't work.  Set
  7601. 'fileformat' to "dos" before writing the temp file.
  7602.  
  7603. Unix: Could start waiting for a character when checking for a CTRL-C typed
  7604. when an X event is received.
  7605.  
  7606. Could not use Perl and Python at the same time on FreeBSD, because Perl used
  7607. "-lc" and Python used the threaded C library.
  7608.  
  7609. Win32: The Mingw compiler gave a few warning messages.
  7610.  
  7611. When using "ZZ" and an autocommand for writing uses an abbreviation it didn't
  7612. work.  Don't stuff the ":x" command but execute it directly. (Mikael Berthe)
  7613.  
  7614. VMS doesn't always have lstat(), added an #ifdef around it.
  7615.  
  7616. Added a few corrections for the Macintosh. (Axel Kielhorn)
  7617.  
  7618. Win32: Gvimext could not edit more than a few files at once, the length of the
  7619. argument was fixed.
  7620.  
  7621.  
  7622. Previously released patches for Vim 5.7:
  7623.  
  7624. Patch 5.7.001
  7625. Problem:    When the current buffer is crypted, and another modified buffer
  7626.         isn't, ":wall" will encrypt the other buffer.
  7627. Solution:   In buf_write() use "buf" instead of "curbuf" to check for the
  7628.         crypt key.
  7629. Files:        src/fileio.c
  7630.  
  7631. Patch 5.7.002
  7632. Problem:    When 'showmode' is set, using "CTRL-O :r file" waits three seconds
  7633.         before displaying the read text. (Wichert Akkerman)
  7634. Solution:   Set "keep_msg" to the file message so that the screen is redrawn
  7635.         before the three seconds wait for displaying the mode message.
  7636. Files:        src/fileio.c
  7637.  
  7638. Patch 5.7.003
  7639. Problem:    Searching for "[[:cntrl:]]" doesn't work.
  7640. Solution:   Exclude NUL from the matching characters, it terminates the list.
  7641. Files:        src/regexp.c
  7642.  
  7643. Patch 5.7.004
  7644. Problem:    GTK: When selecting a new font, Vim can crash.
  7645. Solution:   In gui_mch_init_font() unreference the old font, not the new one.
  7646. Files:        src/gui_gtk_x11.c
  7647.  
  7648. Patch 5.7.005
  7649. Problem:    Multibyte: Inserting a wrapped line corrupts kterm screen.
  7650.         Pasting TEXT/COMPOUND_TEXT into Vim does not work.
  7651.         On Motif no XIM status line is displayed even though it is
  7652.         available.
  7653. Solution:   Don't use xterm trick for wrapping lines for multibyte mode.
  7654.         Correct a missing "break", added TEXT/COMPOUND_TEXT selection
  7655.         request.
  7656.         Add XIMStatusArea fallback code.
  7657.         (Katsuhito Nagano)
  7658. Files:        src/gui_gtk_x11.c, src/multbyte.c, src/screen.c, src/ui.c
  7659.  
  7660. Patch 5.7.006
  7661. Problem:    GUI: redrawing the non-Visual selection is wrong when the window
  7662.         is unobscured. (Jean-Pierre Etienne)
  7663. Solution:   Redraw the selection properly and don't clear it.  Added "len"
  7664.         argument to clip_may_redraw_selection().
  7665. Files:        src/gui.c, src/ui.c, src/proto/ui.pro
  7666.  
  7667. Patch 5.7.007
  7668. Problem:    Python: Crash when using the current buffer twice.
  7669. Solution:   Increase the reference count for buffer and window objects.
  7670.         (Johannes Zellner)
  7671. Files:        src/if_python.c
  7672.  
  7673. Patch 5.7.008
  7674. Problem:    In Ex mode, backspacing over the first TAB doesn't work properly.
  7675.         (Wichert Akkerman)
  7676. Solution:   Switch the cursor on before printing the newline.
  7677. Files:        src/ex_getln.c
  7678.  
  7679. Patch 5.7.009 (extra)
  7680. Problem:    Mac: Crash when using a long file.
  7681. Solution:   Don't redefine malloc() and free(), because it will break using
  7682.         realloc().
  7683. Files:        src/os_mac.h
  7684.  
  7685. Patch 5.7.010
  7686. Problem:    When using CTRL-A on a very long number Vim can crash.  (Michael
  7687.         Naumann)
  7688. Solution:   Truncate the length of the new number to avoid a buffer overflow.
  7689. Files:        src/ops.c
  7690.  
  7691. Patch 5.7.011 (extra)
  7692. Problem:    Win32 GUI on NT 5 and Win98: Displaying Hebrew is reversed.
  7693. Solution:   Output each character separately, to avoid that Windows reverses
  7694.         the text for some fonts. (Ron Aaron)
  7695. Files:        src/gui_w32.c
  7696.  
  7697. Patch 5.7.012
  7698. Problem:    When using "-complete=buffer" for ":command" the user command
  7699.         fails.
  7700. Solution:   In a user command don't replace the buffer name with a count for
  7701.         the  buffer number.
  7702. Files:        src/ex_docmd.c
  7703.  
  7704. Patch 5.7.013
  7705. Problem:    "gD" didn't always find a match in the first line, depending on
  7706.         the column the search started at.
  7707. Solution:   Reset the column to zero before starting to search.
  7708. Files:        src/normal.c
  7709.  
  7710. Patch 5.7.014
  7711. Problem:    Rot13 encoding was done on characters with accents, which is
  7712.         wrong. (Sven Gottwald)
  7713. Solution:   Only do rot13 encoding on ASCII characters.
  7714. Files:        src/ops.c
  7715.  
  7716. Patch 5.7.016
  7717. Problem:    When hitting 'n' for a ":s///c" command, the ignore-case flag was
  7718.         not restored, some matches were skipped. (Daniel Blaustein)
  7719. Solution:   Restore the reg_ic variable when 'n' was hit.
  7720. Files:        src/ex_cmds.c
  7721.  
  7722. Patch 5.7.017
  7723. Problem:    When using a Vim script for Vim 6.0 with <SID> before a function
  7724.         name, it produces an error message even when inside an "if version
  7725.         >= 600".  (Charles Campbell)
  7726. Solution:   Ignore errors in the function name when the function is not going
  7727.         to be defined.
  7728. Files:        src/eval.c
  7729.  
  7730. Patch 5.7.018
  7731. Problem:    When running "rvim" or "vim -Z" it was still possible to execute a
  7732.         shell command with system() and backtick-expansion. (Antonios A.
  7733.         Kavarnos)
  7734. Solution:   Disallow executing a shell command in get_cmd_output() and
  7735.         mch_expand_wildcards().
  7736. Files:        src/misc1.c, src/os_unix.c
  7737.  
  7738. Patch 5.7.019
  7739. Problem:    Multibyte: In a substitute string, a multi-byte character isn't
  7740.         skipped properly, can be a problem when the second byte is a
  7741.         backslash.
  7742. Solution:   Skip an extra byte for a double-byte character. (Muraoka Taro)
  7743. Files:        src/ex_cmds.c
  7744.  
  7745. Patch 5.7.020
  7746. Problem:    Compilation doesn't work on MacOS-X.
  7747. Solution:   Add a couple of #ifdefs. (Jamie Curmi)
  7748. Files:        src/regexp.c, src/ctags/general.h
  7749.  
  7750. Patch 5.7.021
  7751. Problem:    Vim sometimes produces a beep when started in an xterm.  Only
  7752.         happens when compiled without mouse support.
  7753. Solution:   Requesting the xterm version results in a K_IGNORE.  This wasn't
  7754.         handled when mouse support is disabled.  Accept K_IGNORE always.
  7755. Files:        src/normal.c
  7756.  
  7757. Patch 5.7.022
  7758. Problem:    %v in 'statusline' is not displayed when it's equal to %c.
  7759. Solution:   Check if %V or %v is used and handle them differently.
  7760. Files:        src/screen.c
  7761.  
  7762. Patch 5.7.023
  7763. Problem:    Crash when a WinLeave autocommand deletes the buffer in the other
  7764.         window.
  7765. Solution:   Check that after executing the WinLeave autocommands there still
  7766.         is a window to be closed.  Also update the test that was supposed
  7767.         to check for this problem.
  7768. Files:        src/window.c, testdir/test13.in, testdir/test13.ok
  7769.  
  7770. Patch 5.7.024
  7771. Problem:    Evaluating an expression for 'statusline' can have side effects.
  7772. Solution:   Evaluate the expression in a sandbox.
  7773. Files:        src/edit.c, src/eval.c, src/proto/eval.pro, src/ex_cmds.c,
  7774.         src/ex_cmds.h, src/ex_docmd.c, src/globals.h, src/option.c,
  7775.         src/screen.c, src/undo.c
  7776.  
  7777. Patch 5.7.025 (fixed)
  7778. Problem:    Creating a temp file has a race condition.
  7779. Solution:   Create a private directory to write the temp files in.
  7780. Files:        src/fileio.c, src/misc1.c, src/proto/misc1.pro,
  7781.         src/proto/fileio.pro, src/memline.c, src/os_unix.h
  7782.  
  7783. Patch 5.7.026 (extra)
  7784. Problem:    Creating a temp file has a race condition.
  7785. Solution:   Create a private directory to write the temp files in.
  7786.         This is the extra part of patch 5.7.025.
  7787. Files:        src/os_msdos.h
  7788.  
  7789. Patch 5.7.027
  7790. Problem:    Starting to edit a file can cause a crash.  For example when in
  7791.         Insert mode, using CTRL-O :help abbr<Tab> to scroll the screen and
  7792.         then <CR>, which edits a help file. (Robert Bogomip)
  7793. Solution:   Check if keep_msg is NULL before copying it.
  7794. Files:        src/fileio.c
  7795.  
  7796. Patch 5.7.028
  7797. Problem:    Creating a backup or swap file could fail in rare situations.
  7798. Solution:   Use O_EXCL for open().
  7799. Files:        src/fileio.c, src/memfile.c
  7800.  
  7801. Patch 5.7.029
  7802. Problem:    Editing a file with an extremely long name crashed Vim.
  7803. Solution:   Check for length of the name when setting the window title.
  7804. Files:        src/buffer.c
  7805.  
  7806. Patch 5.7.030
  7807. Problem:    A ":make" or ":grep" command with a very long argument could cause
  7808.         a crash.
  7809. Solution:   Allocate the buffer for the shell command.
  7810. Files:        src/ex_docmd.c
  7811.  
  7812.  
  7813.  vim:tw=78:ts=8:ft=help:norl:
  7814.