| *version5.txt* For Vim version 7.2. Last change: 2008 Jun 28 |
| |
| |
| VIM REFERENCE MANUAL by Bram Moolenaar |
| |
| Welcome to Vim Version 5.0! |
| |
| This document lists the differences between Vim 4.x and Vim 5.0. |
| Although 5.0 is mentioned here, this is also for version 5.1, 5.2, etc.. |
| See |vi_diff.txt| for an overview of differences between Vi and Vim 5.0. |
| See |version4.txt| for differences between Vim 3.0 and Vim 4.0. |
| |
| INCOMPATIBLE: |incompatible-5| |
| |
| Default value for 'compatible' changed |cp-default| |
| Text formatting command "Q" changed |Q-command-changed| |
| Command-line arguments changed |cmdline-changed| |
| Autocommands are kept |autocmds-kept| |
| Use of 'hidden' changed |hidden-changed| |
| Text object commands changed |text-objects-changed| |
| X-Windows Resources removed |x-resources| |
| Use of $VIM |$VIM-use| |
| Use of $HOME for MS-DOS and Win32 |$HOME-use| |
| Tags file format changed |tags-file-changed| |
| Options changed |options-changed| |
| CTRL-B in Insert mode gone |i_CTRL-B-gone| |
| |
| NEW FEATURES: |new-5| |
| |
| Syntax highlighting |new-highlighting| |
| Built-in script language |new-script| |
| Perl and Python support |new-perl-python| |
| Win32 GUI version |added-win32-GUI| |
| VMS version |added-VMS| |
| BeOS version |added-BeOS| |
| Macintosh GUI version |added-Mac| |
| More Vi compatible |more-compatible| |
| Read input from stdin |read-stdin| |
| Regular expression patterns |added-regexp| |
| Overloaded tags |tag-overloaded| |
| New commands |new-commands| |
| New options |added-options| |
| New command-line arguments |added-cmdline-args| |
| Various additions |added-various| |
| |
| IMPROVEMENTS |improvements-5| |
| |
| COMPILE TIME CHANGES |compile-changes-5| |
| |
| BUG FIXES |bug-fixes-5| |
| |
| VERSION 5.1 |version-5.1| |
| Changed |changed-5.1| |
| Added |added-5.1| |
| Fixed |fixed-5.1| |
| |
| VERSION 5.2 |version-5.2| |
| Long lines editable |long-lines| |
| File browser added |file-browser-5.2| |
| Dialogs added |dialogs-added| |
| Popup menu added |popup-menu-added| |
| Select mode added |new-Select-mode| |
| Session files added |new-session-files| |
| User defined functions and commands |new-user-defined| |
| New interfaces |interfaces-5.2| |
| New ports |ports-5.2| |
| Multi-byte support |new-multi-byte| |
| New functions |new-functions-5.2| |
| New options |new-options-5.2| |
| New Ex commands |new-ex-commands-5.2| |
| Changed |changed-5.2| |
| Added |added-5.2| |
| Fixed |fixed-5.2| |
| |
| VERSION 5.3 |version-5.3| |
| Changed |changed-5.3| |
| Added |added-5.3| |
| Fixed |fixed-5.3| |
| |
| VERSION 5.4 |version-5.4| |
| Runtime directory introduced |new-runtime-dir| |
| Filetype introduced |new-filetype-5.4| |
| Vim script line continuation |new-line-continuation| |
| Improved session files |improved-sessions| |
| Autocommands improved |improved-autocmds-5.4| |
| Encryption |new-encryption| |
| GTK GUI port |new-GTK-GUI| |
| Menu changes |menu-changes-5.4| |
| Viminfo improved |improved-viminfo| |
| Various new commands |new-commands-5.4| |
| Various new options |new-options-5.4| |
| Vim scripts |new-script-5.4| |
| Avoid hit-enter prompt |avoid-hit-enter| |
| Improved quickfix |improved-quickfix| |
| Regular expressions |regexp-changes-5.4| |
| Changed |changed-5.4| |
| Added |added-5.4| |
| Fixed |fixed-5.4| |
| |
| VERSION 5.5 |version-5.5| |
| Changed |changed-5.5| |
| Added |added-5.5| |
| Fixed |fixed-5.5| |
| |
| VERSION 5.6 |version-5.6| |
| Changed |changed-5.6| |
| Added |added-5.6| |
| Fixed |fixed-5.6| |
| |
| VERSION 5.7 |version-5.7| |
| Changed |changed-5.7| |
| Added |added-5.7| |
| Fixed |fixed-5.7| |
| |
| VERSION 5.8 |version-5.8| |
| Changed |changed-5.8| |
| Added |added-5.8| |
| Fixed |fixed-5.8| |
| |
| ============================================================================== |
| INCOMPATIBLE *incompatible-5* |
| |
| Default value for 'compatible' changed *cp-default* |
| -------------------------------------- |
| |
| Vim version 5.0 tries to be more Vi compatible. This helps people who use Vim |
| as a drop-in replacement for Vi, but causes some things to be incompatible |
| with version 4.x. |
| |
| In version 4.x the default value for the 'compatible' option was off. Now the |
| default is on. The first thing you will notice is that the "u" command undoes |
| itself. Other side effects will be that mappings may work differently or not |
| work at all. |
| |
| Since a lot of people switching from Vim 4.x to 5.0 will find this annoying, |
| the 'compatible' option is switched off if Vim finds a vimrc file. This is a |
| bit of magic to make sure that 90% of the Vim users will not be bitten by |
| this change. |
| |
| What does this mean? |
| - If you prefer to run in 'compatible' mode and don't have a vimrc file, you |
| don't have to do anything. |
| - If you prefer to run in 'nocompatible' mode and do have a vimrc file, you |
| don't have to do anything. |
| - If you prefer to run in 'compatible' mode and do have a vimrc file, you |
| should put this line first in your vimrc file: > |
| :set compatible |
| - If you prefer to run in 'nocompatible' mode and don't have a vimrc file, |
| you can do one of the following: |
| - Create an empty vimrc file (e.g.: "~/.vimrc" for Unix). |
| - Put this command in your .exrc file or $EXINIT: > |
| :set nocompatible |
| < - Start Vim with the "-N" argument. |
| |
| If you are new to Vi and Vim, using 'nocompatible' is strongly recommended, |
| because Vi has a lot of unexpected side effects, which are avoided by this |
| setting. See 'compatible'. |
| |
| If you like some things from 'compatible' and some not, you can tune the |
| compatibility with 'cpoptions'. |
| |
| When you invoke Vim as "ex" or "gex", Vim always starts in compatible mode. |
| |
| |
| Text formatting command "Q" changed *Q-command-changed* |
| ----------------------------------- |
| |
| The "Q" command formerly formatted lines to the width the 'textwidth' option |
| specifies. The command for this is now "gq" (see |gq| for more info). The |
| reason for this change is that "Q" is the standard Vi command to enter "Ex" |
| mode, and Vim now does in fact have an "Ex" mode (see |Q| for more info). |
| |
| If you still want to use "Q" for formatting, use this mapping: > |
| :noremap Q gq |
| And if you also want to use the functionality of "Q": > |
| :noremap gQ Q |
| |
| |
| Command-line arguments changed *cmdline-changed* |
| ------------------------------ |
| |
| Command-line file-arguments and option-arguments can now be mixed. You can |
| give options after the file names. Example: > |
| vim main.c -g |
| |
| This is not possible when editing a file that starts with a '-'. Use the "--" |
| argument then |---|: > |
| vim -g -- -main.c |
| |
| "-v" now means to start Ex in Vi mode, use "-R" for read-only mode. |
| old: "vim -v file" |-v| |
| new: "vim -R file" |-R| |
| |
| "-e" now means to start Vi in Ex mode, use "-q" for quickfix. |
| old: "vim -e errorfile" |-e| |
| new: "vim -q errorfile" |-q| |
| |
| "-s" in Ex mode now means to run in silent (batch) mode. |-s-ex| |
| |
| "-x" reserved for crypt, use "-f" to avoid starting a new CLI (Amiga). |
| old: "vim -x file" |-x| |
| new: "vim -f file" |-f| |
| |
| Vim allows up to ten "+cmd" and "-c cmd" arguments. Previously Vim executed |
| only the last one. |
| |
| "-n" now overrides any setting for 'updatecount' in a vimrc file, but not in |
| a gvimrc file. |
| |
| |
| Autocommands are kept *autocmds-kept* |
| --------------------- |
| |
| Before version 5.0, autocommands with the same event, file name pattern, and |
| command could appear only once. This was fine for simple autocommands (like |
| setting option values), but for more complicated autocommands, where the same |
| command might appear twice, this restriction caused problems. Therefore |
| Vim stores all autocommands and keeps them in the order that they are defined. |
| |
| The most obvious side effect of this change is that when you source a vimrc |
| file twice, the autocommands in it will be defined twice. To avoid this, do |
| one of these: |
| |
| - Remove any autocommands that might potentially defined twice before |
| defining them. Example: > |
| :au! * *.ext |
| :au BufEnter *.ext ... |
| |
| - Put the autocommands inside an ":if" command. Example: > |
| if !exists("did_ext_autocmds") |
| let did_ext_autocmds = 1 |
| autocmd BufEnter *.ext ... |
| endif |
| |
| - Put your autocommands in a different autocommand group so you can remove |
| them before defining them |:augroup|: > |
| augroup uncompress |
| au! |
| au BufReadPost *.gz ... |
| augroup END |
| |
| |
| Use of 'hidden' changed *hidden-changed* |
| ----------------------- |
| |
| In version 4.x, only some commands used the 'hidden' option. Now all commands |
| uses it whenever a buffer disappears from a window. |
| |
| Previously you could do ":buf xxx" in a changed buffer and that buffer would |
| then become hidden. Now you must set the 'hidden' option for this to work. |
| |
| The new behavior is simpler: whether Vim hides buffers no longer depends on |
| the specific command that you use. |
| - with 'hidden' not set, you never get hidden buffers. Exceptions are the |
| ":hide" and ":close!" commands and, in rare cases, where you would otherwise |
| lose changes to the buffer. |
| - With 'hidden' set, you almost never unload a buffer. Exceptions are the |
| ":bunload" or ":bdel" commands. |
| |
| ":buffer" now supports a "!": abandon changes in current buffer. So do |
| ":bnext", ":brewind", etc. |
| |
| |
| Text object commands changed *text-objects-changed* |
| ---------------------------- |
| |
| Text object commands have new names. This allows more text objects and makes |
| characters available for other Visual mode commands. Since no more single |
| characters were available, text objects names now require two characters. |
| The first one is always 'i' or 'a'. |
| OLD NEW ~ |
| a aw a word |v_aw| |
| A aW a WORD |v_aW| |
| s as a sentence |v_as| |
| p ap a paragraph |v_ap| |
| S ab a () block |v_ab| |
| P aB a {} block |v_aB| |
| |
| There is another set of text objects that starts with "i", for "inner". These |
| select the same objects, but exclude white space. |
| |
| |
| X-Windows Resources removed *x-resources* |
| -------------------------- |
| |
| Vim no longer supports the following X resources: |
| - boldColor |
| - italicColor |
| - underlineColor |
| - cursorColor |
| |
| Vim now uses highlight groups to set colors. This avoids the confusion of |
| using a bold Font, which would imply a certain color. See |:highlight| and |
| |gui-resources|. |
| |
| |
| Use of $VIM *$VIM-use* |
| ----------- |
| |
| Vim now uses the VIM environment variable to find all Vim system files. This |
| includes the global vimrc, gvimrc, and menu.vim files and all on-line help |
| and syntax files. See |$VIM|. Starting with version 5.4, |$VIMRUNTIME| can |
| also be used. |
| For Unix, Vim sets a default value for $VIM when doing "make install". |
| When $VIM is not set, its default value is the directory from 'helpfile', |
| excluding "/doc/help.txt". |
| |
| |
| Use of $HOME for MS-DOS and Win32 *$HOME-use* |
| --------------------------------- |
| |
| The MS-DOS and Win32 versions of Vim now first check $HOME when searching for |
| a vimrc or exrc file and for reading/storing the viminfo file. Previously Vim |
| used $VIM for these systems, but this causes trouble on a system with several |
| users. Now Vim uses $VIM only when $HOME is not set or the file is not found |
| in $HOME. See |_vimrc|. |
| |
| |
| Tags file format changed *tags-file-changed* |
| ------------------------ |
| |
| Only tabs are allowed to separate fields in a tags file. This allows for |
| spaces in a file name and is still Vi compatible. In previous versions of |
| Vim, any white space was allowed to separate the fields. If you have a file |
| which doesn't use a single tab between fields, edit the tags file and execute |
| this command: > |
| :%s/\(\S*\)\s\+\(\S*\)\s\+\(.*\)/\1\t\2\t\3/ |
| |
| |
| Options changed *options-changed* |
| --------------- |
| |
| The default value of 'errorfile' has changed from "errors.vim" to "errors.err". |
| The reason is that only Vim scripts should have the ".vim" extensions. |
| |
| The ":make" command no longer uses the 'errorfile' option. This prevents the |
| output of the ":make" command from overwriting a manually saved error file. |
| ":make" uses the 'makeef' option instead. This also allows for generating a |
| unique name, to prevent concurrently running ":make" commands from overwriting |
| each other's files. |
| |
| With 'insertmode' set, a few more things change: |
| - <Esc> in Normal mode goes to Insert mode. |
| - <Esc> in Insert mode doesn't leave Insert mode. |
| - When doing ":set im", go to Insert mode immediately. |
| |
| Vim considers a buffer to be changed when the 'fileformat' (formerly the |
| 'textmode' option) is different from the buffer's initial format. |
| |
| |
| CTRL-B in Insert mode gone *i_CTRL-B-gone* |
| -------------------------- |
| |
| When Vim was compiled with the |+rightleft| feature, you could use CTRL-B to |
| toggle the 'revins' option. Unfortunately, some people hit the 'B' key |
| accidentally when trying to type CTRL-V or CTRL-N and then didn't know how to |
| undo this. Since toggling the 'revins' option can easily be done with the |
| mapping below, this use of the CTRL-B key is disabled. You can still use the |
| CTRL-_ key for this |i_CTRL-_|. > |
| :imap <C-B> <C-O>:set revins!<CR> |
| |
| ============================================================================== |
| NEW FEATURES *new-5* |
| |
| Syntax highlighting *new-highlighting* |
| ------------------- |
| |
| Vim now has a very flexible way to highlighting just about any type of file. |
| See |syntax|. Summary: > |
| :syntax on |
| |
| Colors and attributes can be set for the syntax highlighting, and also for |
| other highlighted items with the ':' flag in the 'highlight' option. All |
| highlighted items are assigned a highlight group which specifies their |
| highlighting. See |:highlight|. The default colors have been improved. |
| |
| You can use the "Normal" group to set the default fore/background colors for a |
| color terminal. For the GUI, you can use this group to specify the font, too. |
| |
| The "2html.vim" script can be used to convert any file that has syntax |
| highlighting to HTML. The colors will be exactly the same as how you see them |
| in Vim. With a HTML viewer you can also print the file with colors. |
| |
| |
| Built-in script language *new-script* |
| ------------------------ |
| |
| A few extra commands and an expression evaluator enable you to write simple |
| but powerful scripts. Commands include ":if" and ":while". Expressions can |
| manipulate numbers and strings. You can use the '=' register to insert |
| directly the result of an expression. See |expression|. |
| |
| |
| Perl and Python support *new-perl-python* |
| ----------------------- |
| |
| Vim can call Perl commands with ":perldo", ":perl", etc. See |perl|. |
| Patches made by Sven Verdoolaege and Matt Gerassimoff. |
| |
| Vim can call Python commands with ":python" and ":pyfile". See |python|. |
| |
| Both of these are only available when enabled at compile time. |
| |
| |
| Win32 GUI version *added-win32-GUI* |
| ----------------- |
| |
| The GUI has been ported to MS Windows 95 and NT. All the features of the X11 |
| GUI are available to Windows users now. |gui-w32| |
| This also fixes problems with running the Win32 console version under Windows |
| 95, where console support has always been bad. |
| There is also a version that supports OLE automation interface. |if_ole.txt| |
| Vim can be integrated with Microsoft Developer Studio using the VisVim DLL. |
| It is possible to produce a DLL version of gvim with Borland C++ (Aaron). |
| |
| |
| VMS version *added-VMS* |
| ----------- |
| |
| Vim can now also be used on VMS systems. Port done by Henk Elbers. |
| This has not been tested much, but it should work. |
| Sorry, no documentation! |
| |
| |
| BeOS version *added-BeOS* |
| ------------ |
| |
| Vim can be used on BeOS systems (including the BeBox). (Olaf Seibert) |
| See |os_beos.txt|. |
| |
| |
| Macintosh GUI version *added-Mac* |
| --------------------- |
| |
| Vim can now be used on the Macintosh. (Dany St-Amant) |
| It has not been tested much yet, be careful! |
| See |os_mac.txt|. |
| |
| |
| More Vi compatible *more-compatible* |
| ------------------ |
| |
| There is now a real Ex mode. Started with the "Q" command, or by calling the |
| executable "ex" or "gex". |Ex-mode| |
| |
| Always allow multi-level undo, also in Vi compatible mode. When the 'u' flag |
| in 'cpoptions' is included, CTRL-R is used for repeating the undo or redo |
| (like "." in Nvi). |
| |
| |
| Read input from stdin *read-stdin* |
| --------------------- |
| |
| When using the "-" command-line argument, Vim reads its text input from stdin. |
| This can be used for putting Vim at the end of a pipe: > |
| grep "^a.*" *.c | vim - |
| See |--|. |
| |
| |
| Regular expression patterns *added-regexp* |
| --------------------------- |
| |
| Added specifying a range for the number of matches of a atom: "\{a,b}". |/\{| |
| Added the "shortest match" regexp "\{-}" (Webb). |
| Added "\s", matches a white character. Can replace "[ \t]". |/\s| |
| Added "\S", matches a non-white character. Can replace "[^ \t]". |/\S| |
| |
| |
| Overloaded tags *tag-overloaded* |
| --------------- |
| |
| When using a language like C++, there can be several tags for the same |
| tagname. Commands have been added to be able to jump to any of these |
| overloaded tags: |
| |:tselect| List matching tags, and jump to one of them. |
| |:stselect| Idem, and split window. |
| |g_CTRL-]| Do ":tselect" with the word under the cursor. |
| |
| After ":ta {tagname}" with multiple matches: |
| |:tnext| Go to next matching tag. |
| |:tprevious| Go to previous matching tag. |
| |:trewind| Go to first matching tag. |
| |:tlast| Go to last matching tag. |
| |
| The ":tag" command now also accepts wildcards. When doing command-line |
| completion on tags, case-insensitive matching is also available (at the end). |
| |
| |
| New commands *new-commands* |
| ------------ |
| |
| |:amenu| Define menus for all modes, inserting a CTRL-O for Insert |
| mode, ESC for Visual and CTRL-C for Cmdline mode. "amenu" is |
| used for the default menus and the Syntax menu. |
| |
| |:augroup| Set group to be used for following autocommands. Allows the |
| grouping of autocommands to enable deletion of a specific |
| group. |
| |
| |:crewind| Go to first error. |
| |:clast| Go to last error. |
| |
| |:doautoall| Execute autocommands for all loaded buffers. |
| |
| |:echo| Echo its argument, which is an expression. Can be used to |
| display messages which include variables. |
| |
| |:execute| Execute its argument, which is an expression. Can be used to |
| built up an Ex command with anything. |
| |
| |:hide| Works like ":close". |
| |
| |:if| Conditional execution, for built-in script language. |
| |
| |:intro| Show introductory message. This is always executed when Vim |
| is started without file arguments. |
| |
| |:let| Assign a value to an internal variable. |
| |
| |:omap| Map only in operator-pending mode. Makes it possible to map |
| text-object commands. |
| |
| |:redir| Redirect output of messages to a file. |
| |
| |:update| Write when buffer has changed. |
| |
| |:while| While-loop for built-in script language. |
| |
| Visual mode: |
| |v_O| "O" in Visual block mode, moves the cursor to the other corner |
| horizontally. |
| |v_D| "D" in Visual block mode deletes till end of line. |
| |
| Insert mode: |
| |i_CTRL-]| Triggers abbreviation, without inserting any character. |
| |
| |
| New options *added-options* |
| ----------- |
| |
| 'background' Used for selecting highlight color defaults. Also used in |
| "syntax.vim" for selecting the syntax colors. Often set |
| automatically, depending on the terminal used. |
| |
| 'complete' Specifies how Insert mode completion works. |
| |
| 'eventignore' Makes it possible to ignore autocommands temporarily. |
| |
| 'fileformat' Current file format. Replaces 'textmode'. |
| 'fileformats' Possible file formats. Replaces 'textauto'. |
| New is that this also supports Macintosh format: A single <CR> |
| separates lines. |
| The default for 'fileformats' for MS-DOS, Win32 and OS/2 is |
| "dos,unix", also when 'compatible' set. Unix type files |
| didn't work anyway when 'fileformats' was empty. |
| |
| 'guicursor' Set the cursor shape and blinking in various modes. |
| Default is to adjust the cursor for Insert and Replace mode, |
| and when an operator is pending. Blinking is default on. |
| |
| 'fkmap' Farsi key mapping. |
| |
| 'hlsearch' Highlight all matches with the last used search pattern. |
| |
| 'hkmapp' Phonetic Hebrew mapping. (Ilya Dogolazky) |
| |
| 'iconstring' Define the name of the icon, when not empty. (Version 5.2: the |
| string is used literally, a newline can be used to make two |
| lines.) |
| |
| 'lazyredraw' Don't redraw the screen while executing macros, registers or |
| other not typed commands. |
| |
| 'makeef' Errorfile to be used for ":make". "##" is replaced with a |
| unique number. Avoids that two Vim sessions overwrite each |
| others errorfile. The Unix default is "/tmp/vim##.err"; for |
| Amiga "t:vim##.Err, for others "vim##.err". |
| |
| 'matchtime' 1/10s of a second to show a matching paren, when 'showmatch' |
| is set. Like Nvi. |
| |
| 'mousehide' Hide mouse pointer in GUI when typing text. |
| |
| 'nrformats' Defines what bases Vim will consider for numbers when using |
| the CTRL-A and CTRL-X commands. Default: "hex,octal". |
| |
| 'shellxquote' Add extra quotes around the whole shell command, including |
| redirection. |
| |
| 'softtabstop' Make typing behave like tabstop is set at this value, without |
| changing the value of 'tabstop'. Makes it more easy to keep |
| 'ts' at 8, while still getting four spaces for a <Tab>. |
| |
| 'titlestring' String for the window title, when not empty. (Version 5.2: |
| this string is used literally, a newline can be used to make |
| two lines.) |
| |
| 'verbose' Level of verbosity. Makes it possible to show which .vimrc, |
| .exrc, .viminfo files etc. are used for initializing. Also |
| to show autocommands that are being executed. Can also be set |
| by using the "-V" command-line argument. |
| |
| |
| New command-line arguments *added-cmdline-args* |
| -------------------------- |
| |
| |-U| Set the gvimrc file to be used. Like "-u" for the vimrc. |
| |
| |-V| Set the 'verbose' option. E.g. "vim -V10". |
| |
| |-N| Start in non-compatible mode. |
| |
| |-C| Start in compatible mode. |
| |
| |-Z| Start in restricted mode, disallow shell commands. Can also |
| be done by calling the executable "rvim". |
| |
| |-h| Show usage information and exit. |
| |
| |
| Various additions *added-various* |
| ----------------- |
| |
| Added support for SNiFF+ connection (submitted by Toni Leherbauer). Vim can |
| be used as an editor for SNiFF. No documentation available... |
| |
| For producing a bug report, the bugreport.vim script has been included. |
| Can be used with ":so $VIMRUNTIME/bugreport.vim", which creates the file |
| "bugreport.txt" in the current directory. |bugs| |
| |
| Added range to ":normal" command. Now you can repeat the same command for |
| each line in the range. |:normal-range| |
| |
| Included support for the Farsi language (Shiran). Only when enabled at |
| compile time. See |farsi|. |
| |
| ============================================================================== |
| IMPROVEMENTS *improvements-5* |
| |
| Performance: |
| - When 'showcmd' was set, mappings would execute much more slowly because the |
| output would be flushed very often. Helps a lot when executing the "life" |
| macros with 'showcmd' set. |
| - Included patches for binary searching in tags file (David O'Neill). |
| Can be disabled by resetting the 'tagbsearch' option. |
| - Don't update the ruler when repeating insert (slowed it down a lot). |
| - For Unix, file name expansion is now done internally instead of starting a |
| shell for it. |
| - Expand environment variables with expand_env(), instead of calling the |
| shell. Makes ":so $VIMRUNTIME/syntax/syntax.vim" a LOT faster. |
| - Reduced output for cursor positioning: Use CR-LF for moving to first few |
| columns in next few lines; Don't output CR twice when using termios. |
| - Optimized cursor positioning. Use CR, BS and NL when it's shorter than |
| absolute cursor positioning. |
| - Disable redrawing while repeating insert "1000ii<Esc>". |
| - Made "d$" or "D" for long lines a lot faster (delete all characters at once, |
| instead of one by one). |
| - Access option table by first letter, instead of searching from start. |
| - Made setting special highlighting attributes a lot faster by using |
| highlight_attr[], instead of searching in the 'highlight' string. |
| - Don't show the mode when redrawing is disabled. |
| - When setting an option, only redraw the screen when required. |
| - Improved performance of Ex commands by using a lookup table for the first |
| character. |
| |
| Options: |
| 'cinoptions' Added 'g' flag, for C++ scope declarations. |
| 'cpoptions' Added 'E' flag: Disallow yanking, deleting, etc. empty text |
| area. Default is to allow empty yanks. When 'E' is included, |
| "y$" in an empty line now is handled as an error (Vi |
| compatible). |
| Added 'j' flag: Only add two spaces for a join after a '.', |
| not after a '?' or '!'. |
| Added 'A' flag: don't give ATTENTION message. |
| Added 'L' flag: When not included, and 'list' is set, |
| 'textwidth' formatting works like 'list' is not set. |
| Added 'W' flag: Let ":w!" behave like Vi: don't overwrite |
| readonly files, or a file owned by someone else. |
| 'highlight' Added '@' flag, for '@' characters after the last line on the |
| screen, and '$' at the end of the line when 'list' is set. |
| Added 'i' flag: Set highlighting for 'incsearch'. Default |
| uses "IncSearch" highlight group, which is linked to "Visual". |
| Disallow 'h' flag in 'highlight' (wasn't used anymore since |
| 3.0). |
| 'guifont' Win32 GUI only: When set to "*" brings up a font requester. |
| 'guipty' Default on, because so many people need it. |
| 'path' Can contain wildcards, and "**" for searching a whole tree. |
| 'shortmess' Added 'I' flag to avoid the intro message. |
| 'viminfo' Added '%' flag: Store buffer list in viminfo file. |
| |
| - Increased defaults for 'maxmem' and 'maxmemtot' for Unix and Win32. Most |
| machines have much more RAM now that prices have dropped. |
| - Implemented ":set all&", set all options to their default value. |:set| |
| |
| Swap file: |
| - Don't create a swap file for a readonly file. Then create one on the first |
| change. Also create a swapfile when the amount of memory used is getting |
| too high. |swap-file| |
| - Make swap file "hidden", if possible. On Unix this is done by prepending a |
| dot to the swap file name. When long file names are used, the DJGPP and |
| Win32 versions also prepend a dot, in case a file on a mounted Unix file |
| system is edited. |:swapname| On MSDOS the hidden file attribute is NOT |
| set, because this causes problems with share.exe. |
| - 'updatecount' always defaults to non-zero, also for Vi compatible mode. |
| This means there is a swap file, which can be used for recovery. |
| |
| Tags: |
| - Included ctags 2.0 (Darren Hiebert). The syntax for static tags changed |
| from |
| {tag}:{fname} {fname} {command} |
| to |
| {tag} {fname} {command};" file: |
| Which is both faster to parse, shorter and Vi compatible. The old format is |
| also still accepted, unless disabled in src/feature.h (see OLD_STATIC_TAGS). |
| |tags-file-format| |
| - Completion of tags now also includes static tags for other files, at the |
| end. |
| - Included "shtags" from Stephen Riehm. |
| - When finding a matching tag, but the file doesn't exist, continue searching |
| for another match. Helps when using the same tags file (with links) for |
| different versions of source code. |
| - Give a tag with a global match in the current file a higher priority than a |
| global match in another file. |
| |
| Included xxd version V1.8 (Juergen Weigert). |
| |
| Autocommands: |
| - VimLeave autocommands are executed after writing the viminfo file, instead |
| of before. |VimLeave| |
| - Allow changing autocommands while executing them. This allows for |
| self-modifying autocommands. (idea from Goldberg) |
| - When using autocommands with two or more patterns, could not split |
| ":if/:endif" over two lines. Now all matching autocommands are executed in |
| one do_cmdline(). |
| - Autocommands no longer change the command repeated with ".". |
| - Search patterns are restored after executing autocommands. This avoids |
| that the 'hlsearch' highlighting is messed up by autocommands. |
| - When trying to execute an autocommand, also try matching the pattern with |
| the short file name. Helps when short file name is different from full |
| file name (expanded symbolic links). |autocmd-patterns| |
| - Made the output of ":autocmd" shorter and look better. |
| - Expand <sfile> in an ":autocmd" when it is defined. |<sfile>| |
| - Added "nested" flag to ":autocmd", allows nesting. |autocmd-nested| |
| - Added [group] argument to ":autocmd". Overrides the currently set group. |
| |autocmd-groups| |
| - new events: |
| |BufUnload| before a buffer is unloaded |
| |BufDelete| before a buffer is deleted from the buffer list |
| |FileChangedShell| when a file's modification time has changed after |
| executing a shell command |
| |User| user-defined autocommand |
| - When 'modified' was set by a BufRead* autocommand, it was reset again |
| afterwards. Now the ":set modified" is remembered. |
| |
| GUI: |
| - Improved GUI scrollbar handling when redrawing is slower than the scrollbar |
| events are generated. |
| - "vim -u NONE" now also stops loading the .gvimrc and other GUI inits. |-u| |
| Use "-U" to use another gvimrc file. |-U| |
| - Handle CTRL-C for external command, also for systems where "setsid()" is |
| supported. |
| - When starting the GUI, restrict the window size to the screen size. |
| - The default menus are read from $VIMRUNTIME/menu.vim. This allows for a |
| customized default menu. |menu.vim| |
| - Improved the default menus. Added File/Print, a Window menu, Syntax menu, |
| etc. |
| - Added priority to the ":menu" command. Now each menu can be put in a place |
| where you want it, independent of the order in which the menus are defined. |
| |menu-priority| |
| |
| Give a warning in the intro screen when running the Win32 console version on |
| Windows 95 because there are problems using this version under Windows 95. |
| |win32-problems| |
| |
| Added 'e' flag for ":substitute" command: Don't complain when not finding a |
| match (Campbell). |:s| |
| |
| When using search commands in a mapping, only the last one is kept in the |
| history. Avoids that the history is trashed by long mappings. |
| |
| Ignore characters after "ex", "view" and "gvim" when checking startup mode. |
| Allows the use of "gvim5" et. al. |gvim| "gview" starts the GUI in readonly |
| mode. |gview| |
| |
| When resizing windows, the cursor is kept in the same relative position, if |
| possible. (Webb) |
| |
| ":all" and ":ball" no longer close and then open a window for the same buffer. |
| Avoids losing options, jumplist, and other info. |
| |
| "-f" command-line argument is now ignored if Vim was compiled without GUI. |
| |-f| |
| |
| In Visual block mode, the right mouse button picks up the nearest corner. |
| |
| Changed default mappings for DOS et al. Removed the DOS-specific mappings, |
| only use the Windows ones. Added Shift-Insert, Ctrl-Insert, Ctrl-Del and |
| Shift-Del. |
| |
| Changed the numbers in the output of ":jumps", so you can see where {count} |
| CTRL-O takes you. |:jumps| |
| |
| Using "~" for $HOME now works for all systems. |$HOME| |
| |
| Unix: Besides using CTRL-C, also use the INTR character from the tty settings. |
| Somebody has INTR set to DEL. |
| |
| Allow a <LF> in a ":help" command argument to end the help command, so another |
| command can follow. |
| |
| Doing "%" on a line that starts with " #if" didn't jump to matching "#else". |
| Don't recognize "#if", "#else" etc. for '%' when 'cpo' contains the '%' flag. |
| |%| |
| |
| Insert mode expansion with "CTRL-N", "CTRL-P" and "CTRL-X" improved |
| |ins-completion|: |
| - 'complete' option added. |
| - When 'nowrapscan' is set, and no match found, report the searched direction |
| in the error message. |
| - Repeating CTRL-X commands adds following words/lines after the match. |
| - When adding-expansions, accept single character matches. |
| - Made repeated CTRL-X CTRL-N not break undo, and "." repeats the whole |
| insertion. Also fixes not being able to backspace over a word that has been |
| inserted with CTRL-N. |
| |
| When copying characters in Insert mode from previous/next line, with CTRL-E or |
| CTRL-Y, 'textwidth' is no longer used. |i_CTRL-E| |
| |
| Commands that move in the arglist, like ":n" and ":rew", keep the old cursor |
| position of the file (this is mostly Vi compatible). |
| |
| Vim now remembers the '< and '> marks for each buffer. This fixes a problem |
| that a line-delete in one buffer invalidated the '< and '> marks in another |
| buffer. |'<| |
| |
| For MSDOS, Unix and OS/2: When $VIM not set, use the path from the executable. |
| When using the executable path for $VIM, remove "src/" when present. Should |
| make Vim find the docs and syntax files when it is run directly after |
| compiling. |$VIM| |
| |
| When quitting Visual mode with <Esc>, the cursor is put at start of the Visual |
| area (like after executing an operator). |
| |
| Win32 and Unix version: Removed 1100 character limit on external commands. |
| |
| Added possibility to include a space in a ":edit +command" argument, by |
| putting a backslash before it. |+cmd| |
| |
| After recovery, BufReadPost autocommands are applied. |:recover| |
| |
| Added color support for "os2ansi", OS/2 console. (Slootman) |os2ansi| |
| |
| Allow "%:p:h" when % is empty. |:_%| |
| |
| Included "<sfile>": file name from the ":source" command. |<sfile>| |
| |
| Added "<Bslash>" special character. Helps for avoiding multiple backslashes |
| in mappings and menus. |
| |
| In a help window, a double-click jumps to the tag under the cursor (like |
| CTRL-]). |
| |
| <C-Left> and <C-Right> now work like <S-Left> and <S-Right>, move a word |
| forward/backward (Windows compatible). |<C-Left>| |
| |
| Removed the requirement for a ":version" command in a .vimrc file. It wasn't |
| used for anything. You can use ":if" to handle differences between versions. |
| |:version| |
| |
| For MS-DOS, Win32 and OS/2: When comparing file names for autocommands, don't |
| make a difference between '/' and '\' for path separator. |
| |
| New termcap options: |
| "mb": blink. Can only be used by assigning it to one of the other highlight |
| options. |t_mb| |
| "bc": backspace character. |t_bc| |
| "nd": Used for moving the cursor right in the GUI, to avoid removing one line |
| of pixels from the last bold character. |t_nd| |
| "xs": highlighting not erased by overwriting, for hpterm. Combined with |
| 'weirdinvert'. Visual mode works on hpterm now. |t_xs| |
| |
| Unix: Set time of patch and backup file same as original file. (Hiebert). |
| |
| Amiga: In QuickFix mode no longer opens another window. Shell commands can be |
| used now. |
| |
| Added decmouse patches from David Binette. Can now use Dec and Netterm mouse. |
| But only when enabled at compile time. |
| |
| Added '#' register: Alternate file name |quote#|. Display '#' register with |
| ":dis" command. |:display| |
| |
| Removed ':' from 'isfname' default for Unix. Check for "://" in a file name |
| anyway. Also check for ":\\", for MS-DOS. |
| |
| Added count to "K"eyword command, when 'keywordprg' is "man", is inserted in |
| the man command. "2K" results in "!man 2 <cword>". |K| |
| |
| When using "gf" on a relative path name, remove "../" from the file name, like |
| it's done for file names in the tags file. |gf| |
| |
| When finishing recording, don't make the recorded register the default put |
| register. |
| |
| When using "!!", don't put ":5,5!" on the command-line, but ":.!". And some |
| other enhancements to replace the line number with "." or "$" when possible. |
| |
| MSDOS et al.: Renamed $VIM/viminfo to $VIM/_viminfo. It's more consistent: |
| .vimrc/_vimrc and .viminfo/_viminfo |
| |
| For systems where case doesn't matter in file names (MSDOS, Amiga), ignore |
| case while sorting file names. For buffer names too. |
| |
| When reading from stdin doesn't work, read from stderr (helps for "foo | xargs |
| vim"). |
| |
| 32 bit MS-DOS version: Replaced csdpmi3 by csdpmi4. |
| |
| Changed <C-Left> and <C-Right> to skip a WORD instead of a word. |
| |
| Warning for changed modified time when overwriting a file now also works on |
| other systems than Unix. |
| |
| Unix: Changed the defaults for configure to be the same as the defaults for |
| Makefile: include GUI, Perl, and Python. |
| |
| Some versions of Motif require "-lXpm". Added check for this in configure. |
| |
| Don't add "-L/usr/lib" to the link line, causes problems on a few systems. |
| |
| ============================================================================== |
| COMPILE TIME CHANGES *compile-changes-5* |
| |
| When compiling, allow a choice for minimal, normal or maximal features in an |
| easy way, by changing a single line in src/feature.h. |
| The DOS16 version has been compiled with minimal features to avoid running |
| out of memory too quickly. |dos16| |
| The Win32, DJGPP, and OS/2 versions use maximal features, because they have |
| enough memory. |
| The Amiga version is available with normal and maximal features. |
| |
| Added "make test" to Unix version Makefile. Allows for a quick check if most |
| "normal" commands work properly. Also tests a few specific commands. |
| |
| Added setlocale() with codepage support for DJGPP version. |
| |
| autoconf: |
| - Added autoconf check for -lXdmcp. |
| - Included check for -lXmu, no longer needed to edit the Makefile for this. |
| - Switched to autoconf 2.12. |
| - Added configure check for <poll.h>. Seems to be needed when including |
| Perl on Linux? |
| - termlib is now checked before termcap. |
| - Added configure check for strncasecmp(), stricmp() and strnicmp(). Added |
| vim_stricmp() for when there's no library function for stricmp(). |
| - Use "datadir" in configure, instead of our own check for HELPDIR. |
| |
| Removed "make proto" from Makefile.manx. Could not make it work without a lot |
| of #ifdefs. |
| |
| Removed "proto/" from paths in proto.h. Needed for the Mac port. |
| |
| Drastically changed Makefile.mint. Now it includes the Unix Makefile. |
| |
| Added support for Dos16 in Makefile.b32 (renamed Makefile.b32 to Makefile.bor) |
| |
| All source files are now edited with a tabstop of 8 instead of 4, which is |
| better when debugging and using other tools. 'softtabstop' is set to 4, to |
| make editing easier. |
| |
| Unix: Added "link.sh" script, which removes a few unnecessary libraries from |
| the link command. |
| |
| Don't use HPUX digraphs by default, but only when HPUX_DIGRAPHS is defined. |
| |digraphs-default| |
| |
| ============================================================================== |
| BUG FIXES *bug-fixes-5* |
| |
| Note: Some of these fixes may only apply to test versions which were |
| created after version 4.6, but before 5.0. |
| |
| |
| When doing ":bdel", try going to the next loaded buffer. Don't rewind to the |
| start of the buffer list. |
| |
| mch_isdir() for Unix returned TRUE for "" on some systems. |
| |
| Win32: 'shell' set to "mksnt/sh.exe" breaks ":!" commands. Don't use |
| backslashes in the temp file names. |
| |
| On linux, with a FAT file system, could get spurious "file xxx changed since |
| editing started" messages, because the time is rounded off to two seconds |
| unexpectedly. |
| |
| Crash in GUI, when selecting a word (double click) and then extend until an |
| empty line. |
| |
| For systems where isdigit() can't handle characters > 255, get_number() caused |
| a crash when moving the mouse during the prompt for recovery. |
| |
| In Insert mode, "CTRL-O P" left the cursor on the last inserted character. |
| Now the cursor is left after the last putted character. |
| |
| When quickfix found an error type other than 'e' or 'w', it was never printed. |
| |
| A setting for 'errorfile' in a .vimrc overruled the "-q errorfile" argument. |
| |
| Some systems create a file when generating a temp file name. Filtering would |
| then create a backup file for this, which was never deleted. Now no backup |
| file is made when filtering. |
| |
| simplify_filename() could remove a ".." after a link, resulting in the wrong |
| file name. Made simplify_filename also work for MSDOS. Don't use it for |
| Amiga, since it doesn't have "../". |
| |
| otherfile() was unreliable when using links. Could think that reading/writing |
| was for a different file, when it was the same. |
| |
| Pasting with mouse in Replace mode didn't replace anything. |
| |
| Window height computed wrong when resizing a window with an autocommand (could |
| cause a crash). |
| |
| ":s!foo!bar!" wasn't possible (Vi compatible). |
| |
| do_bang() freed memory twice when called recursively, because of autocommands |
| (test11). Thanks to Electric Fence! |
| |
| "v$d" on an empty line didn't remove the "-- VISUAL --" mode message from the |
| command-line, and inverted the cursor. |
| |
| ":mkexrc" didn't check for failure to open the file, causing a crash. |
| (Felderhoff). |
| |
| Win32 mch_write() wrote past fixed buffer, causing terminal keys no longer to |
| be recognized. Both console and GUI version. |
| |
| Athena GUI: Crash when removing a menu item. Now Vim doesn't crash, but the |
| reversing of the menu item is still wrong. |
| |
| Always reset 'list' option for the help window. |
| |
| When 'scrolloff' is non-zero, a 'showmatch' could cause the shown match to be |
| in the wrong line and the window to be scrolled (Acevedo). |
| |
| After ":set all&", 'lines' and 'ttytype' were still non-default, because the |
| defaults never got set. Now the defaults for 'lines' and 'columns' are set |
| after detecting the window size. 'term' and 'ttytype' defaults are set when |
| detecting the terminal type. |
| |
| For (most) non-Unix systems, don't add file names with illegal characters when |
| expanding. Fixes "cannot open swapfile" error when doing ":e *.burp", when |
| there is no match. |
| |
| In X11 GUI, drawing part of the cursor obscured the text. Now the text is |
| drawn over the cursor, like when it fills the block. (Seibert) |
| |
| when started with "-c cmd -q errfile", the cursor would be left in line 1. |
| Now a ":cc" is done after executing "cmd". |
| |
| ":ilist" never ignored case, even when 'ignorecase' set. |
| |
| "vim -r file" for a readonly file, then making a change, got ATTENTION message |
| in insert mode, display mixed up until <Esc> typed. Also don't give ATTENTION |
| message after recovering a file. |
| |
| The abbreviation ":ab #i #include" could not be removed. |
| |
| CTRL-L completion (longest common match) on command-line didn't work properly |
| for case-insensitive systems (MS-DOS, Windows, etc.). (suggested by Richard |
| Kilgore). |
| |
| For terminals that can hide the cursor ("vi" termcap entry), resizing the |
| window caused the cursor to disappear. |
| |
| Using an invalid mark in an Ex address didn't abort the command. |
| |
| When 'smarttab' set, would use 'shiftround' when inserting a TAB after a |
| space. Now it always rounds to a tabstop. |
| |
| Set '[ and '] marks for ":copy", ":move", ":append", ":insert", ":substitute" |
| and ":change". (Acevedo). |
| |
| "d$" in an empty line still caused an error, even when 'E' is not in |
| 'cpoptions'. |
| |
| Help files were stored in the viminfo buffer list without a path. |
| |
| GUI: Displaying cursor was not synchronized with other displaying. Caused |
| several display errors. For example, when the last two lines in the file |
| start with spaces, "dd" on the last line copied text to the (then) last line. |
| |
| Win32: Needed to type CTRL-SHIFT-- to get CTRL-_. |
| |
| GUI: Moving the cursor forwards over bold text would remove one column of bold |
| pixels. |
| |
| X11 GUI: When a bold character in the last column was scrolled up or down, one |
| column of pixels would not be copied. |
| |
| Using <BS> to move the cursor left can sometimes erase a character. Now use |
| "le" termcap entry for this. |
| |
| Keyword completion with regexp didn't work. e.g., for "b.*crat". |
| |
| Fixed: With CTRL-O that jumps to another file, cursor could end up just after |
| the line. |
| |
| Amiga: '$' was missing from character recognized as wildcards, causing $VIM |
| sometimes not to be expanded. |
| |
| ":change" didn't adjust marks for deleted lines. |
| |
| ":help [range]" didn't work. Also for [pattern], [count] and [quotex]. |
| |
| For 'cindent'ing, typing "class::method" doesn't align like a label when the |
| second ':' is typed. |
| When inserting a CR with 'cindent' set (and a bunch of other conditions) the |
| cursor went to a wrong location. |
| 'cindent' was wrong for a line that ends in '}'. |
| 'cindent' was wrong after "else {". |
| |
| While editing the cmdline in the GUI, could not use the mouse to select text |
| from the command-line itself. |
| |
| When deleting lines, marks in tag stack were only adjusted for the current |
| window, not for other windows on the same buffer. |
| |
| Tag guessing could find a function "some_func" instead of the "func" we were |
| looking for. |
| |
| Tags file name relative to the current file didn't work. |
| |
| ":g/pat2/s//pat2/g", causing the number of subs to be reported, used to cause |
| a scroll up. Now you no longer have to hit <CR>. |
| |
| X11 GUI: Selecting text could cause a crash. |
| |
| 32 bit DOS version: CTRL-C in external command killed Vim. When SHELL is set |
| to "sh.exe", external commands didn't work. Removed using of command.com, no |
| longer need to set 'shellquote'. |
| |
| Fixed crash when using ":g/pat/i". |
| |
| Fixed (potential) crash for X11 GUI, when using an X selection. Was giving a |
| pointer on the stack to a callback function, now it's static. |
| |
| Using "#" and "*" with an operator didn't work. E.g. "c#". |
| |
| Command-line expansion didn't work properly after ":*". (Acevedo) |
| |
| Setting 'weirdinvert' caused highlighting to be wrong in the GUI. |
| |
| ":e +4 #" didn't work, because the "4" was in unallocated memory (could cause |
| a crash). |
| |
| Cursor position was wrong for ":e #", after ":e #" failed, because of changes |
| to the buffer. |
| |
| When doing ":buf N", going to a buffer that was edited with ":view", the |
| readonly flag was reset. Now make a difference between ":e file" and ":buf |
| file": Only set/reset 'ro' for the first one. |
| |
| Avoid |hit-enter| prompt when not able to write viminfo on exit. |
| |
| When giving error messages in the terminal where the GUI was started, GUI |
| escape codes would be written to the terminal. In an xterm this could be seen |
| as a '$' after the message. |
| |
| Mouse would not work directly after ":gui", because full_screen isn't set, |
| which causes starttermcap() not to do its work. |
| |
| 'incsearch' did not scroll the window in the same way as the actual search. |
| When 'nowrap' set, incsearch didn't show a match when it was off the side of |
| the screen. Now it also shows the whole match, instead of just the cursor |
| position (if possible). |
| |
| ":unmap", ":unab" and ":unmenu" did not accept a double quote, it was seen as |
| the start of a comment. Now it's Vi compatible. |
| |
| Using <Up><Left><Left><Up> in the command-line, when there is no previous |
| cmdline in the history, inserted a NUL on the command-line. |
| |
| "i<Esc>" when on a <Tab> in column 0 left the cursor in the wrong place. |
| |
| GUI Motif: When adding a lot of menu items, the menu bar goes into two rows. |
| Deleting menu items, reducing the number of rows, now also works. |
| |
| With ":g/pat/s//foo/c", a match in the first line was scrolled off of the |
| screen, so you could not see it. |
| When using ":s//c", with 'nowrap' set, a match could be off the side of the |
| screen, so you could not see it. |
| |
| When 'helpfile' was set to a fixed, non-absolute path in feature.h, Vim would |
| crash. mch_Fullname can now handle file names in read-only memory. (Lottem) |
| |
| When using CTRL-A or CTRL-@ in Insert mode, there could be strange effects |
| when using CTRL-D next. Also, when repeating inserted text that included "0 |
| CTRL-D" or "^ CTRL-D" this didn't work. (Acevedo) |
| Using CTRL-D after using CTRL-E or CTRL-Y in Insert mode that inserted a '0' |
| or '^', removed the '0' or '^' and more indent. |
| |
| The command "2".p" caused the last inserted text to be executed as commands. |
| (Acevedo) |
| |
| Repeating the insert of "CTRL-V 048" resulted in "^@" to be inserted. |
| |
| Repeating Insert completion could fail if there are special characters in the |
| text. (Acevedo) |
| |
| ":normal /string<CR>" caused the window to scroll. Now all ":normal" commands |
| are executed without scrolling messages. |
| |
| Redo of CTRL-E or CTRL-Y in Insert mode interpreted special characters as |
| commands. |
| |
| Line wrapping for 'tw' was done one character off for insert expansion |
| inserts. |
| |
| buffer_exists() function didn't work properly for buffer names with a symbolic |
| link in them (e.g. when using buffer_exists(#)). |
| |
| Removed the "MOTIF_COMMENT" construction from Makefile. It now works with |
| FreeBSD make, and probably with NeXT make too. |
| |
| Matching the 'define' and 'include' arguments now honor the settings for |
| 'ignorecase'. (Acevedo) |
| |
| When one file shown in two windows, Visual selection mixed up cursor position |
| in current window and other window. |
| |
| When doing ":e file" from a help file, the 'isk' option wasn't reset properly, |
| because of a modeline in the help file. |
| |
| When doing ":e!", a cursor in another window on the same buffer could become |
| invalid, leading to "ml_get: invalid lnum" errors. |
| |
| Matching buffer name for when expanded name has a different path from not |
| expanded name (Brugnara). |
| |
| Normal mappings didn't work after an operator. For example, with ":map Q gq", |
| "QQ" didn't work. |
| |
| When ":make" resulted in zero errors, a "No Errors" error message was given |
| (which breaks mappings). |
| |
| When ":sourcing" a file, line length was limited to 1024 characters. CTRL-V |
| before <EOL> was not handled Vi compatible. (Acevedo) |
| |
| Unexpected exit for X11 GUI, caused by SAVE_YOURSELF event. (Heimann) |
| |
| CTRL-X CTRL-I only found one match per line. (Acevedo) |
| When using an illegal CTRL-X key in Insert mode, the CTRL-X mode message |
| was stuck. |
| |
| Finally managed to ignore the "Quit" menu entry of the Window manager! Now |
| Vim only exists when there are no changed buffers. |
| |
| Trying to start the GUI when $DISPLAY is not set resulted in a crash. |
| When $DISPLAY is not set and gvim starts vim, title was restored to "Thanks |
| for flying Vim". |
| When $DISPLAY not set, starting "gvim" (dropping back to vim) and then |
| selecting text with the mouse caused a crash. |
| |
| "J", with 'joinspaces' set, on a line ending in ". ", caused one space too |
| many to be added. (Acevedo) |
| |
| In insert mode, a CTRL-R {regname} which didn't insert anything left the '"' |
| on the screen. |
| |
| ":z10" didn't work. (Clapp) |
| |
| "Help "*" didn't work. |
| |
| Renamed a lot of functions, to avoid clashes with POSIX name space. |
| |
| When adding characters to a line, making it wrap, the following lines were |
| sometimes not shifted down (e.g. after a tag jump). |
| |
| CTRL-E, with 'so' set and cursor on last line, now does not move cursor as |
| long as the last line is on the screen. |
| |
| When there are two windows, doing "^W+^W-" in the bottom window could cause |
| the status line to be doubled (not redrawn correctly). |
| |
| This command would hang: ":n `cat`". Now connect stdin of the external |
| command to /dev/null, when expanding. |
| |
| Fixed lalloc(0,) error for ":echo %:e:r". (Acevedo) |
| |
| The "+command" argument to ":split" didn't work when there was no file name. |
| |
| When selecting text in the GUI, which is the output of a command-line command |
| or an external command, the inversion would sometimes remain. |
| |
| GUI: "-mh 70" argument was broken. Now, when menuheight is specified, it is |
| not changed anymore. |
| |
| GUI: When using the scrollbar or mouse while executing an external command, |
| this caused garbage characters. |
| |
| Showmatch sometimes jumped to the wrong position. Was caused by a call to |
| findmatch() when redrawing the display (when syntax highlighting is on). |
| |
| Search pattern "\(a *\)\{3} did not work correctly, also matched "a a". |
| Problem with brace_count not being decremented. |
| |
| Wildcard expansion added too many non-matching file names. |
| |
| When 'iskeyword' contains characters like '~', "*" and "#" didn't work |
| properly. (Acevedo) |
| |
| On Linux, on a FAT file system, modification time can change by one second. |
| Avoid a "file has changed" warning for a one second difference. |
| |
| When using the page-switching in an xterm, Vim would position the cursor on |
| the last line of the window on exit. Also removed the cursor positioning for |
| ":!" commands. |
| |
| ":g/pat/p" command (partly) overwrote the command. Now the output is on a |
| separate line. |
| |
| With 'ic' and 'scs' set, a search for "Keyword", ignore-case matches were |
| highlighted too. |
| |
| "^" on a line with only white space, put cursor beyond the end of the line. |
| |
| When deleting characters before where insertion started ('bs' == 2), could not |
| use abbreviations. |
| |
| CTRL-E at end of file puts cursor below the file, in Visual mode, when 'so' is |
| non-zero. CTRL-E didn't work when 'so' is big and the line below the window |
| wraps. CTRL-E, when 'so' is non-zero, at end of the file, caused jumping |
| up-down. |
| |
| ":retab" didn't work well when 'list' is set. |
| |
| Amiga: When inserting characters at the last line on the screen, causing it |
| to wrap, messed up the display. It appears that a '\n' on the last line |
| doesn't always cause a scroll up. |
| |
| In Insert mode "0<C-D><C-D>" deleted an extra character, because Vim thought |
| that the "0" was still there. (Acevedo) |
| |
| "z{count}l" ignored the count. Also for "zh" et. al. (Acevedo) |
| |
| "S" when 'autoindent' is off didn't delete leading white space. |
| |
| "/<Tab>" landed on the wrong character when 'incsearch' is set. |
| |
| Asking a yes/no question could cause a |hit-enter| prompt. |
| |
| When the file consists of one long line (>4100 characters), making changes |
| caused various errors and a crash. |
| |
| DJGPP version could not save long lines (>64000) for undo. |
| |
| "yw" on the last char in the file didn't work. Also fixed "6x" at the end of |
| the line. "6X" at the start of a line fails, but does not break a mapping. In |
| general, a movement for an operator doesn't beep or flush a mapping, but when |
| there is nothing to operate on it beeps (this is Vi compatible). |
| |
| "m'" and "m`" now set the '' mark at the cursor position. |
| |
| Unix: Resetting of signals for external program didn't work, because SIG_DFL |
| and NULL are the same! For "!!yes|dd count=1|, the yes command kept on |
| running. |
| |
| Partly fixed: Unix GUI: Typeahead while executing an external command was lost. |
| Now it's not lost while the command is producing output. |
| |
| Typing <S-Tab> in Insert mode, when it isn't mapped, inserted "<S-Tab>". Now |
| it works like a normal <Tab>, just like <C-Tab> and <M-Tab>. |
| |
| Redrawing ruler didn't check for old value correctly (caused UMR warnings in |
| Purify). |
| |
| Negative array index in finish_viminfo_history(). |
| |
| ":g/^/d|mo $" deleted all the lines. The ":move" command now removes the |
| :global mark from the moved lines. |
| |
| Using "vG" while the last line in the window is a "@" line, didn't update |
| correctly. Just the "v" showed "~" lines. |
| |
| "daw" on the last char of the file, when it's a space, moved the cursor beyond |
| the end of the line. |
| |
| When 'hlsearch' was set or reset, only the current buffer was redrawn, while |
| this affects all windows. |
| |
| CTRL-^, positioning the cursor somewhere from 1/2 to 1 1/2 screen down the |
| file, put the cursor at the bottom of the window, instead of halfway. |
| |
| When scrolling up for ":append" command, not all windows were updated |
| correctly. |
| |
| When 'hlsearch' is set, and an auto-indent is highlighted, pressing <Esc> |
| didn't remove the highlighting, although the indent was deleted. |
| |
| When 'ru' set and 'nosc', using "$j" showed a wrong ruler. |
| |
| Under Xfree 3.2, Shift-Tab didn't work (wrong keysym is used). |
| |
| Mapping <S-Tab> didn't work. Changed the key translations to use the shortest |
| key code possible. This makes the termcode translations and mappings more |
| consistent. Now all modifiers work in all combinations, not only with <Tab>, |
| but also with <Space>, <CR>, etc. |
| |
| For Unix, restore three more signals. And Vim catches SIGINT now, so CTRL-C |
| in Ex mode doesn't make Vim exit. |
| |
| ""a5Y" yanked 25 lines instead of 5. |
| |
| "vrxxx<Esc>" in an empty line could not be undone. |
| |
| A CTRL-C that breaks ":make" caused the errorfile not to be read (annoying |
| when you want to handle what ":make" produced so far). |
| |
| ":0;/pat" didn't find "pat" in line 1. |
| |
| Search for "/test/s+1" at first char of file gave bottom-top message, or |
| didn't work at all with 'nowrapscan'. |
| |
| Bug in viminfo history. Could cause a crash on exit. |
| |
| ":print" didn't put cursor on first non-blank in line. |
| |
| ":0r !cat </dev/null" left cursor in line zero, with very strange effects. |
| |
| With 'showcmd' set and 'timeoutlen' set to a few seconds, trick to position |
| the cursor leftwards didn't work. |
| |
| AIX stty settings were restored to cs5 instead of cs8 (Winn). |
| |
| File name completion didn't work for "zsh" versions that put spaces between |
| file names, instead of NULs. |
| |
| Changed "XawChain*" to "XtChain*", should work for more systems. |
| |
| Included quite a few fixes for rightleft mode (Lottem). |
| |
| Didn't ask to |hit-enter| when GUI is started and error messages are printed. |
| |
| When trying to edit a file in a non-existent directory, ended up with editing |
| "No file". |
| |
| "gqap" to format a paragraph did too much redrawing. |
| |
| When 'hlsearch' set, only the current window was updated for a new search |
| pattern. |
| |
| Sometimes error messages on startup didn't cause a |hit-enter| prompt, |
| because of autocommands containing an empty line. |
| |
| Was possible to select part of the window in the border, below the command |
| line. |
| |
| '< and '> marks were not at the correct position after linewise Visual |
| selection. |
| |
| When translating a help argument to "CTRL-x", prepend or append a '_', when |
| applicable. |
| |
| Blockwise visual mode wasn't correct when moving vertically over a special |
| character (displayed as two screen characters). |
| |
| Renamed "struct option" to "struct vimoption" to avoid name clash with GNU |
| getopt(). |
| |
| ":abclear" didn't work (but ":iabclear" and ":cabclear" did work). |
| |
| When 'nowrap' used, screen wasn't always updated correctly. |
| |
| "vim -c split file" displayed extra lines. |
| |
| After starting the GUI, searched the termcap for a "gui" term. |
| |
| When 'hls' used, search for "^$" caused a hang. |
| When 'hls' was set, an error in the last regexp caused trouble. |
| |
| Unix: Only output an extra <EOL> on exit when outputted something in the |
| alternate screen, or when there is a message that needs to be cleared. |
| |
| "/a\{" did strange things, depending on previous search. |
| |
| "c}" only redrew one line (with -u NONE). |
| |
| For mappings, CTRL-META-A was shown as <M-^A> instead of <MC-A>, while :map |
| only accepts <MC-A>. Now <M-C-A> is shown. |
| |
| Unix: When using full path name in a tags file, which contains a link, and |
| 'hidden' set and jumping to a tag in the current file, would get bogus |
| ATTENTION message. Solved by always expanding file names, even when starting |
| with '/'. |
| |
| 'hlsearch' highlighting of special characters (e.g., a TAB) didn't highlight |
| the whole thing. |
| |
| "r<CR>" didn't work correctly on the last char of a line. |
| |
| sometimes a window resize or other signal caused an endless loop, involving |
| set_winsize(). |
| |
| "vim -r" didn't work, it would just hang (using tgetent() while 'term' is |
| empty). |
| |
| "gk" while 'nowrap' set moved two lines up. |
| |
| When windows are split, a message that causes a scroll-up messed up one of the |
| windows, which required a CTRL-L to be typed. |
| |
| Possible endless loop when using shell command in the GUI. |
| |
| Menus defined in the .vimrc were removed when GUI started. |
| |
| Crash when pasting with the mouse in insert mode. |
| |
| Crash with ":unmenu *" in .gvimrc for Athena. |
| |
| "5>>" shifted 5 lines 5 times, instead of 1 time. |
| |
| CTRL-C when getting a prompt in ":global" didn't interrupt. |
| |
| When 'so' is non-zero, and moving the scrollbar completely to the bottom, |
| there was a lot of flashing. |
| |
| GUI: Scrollbar ident must be long for DEC Alpha. |
| |
| Some functions called vim_regcomp() without setting reg_magic, which could |
| lead to unpredictable magicness. |
| |
| Crash when clicking around the status line, could get a selection with a |
| backwards range. |
| |
| When deleting more than one line characterwise, the last character wasn't |
| deleted. |
| |
| GUI: Status line could be overwritten when moving the scrollbar quickly (or |
| when 'wd' is non-zero). |
| |
| An ESC at the end of a ":normal" command caused a wait for a terminal code to |
| finish. Now, a terminal code is not recognized when its start comes from a |
| mapping or ":normal" command. |
| |
| Included patches from Robert Webb for GUI. Layout of the windows is now done |
| inside Vim, instead of letting the layout manager do this. Makes Vim work |
| with Lesstif! |
| |
| UMR warning in set_expand_context(). |
| |
| Memory leak: b_winlnum list was never freed. |
| |
| Removed TIOCLSET/TIOCLGET code from os_unix.c. Was changing some of the |
| terminal settings, and looked like it wasn't doing anything good. (suggested |
| by Juergen Weigert). |
| |
| Ruler overwrote "is a directory" message. When starting up, and 'cmdheight' |
| set to > 1, first message could still be in the last line. |
| |
| Removed prototype for putenv() from proto.h, it's already in osdef2.h.in. |
| |
| In replace mode, when moving the cursor and then backspacing, wrong characters |
| were inserted. |
| |
| Win32 GUI was checking for a CTRL-C too often, making it slow. |
| |
| Removed mappings for MS-DOS that were already covered by commands. |
| |
| When visually selecting all lines in a file, cursor at last line, then "J". |
| Gave ml_get errors. Was a problem with scrolling down during redrawing. |
| |
| When doing a linewise operator, and then an operator with a mouse click, it |
| was also linewise, instead of characterwise. |
| |
| When 'list' is set, the column of the ruler was wrong. |
| |
| Spurious error message for "/\(b\+\)*". |
| |
| When visually selected many lines, message from ":w file" disappeared when |
| redrawing the screen. |
| |
| ":set <M-b>=^[b", then insert "^[b", waited for another character. And then |
| inserted "<M-b>" instead of the real <M-b> character. Was trying to insert |
| K_SPECIAL x NUL. |
| |
| CTRL-W ] didn't use count to set window height. |
| |
| GUI: "-font" command-line argument didn't override 'guifont' setting from |
| .gvimrc. (Acevedo) |
| |
| GUI: clipboard wasn't used for "*y". And some more Win32/X11 differences |
| fixed for the clipboard (Webb). |
| |
| Jumping from one help file to another help file, with 'compatible' set, |
| removed the 'help' flag from the buffer. |
| |
| File-writable bit could be reset when using ":w!" for a readonly file. |
| |
| There was a wait for CTRL-O n in Insert mode, because the search pattern was |
| shown. |
| Reduced wait, to allow reading a message, from 10 to 3 seconds. It seemed |
| nothing was happening. |
| |
| ":recover" found same swap file twice. |
| |
| GUI: "*yy only worked the second time (when pasting to an xterm)." |
| |
| DJGPP version (dos32): The system flags were cleared. |
| |
| Dos32 version: Underscores were sometimes replaced with y-umlaut (Levin). |
| |
| Version 4.1 of ncurses can't handle tputs("", ..). Avoid calling tputs() with |
| an empty string. |
| |
| <S-Tab> in the command-line worked like CTRL-P when no completion started yet. |
| Now it does completion, last match first. |
| |
| Unix: Could get annoying "can't write viminfo" message after doing "su". Now |
| the viminfo file is overwritten, and the user set back to the original one. |
| |
| ":set term=builtin_gui" started the GUI in a wrong way. Now it's not |
| allowed anymore. But "vim -T gui" does start the GUI correctly now. |
| |
| GUI: Triple click after a line only put last char in selection, when it is a |
| single character word. |
| |
| When the window is bigger than the screen, the scrolling up of messages was |
| wrong (e.g. ":vers", ":hi"). Also when the bottom part of the window was |
| obscured by another window. |
| |
| When using a wrong option only an error message is printed, to avoid that the |
| usage information makes it scroll off the screen. |
| |
| When exiting because of not being able to read from stdin, didn't preserve the |
| swap files properly. |
| |
| Visual selecting all chars in more than one line, then hit "x" didn't leave an |
| empty line. For one line it did leave an empty line. |
| |
| Message for which autocommand is executing messed up file write message (for |
| FileWritePost event). |
| |
| "vim -h" included "-U" even when GUI is not available, and "-l" when lisp is |
| not available. |
| |
| Crash for ":he <C-A>" (command-line longer than screen). |
| |
| ":s/this/that/gc", type "y" two times, then undo, did reset the modified |
| option, even though the file is still modified. |
| |
| Empty lines in a tags file caused a ":tag" to be aborted. |
| |
| When hitting 'q' at the more prompt for ":menu", still scrolled a few lines. |
| |
| In an xterm that uses the bold trick a single row of characters could remain |
| after an erased bold character. Now erase one extra char after the bold char, |
| like for the GUI. |
| |
| ":pop!" didn't work. |
| |
| When the reading a buffer was interrupted, ":w" should not be able to |
| overwrite the file, ":w!" is required. |
| |
| ":cf%" caused a crash. |
| |
| ":gui longfilename", when forking is enabled, could leave part of the |
| longfilename at the shell prompt. |
| |
| ============================================================================== |
| VERSION 5.1 *version-5.1* |
| |
| Improvements made between version 5.0 and 5.1. |
| |
| This was mostly a bug-fix release, not many new features. |
| |
| |
| Changed *changed-5.1* |
| ------- |
| |
| The expand() function now separates file names with <NL> instead of a space. |
| This avoids problems for file names with embedded spaces. To get the old |
| result, use substitute(expand(foo), "\n", " ", "g"). |
| |
| For Insert-expanding dictionaries allow a backslash to be used for |
| wildchars. Allows expanding "ze\kra", when 'isk' includes a backslash. |
| |
| New icon for the Win32 GUI. |
| |
| ":tag", ":tselect" etc. only use the argument as a regexp when it starts |
| with '/'. Avoids that ":tag xx~" gives an error message: "No previous sub. |
| regexp". Also, when the :tag argument contained wildcard characters, it was |
| not Vi compatible. |
| When using '/', the argument is taken literally too, with a higher priority, |
| so it's found before wildcard matches. |
| Only when the '/' is used are matches with different case found, even though |
| 'ignorecase' isn't set. |
| Changed "g^]" to only do ":tselect" when there is more than on matching tag. |
| |
| Changed some of the default colors, because they were not very readable on a |
| dark background. |
| |
| A character offset to a search pattern can move the cursor to the next or |
| previous line. Also fixes that "/pattern/e+2" got stuck on "pattern" at the |
| end of a line. |
| |
| Double-clicks in the status line do no longer start Visual mode. Dragging a |
| status line no longer stops Visual mode. |
| |
| Perl interface: Buffers() and Windows() now use more logical arguments, like |
| they are used in the rest of Vim (Moore). |
| |
| Init '" mark to the first character of the first line. Makes it possible to |
| use '" in an autocommand without getting an error message. |
| |
| |
| Added *added-5.1* |
| ----- |
| |
| "shell_error" internal variable: result of last shell command. |
| |
| ":echohl" command: Set highlighting for ":echo". |
| |
| 'S' flag in 'highlight' and StatusLineNC highlight group: highlighting for |
| status line of not-current window. Default is to use bold for current |
| window. |
| |
| Added buffer_name() and buffer_number() functions (Aaron). |
| Added flags argument "g" to substitute() function (Aaron). |
| Added winheight() function. |
| |
| Win32: When an external command starts with "start ", no console is opened |
| for it (Aaron). |
| |
| Win32 console: Use termcap codes for bold/reverse based on the current |
| console attributes. |
| |
| Configure check for "strip". (Napier) |
| |
| CTRL-R CTRL-R x in Insert mode: Insert the contents of a register literally, |
| instead of as typed. |
| |
| Made a few "No match" error messages more informative by adding the pattern |
| that didn't match. |
| |
| "make install" now also copies the macro files. |
| |
| tools/tcltags, a shell script to generate a tags file from a TCL file. |
| |
| "--with-tlib" setting for configure. Easy way to use termlib: "./configure |
| --with-tlib=termlib". |
| |
| 'u' flag in 'cino' for setting the indent for contained () parts. |
| |
| When Win32 OLE version can't load the registered type library, ask the user |
| if he wants to register Vim now. (Erhardt) |
| Win32 with OLE: When registered automatically, exit Vim. |
| Included VisVim 1.1b, with a few enhancements and the new icon (Heiko |
| Erhardt). |
| |
| Added patch from Vince Negri for Win32s support. Needs to be compiled with |
| VC 4.1! |
| |
| Perl interface: Added $curbuf. Rationalized Buffers() and Windows(). |
| (Moore) Added "group" argument to Msg(). |
| |
| Included Perl files in DOS source archive. Changed Makefile.bor and |
| Makefile.w32 to support building a Win32 version with Perl included. |
| |
| Included new Makefile.w32 from Ken Scott. Now it's able to make all Win32 |
| versions, including OLE, Perl and Python. |
| |
| Added CTRL-W g ] and CTRL-W g ^]: split window and do g] or g^]. |
| |
| Added "g]" to always do ":tselect" for the ident under the cursor. |
| Added ":tjump" and ":stjump" commands. |
| Improved listing of ":tselect" when tag names are a bit long. |
| |
| Included patches for the Macintosh version. Also for Python interface. |
| (St-Amant) |
| |
| ":buf foo" now also restores cursor column, when the buffer was used before. |
| |
| Adjusted the Makefile for different final destinations for the syntax files |
| and scripts (for Debian Linux). |
| |
| Amiga: $VIM can be used everywhere. When $VIM is not defined, "VIM:" is |
| used. This fixes that "VIM:" had to be assigned for the help files, and |
| $VIM set for the syntax files. Now either of these work. |
| |
| Some xterms send vt100 compatible function keys F1-F4. Since it's not |
| possible to detect this, recognize both type of keys and translate them to |
| <F1> - <F4>. |
| |
| Added "VimEnter" autocommand. Executed after loading all the startup stuff. |
| |
| BeOS version now also runs on Intel CPUs (Seibert). |
| |
| |
| Fixed *fixed-5.1* |
| ----- |
| |
| ":ts" changed position in the tag stack when cancelled with <CR>. |
| ":ts" changed the cursor position for CTRL-T when cancelled with <CR>. |
| ":tn" would always jump to the second match. Was using the wrong entry in |
| the tag stack. |
| Doing "tag foo", then ":tselect", overwrote the original cursor position in |
| the tag stack. |
| |
| "make install" changed the vim.1 manpage in a wrong way, causing "doc/doc" |
| to appear for the documentation files. |
| |
| When compiled with MAX_FEAT, xterm mouse handling failed. Was caused by DEC |
| mouse handling interfering. |
| |
| Was leaking memory when using selection in X11. |
| |
| CTRL-D halfway a command-line left some characters behind the first line(s) |
| of the listing. |
| |
| When expanding directories for ":set path=", put two extra backslashes |
| before a space in a directory name. |
| |
| When 'lisp' set, first line of a function would be indented. Now its indent |
| is set to zero. And use the indent of the first previous line that is at |
| the same () level. Added test33. |
| |
| "so<Esc>u" in an empty file didn't work. |
| |
| DOS: "seek error in swap file write" errors, when using DOS 6.2 share.exe, |
| because the swap file was made hidden. It's no longer hidden. |
| |
| ":global" command would sometimes not execute on a matching line. Happened |
| when a data block is full in ml_replace(). |
| |
| For AIX use a tgetent buffer of 2048 bytes, instead of 1024. |
| |
| Win32 gvim now only sets the console size for external commands to 25x80 |
| on Windows 95, not on NT. |
| |
| Win32 console: Dead key could cause a crash, because of a missing "WINAPI" |
| (Deshpande). |
| |
| The right mouse button started Visual mode, even when 'mouse' is empty, and |
| in the command-line, a left click moved the cursor when 'mouse' is empty. |
| In Visual mode, 'n' in 'mouse' would be used instead of 'v'. |
| |
| A blinking cursor or focus change cleared a non-Visual selection. |
| |
| CTRL-Home and CTRL-End didn't work for MS-DOS versions. |
| |
| Could include NUL in 'iskeyword', causing a crash when doing insert mode |
| completion. |
| |
| Use _dos_commit() to flush the swap file to disk for MSDOS 16 bit version. |
| |
| In mappings, CTRL-H was replaced by the backspace key code. This caused |
| problems when it was used as text, e.g. ":map _U :%s/.^H//g<CR>". |
| |
| ":set t_Co=0" was not handled like a normal term. Now it's translated into |
| ":set t_Co=", which works. |
| |
| For ":syntax keyword" the "transparent" option did work, although not |
| mentioned in the help. But synID() returned wrong name. |
| |
| "gqG" in a file with one-word-per-line (e.g. a dictionary) was very slow and |
| not interruptible. |
| |
| "gq" operator inserted screen lines in the wrong situation. Now screen |
| lines are inserted or deleted when this speeds up displaying. |
| |
| cindent was wrong when an "if" contained "((". |
| |
| 'r' flag in 'viminfo' was not used for '%'. Could get files in the buffer |
| list from removable media. |
| |
| Win32 GUI with OLE: if_ole_vc.mak could not be converted into a project. |
| Hand-edited to fix this... |
| |
| With 'nosol' set, doing "$kdw" below an empty line positioned the cursor at |
| the end of the line. |
| |
| Dos32 version changed "\dir\file" into "/dir/file", to work around a DJGPP |
| bug. That bug appears to have been fixed, therefore this translation has |
| been removed. |
| |
| "/^*" didn't work (find '*' in first column). |
| |
| "<afile>" was not always set for autocommands. E.g., for ":au BufEnter * |
| let &tags = expand("<afile>:p:h") . "/tags". |
| |
| In an xterm, the window may be a child of the outer xterm window. Use the |
| parent window when getting the title and icon names. (Smith) |
| |
| When starting with "gvim -bg black -fg white", the value of 'background' is |
| only set after reading the .gvimrc file. This causes a ":syntax on" to use |
| the wrong colors. Now allow using ":gui" to open the GUI window and set the |
| colors. Previously ":gui" in a gvimrc crashed Vim. |
| |
| tempname() returned the same name all the time, unless the file was actually |
| created. Now there are at least 26 different names. |
| |
| File name used for <afile> was sometimes full path, sometimes file name |
| relative to current directory. |
| |
| When 'background' was set after the GUI window was opened, it could change |
| colors that were set by the user in the .gvimrc file. Now it only changes |
| colors that have not been set by the user. |
| |
| Ignore special characters after a CSI in the GUI version. These could be |
| interpreted as special characters in a wrong way. (St-Amant) |
| |
| Memory leak in farsi code, when using search or ":s" command. |
| Farsi string reversing for a mapping was only done for new mappings. Now it |
| also works for replacing a mapping. |
| |
| Crash in Win32 when using a file name longer than _MAX_PATH. (Aaron) |
| |
| When BufDelete autocommands were executed, some things for the buffer were |
| already deleted (esp. Perl stuff). |
| |
| Perl interface: Buffer specific items were deleted too soon; fixes "screen |
| no longer exists" messages. (Moore) |
| |
| The Perl functions didn't set the 'modified' flag. |
| |
| link.sh did not return an error on exit, which may cause Vim to start |
| installing, even though there is no executable to install. (Riehm) |
| |
| Vi incompatibility: In Vi "." redoes the "y" command. Added the 'y' flag to |
| 'cpoptions'. Only for 'compatible' mode. |
| |
| ":echohl" defined a new group, when the argument was not an existing group. |
| |
| "syn on" and ":syn off" could move the cursor, if there is a hidden buffer |
| that is shorter that the current cursor position. |
| |
| The " mark was not set when doing ":b file". |
| |
| When a "nextgroup" is used with "skipwhite" in syntax highlighting, space at |
| the end of the line made the nextgroup also be found in the next line. |
| |
| ":he g<CTRL-D>", then ":" and backspace to the start didn't redraw. |
| |
| X11 GUI: "gvim -rv" reversed the colors twice on Sun. Now Vim checks if the |
| result is really reverse video (background darker than foreground). |
| |
| "cat link.sh | vim -" didn't set syntax highlighting. |
| |
| Win32: Expanding "file.sw?" matched ".file.swp". This is an error of |
| FindnextFile() that we need to work around. (Kilgore) |
| |
| "gqgq" gave an "Invalid lnum" error on the last line. |
| Formatting with "gq" didn't format the first line after a change of comment |
| leader. |
| |
| There was no check for out-of-memory in win_alloc(). |
| |
| "vim -h" didn't mention "-register" and "-unregister" for the OLE version. |
| |
| Could not increase 'cmdheight' when the last window is only one line. Now |
| other windows are also made smaller, when necessary. |
| |
| Added a few {} to avoid "suggest braces around" warnings from gcc 2.8.x. |
| Changed return type of main() from void to int. (Nam) |
| |
| Using '~' twice in a substitute pattern caused a crash. |
| |
| "syn on" and ":syn off" could scroll the window, if there is a hidden buffer |
| that is shorter that the current cursor position. |
| |
| ":if 0 | if 1 | endif | endif" didn't work. Same for ":while" and "elseif". |
| |
| With two windows on modified files, with 'autowrite' set, cursor in second |
| window, ":qa" gave a warning for the file in the first window, but then |
| auto-wrote the file in the second window. (Webb) |
| |
| Win32 GUI scrollbar could only handle 32767 lines. Also makes the |
| intellimouse wheel use the configurable number of scrolls. (Robinson) |
| |
| When using 'patchmode', and the backup file is on another partition, the file |
| copying messed up the write-file message. |
| |
| GUI X11: Alt-Backspace and Alt-Delete didn't work. |
| |
| "`0" could put the cursor after the last character in the line, causing |
| trouble for other commands, like "i". |
| |
| When completing tags in insert mode with ^X^], some matches were skipped, |
| because the compare with other tags was wrong. E.g., when "mnuFileSave" was |
| already there, "mnuFile" would be skipped. (Negri) |
| |
| When scrolling up/down, a syntax item with "keepend" didn't work properly. |
| Now the flags are also stored for the syntax state at the start of each line. |
| |
| When 'ic' was changed while 'hlsearch' is on, there was no redraw to show the |
| effect. |
| |
| Win32 GUI: Don't display "No write since last chance" in a message box, but in |
| the Vim window. |
| |
| ============================================================================== |
| VERSION 5.2 *version-5.2* |
| |
| Improvements made between version 5.1 and 5.2. |
| |
| |
| Long lines editable *long-lines* |
| ------------------- |
| |
| A single long line that doesn't fit in the window doesn't show a line of @@@ |
| anymore. Redrawing starts at a character further on in the line, such that |
| the text around the cursor can be seen. This makes it possible to edit these |
| long lines when wrapping is on. |
| |
| |
| File browser added *file-browser-5.2* |
| ------------------ |
| |
| The Win32, Athena and Motif GUI bring up a file requester if the user asks to |
| ":browse" for the ":e", ":w", ":r", ":so", ":redirect" and |
| ":mkexrc/vimrc/vsess" commands. ::browse e /foo/bar" opens the requester in |
| the /foo/bar directory, so you can have nice mapping rhs's like ":browse so |
| $vim/macros". If no initial dir specified for ":browse e", can be compiled to |
| either begin in the current directory, or that of the current buffer. (Negri |
| and Kahn) |
| Added the 'browsedir' option, with value "current", "last" or "buffer". Tells |
| whether a browse dialog starts in last used dir, dir of current buffer, or |
| current dir. ":browse w" is unaffected. |
| The default menus have been changed to use the ":browse" command. |
| |
| |
| Dialogs added *dialogs-added* |
| ------------- |
| |
| Added the ":confirm" command. Works on ":e", ":q", ":w", ":cl". Win32, |
| Athena and Motif GUI uses a window-dialog. All other platforms can use |
| prompt in command-line. ":confirm qa" offers a choice to save all modified |
| files. |
| |
| confirm() function: allows user access to the confirm engine. |
| |
| Added 'v' flag to 'guioptions'. When included, a vertical button layout is |
| always used for the Win32 GUI dialog. Otherwise, a horizontal layout is |
| preferred. |
| |
| Win32 GUI: ":promptfind" and ":promptrepl" pop up a dialog to find/replace. |
| To be used from a menu entry. (Negri) |
| |
| |
| Popup menu added *popup-menu-added* |
| ---------------- |
| |
| When the 'mousemodel' option is set to "popup", the right mouse button |
| displays the top level menu headed with "PopUp" as pop-up context menu. The |
| "PopUp" menu is not displayed in the normal menu bar. This currently only |
| works for Win32 and Athena GUI. |
| |
| |
| Select mode added *new-Select-mode* |
| ----------------- |
| |
| A new mode has been added: "Select mode". It is like Visual mode, but typing |
| a printable character replaces the selection. |
| - CTRL-G can be used to toggle between Visual mode and Select mode. |
| - CTRL-O can be used to switch from Select mode to Visual mode for one command. |
| - Added 'selectmode' option: tells when to start Select mode instead of Visual |
| mode. |
| - Added 'mousemodel' option: Change use of mouse buttons. |
| - Added 'keymodel' option: tells to use shifted special keys to start a |
| Visual or Select mode selection. |
| - Added ":behave". Can be used to quickly set 'selectmode', 'mousemodel' |
| and 'keymodel' for MS-Windows and xterm behavior. |
| - The xterm-like selection is now called modeless selection. |
| - Visual mode mappings and menus are used in Select mode. They automatically |
| switch to Visual mode first. Afterwards, reselect the area, unless it was |
| deleted. The "gV" command can be used in a mapping to skip the reselection. |
| - Added the "gh", "gH" and "g^H" commands: start Select (highlight) mode. |
| - Backspace in Select mode deletes the selected area. |
| |
| "mswin.vim" script. Sets behavior mostly like MS-Windows. |
| |
| |
| Session files added *new-session-files* |
| ------------------- |
| |
| ":mks[ession]" acts like "mkvimrc", but also writes the full filenames of the |
| currently loaded buffers and current directory, so that :so'ing the file |
| re-loads those files and cd's to that directory. Also stores and restores |
| windows. File names are made relative to session file. |
| The 'sessionoptions' option sets behavior of ":mksession". (Negri) |
| |
| |
| User defined functions and commands *new-user-defined* |
| ----------------------------------- |
| |
| Added user defined functions. Defined with ":function" until ":endfunction". |
| Called with "Func()". Allows the use of a variable number of arguments. |
| Included support for local variables "l:name". Return a value with ":return". |
| See |:function|. |
| Call a function with ":call". When using a range, the function is called for |
| each line in the range. |:call| |
| "macros/justify.vim" is an example of using user defined functions. |
| User functions do not change the last used search pattern or the command to be |
| redone with ".". |
| 'maxfuncdepth' option. Restricts the depth of function calls. Avoids trouble |
| (crash because of out-of-memory) when a function uses endless recursion. |
| |
| User definable Ex commands: ":command", ":delcommand" and ":comclear". |
| (Moore) See |user-commands|. |
| |
| |
| New interfaces *interfaces-5.2* |
| -------------- |
| |
| Tcl interface. (Wilken) See |tcl|. |
| Uses the ":tcl", ":tcldo" and "tclfile" commands. |
| |
| Cscope support. (Kahn) (Sekera) See |cscope|. |
| Uses the ":cscope" and ":cstag" commands. Uses the options 'cscopeprg', |
| 'cscopetag', 'cscopetagorder' and 'cscopeverbose'. |
| |
| |
| New ports *ports-5.2* |
| --------- |
| |
| Amiga GUI port. (Nielsen) Not tested much yet! |
| |
| RISC OS version. (Thomas Leonard) See |riscos|. |
| This version can run either with a GUI or in text mode, depending upon where |
| it is invoked. |
| Deleted the "os_archie" files, they were not working anyway. |
| |
| |
| Multi-byte support *new-multi-byte* |
| ------------------ |
| |
| MultiByte support for Win32 GUI. (Baek) |
| The 'fileencoding' option decides how the text in the file is encoded. |
| ":ascii" works for multi-byte characters. Multi-byte characters work on |
| Windows 95, even when using the US version. (Aaron) |
| Needs to be enabled in feature.h. |
| This has not been tested much yet! |
| |
| |
| New functions *new-functions-5.2* |
| ------------- |
| |
| |browse()| puts up a file requester when available. (Negri) |
| |escape()| escapes characters in a string with a backslash. |
| |fnamemodify()| modifies a file name. |
| |input()| asks the user to enter a line. (Aaron) There is a separate |
| history for lines typed for the input() function. |
| |argc()| |
| |argv()| can be used to access the argument list. |
| |winbufnr()| buffer number of a window. (Aaron) |
| |winnr()| window number. (Aaron) |
| |matchstr()| Return matched string. |
| |setline()| Set a line to a string value. |
| |
| |
| New options *new-options-5.2* |
| ----------- |
| |
| 'allowrevins' Enable the CTRL-_ command in Insert and Command-line mode. |
| 'browsedir' Tells in which directory a browse dialog starts. |
| 'confirm' when set, :q :w and :e commands always act as if ":confirm" |
| is used. (Negri) |
| 'cscopeprg' |
| 'cscopetag' |
| 'cscopetagorder' |
| 'cscopeverbose' Set the |cscope| behavior. |
| 'filetype' RISC-OS specific type of file. |
| 'grepformat' |
| 'grepprg' For the |:grep| command. |
| 'keymodel' Tells to use shifted special keys to start a Visual or Select |
| mode selection. |
| 'listchars' Set character to show in 'list' mode for end-of-line, tabs and |
| trailing spaces. (partly by Smith) Also sets character to |
| display if a line doesn't fit when 'nowrap' is set. |
| 'matchpairs' Allows matching '<' with '>', and other single character |
| pairs. |
| 'mousefocus' Window focus follows mouse (partly by Terhaar). Changing the |
| focus with a keyboard command moves the pointer to that |
| window. Also move the pointer when changing the window layout |
| (split window, change window height, etc.). |
| 'mousemodel' Change use of mouse buttons. |
| 'selection' When set to "inclusive" or "exclusive", the cursor can go one |
| character past the end of the line in Visual or Select mode. |
| When set to "old" the old behavior is used. When |
| "inclusive", the character under the cursor is included in the |
| operation. When using "exclusive", the new "ve" entry of |
| 'guicursor' is used. The default is a vertical bar. |
| 'selectmode' Tells when to start Select mode instead of Visual mode. |
| 'sessionoptions' Sets behavior of ":mksession". (Negri) |
| 'showfulltag' When completing a tag in Insert mode, show the tag search |
| pattern (tidied up) as a choice as well (if there is one). |
| 'swapfile' Whether to use a swap file for a buffer. |
| 'syntax' When it is set, the syntax by that name is loaded. Allows for |
| setting a specific syntax from a modeline. |
| 'ttymouse' Allows using xterm mouse codes for terminals which name |
| doesn't start with "xterm". |
| 'wildignore' List of patterns for files that should not be completed at |
| all. |
| 'wildmode' Can be used to set the type of expansion for 'wildchar'. |
| Replaces the CTRL-T command for command line completion. |
| Don't beep when listing all matches. |
| 'winaltkeys' Win32 and Motif GUI. When "yes", ALT keys are handled |
| entirely by the window system. When "no", ALT keys are never |
| used by the window system. When "menu" it depends on whether |
| a key is a menu shortcut. |
| 'winminheight' Minimal height for each window. Default is 1. Set to 0 if |
| you want zero-line windows. Scrollbar is removed for |
| zero-height windows. (Negri) |
| |
| |
| |
| New Ex commands *new-ex-commands-5.2* |
| --------------- |
| |
| |:badd| Add file name to buffer list without side effects. (Negri) |
| |:behave| Quickly set MS-Windows or xterm behavior. |
| |:browse| Use file selection dialog. |
| |:call| Call a function, optionally with a range. |
| |:cnewer| |
| |:colder| To access a stack of quickfix error lists. |
| |:comclear| Clear all user-defined commands. |
| |:command| Define a user command. |
| |:continue| Go back to ":while". |
| |:confirm| Ask confirmation if something unexpected happens. |
| |:cscope| Execute cscope command. |
| |:cstag| Use cscope to jump to a tag. |
| |:delcommand| Delete a user-defined command. |
| |:delfunction| Delete a user-defined function. |
| |:endfunction| End of user-defined function. |
| |:function| Define a user function. |
| |:grep| Works similar to ":make". (Negri) |
| |:mksession| Create a session file. |
| |:nohlsearch| Stop 'hlsearch' highlighting for a moment. |
| |:Print| This is Vi compatible. Does the same as ":print". |
| |:promptfind| Search dialog (Win32 GUI). |
| |:promptrepl| Search/replace dialog (Win32 GUI). |
| |:return| Return from a user-defined function. |
| |:simalt| Win32 GUI: Simulate alt-key pressed. (Negri) |
| |:smagic| Like ":substitute", but always use 'magic'. |
| |:snomagic| Like ":substitute", but always use 'nomagic'. |
| |:tcl| Execute TCL command. |
| |:tcldo| Execute TCL command for a range of lines. |
| |:tclfile| Execute a TCL script file. |
| |:tearoff| Tear-off a menu (Win32 GUI). |
| |:tmenu| |
| |:tunmenu| Win32 GUI: menu tooltips. (Negri) |
| |:star| :* Execute a register. |
| |
| |
| Changed *changed-5.2* |
| ------- |
| |
| Renamed functions: |
| buffer_exists() -> bufexists() |
| buffer_name() -> bufname() |
| buffer_number() -> bufnr() |
| file_readable() -> filereadable() |
| highlight_exists() -> hlexists() |
| highlightID() -> hlID() |
| last_buffer_nr() -> bufnr("$") |
| The old ones are still there, for backwards compatibility. |
| |
| The CTRL-_ command in Insert and Command-line mode is only available when the |
| new 'allowrevins' option is set. Avoids that people who want to type SHIFT-_ |
| accidentally enter reverse Insert mode, and don't know how to get out. |
| |
| When a file name path in ":tselect" listing is too long, remove a part in the |
| middle and put "..." there. |
| |
| Win32 GUI: Made font selector appear inside Vim window, not just any odd |
| place. (Negri) |
| |
| ":bn" skips help buffers, unless currently in a help buffer. (Negri) |
| |
| When there is a status line and only one window, don't show '^' in the status |
| line of the current window. |
| |
| ":*" used to be used for "'<,'>", the Visual area. But in Vi it's used as an |
| alternative for ":@". When 'cpoptions' includes '*' this is Vi compatible. |
| |
| When 'insertmode' is set, using CTRL-O to execute a mapping will work like |
| 'insertmode' was not set. This allows "normal" mappings to be used even when |
| 'insertmode' is set. |
| |
| When 'mouse' was set already (e.g., in the .vimrc file), don't automatically |
| set 'mouse' when the GUI starts. |
| |
| Removed the 'N', 'I' and 'A' flags from the 'mouse' option. |
| |
| Renamed "toggle option" to "boolean option". Some people thought that ":set |
| xyz" would toggle 'xyz' on/off each time. |
| |
| The internal variable "shell_error" contains the error code from the shell, |
| instead of just 0 or 1. |
| |
| When inserting or replacing, typing CTRL-V CTRL-<CR> used to insert "<C-CR>". |
| That is not very useful. Now the CTRL key is ignored and a <CR> is inserted. |
| Same for all other "normal" keys with modifiers. Mapping these modified key |
| combinations is still possible. |
| In Insert mode, <C-CR> and <S-Space> can be inserted by using CTRL-K and then |
| the special character. |
| |
| Moved "quotes" file to doc/quotes.txt, and "todo" file to doc/todo.txt. They |
| are now installed like other documentation files. |
| |
| winheight() function returns -1 for a non-existing window. It used to be |
| zero, but that is a valid height now. |
| |
| The default for 'selection' is "inclusive", which makes a difference when |
| using "$" or the mouse to move the cursor in Visual mode. |
| |
| ":q!" does not exit when there are changed buffers which are hidden. Use |
| ":qa!" to exit anyway. |
| |
| Disabled the Perl/Python/Tcl interfaces by default. Not many people use them |
| and they make the executable a lot bigger. The internal scripting language is |
| now powerful enough for most tasks. |
| |
| The strings from the 'titlestring' and 'iconstring' options are used |
| untranslated for the Window title and icon. This allows for including a <CR>. |
| Previously a <CR> would be shown as "^M" (two characters). |
| |
| When a mapping is started in Visual or Select mode which was started from |
| Insert mode (the mode shows "(insert) Visual"), don't return to Insert mode |
| until the mapping has ended. Makes it possible to use a mapping in Visual |
| mode that also works when the Visual mode was started from Select mode. |
| |
| Menus in $VIMRUNTIME/menu.vim no longer overrule existing menus. This helps |
| when defining menus in the .vimrc file, or when sourcing mswin.vim. |
| |
| Unix: Use /var/tmp for .swp files, if it exists. Files there survive a |
| reboot (at least on Linux). |
| |
| |
| Added *added-5.2* |
| ----- |
| |
| --with-motif-lib configure argument. Allows for using a static Motif library. |
| |
| Support for mapping numeric keypad +,-,*,/ keys. (Negri) |
| When not mapped, they produce the normal character. |
| |
| Win32 GUI: When directory dropped on Gvim, cd there and edit new buffer. |
| (Negri) |
| |
| Win32 GUI: Made CTRL-Break work as interrupt, so that CTRL-C can be |
| used for mappings. |
| |
| In the output of ":map", highlight the "*" to make clear it's not part of the |
| rhs. (Roemer) |
| |
| When showing the Visual area, the cursor is not switched off, so that it can |
| be located. The Visual area is now highlighted with a grey background in the |
| GUI. This makes the cursor visible when it's also reversed. |
| |
| Win32: When started with single full pathname (e.g. via double-clicked file), |
| cd to that file's directory. (Negri) |
| |
| Win32 GUI: Tear-off menus, with ":tearoff <menu-name>" command. (Negri) |
| 't' option to 'guioptions': Add tearoff menu items for Win32 GUI and Motif. |
| It's included by default. |
| Win32 GUI: tearoff menu with submenus is indicated with a ">>". (Negri) |
| |
| Added ^Kaa and ^KAA digraphs. |
| Added "euro" symbol to digraph.c. (Corry) |
| |
| Support for Motif menu shortcut keys, using '&' like MS-Windows (Ollis). |
| Other GUIs ignore '&' in a menu name. |
| |
| DJGPP: Faster screen updating (John Lange). |
| |
| Clustering of syntax groups ":syntax cluster" (Bigham). |
| Including syntax files: ":syntax include" (Bigham). |
| |
| Keep column when switching buffers, when 'nosol' is set (Radics). |
| |
| Number function for Perl interface. |
| |
| Support for Intellimouse in Athena GUI. (Jensen) |
| |
| ":sleep" also accepts an argument in milliseconds, when "m" is used. |
| |
| Added 'p' flag in 'guioptions': Install callbacks for enter/leave window |
| events. Makes cursor blinking work for Terhaar, breaks it for me. |
| |
| "--help" and "--version" command-line arguments. |
| |
| Non-text in ":list" output is highlighted with NonText. |
| |
| Added text objects: "i(" and "i)" as synonym for "ib". "i{" and "i}" as |
| synonym for "iB". New: "i<" and "i>", to select <thing>. All this also for |
| "a" objects. |
| |
| 'O' flag in 'shortmess': message for reading a file overwrites any previous |
| message. (Negri) |
| |
| Win32 GUI: 'T' flag in 'guioptions': switch toolbar on/off. |
| Included a list with self-made toolbar bitmaps. (Negri) |
| |
| Added menu priority for sub-menus. Implemented for Win32 and Motif GUI. |
| Display menu priority with ":menu" command. |
| Default and Syntax menus now include priority for items. Allows inserting |
| menu items in between the default ones. |
| |
| When the 'number' option is on, highlight line numbers with the LineNr group. |
| |
| "Ignore" highlight group: Text highlighted with this is made blank. It is |
| used to hide special characters in the help text. |
| |
| Included Exuberant Ctags version 2.3, with C++ support, Java support and |
| recurse into directories. (Hiebert) |
| |
| When a tags file is not sorted, and this is detected (in a simplistic way), an |
| error message is given. |
| |
| ":unlet" accepts a "!", to ignore non-existing variables, and accepts more |
| than one argument. (Roemer) |
| Completion of variable names for ":unlet". (Roemer) |
| |
| When there is an error in a function which is called by another function, show |
| the call stack in the error message. |
| |
| New file name modifiers: |
| ":.": reduce file name to be relative to current dir. |
| ":~": reduce file name to be relative to home dir. |
| ":s?pat?sub?": substitute "pat" with "sub" once. |
| ":gs?pat?sub?": substitute "pat" with "sub" globally. |
| |
| New configure arguments: --enable-min-features and --enable-max-features. |
| Easy way to switch to minimum or maximum features. |
| |
| New compile-time feature: modify_fname. For file name modifiers, e.g, |
| "%:p:h". Can be disabled to save some code (16 bit DOS). |
| |
| When using whole-line completion in Insert mode, and 'cindent' is set, indent |
| the line properly. |
| |
| MSDOS and Win32 console: 'guicursor' sets cursor thickness. (Negri) |
| |
| Included new set of Farsi fonts. (Shiran) |
| |
| Accelerator text now also works in Motif. All menus can be defined with & for |
| mnemonic and TAB for accelerator text. They are ignored on systems that don't |
| support them. |
| When removing or replacing a menu, compare the menu name only up to the <Tab> |
| before the mnemonic. |
| |
| 'i' and 'I' flags after ":substitute": ignore case or not. |
| |
| "make install" complains if the runtime files are missing. |
| |
| Unix: When finding an existing swap file that can't be opened, mention the |
| owner of the file in the ATTENTION message. |
| |
| The 'i', 't' and 'k' options in 'complete' now also print the place where they |
| are looking for matches. (Acevedo) |
| |
| "gJ" command: Join lines without inserting a space. |
| |
| Setting 'keywordprg' to "man -s" is handled specifically. The "-s" is removed |
| when no count given, the count is added otherwise. Configure checks if "man |
| -s 2 read" works, and sets the default for 'keywordprg' accordingly. |
| |
| If you do a ":bd" and there is only one window open, Vim tries to move to a |
| buffer of the same type (i.e. non-help to non-help, help to help), for |
| consistent behavior to :bnext/:bprev. (Negri) |
| |
| Allow "<Nop>" to be used as the rhs of a mapping. ":map xx <Nop>", maps "xx" |
| to nothing at all. |
| |
| In a ":menu" command, "<Tab>" can be used instead of a real tab, in the menu |
| path. This makes it more easy to type, no backslash needed. |
| |
| POSIX compatible character classes for regexp patterns: [:alnum:], [:alpha:], |
| [:blank:], [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:], [:punct:], |
| [:space:], [:upper:] and [:xdigit:]. (Briscoe) |
| |
| regexp character classes (for fast syntax highlight matching): |
| digits: \d [0-9] \D not digit (Roemer) |
| hex: \x [0-9a-fA-F] \X not hex |
| octal: \o [0-7] \O not octal |
| word: \w [a-zA-Z0-9_] \W not word |
| head: \h [a-zA-Z_] \H not head |
| alphabetic: \a [a-zA-Z] \A not alphabetic |
| lowercase: \l [a-z] \L not lowercase |
| uppercase: \u [A-Z] \U not uppercase |
| |
| ":set" now accepts "+=", |^=" and "-=": add or remove parts of a string |
| option, add or subtract a number from a number option. A comma is |
| automagically inserted or deleted for options that are a comma separated list. |
| |
| Filetype feature, for autocommands. Uses a file type instead of a pattern to |
| match a file. Currently only used for RISC OS. (Leonard) |
| |
| In a pattern for an autocommand, environment variables can be used. They are |
| expanded when the autocommand is defined. |
| |
| "BufFilePre" and "BufFilePost" autocommand evens: Before and after applying |
| the ":file" command to change the name of a buffer. |
| "VimLeavePre" autocommand event: before writing the .viminfo file. |
| |
| For autocommands argument: <abuf> is buffer number, like <afile>. |
| |
| Made syntax highlighting a bit faster when scrolling backwards, by keeping |
| more syncing context. |
| |
| Win32 GUI: Made scrolling faster by avoiding a redraw when deleting or |
| inserting screen lines. |
| |
| GUI: Made scrolling faster by not redrawing the scrollbar when the thumb moved |
| less than a pixel. |
| |
| Included ":highlight" in bugreport.vim. |
| |
| Created install.exe program, for simplistic installation on DOS and |
| MS-Windows. |
| |
| New register: '_', the black hole. When writing to it, nothing happens. When |
| reading from it, it's always empty. Can be used to avoid a delete or change |
| command to modify the registers, or reduce memory use for big changes. |
| |
| CTRL-V xff enters character by hex number. CTRL-V o123 enters character by |
| octal number. (Aaron) |
| |
| Improved performance of syntax highlighting by skipping check for "keepend" |
| when there isn't any. |
| |
| Moved the mode message ("-- INSERT --") to the last line of the screen. When |
| 'cmdheight' is more than one, messages will remain readable. |
| |
| When listing matching files, they are also sorted on 'suffixes', such that |
| they are listed in the same order as CTRL-N retrieves them. |
| |
| synIDattr() takes a third argument (optionally), which tells for which |
| terminal type to get the attributes for. This makes it possible to run |
| 2html.vim outside of gvim (using color names instead of #RRGGBB). |
| |
| Memory profiling, only for debugging. Prints at exit, and with "g^A" command. |
| (Kahn) |
| |
| DOS: When using a file in the current drive, remove the drive name: |
| "A:\dir\file" -> "\dir\file". This helps when moving a session file on a |
| floppy from "A:\dir" to "B:\dir". |
| |
| Increased number of remembered jumps from 30 to 50 per window. |
| |
| Command to temporarily disable 'hls' highlighting until the next search: |
| ":nohlsearch". |
| |
| "gp" and "gP" commands: like "p" and "P", but leave the cursor just after the |
| inserted text. Used for the CTRL-V command in MS-Windows mode. |
| |
| |
| Fixed *fixed-5.2* |
| ----- |
| |
| Win32 GUI: Could draw text twice in one place, for fake-bold text. Removed |
| this, Windows will handle the bold text anyway. (Negri) |
| |
| patch 5.1.1: Win32s GUI: pasting caused a crash (Negri) |
| |
| patch 5.1.2: When entering another window, where characters before the cursor |
| have been deleted, could have a cursor beyond the end of the line. |
| |
| patch 5.1.3: Win32s GUI: Didn't wait for external command to finish. (Negri) |
| |
| patch 5.1.4: Makefile.w32 can now also be used to generate the OLE version |
| (Scott). |
| |
| patch 5.1.5: Crashed when using syntax highlighting: cursor on a line that |
| doesn't fit in the window, and splitting that line in two. |
| |
| patch 5.1.6: Visual highlighting bug: After ":set nowrap", go to end of line |
| (so that the window scrolls horizontally), ":set wrap". Following Visual |
| selection was wrong. |
| |
| patch 5.1.7: When 'tagbsearch' off, and 'ignorecase' off, still could do |
| binary searching. |
| |
| patch 5.1.8: Win32 GUI: dragging the scrollbar didn't update the ruler. |
| |
| patch 5.1.9: Using ":gui" in .vimrc, caused xterm cursor to disappear. |
| |
| patch 5.1.10: A CTRL-N in Insert mode could cause a crash, when a buffer |
| without a name exists. |
| |
| patch 5.1.11: "make test" didn't work in the shadow directory. Also adjusted |
| "make shadow" for the links in the ctags directory. |
| |
| patch 5.1.12: "buf 123foo" used "123" as a count, instead as the start of a |
| buffer name. |
| |
| patch 5.1.13: When completing file names on the command-line, reallocating the |
| command-line may go wrong. |
| |
| patch 5.1.14: ":[nvci]unmenu" removed menu for all modes, when full menu patch |
| specified. |
| |
| Graceful handling of NULLs in drag-dropped file list. Handle passing NULL to |
| Fullname_save(). (Negri) |
| |
| Win32: ":!start" to invoke a program without opening a console, swapping |
| screens, or waiting for completion in either console or gui version, e.g. you |
| can type ":!start winfile". ALSO fixes "can't delete swapfile after spawning |
| a shell" bug. (enhancement of Aaron patch) (Negri) |
| |
| Win32 GUI: Fix CTRL-X default keymapping to be more Windows-like. (Negri) |
| |
| Shorten filenames on startup. If in /foo/bar, entering "vim ../bar/bang.c" |
| displays "bang.c" in status bar, not "/foo/bar/bang.c" (Negri) |
| |
| Win32 GUI: No copy to Windows clipboard when it's not desired. |
| |
| Win32s: Fix pasting from clipboard - made an assumption not valid under |
| Win32s. (Negri) |
| |
| Win32 GUI: Speed up calls to gui_mch_draw_string() and cursor drawing |
| functions. (Negri) |
| |
| Win32 GUI: Middle mouse button emulation now works in GUI! (Negri) |
| |
| Could skip messages when combining commands in one line, e.g.: |
| ":echo "hello" | write". |
| |
| Perl interpreter was disabled before executing VimLeave autocommands. Could |
| not use ":perl" in them. (Aaron) |
| |
| Included patch for the Intellimouse (Aaron/Robinson). |
| |
| Could not set 'ls' to one, when last window has only one line. (Mitterand) |
| |
| Fixed a memory leak when removing menus. |
| |
| After ":only" the ruler could overwrite a message. |
| |
| Dos32: removed changing of __system_flags. It appears to work better when |
| it's left at the default value. |
| |
| p_aleph was an int instead of along, caused trouble on systems where |
| sizeof(int) != sizeof(long). (Schmidt) |
| |
| Fixed enum problems for Ultrix. (Seibert) |
| |
| Small redraw problem: "dd" on last line in file cleared wrong line. |
| |
| Didn't interpret "cmd | endif" when "cmd" starts with a range. E.g. "if 0 | |
| .d | endif". |
| |
| Command "+|" on the last line of the file caused ml_get errors. |
| |
| Memory underrun in eval_vars(). (Aaron) |
| |
| Don't rename files in a difficult way, except on Windows 95 (was also done on |
| Windows NT). |
| |
| Win32 GUI: An external command that produces an error code put the error |
| message in a dialog box. had to close the window and close the dialog. Now |
| the error code is displayed in the console. (Negri) |
| |
| "comctl32.lib" was missing from the GUI libraries in Makefile.w32. (Battle) |
| |
| In Insert mode, when entering a window in Insert mode, allow the cursor to be |
| one char beyond the text. |
| |
| Renamed machine dependent rename() to mch_rename(). Define mch_rename() to |
| rename() when it works properly. |
| |
| Rename vim_chdir() to mch_chdir(), because it's machine dependent. |
| |
| When using an arglist, and editing file 5 of 4, ":q" could cause "-1 more |
| files to edit" error. |
| |
| In if_python.c, VimCommand() caused an assertion when a do_cmdline() failed. |
| Moved the Python_Release_Vim() to before the VimErrorCheck(). (Harkins) |
| |
| Give an error message for an unknown argument after "--". E.g. for "vim |
| --xyz". |
| |
| The FileChangedShell autocommand didn't set <afile> to the name of the changed |
| file. |
| |
| When doing ":e file", causing the attention message, there sometimes was no |
| hit-enter prompt. Caused by empty line or "endif" at end of sourced file. |
| |
| A large number of patches for the VMS version. (Hunsaker) |
| |
| When CTRL-L completion (find longest match) results in a shorter string, no |
| completion is done (happens with ":help"). |
| |
| Crash in Win32 GUI version, when using an Ex "@" command, because |
| LinePointers[] was used while not initialized. |
| |
| Win32 GUI: allow mapping of Alt-Space. |
| |
| Output from "vim -h" was sent to stderr. Sending it to stdout is better, so |
| one can use "vim -h | more". |
| |
| In command-line mode, ":vi[!]" should reload the file, just like ":e[!]". |
| In Ex mode, ":vi" stops Ex mode, but doesn't reload the file. This is Vi |
| compatible. |
| |
| When using a ":set ls=1" in the .gvimrc file, would get a status line for a |
| single window. (Robinson) |
| |
| Didn't give an error message for ":set ai,xx". (Roemer) |
| Didn't give an error message for ":set ai?xx", ":set ai&xx", ":set ai!xx". |
| |
| Non-Unix systems: That a file exists but is unreadable is recognized as "new |
| file". Now check for existence when file can't be opened (like Unix). |
| |
| Unix: osdef.sh didn't handle declarations where the function name is at the |
| first column of the line. |
| |
| DJGPP: Shortening of file names didn't work properly, because get_cwd() |
| returned a path with backslashes. (Negri) |
| |
| When using a 'comments' part where a space is required after the middle part, |
| always insert a space when starting a new line. Helps for C comments, below a |
| line with "/****". |
| |
| Replacing path of home directory with "~/" could be wrong for file names |
| with embedded spaces or commas. |
| |
| A few fixes for the Sniff interface. (Leherbauer) |
| |
| When asking to hit 'y' or 'n' (e.g. for ":3,1d"), using the mouse caused |
| trouble. Same for ":s/x/y/c" prompt. |
| |
| With 'nowrap' and 'list', a Tab halfway on the screen was displayed as blanks, |
| instead of the characters specified with 'listchars'. Also for other |
| characters that take more than one screen character. |
| |
| When setting 'guifont' to an unknown font name, the previous font was lost and |
| a default font would be used. (Steed) |
| |
| DOS: Filenames in the root directory didn't get shortened properly. (Negri) |
| |
| DJGPP: making a full path name out of a file name didn't work properly when |
| there is no _fullpath() function. (Negri) |
| |
| Win32 console: ":sh" caused a crash. (Negri) |
| |
| Win32 console: Setting 'lines' and/or 'columns' in the _vimrc failed miserably |
| (could hang Windows 95). (Negri) |
| |
| Win32: The change-drive function was not correct, went to the wrong drive. |
| (Tsindlekht) |
| |
| GUI: When editing a command line in Ex mode, Tabs were sometimes not |
| backspaced properly, and unprintable characters were displayed directly. |
| non-GUI can still be wrong, because a system function is called for this. |
| |
| ":set" didn't stop after an error. For example ":set no ai" gave an error for |
| "no", but still set "ai". Now ":set" stops after the first error. |
| |
| When running configure for ctags, $LDFLAGS wasn't passed to it, causing |
| trouble for IRIX. |
| |
| "@%" and "@#" when file name not set gave an error message. Now they just |
| return an empty string. (Steed) |
| |
| CTRL-X and CTRL-A didn't work correctly with negative hex and octal numbers. |
| (Steed) |
| |
| ":echo" always started with a blank. |
| |
| Updating GUI cursor shape didn't always work (e.g., when blinking is off). |
| |
| In silent Ex mode ("ex -s" or "ex <file") ":s///p" didn't print a line. Also |
| a few other commands that explicitly print a text line didn't work. Made this |
| Vi compatible. |
| |
| Win32 version of _chdrive() didn't return correct value. (Tsindlekht) |
| |
| When using 't' in 'complete' option, no longer give an error message for a |
| missing tags file. |
| |
| Unix: tgoto() can return NULL, which was not handled correctly in configure. |
| |
| When doing ":help" from a buffer where 'binary' is set, also edited the help |
| file in binary mode. Caused extra ^Ms for DOS systems. |
| |
| Cursor position in a file was reset to 1 when closing a window. |
| |
| ":!ls" in Ex mode switched off echo. |
| |
| When doing a double click in window A, while currently in window B, first |
| click would reset double click time, had to click three times to select a |
| word. |
| |
| When using <F11> in mappings, ":mkexrc" produced an exrc file that can't be |
| used in Vi compatible mode. Added setting of 'cpo' to avoid this. Also, add |
| a CTRL-V in front of a '<', to avoid a normal string to be interpreted as a |
| special key name. |
| |
| Gave confusing error message for ":set guifont=-*-lucida-*": first "font is |
| not fixed width", then "Unknown font". |
| |
| Some options were still completely left out, instead of included as hidden |
| options. |
| |
| While running the X11 GUI, ignore SIGHUP signals. Avoids a crash after |
| executing an external command (in rare cases). |
| |
| In os_unixx.h, signal() was defined to sigset(), while it already was. |
| |
| Memory leak when executing autocommands (was reported as a memory leak in |
| syntax highlighting). |
| |
| Didn't print source of error sometimes, because pointers were the same, |
| although names were different. |
| |
| Avoid a number of UMR errors from Purify (third argument to open()). |
| |
| A swap file could still be created just after setting 'updatecount' to zero, |
| when there is an empty buffer and doing ":e file". (Kutschera) |
| |
| Test 35 failed on 64 bit machines. (Schild) |
| |
| With "p" and "P" commands, redrawing was slow. |
| |
| Awk script for html documentation didn't work correctly with AIX awk. |
| Replaced "[ ,.);\] ]" with "[] ,.); ]". (Briscoe) |
| The makehtml.awk script had a small problem, causing extra lines to be |
| inserted. (Briscoe) |
| |
| "gqgq" could not be repeated. Repeating for "gugu" and "gUgU" worked in a |
| wrong way. Also made "gqq" work to be consistent with "guu". |
| |
| C indent was wrong after "case ':':". |
| |
| ":au BufReadPre *.c put": Line from put text was deleted, because the buffer |
| was still assumed to be empty. |
| |
| Text pasted with the Edit/Paste menu was subject to 'textwidth' and |
| 'autoindent'. That was inconsistent with using the mouse to paste. Now "*p |
| is used. |
| |
| When using CTRL-W CTRL-] on a word that's not a tag, and then CTRL-] on a tag, |
| window was split. |
| |
| ":ts" got stuck on a tags line that has two extra fields. |
| |
| In Insert mode, with 'showmode' on, <C-O><C-G> message was directly |
| overwritten by mode message, if preceded with search command warning message. |
| |
| When putting the result of an expression with "=<expr>p, newlines were |
| inserted like ^@ (NUL in the file). Now the string is split up in lines at |
| the newline. |
| |
| putenv() was declared with "const char *" in pty.c, but with "char *" in |
| osdef2.h.in. Made the last one also "const char *". |
| |
| ":help {word}", where +{word} is a feature, jumped to the feature list instead |
| of where the command was explained. E.g., ":help browse", ":help autocmd". |
| |
| Using the "\<xx>" form in an expression only got one byte, even when using a |
| special character that uses several bytes (e.g., "\<F9>"). |
| Changed "\<BS>" to produce CTRL-H instead of the special key code for the |
| backspace key. "\<Del>" produces 0x7f. |
| |
| ":mkvimrc" didn't write a command to set 'compatible' or 'nocompatible'. |
| |
| The shell syntax didn't contain a "syn sync maxlines" setting. In a long file |
| without recognizable items, syncing took so long it looked like Vim hangs. |
| Added a maxlines setting, and made syncing interruptible. |
| |
| The "gs" command didn't flush output before waiting. |
| |
| Memory leaks for: |
| ":if 0 | let a = b . c | endif" |
| "let a = b[c]" |
| ":so {file}" where {file} contains a ":while" |
| |
| GUI: allocated fonts were never released. (Leonard) |
| |
| Makefile.bor: |
| - Changed $(DEFINES) into a list of "-D" options, so that it can also be used |
| for the resource compiler. (not tested!) |
| - "bcc.cfg" was used for all configurations. When building for another |
| configuration, the settings for the previous one would be used. Moved |
| "bcc.cfg" to the object directory. (Geddes) |
| - Included targets for vimrun, install, ctags and xxd. Changed the default to |
| use the Borland DLL Runtime Library, makes Vim.exe a log smaller. (Aaron) |
| |
| "2*" search for the word under the cursor with "2" prepended. (Leonard) |
| |
| When deleting into a specific register, would still overwrite the non-Win32 |
| GUI selection. Now ""x"*P works. |
| |
| When deleting into the "" register, would write to the last used register. |
| Now ""x always writes to the unnamed register. |
| |
| GUI Athena: A submenu with a '.' in it didn't work. E.g., |
| ":amenu Syntax.XY\.Z.foo lll". |
| |
| When first doing ":tag foo" and then ":tnext" and/or ":tselect" the order of |
| matching tags could change, because the current file is different. Now the |
| existing matches are kept in the same order, newly found matches are added |
| after them, not matter what the current file is. |
| |
| ":ta" didn't find the second entry in a tags file, if the second entry was |
| longer than the first one. |
| |
| When using ":set si tw=7" inserting "foo {^P}" made the "}" inserted at the |
| wrong position. can_si was still TRUE when the cursor is not in the indent of |
| the line. |
| |
| Running an external command in Win32 version had the problem that Vim exits |
| when the X on the console is hit (and confirmed). Now use the "vimrun" |
| command to start the external command indirectly. (Negri) |
| |
| Win32 GUI: When running an external filter, do it in a minimized DOS box. |
| (Negri) |
| |
| ":let" listed variables without translation into printable characters. |
| |
| Win32 console: When resizing the window, switching back to the old size |
| (when exiting or executing an external command) sometimes failed. (Negri) |
| This appears to also fix a "non fixable" problem: |
| Win32 console in NT 4.0: When running Vim in a cmd window with a scrollbar, |
| the scrollbar disappeared and was not restored when Vim exits. This does work |
| under NT 3.51, it appears not to be a Vim problem. |
| |
| When executing BufDelete and BufUnload autocommands for a buffer without a |
| name, the name of the current buffer was used for <afile>. |
| |
| When jumping to a tag it reported "tag 1 of >2", while in fact there could be |
| only two matches. Changed to "tag 1 of 2 or more". |
| |
| ":tjump tag" did a linear search in the tags file, which can be slow. |
| |
| Configure didn't find "LibXm.so.2.0", a Xm library with a version number. |
| |
| Win32 GUI: When using a shifted key with ALT, the shift modifier would remain |
| set, even when it was already used by changing the used key. E.g., "<M-S-9>" |
| resulted in "<M-S-(>", but it should be "<M-(>". (Negri) |
| |
| A call to ga_init() was often followed by setting growsize and itemsize. |
| Created ga_init2() for this, which looks better. (Aaron) |
| |
| Function filereadable() could call fopen() with an empty string, which might |
| be illegal. |
| |
| X Windows GUI: When executing an external command that outputs text, could |
| write one character beyond the end of a buffer, which caused a crash. (Kohan) |
| |
| When using "*" or "#" on a string that includes '/' or '?' (when these are |
| included in 'isk'), they were not escaped. (Parmelan) |
| |
| When adding a ToolBar menu in the Motif GUI, the submenu_id field was not |
| cleared, causing random problems. |
| |
| When adding a menu, the check if this menu (or submenu) name already exists |
| didn't compare with the simplified version (no mnemonic or accelerator) of the |
| new menu. Could get two menus with the same name, e.g., "File" and "&File". |
| |
| Breaking a line because of 'textwidth' at the last line in the window caused a |
| redraw of the whole window instead of a scroll. Speeds up normal typing with |
| 'textwidth' a lot for slow terminals. |
| |
| An invalid line number produced an "invalid range" error, even when it wasn't |
| to be executed (inside "if 0"). |
| |
| When the unnamed, first buffer is re-used, the "BufDelete" autocommand was |
| not called. It would stick in a buffer list menu. |
| |
| When doing "%" on the NUL after the line, a "{" or "}" in the last character |
| of the line was not found. |
| |
| The Insert mode menu was not used for the "s" command, the Operator-pending |
| menu was used instead. |
| |
| With 'compatible' set, some syntax highlighting was not correct, because of |
| using "[\t]" for a search pattern. Now use the regexps for syntax |
| highlighting like the 'cpoptions' option is empty (as was documented already). |
| |
| When using "map <M-Space> ms" or "map <Space> sss" the output of ":map" didn't |
| show any lhs for the mapping (if 'isprint' includes 160). Now always use |
| <Space> and <M-Space>, even when they are printable. |
| |
| Adjusted the Syntax menu, so that the lowest entry fits on a small screen (for |
| Athena, where menus don't wrap). |
| |
| When using CTRL-E or CTRL-Y in Insert mode for characters like 'o', 'x' and |
| digits, repeating the insert didn't work. |
| |
| The file "tools/ccfilter.README.txt" could not be unpacked when using short |
| file names, because of the two dots. Renamed it to |
| "tools/ccfilter_README.txt". |
| |
| For a dark 'background', using Blue for Directory and SpecialKey highlight |
| groups is not very readable. Use Cyan instead. |
| |
| In the function uc_scan_attr() in ex_docmd.c there was a goto that jumped into |
| a block with a local variable. That's illegal for some compilers. |
| |
| Win32 GUI: There was a row of pixels at the bottom of the window which was not |
| drawn. (Aaron) |
| |
| Under DOS, editing "filename/" created a swap file of "filename/.swp". Should |
| be "filename/_swp". |
| |
| Win32 GUI: pointer was hidden when executing an external command. |
| |
| When 'so' is 999, "J" near the end of the file didn't redisplay correctly. |
| |
| ":0a" inserted after the first line, instead of before the first line. |
| |
| Unix: Wildcard expansion didn't handle single quotes and {} patterns. Now |
| ":file 'window.c'" removes the quotes and ":e 'main*.c'" works (literal '*'). |
| ":file {o}{n}{e}" now results in file name "one". |
| |
| Memory leak when setting a string option back to its default value. |
| |
| ============================================================================== |
| VERSION 5.3 *version-5.3* |
| |
| Version 5.3 was a bug-fix version of 5.2. There are not many changes. |
| Improvements made between version 5.2 and 5.3: |
| |
| Changed *changed-5.3* |
| ------- |
| |
| Renamed "IDE" menu to "Tools" menu. |
| |
| |
| Added *added-5.3* |
| ----- |
| |
| Win32 GUI: Give a warning when Vim is activated, and one of the files changed |
| since editing started. (Negri) |
| |
| |
| Fixed *fixed-5.3* |
| ----- |
| |
| 5.2.1: Win32 GUI: space for external command was not properly allocated, could |
| cause a crash. (Aaron) This was the reason to bring out 5.3 quickly after |
| 5.2. |
| |
| 5.2.2: Some commands didn't complain when used without an argument, although |
| they need one: ":badd", ":browse", ":call", ":confirm", ":behave", |
| ":delfunction", ":delcommand" and ":tearoff". |
| ":endfunction" outside of a function gave wrong error message: "Command not |
| implemented". Should be ":endfunction not inside a function". |
| |
| 5.2.3: Win32 GUI: When gvim was installed in "Program files", or another path |
| with a space in it, executing external commands with vimrun didn't work. |
| |
| 5.2.4: Pasting with the mouse in Insert mode left the cursor on the last |
| pasted character, instead of behind it. |
| |
| 5.2.5: In Insert mode, cursor after the end of the line, a shift-cursor-left |
| didn't include the last character in the selection. |
| |
| 5.2.6: When deleting text from Insert mode (with "<C-O>D" or the mouse), which |
| includes the last character in the line, the cursor could be left on the last |
| character in the line, instead of just after it. |
| |
| 5.2.7: Win32 GUI: scrollbar was one pixel too big. |
| |
| 5.2.8: Completion of "PopUp" menu showed the derivatives "PopUpc", "PopUPi", |
| etc. ":menu" also showed these. |
| |
| 5.2.9: When using two input() functions on a row, the prompt would not be |
| drawn in column 0. |
| |
| 5.2.10: A loop with input() could not be broken with CTRL-C. |
| |
| 5.2.11: ":call asdf" and ":call asdf(" didn't give an error message. |
| |
| 5.2.12: Recursively using ":normal" crashes Vim after a while. E.g.: |
| ":map gq :normal gq<CR>" |
| |
| 5.2.13: Syntax highlighting used 'iskeyword' from wrong buffer. When using |
| ":help", then "/\k*" in another window with 'hlsearch' set. |
| |
| 5.2.14: When using ":source" from a function, global variables would not be |
| available unless "g:" was used. |
| |
| 5.2.15: XPM files can have the extension ".pm", which is the same as for Perl |
| modules. Added "syntax/pmfile.vim" to handle this. |
| |
| 5.2.16: On Win32 and Amiga, "echo expand("%:p:h")" removed one dirname in an |
| empty buffer. mch_Fullname() didn't append a slash at the end of a directory |
| name. |
| |
| Should include the character under the cursor in the Visual area when using |
| 'selection' "exclusive". This wasn't done for "%", "e", "E", "t" and "f". |
| |
| ""p would always put register 0, instead of the unnamed (last used) register. |
| Reverse the change that ""x doesn't write in the unnamed (last used) register. |
| It would always write in register 0, which isn't very useful. Use "-x for the |
| paste mappings in Visual mode. |
| |
| When there is one long line on the screen, and 'showcmd' is off, "0$" didn't |
| redraw the screen. |
| |
| Win32 GUI: When using 'mousehide', the pointer would flicker when the cursor |
| shape is changed. (Negri) |
| |
| When cancelling Visual mode, and the cursor moves to the start, the wanted |
| column wasn't set, "k" or "j" moved to the wrong column. |
| |
| When using ":browse" or ":confirm", was checking for a comment and separating |
| bar, which can break some commands. |
| |
| Included fixes for Macintosh. (Kielhorn) |
| |
| ============================================================================== |
| VERSION 5.4 *version-5.4* |
| |
| Version 5.4 adds new features, useful changes and a lot of bug fixes. |
| |
| |
| Runtime directory introduced *new-runtime-dir* |
| ---------------------------- |
| |
| The distributed runtime files are now in $VIMRUNTIME, the user files in $VIM. |
| You normally don't set $VIMRUNTIME but let Vim find it, by using |
| $VIM/vim{version}, or use $VIM when that doesn't exist. This allows for |
| separating the user files from the distributed files and makes it more easy to |
| upgrade to another version. It also makes it possible to keep two versions of |
| Vim around, each with their own runtime files. |
| |
| In the Unix distribution the runtime files have been moved to the "runtime" |
| directory. This makes it possible to copy all the runtime files at once, |
| without the need to know what needs to be copied. |
| |
| The archives for DOS, Windows, Amiga and OS/2 now have an extra top-level |
| "vim" directory. This is to make clear that user-modified files should be put |
| here. The directory that contains the executables doesn't have '-' or '.' |
| characters. This avoids strange extensions. |
| |
| The $VIM and $VIMRUNTIME variables are set when they are first used. This |
| allows them to be used by Perl, for example. |
| |
| The runtime files are also found in a directory called "$VIM/runtime". This |
| helps when running Vim after just unpacking the runtime archive. When using |
| an executable in the "src" directory, Vim checks if "vim54" or "runtime" can |
| be added after removing it. This make the runtime files be found just after |
| compiling. |
| |
| A default for $VIMRUNTIME can be given in the Unix Makefile. This is useful |
| if $VIM doesn't point to above the runtime directory but to e.g., "/etc/". |
| |
| |
| Filetype introduced *new-filetype-5.4* |
| ------------------- |
| |
| Syntax files are now loaded with the new FileType autocommand. Old |
| "mysyntaxfile" files will no longer work. |filetypes| |
| |
| The scripts for loading syntax highlighting have been changed to use the |
| new Syntax autocommand event. |
| |
| This combination of Filetype and Syntax events allows tuning the syntax |
| highlighting a bit more, also when selected from the Syntax menu. The |
| FileType autocommand can also be used to set options and mappings specifically |
| for that type of file. |
| |
| The "$VIMRUNTIME/filetype.vim" file is not loaded automatically. The |
| ":filetype on" command has been added for this. ":syntax on" also loads it. |
| |
| The 'filetype' option has been added. It is used to trigger the FileType |
| autocommand event, like the 'syntax' option does for the Syntax event. |
| |
| ":set syntax=OFF" and ":set syntax=ON" can be used (in a modeline) to switch |
| syntax highlighting on/off for the current file. |
| |
| The Syntax menu commands have been moved to $VIMRUNTIME/menu.vim. The Syntax |
| menu is included both when ":filetype on" and when ":syntax manual" is used. |
| |
| Renamed the old 'filetype' option to 'osfiletype'. It was only used for |
| RISCOS. 'filetype' is now used for the common file type. |
| |
| Added the ":syntax manual" command. Allows manual selection of the syntax to |
| be used, e.g., from a modeline. |
| |
| |
| Vim script line continuation *new-line-continuation* |
| ---------------------------- |
| |
| When an Ex line starts with a backslash, it is concatenated to the previous |
| line. This avoids the need for long lines. |line-continuation| (Roemer) |
| Example: > |
| if has("dialog_con") || |
| \ has("dialog_gui") |
| :let result = confirm("Enter your choice", |
| \ "&Yes\n&No\n&Maybe", |
| \ 2) |
| endif |
| |
| |
| Improved session files *improved-sessions* |
| ---------------------- |
| |
| New words for 'sessionoptions': |
| - "help" Restore the help window. |
| - "blank" Restore empty windows. |
| - "winpos" Restore the Vim window position. Uses the new ":winpos" |
| command |
| - "buffers" Restore hidden and unloaded buffers. Without it only the |
| buffers in windows are restored. |
| - "slash" Replace backward by forward slashes in file names. |
| - "globals" Store global variables. |
| - "unix" Use unix file format (<NL> instead of <CR><NL>) |
| |
| The ":mksession" and 'sessionoptions' are now in the +mksession feature. |
| |
| The top line of the window is also restored when using a session file. |
| |
| ":mksession" and ":mkvimrc" don't store 'fileformat', it should be detected |
| when loading a file. |
| |
| (Most of this was done by Vince Negri and Robert Webb) |
| |
| |
| Autocommands improved *improved-autocmds-5.4* |
| --------------------- |
| |
| New events: |
| |FileType| When the file type has been detected. |
| |FocusGained| When Vim got input focus. (Negri) |
| |FocusLost| When Vim lost input focus. (Negri) |
| |BufCreate| Called just after a new buffer has been created or has been |
| renamed. (Madsen) |
| |CursorHold| Triggered when no key has been typed for 'updatetime'. Can be |
| used to do something with the word under the cursor. (Negri) |
| Implemented CursorHold autocommand event for Unix. (Zellner) |
| Also for Amiga and MS-DOS. |
| |GUIEnter| Can be used to do something with the GUI window after it has |
| been created (e.g., a ":winpos 100 50"). |
| |BufHidden| When a buffer becomes hidden. Used to delete the |
| option-window when it becomes hidden. |
| |
| Also trigger |BufDelete| just before a buffer is going to be renamed. (Madsen) |
| |
| The "<amatch>" pattern can be used like "<afile>" for autocommands, except |
| that it is the matching value for the FileType and Syntax events. |
| |
| When ":let @/ = <string>" is used in an autocommand, this last search pattern |
| will be used after the autocommand finishes. |
| |
| Made loading autocommands a bit faster. Avoid doing strlen() on each exiting |
| pattern for each new pattern by remembering the length. |
| |
| |
| Encryption *new-encryption* |
| ---------- |
| |
| Files can be encrypted when writing and decrypted when reading. Added the |
| 'key' option, "-x" command line argument and ":X" command. |encryption| (based |
| on patch from Mohsin Ahmed) |
| |
| When reading a file, there is an automatic detection whether it has been |
| crypted. Vim will then prompt for the key. |
| |
| Note that the encryption method is not compatible with Vi. The encryption is |
| not unbreakable. This allows it to be exported from the US. |
| |
| |
| GTK GUI port *new-GTK-GUI* |
| ------------ |
| |
| New GUI port for GTK+. Includes a toolbar, menu tearoffs, etc. |gui-gtk| |
| Added the |:helpfind| command. (Kahn and Dalecki) |
| |
| |
| Menu changes *menu-changes-5.4* |
| ------------ |
| |
| Menus can now also be used in the console. It is enabled by the new |
| 'wildmenu' option. This shows matches for command-line completion like a |
| menu. This works as a minimal file browser. |
| |
| The new |:emenu| command can be used to execute a menu item. |
| |
| Uses the last status line to list items, or inserts a line just above the |
| command line. (Negri) |
| |
| The 'wildcharx' option can be used to trigger 'wildmenu' completion from a |
| mapping. |
| |
| When compiled without menus, this can be detected with has("menu"). Also show |
| this in the ":version" output. Allow compiling GUI versions without menu |
| support. Only include toolbar support when there is menu support. |
| |
| Moved the "Window" menu all the way to the right (priority 70). Looks more |
| familiar for people working with MS-Windows, shouldn't matter for others. |
| |
| Included "Buffers" menu. Works with existing autocommands and functions. It |
| can be disabled by setting the "no_buffers_menu" variable. (Aaron and Madsen) |
| |
| Win32 supports separators in a menu: "-.*-". (Geddes) |
| Menu separators for Motif now work too. |
| |
| Made Popup menu for Motif GUI work. (Madsen) |
| |
| 'M' flag in 'guioptions': Don't source the system menu. |
| |
| All the menu code has been moved from gui.c to menu.c. |
| |
| |
| Viminfo improved *improved-viminfo* |
| ---------------- |
| |
| New flags for 'viminfo': |
| '!' Store global variables in the viminfo file if they are in uppercase |
| letters. (Negri) |
| 'h' Do ":nohlsearch" when loading a viminfo file. |
| |
| Store search patterns in the viminfo file with their offset, magic, etc. Also |
| store the flag whether 'hlsearch' highlighting is on or off (which is not used |
| if the 'h' flag is in 'viminfo'). |
| |
| Give an error message when setting 'viminfo' without commas. |
| |
| |
| Various new commands *new-commands-5.4* |
| -------------------- |
| |
| Operator |g?|: rot13 encoding. (Negri) |
| |
| |zH| and |zL| commands: Horizontal scrolling by half a page. |
| |gm| move cursor to middle of screen line. (Ideas by Campbell) |
| |
| Operations on Visual blocks: |v_b_I|, |v_b_A|, |v_b_c|, |v_b_C|, |v_b_r|, |
| |v_b_<| and |v_b_>|. (Kelly) |
| |
| New command: CTRL-\ CTRL-N, which does nothing in Normal mode, and goes to |
| Normal mode when in Insert or Command-line mode. Can be used by VisVim or |
| other OLE programs to make sure Vim is in Normal mode, without causing a beep. |
| |CTRL-\_CTRL-N| |
| |
| ":cscope kill" command to use the connection filename. |:cscope| (Kahn) |
| |
| |:startinsert| command: Start Insert mode next. |
| |
| |:history| command, to show all four types of histories. (Roemer) |
| |
| |[m|, |[M|, |]m| and |]M| commands, for jumping backward/forward to start/end |
| of method in a (Java) class. |
| |
| ":@*" executes the * register. |:@| (Acevedo) |
| |
| |go| and |:goto| commands: Jump to byte offset in the file. |
| |
| |gR| and |gr| command: Virtual Replace mode. Replace characters without |
| changing the layout. (Webb) |
| |
| ":cd -" changes to the directory from before the previous ":cd" command. |
| |:cd-| (Webb) |
| |
| Tag preview commands |:ptag|. Shows the result of a ":tag" in a dedicated |
| window. Can be used to see the context of the tag (e.g., function arguments). |
| (Negri) |
| |:pclose| command, and CTRL-W CTRL-Z: Close preview window. (Moore) |
| 'previewheight' option, height for the preview window. |
| Also |:ppop|, |:ptnext|, |:ptprevious|, |:ptNext|, |:ptrewind|, |:ptlast|. |
| |
| |:find| and |:sfind| commands: Find a file in 'path', (split window) and edit |
| it. |
| |
| The |:options| command opens an option window that shows the current option |
| values. Or use ":browse set" to open it. Options are grouped by function. |
| Offers short help on each option. Hit <CR> to jump to more help. Edit the |
| option value and hit <CR> on a "set" line to set a new value. |
| |
| |
| Various new options *new-options-5.4* |
| ------------------- |
| |
| Scroll-binding: 'scrollbind' and 'scrollopt' options. Added |:syncbind| |
| command. Makes windows scroll the same amount (horizontally and/or |
| vertically). (Ralston) |
| |
| 'conskey' option for MS-DOS. Use direct console I/O. This should work with |
| telnet (untested!). |
| |
| 'statusline' option: Configurable contents of the status line. Also allows |
| showing the byte offset in the file. Highlighting with %1* to %9*, using the |
| new highlight groups User1 to User9. (Madsen) |
| |
| 'rulerformat' option: Configurable contents of the ruler, like 'statusline'. |
| (Madsen) |
| |
| 'write' option: When off, writing files is not allowed. Avoids overwriting a |
| file even with ":w!". The |-m| command line option resets 'write'. |
| |
| 'clipboard' option: How the clipboard is used. Value "unnamed": Use unnamed |
| register like "*. (Cortopassi) Value "autoselect": Like what 'a' in |
| 'guioptions' does but works in the terminal. |
| |
| 'guifontset' option: Specify fonts for the +fontset feature, for the X11 GUI |
| versions. Allows using normal fonts when vim is compiled with this feature. |
| (Nam) |
| |
| 'guiheadroom' option: How much room to allow above/below the GUI window. |
| Used for Motif, Athena and GTK. |
| |
| Implemented 'tagstack' option: When off, pushing tags onto the stack is |
| disabled (Vi compatible). Useful for mappings. |
| |
| 'shellslash' option. Only for systems that use a backslash as a file |
| separator. This option will use a forward slash in file names when expanding |
| it. Useful when 'shell' is sh or csh. |
| |
| 'pastetoggle' option: Key sequence that toggles 'paste'. Works around the |
| problem that mappings don't work in Insert mode when 'paste' is set. |
| |
| 'display' option: When set to "lastline", the last line fills the window, |
| instead of being replaced with "@" lines. Only the last three characters are |
| replaced with "@@@", to indicate that the line has not finished yet. |
| |
| 'switchbuf' option: Allows re-using existing windows on a buffer that is being |
| jumped to, or split the window to open a new buffer. (Roemer) |
| |
| 'titleold' option. Replaces the fixed string "Thanks for flying Vim", which |
| is used to set the title when exiting. (Schild) |
| |
| |
| Vim scripts *new-script-5.4* |
| ----------- |
| |
| The |exists()| function can also check for existence of a function. (Roemer) |
| An internal function is now found with a binary search, should be a bit |
| faster. (Roemer) |
| |
| New functions: |
| - |getwinposx()| and |getwinposy()|: get Vim window position. (Webb) |
| - |histnr()|, |histadd()|, |histget()| and |histdel()|: Make history |
| available. (Roemer) |
| - |maparg()|: Returns rhs of a mapping. Based on a patch from Vikas. |
| - |mapcheck()|: Check if a map name matches with an existing one. |
| - |visualmode()|: Return type of last Visual mode. (Webb) |
| - |libcall()|: Call a function in a library. Currently only for Win32. (Negri) |
| - |bufwinnr()|: find window that contains the specified buffer. (Roemer) |
| - |bufloaded()|: Whether a buffer exists and is loaded. |
| - |localtime()| and |getftime()|: wall clock time and last modification time |
| of a file (Webb) |
| - |glob()|: expand file name wildcards only. |
| - |system()|: get the raw output of an external command. (based on a patch |
| from Aaron). |
| - |strtrans()|: Translate String into printable characters. Used for |
| 2html.vim script. |
| - |append()|: easy way to append a line of text in a buffer. |
| |
| Changed functions: |
| - Optional argument to |strftime()| to give the time in seconds. (Webb) |
| - |expand()| now also returns names for files that don't exist. |
| |
| Allow numbers in the name of a user command. (Webb) |
| |
| Use "v:" for internal Vim variables: "v:errmsg", "v:shell_error", etc. The |
| ones from version 5.3 can be used without "v:" too, for backwards |
| compatibility. |
| |
| New variables: |
| "v:warningmsg" and "v:statusmsg" internal variables. Contain the last given |
| warning and status message. |v:warningmsg| |v:statusmsg| (Madsen) |
| "v:count1" variable: like "v:count", but defaults to one when no count is |
| used. |v:count1| |
| |
| When compiling without expression evaluation, "if 1" can be used around the |
| not supported commands to avoid it being executed. Works like in Vim 4.x. |
| Some of the runtime scripts gave errors when used with a Vim that was compiled |
| with minimal features. Now "if 1" is used around code that is not always |
| supported. |
| |
| When evaluating an expression with && and ||, skip the parts that will not |
| influence the outcome. This makes it faster and avoids error messages. (Webb) |
| Also optimized the skipping of expressions inside an "if 0". |
| |
| |
| Avoid hit-enter prompt *avoid-hit-enter* |
| ----------------------- |
| |
| Added 'T' flag to 'shortmess': Truncate all messages that would cause the |
| hit-enter prompt (unless that would happen anyway). |
| The 'O' flag in 'shortmess' now also applies to quickfix messages, e.g., from |
| the ":cn" command. |
| |
| The default for 'shortmess' is now "filnxtToO", to make most messages fit on |
| the command line, and not cause the hit-enter prompt. |
| |
| Previous messages can be viewed with the new |:messages| command. |
| |
| Some messages are shown fully, even when 'shortmess' tells to shorten |
| messages, because the user is expected to want to see them in full: CTRL-G and |
| some quickfix commands. |
| |
| |
| Improved quickfix *improved-quickfix* |
| ----------------- |
| |
| Parse change-directory lines for gmake: "make[1]: Entering directory 'name'". |
| Uses "%D" and "%X" in 'errorformat'. |
| Also parse "Making {target} in {dir}" messages from make. Helps when not |
| using GNU make. (Schandl) |
| |
| Use 'isfname' for "%f" in 'errorformat'. |
| |
| Parsing of multi-line messages. |errorformat-multi-line| |
| |
| Allow a range for the |:clist| command. (Roemer) |
| |
| Support for "global" file names, for error formats that output the file name |
| once for several errors. (Roemer) |
| |
| |:cnfile| jumps to first error in next file. |
| |
| "$*" in 'makeprg' is replaced by arguments to ":make". (Roemer) |
| |
| |
| Regular expressions *regexp-changes-5.4* |
| ------------------- |
| |
| In a regexp, a '$' before "\)" is also considered to be an end-of-line. |/$| |
| In patterns "^" after "\|" or "\(" is a start-of-line. |/^| (Robinson) |
| |
| In a regexp, in front of "\)" and "\|" both "$" and "\$" were considered |
| end-of-line. Now use "$" as end-of-line and "\$" for a literal dollar. Same |
| for '^' after "\(" and "\|". |/\$| |/\^| |
| |
| Some search patterns can be extremely slow, even though they are not really |
| illegal. For example: "\([^a-z]\+\)\+Q". Allow interrupting any regexp |
| search with CTRL-C. |
| |
| Register "/: last search string (read-only). (Kohan) Changed to use last used |
| search pattern (like what 'hlsearch' uses). Can set the search pattern with |
| ":let @/ = {expr}". |
| |
| Added character classes to search patterns, to avoid the need for removing the |
| 'l' flag from 'cpoptions': |[:tab:]|, |[:return:]|, |[:backspace:]| and |
| |[:escape:]|. |
| |
| By adding a '?' after a comparative operator in an expression, the comparison |
| is done by ignoring case. |expr-==?| |
| |
| |
| Other improvements made between version 5.3 and 5.4 |
| --------------------------------------------------- |
| |
| Changed *changed-5.4* |
| ------- |
| |
| Unix: Use $TMPDIR for temporary files, if it is set and exists. |
| |
| Removed "Empty buffer" message. It isn't useful and can cause a hit-enter |
| prompt. (Negri) |
| |
| "ex -" now reads commands from stdin and works in silent mode. This is to be |
| compatible with the original "ex" command that is used for scripts. |
| |
| Default range for ":tcldo" is the whole file. |
| |
| Cancelling Visual mode with ESC moved the cursor. There appears to be no |
| reason for this. Now leave the cursor where it is. |
| |
| The ":grep" and ":make" commands see " as part of the arguments, instead of |
| the start of a comment. |
| |
| In expressions the "=~" and "!~" operators no longer are affected by |
| 'ignorecase'. |
| |
| Renamed vimrc_example to vimrc_example.vim and gvimrc_example to |
| gvimrc_example.vim. Makes them being recognized as vim scripts. |
| |
| "gd" no longer starts searching at the end of the previous function, but at |
| the first blank line above the start of the current function. Avoids that |
| using "gd" in the first function finds global a variable. |
| |
| Default for 'complete' changed from ".,b" to ".,w,b,u,t,i". Many more matches |
| will be found, at the cost of time (the search can be interrupted). |
| |
| It is no longer possible to set 'shell*' options from a modeline. Previously |
| only a warning message was given. This reduces security risks. |
| |
| The ordering of the index of documentation files was changed to make it more |
| easy to find a subject. |
| |
| On MS-DOS and win32, when $VIM was not set, $HOME was used. This caused |
| trouble if $HOME was set to e.g., "C:\" for some other tool, the runtime files |
| would not be found. Now use $HOME only for _vimrc, _gvimrc, etc., not to find |
| the runtime file. |
| |
| When 'tags' is "./{fname}" and there is no file name for the current buffer, |
| just use it. Previously it was skipped, causing "vim -t {tag}" not to find |
| many tags. |
| |
| When trying to select text in the 'scrolloff' area by mouse dragging, the |
| resulting scrolling made this difficult. Now 'scrolloff' is temporarily set |
| to 0 or 1 to avoid this. But still allow scrolling in the top line to extend |
| to above the displayed text. |
| |
| Default for 'comments' now includes "sl:/*,mb: *,ex:*/", to make javadoc |
| comments work. Also helps for C comments that start with "/*******". |
| |
| CTRL-X CTRL-] Insert mode tag expansion tried to expand to all tags when used |
| after a non-ID character, which can take a very long time. Now limit this to |
| 200 matches. Also used for command-line tag completion. |
| |
| The OS/2 distribution has been split in two files. It was too big to fit on a |
| floppy. The same runtime archive as for the PC is now used. |
| |
| In the documentation, items like <a-z> have been replaced with {a-z} for |
| non-optional arguments. This avoids confusion with key names: <C-Z> is a |
| CTRL-Z, not a character between C and Z, that is {C-Z}. |
| |
| |
| Added *added-5.4* |
| ----- |
| |
| Color support for the iris-ansi builtin termcap entry. (Tubman) |
| |
| Included VisVim version 1.3a. (Erhardt) |
| |
| Win32 port for SNiFF+ interface. (Leherbauer) |
| Documentation file for sniff interface: if_sniff.txt. (Leherbauer) |
| |
| Included the "SendToVim" and "OpenWithVim" programs in the OleVim directory. |
| To be used with the OLE version of gvim under MS-Windows. (Schaller) |
| |
| Included Exuberant Ctags version 3.2.4 with Eiffel support. (Hiebert) |
| |
| When a file that is being edited is deleted, give a warning (like when the |
| time stamp changed). |
| |
| Included newer versions of the HTML-generating Awk and Perl scripts. (Colombo) |
| |
| Linux console mouse support through "gpm". (Tsindlekht) |
| |
| Security fix: Disallow changing 'secure' and 'exrc' from a modeline. When |
| 'secure' is set, give a warning for changing options that contain a program |
| name. |
| |
| Made the Perl interface work with Perl 5.005 and threads. (Verdoolaege) |
| |
| When giving an error message for an ambiguous mapping, include the offending |
| mapping. (Roemer) |
| |
| Command line editing: |
| - Command line completion of mappings. (Roemer) |
| - Command line completion for ":function", ":delfunction", ":let", ":call", |
| ":if", etc. (Roemer) |
| - When using CTRL-D completion for user commands that have |
| "-complete=tag_listfiles" also list the file names. (Madsen) |
| - Complete the arguments of the ":command" command. (Webb) |
| - CTRL-R . in command line inserts last inserted text. CTRL-F, CTRL-P, CTRL-W |
| and CTRL-A after CTRL-R are used to insert an object from under the cursor. |
| (Madsen) |
| |
| Made the text in uganda.txt about copying Vim a bit more clear. |
| |
| Updated the Vim tutor. Added the "vimtutor" command, which copies the tutor |
| and starts Vim on it. "make install" now also copies the tutor. |
| |
| In the output of ":clist" the current entry is highlighted, with the 'i' |
| highlighting (same as used for 'incsearch'). |
| |
| For the ":clist" command, you can scroll backwards with "b" (one screenful), |
| "u" (half a screenful) and "k" (one line). |
| |
| Multi-byte support: |
| - X-input method for multi-byte characters. And various fixes for multi-byte |
| support. (Nam) |
| - Hangul input method feature: |hangul|. (Nam) |
| - Cleaned up configuration of multi-byte support, XIM, fontset and Hangul |
| input. Each is now configurable separately. |
| - Changed check for GTK_KEYBOARD to HANGUL_KEYBOARD_TYPE. (Nam) |
| - Added doc/hangulin.txt: Documentation for the Hangul input code. (Nam) |
| - XIM support for GTK+. (Nam) |
| - First attempt to include support for SJIS encoding. (Nagano) |
| - When a double-byte character doesn't fit at the end of the line, put a "~" |
| there and print it on the next line. |
| - Optimize output of multi-byte text. (Park) |
| - Win32 IME: preedit style is like over-the-spot. (Nagano) |
| - Win32 IME: IME mode change now done with ImmSetOpenStatus. (Nagano) |
| - GUI Athena: file selection dialog can display multi-byte characters. |
| (Nagano) |
| - Selection reply for XA_TEXT as XA_STRING. (Nagano) |
| |
| "runtime/macros/diffwin.vim". Mappings to make a diff window. (Campbell) |
| |
| Added ".obj" to the 'suffixes' option. |
| |
| Reduced size of syntax/synload.vim by using the ":SynAu" user command. |
| Automated numbering of Syntax menu entries in menu.vim. |
| In the Syntax menu, insert separators between syntax names that start with |
| a different letter. (Geddes) |
| |
| Xterm: |
| - Clipboard support when using the mouse in an xterm. (Madsen) |
| - When using the xterm mouse, track dragging of the mouse. Use xterm escape |
| sequences when possible. It is more precise than other methods, but |
| requires a fairly recent xterm version. It is enabled with "xterm2" in |
| 'ttymouse'. (Madsen) |
| - Check xterm patch level, to set the value of 'ttymouse'. Has only been |
| added to xterm recently (patch level > 95). Uses the new 't_RV' termcap |
| option. Set 'ttymouse' to "xterm2" when a correct response is recognized. |
| Will make xterm mouse dragging work better. |
| - Support for shifted function keys on xterm. Changed codes for shifted |
| cursor keys to what the xterm actually produces. Added codes for shifted |
| <End> and <Home>. |
| - Added 't_WP' to set the window position in pixels and 't_WS' to set the |
| window size in characters. Xterm can now move (used for ":winpos") and |
| resize (use for ":set lines=" and ":set columns="). |
| |
| X11: |
| - When in Visual mode but not owning the selection, display the Visual area |
| with the VisualNOS group to show this. (Madsen) |
| - Support for requesting the type of clipboard support. Used for AIX and |
| dtterm. (Wittig) |
| - Support compound_text selection (even when compiled without multi-byte). |
| |
| Swap file: |
| - New variation for naming swap files: Replace path separators into %, place |
| all swap files in one directory. Used when a name in 'dir' ends in two path |
| separators. (Madsen) |
| - When a swap file is found, show whether it contains modifications or not in |
| the informative message. (Madsen) |
| - When dialogs are supported, use a dialog to ask the user what to do when a |
| swapfile already exists. |
| |
| "popup_setpos" in 'mousemodel' option. Allows for moving the cursor when |
| using the right mouse button. |
| |
| When a buffer is deleted, the selection for which buffer to display instead |
| now uses the most recent entry from the jump list. (Madsen) |
| |
| When using CTRL-O/CTRL-I, skip deleted buffers. |
| |
| A percentage is shown in the ruler, when there is room. |
| |
| Used autoconf 1.13 to generate configure. |
| |
| Included get_lisp_indent() from Dirk van Deun. Does better Lisp indenting |
| when 'p' flag in 'cpoptions' is not included. |
| |
| Made the 2html.vim script quite a bit faster. (based on ideas from Geddes) |
| |
| Unix: |
| - Included the name of the user that compiled Vim and the system name it was |
| compiled on in the version message. |
| - "make install" now also installs the "tools" directory. Makes them |
| available for everybody. |
| - "make check" now does the same as "make test". "make test" checks for |
| Visual block mode shift, insert, replace and change. |
| - Speed up comparing a file name with existing buffers by storing the |
| device/inode number with the buffer. |
| - Added configure arguments "--disable-gtk", "--disable-motif" and |
| "--disable-athena", to be able to disable a specific GUI (when it doesn't |
| work). |
| - Renamed the configure arguments for disabling the check for specific GUIs. |
| Should be clearer now. (Kahn) |
| - On a Digital Unix system ("OSF1") check for the curses library before |
| termlib and termcap. (Schild) |
| - "make uninstall_runtime" will only delete the version-specific files. Can |
| be used to delete the runtime files of a previous version. |
| |
| Macintosh: (St-Amant) |
| - Dragging the scrollbar, like it's done for the Win32 GUI. Moved common code |
| from gui_w32.c to gui.c |
| - Added dialogs and file browsing. |
| - Resource fork preserved, warning when it will be lost. |
| - Copy original file attributes to newly written file. |
| - Set title/notitle bug solved. |
| - Filename completion improved. |
| - Grow box limit resize to a char by char size. |
| - Use of rgb.txt for more colors (but give back bad color). |
| - Apple menu works (beside the about...). |
| - Internal border now vim compliant. |
| - Removing a menu doesn't crash anymore. |
| - Weak-linking of Python 1.5.1 (only on PPC). Python is supported when the |
| library is available. |
| - If an error is encountered when sourcing the users .vimrc, the alert box now |
| shows right away with the OK button defaulted. There's no more "Delete"-key |
| sign at the start of each line |
| - Better management of environment variables. Now $VIM is calculated only |
| once, not regenerated every time it is used. |
| - No more CPU hog when in background. |
| - In a sourced Vim script the Mac file format can be recognized, just like DOS |
| file format is. |
| |
| When both "unix" and "mac" are present in 'fileformats', prefer "mac" format |
| when there are more CR than NL characters. |
| When using "mac" fileformat, use CR instead of a NL, because NL is used for |
| NUL. Will preserve all characters in a file. (Madsen) |
| |
| The DOS install.exe now contains checks for an existing installation. It |
| avoids setting $VIM and $PATH again. |
| The install program for Dos/Windows can now install Vim in the popup menu, by |
| adding two registry keys. |
| |
| Port to EGCS/mingw32. New Makefile.ming. (Aaron) |
| |
| DOS 16 bit: Don't include cursor shape stuff. Save some bytes. |
| |
| TCL support to Makefile.w32. (Duperval) |
| |
| OS/2: Use argv[0] to find runtime files. |
| |
| When using "gf" to go to a buffer that has already been used, jump to the |
| line where the cursor last was. |
| |
| Colored the output of ":tselect" a bit more. Different highlighting between |
| tag name and file name. Highlight field name ("struct:") separately from |
| argument. |
| |
| Backtick expansion for non-Unix systems. Based on a patch from Aaron. |
| Allows the use of things like ":n `grep -l test *.c`" and |
| "echo expand('`ls m*`')". |
| |
| Check for the 'complete' option when it is set. (Acevedo) |
| 'd' flag in 'complete' searches for defined names or macros. |
| While searching for Insert mode completions in include files and tags files, |
| check for typeahead, so that you can use matches early. (Webb) |
| The '.' flag in 'complete' now scans the current buffer completely, ignoring |
| 'nowrapscan'. (Webb) |
| |
| Added '~' flag to 'whichwrap'. (Acevedo) |
| |
| When ending the Visual mode (e.g., with ESC) don't grab ownership of the |
| selection. |
| |
| In a color terminal, "fg" and "bg" can be used as color names. They stand for |
| the "Normal" colors. |
| |
| A few cscope cleanups. (Kahn) |
| |
| Included changed vimspell.sh from Schemenauer. |
| |
| Concatenation of strings in an expression with "." is a bit faster. (Roemer) |
| |
| The ":redir" command can now redirect to a register: ":redir @r". (Roemer) |
| |
| Made the output of ":marks" and ":jumps" look similar. When the mark is in |
| the current file, show the text at the mark. Also for ":tags". |
| |
| When configure finds ftello() and fseeko(), they are used in tag.c (for when |
| you have extremely big tags files). |
| |
| Configure check for "-FOlimit,2000" argument for the compiler. (Borsenkow) |
| |
| GUI: |
| - When using ":gui" in a non-GUI Vim, give a clear error message. |
| - "gvim -v" doesn't start the GUI (if console support is present). |
| - When in Ex mode, use non-Visual selection for the whole screen. |
| - When starting with "gvim -f" and using ":gui" in the .gvimrc file, Vim |
| forked anyway. Now the "-f" flag is remembered for ":gui". Added "gui -b" |
| to run gvim in the background anyway. |
| |
| Motif GUI: |
| - Check for "-lXp" library in configure (but it doesn't work yet...). |
| - Let configure check for Lesstif in "/usr/local/Lesstif/Motif*". Changed the |
| order to let a local Motif version override a system standard version. |
| |
| Win32 GUI: |
| - When using "-register" or "-unregister" in the non-OLE version, give an |
| error message. |
| - Use GTK toolbar icons. Make window border look better. Use sizing handles |
| on the lower left&right corners of the window. (Negri) |
| - When starting an external command with ":!start" and the command can not be |
| executed, give an error message. (Webb) |
| - Use sizing handles for the grey rectangles below the scrollbars. Can draw |
| toolbar in flat mode now, looks better. (Negri) |
| - Preparations for MS-Windows 3.1 addition. Mostly changing WIN32 to MSWIN |
| and USE_GUI_WIN32 to USE_GUI_MSWIN. (Negri) |
| |
| Avoid allocating the same string four times in buflist_findpat(). (Williams) |
| |
| Set title and icon text with termcap options 't_ts', 't_fs', 't_IS' and |
| 't_IE'. Allows doing this on any terminal that supports setting the title |
| and/or icon text. (Schild) |
| |
| New 'x' flag in 'comments': Automatically insert the end part when its last |
| character is typed. Helps to close a /* */ comment in C. (Webb) |
| |
| When expand() has a second argument which is non-zero, don't use 'suffixes' |
| and 'wildignore', return all matches. |
| |
| 'O' flag in 'cpoptions: When not included, Vim will not overwrite a file, if |
| it didn't exist when editing started but it does exist when the buffer is |
| written to the file. The file must have been created outside of Vim, possibly |
| without the user knowing it. When this is detected after a shell command, |
| give a warning message. |
| |
| When editing a new file, CTRL-G will show [New file]. When there were errors |
| while reading the file, CTRL-G will show [Read errors]. |
| |
| ":wall" can now use a dialog and file-browsing when needed. |
| |
| Grouped functionality into new features, mainly to reduce the size of the |
| minimal version: |
| +linebreak: 'showbreak', 'breakat' and 'linebreak' |
| +visualextra: "I"nsert and "A"ppend in Visual block mode, "c"hange all lines |
| in a block, ">" and "<": Shifting a block, "r": Replacing a |
| Visual area with one character. |
| +comments: 'comments' |
| +cmdline_info: 'ruler' and 'showcmd'. Replaces +showcmd. |
| "+title" Don't add code to set title or icon for MSDOS, this was not |
| possible anyway. |
| +cmdline_compl Disable commandline completion at compile time, except for |
| files, directories and help items. |
| |
| Moved features from a list of function calls into an array. Should save a bit |
| of space. |
| |
| While entering the body of a function, adjust indent according to "if" and |
| "while" commands. |
| |
| VMS: Adjusted os_vms.mms a bit according to suggestions from Arpadffy. |
| |
| The flags in the 'comments' option can now include an offset. This makes it |
| possible to align "/*****", "/* xxx" and "/*" comments with the same |
| 'comments' setting. The default value for 'comments' uses this. |
| Added 'O' flag: Don't use this part for the "O" command. Useful for "set |
| com=sO:*\ -,mO:*\ \ ,exO:*/" |
| |
| FileType autocommands recognize ".bak", ".orig" and "~" extensions and remove |
| them to find the relevant extension. |
| |
| The tutorial for writing a Vim script file has been extended. |
| |
| Some more highlighting in help files, for items that are not typed literally. |
| |
| Can use "CTRL-W CTRL-G" like "CTRL-W g". |
| |
| "make test" for OS/2. |
| |
| Adjusted configure to automatically use the GUI for BeOS. |
| |
| |
| Fixed *fixed-5.4* |
| ----- |
| |
| 5.3.1: When using an autocommand for BufWritePre that changes the name of the |
| buffer, freed memory would be used. (Geddes) |
| |
| Mac: Compiler didn't understand start of skip_class_name(). |
| |
| Win32 GUI: |
| - When cancelling the font requester, don't give an error message. |
| - When a tearoff-menu is open and its menu is deleted, Vim could crash. |
| (Negri) |
| - There was a problem on Windows 95 with (un)maximizing the window. |
| (Williams) |
| - when 'mousehide' is set, the mouse would stay hidden when a menu is dropped |
| with the keyboard. (Ralston) |
| - The tempname() function already created the file. Caused problems when |
| using ":w". Now the file is deleted. |
| - Cursor disappeared when ending up in the top-left character on the screen |
| after scrolling. (Webb) |
| - When adding a submenu for a torn-off menu, it was not updated. |
| - Menu tooltip was using the toolbar tooltip. (Negri) |
| - Setting 'notitle' didn't remove the title. (Steed) |
| - Using ":!start cmd" scrolled the screen one line up, and didn't wait for |
| return when the command wasn't found. |
| |
| Cscope interface: Sorting of matches was wrong. Starting the interface could |
| fail. (Kahn) |
| |
| Motif GUI: Could not compile with Motif 1.1, because some tear-off |
| functionality was not in #ifdefs. |
| |
| Configure could sometimes not compile or link the test program for sizeof(int) |
| properly. This caused alignment problems for the undo structure allocations. |
| Added a safety check that SIZEOF_INT is not zero. |
| |
| Added configure check to test if strings.h can be included after string.h. |
| Some systems can't handle it. |
| Some systems need both string.h and strings.h included. Adjusted vim.h for |
| that. Removed including string.h from os_unixx.h, since it's already in |
| vim.h. (Savage) |
| AIX: defining _NO_PROTO in os_unix.h causes a conflict between string.h and |
| strings.h, but after the configure check said it was OK. Also define |
| _NO_PROTO for AIX in the configure check. (Winn) |
| |
| When closing a window with CTRL-W c, the value of 'hidden' was not taken into |
| account, the buffer was always unloaded. (Negri) |
| |
| Unix Makefile: "make install" always tried to rename an older executable and |
| remove it. This caused an error message when it didn't exit. Added a check |
| for the existence of an old executable. |
| The command line for "make install" could get too long, because of the many |
| syntax files. Now first do a "cd" to reduce the length. |
| |
| On RISCOS and MSDOS, reading a file could fail, because the short filename was |
| used, which can be wrong after a ":!cd". |
| |
| In the DOS versions, the wrong install.exe was included (required Windows). |
| Now the install.exe version is included that is the same as the Vim version. |
| This also supports long file names where possible. |
| |
| When recording, and stopping while in Insert mode with CTRL-O q, the CTRL-O |
| would also be recorded. |
| |
| 32bit DOS version: "vim \file", while in a subdirectory, resulted in "new |
| file" for "file" in the local directory, while "\file" did exist. When |
| "file" in the current directory existed, this didn't happen. |
| |
| MSDOS: Mouse could not go beyond 80 columns in 132 columns mode. (Young) |
| |
| "make test" failed in the RedHat RPM, because compatible is off by default. |
| |
| In Insert mode <C-O><C-W><C-W> changes to other window, but the status bars |
| were not updated until another character was typed. |
| |
| MSDOS: environment options in lowercase didn't work, although they did in the |
| Win32 versions. (Negri) |
| |
| After ":nohlsearch", a tag command switched highlighting back on. |
| |
| When using "append" command as the last line in an autocommand, Vim would |
| crash. |
| |
| RISCOS: The scroll bumpers (?) were not working properly. (Leonard) |
| |
| "zl" and "zh" could move the cursor, but this didn't set the column in which |
| e.g., "k" would move the cursor. |
| |
| When doing ":set all&" the value of 'scroll' was not set correctly. This |
| caused an error message when later setting any other number option. |
| |
| When 'hlsearch' highlighting has been disabled with ":nohlsearch", |
| incremental searching would switch it back on too early. |
| |
| When listing tags for ":tselect", and using a non-search command, and the last |
| character was equal to the first (e.g., "99"), the last char would not be |
| shown. |
| |
| When searching for tags with ":tag" Vim would assume that all matches had been |
| found when there were still more (e.g. from another tags file). |
| |
| Win32: Didn't recognize "c:\" (e.g., in tags file) as absolute path when |
| upper/lowercase was different. |
| |
| Some xterms (Debian) send <Esc>OH for HOME and <Esc>OF for END. Added these |
| to the builtin-xterm. |
| |
| In ex mode, any CR was seen as the end of the line. Only a NL should be |
| handled that way. broke ":s/foo/some^Mtext/". |
| |
| In menu.vim, a vmenu was used to override an amenu. That didn't work, because |
| the system menu file doesn't overwrite existing menus. Added explicit vunmenu |
| to solve this. |
| |
| Configure check for terminal library could find a library that doesn't work at |
| runtime (Solaris: shared library not found). Added a check that a program |
| with tgoto() can run correctly. |
| |
| Unix: "echo -n" in the Makefile doesn't work on all systems, causing errors |
| compiling pathdef.c. Replaced it with "tr". |
| |
| Perl: DO_JOIN was redefined by Perl. Undefined it in the perl files. |
| |
| Various XIM and multi-byte fixes: |
| - Fix user cannot see his language while he is typing his language with |
| off-the-spot method. (Nagano) |
| - Fix preedit position using text/edit area (using gui.wid). (Nagano) |
| - remove 'fix dead key' codes. It was needed since XNFocusWindow was |
| "x11_window", XNFocusWindow is now gui.wid. (Nagano) |
| - Remove some compile warnings and fix typos. (Namsh) |
| - For status area, check the gtk+ version while Vim runs. I believe it is |
| better than compile time check. (Namsh) |
| - Remove one FIXME for gtk+-xim. (Namsh) |
| - XIM: Dead keys didn't work for Czech. (Vyskovsky) |
| - Multibyte: If user input only 3byte such as mb1_mb2_eng or eng_mb1_mb2 VIM |
| could convert it to special character. (Nam) |
| - Athena/Motif with XIM: fix preedit area. (Nam) |
| - XIM: Composed strings were sometimes ignored. Vim crashed when compose |
| string was longer than 256 bytes. IM's geometry control is fixed. (Nam, |
| Nagano) |
| - Win32 multi-byte: hollowed cursor width on a double byte char was wrong. |
| (Nagano) |
| - When there is no GUI, selecting XIM caused compilation problems. |
| Automatically disable XIM when there is no GUI in configure. |
| - Motif and Athena: When compiled with XIM, but the input method was not |
| enabled, there would still be a status line. Now the status line is gone if |
| the input method doesn't work. (Nam) |
| |
| Win32: tooltip was not removed when selecting a parent menu (it was when |
| selecting a menu entry). (Negri) |
| |
| Unix with X: Some systems crash on exit, because of the XtCloseDisplay() call. |
| Removed it, it should not be necessary when exiting. |
| |
| Win32: Crash on keypress when compiled with Borland C++. (Aaron) |
| |
| When checking for Motif library files, prefer the same location as the include |
| files (with "include" replaced with "lib") above another entry. |
| |
| Athena GUI: Changed "XtOffset()" in gui_at_fs.c to "XtOffsetOf()", like it's |
| used in gui_x11.c. |
| |
| Win32: When testing for a timestamp of a file on floppy, would get a dialog |
| box when the floppy has been removed. Now return with an error. (Negri) |
| |
| Win32 OLE: When forced to come to the foreground, a minimized window was still |
| minimized, now it's restored. (Zivkov) |
| |
| There was no check for a positive 'shiftwidth'. A negative value could cause |
| a hangup, a zero value a crash. |
| |
| Athena GUI: horizontal scrollbar wasn't updated correctly when clicking right |
| or left of the thumb. |
| |
| When making a Visual-block selection in one window, and trying to scroll |
| another, could cause errors for accessing non-existent line numbers. |
| |
| When 'matchpairs' contains "`:'", jumping from the ` to the ' didn't work |
| properly. |
| |
| Changed '\"' to '"' to make it compatible with old C compilers. |
| |
| The command line expansion for mappings caused a script with a TAB between lhs |
| and rhs of a map command to fail. Assume the TAB is to separate lhs and rhs |
| when there are no mappings to expand. |
| |
| When editing a file with very long lines with 'scrolloff' set, "j" would |
| sometimes end up in a line which wasn't displayed. |
| |
| When editing a read-only file, it was completely read into memory, even when |
| it would not fit. Now create a swap file for a read-only file when running |
| out of memory while reading the file. |
| |
| When using ":set cino={s,e-s", a line after "} else {" was not indented |
| properly. Also added a check for this in test3.in. |
| |
| The Hebrew mapping for the command line was remembered for the next command |
| line. That isn't very useful, a command is not Hebrew. (Kol) |
| |
| When completing file names with embedded spaces, like "Program\ files", this |
| didn't work. Also for user commands. Moved backslash_halve() down to |
| mch_expandpath(). |
| |
| When using "set mouse=a" in Ex mode, mouse events were handled like typed |
| text. Then typing "quit" screwed up the mouse behavior of the xterm. |
| |
| When repeating an insert with "." that contains a CTRL-Y, a number 5 was |
| inserted as "053". |
| |
| Yanking a Visual area, with the cursor past the line, didn't move the cursor |
| back onto the line. Same for "~", "u", "U" and "g?" |
| |
| Win32: Default for 'grepprg' could be "findstr /n" even though there is no |
| findstr.exe (Windows 95). Check if it exists, and fall back to "grep -n" if |
| it doesn't. |
| |
| Because gui_mouse_moved() inserted a leftmouse click in the input buffer, |
| remapping a leftmouse click caused strange effects. Now Insert another code |
| in the input buffer. Also insert a leftmouse release, to avoid the problem |
| with ":map <LeftMouse> l" that the next release is seen as the release for the |
| focus click. |
| |
| With 'wrap' on, when using a line that doesn't fit on the screen, if the start |
| of the Visual area is before the start of the screen, there was no |
| highlighting. Also, 'showbreak' doesn't work properly. |
| |
| DOS, Win32: A pattern "[0-9]\+" didn't work in autocommands. |
| |
| When creating a swap file for a buffer which isn't the current buffer, could |
| get a mixup of short file name, resulting in a long file name when a short |
| file name was required. makeswapname() was calling modname() instead of |
| buf_modname(). |
| |
| When a function caused an error, and the error message was very long because |
| of recursiveness, this would cause a crash. |
| |
| 'suffixes' were always compared with matching case. For MS-DOS, Win32 and |
| OS/2 case is now ignored. |
| |
| The use of CHARBITS in regexp.c didn't work on some Linux. Don't use it. |
| |
| When generating a script file, 'cpo' was made empty. This caused backslashes |
| to disappear from mappings. Set it to "B" to avoid that. |
| |
| Lots of typos in the documentation. (Campbell) |
| |
| When editing an existing (hidden) buffer, jump to the last used cursor |
| position. (Madsen) |
| |
| On a Sun the xterm screen was not restored properly when suspending. (Madsen) |
| |
| When $VIMINIT is processed, 'nocompatible' was only set after processing it. |
| |
| Unix: Polling for a character wasn't done for GPM, Sniff and Xterm clipboard |
| all together. Cleaned up the code for using select() too. |
| |
| When executing external commands from the GUI, some typeahead was lost. Added |
| some code to regain as much typeahead as possible. |
| |
| When the window height is 5 lines or fewer, <PageDown> didn't use a one-line |
| overlap, while <PageUp> does. Made sure that <PageUp> uses the same overlap |
| as <PageDown>, so that using them both always displays the same lines. |
| |
| Removed a few unused functions and variables (found with lint). |
| |
| Dictionary completion didn't use 'infercase'. (Raul) |
| |
| Configure tests failed when the Perl library was not in LD_LIBRARY_PATH. |
| Don't use the Perl library for configure tests, add it to the linker line only |
| when linking Vim. |
| |
| When using ncurses/terminfo, could get a 't_Sf' and 't_Sb' termcap entry that |
| has "%d" instead of "%p1%d". The light background colors didn't work then. |
| |
| GTK GUI with ncurses: Crashed when starting up in tputs(). Don't use tputs() |
| when the GUI is active. |
| |
| Could use the ":let" command to set the "count", "shell_error" and "version" |
| variables, but that didn't work. Give an error message when trying to set |
| them. |
| |
| On FreeBSD 3.0, tclsh is called tclsh8.0. Adjusted configure.in to find it. |
| |
| When Vim is linked with -lncurses, but python uses -ltermcap, this causes |
| trouble: "OOPS". Configure now removes the -ltermcap. |
| |
| :@" and :*" didn't work properly, because the " was recognized as the start of |
| a comment. |
| |
| Win32s GUI: Minimizing the console where a filter command runs in caused |
| trouble for detecting that the filter command has finished. (Negri) |
| |
| After executing a filter command from an xterm, the mouse would be disabled. |
| It would work again after changing the mode. |
| |
| Mac GUI: Crashed in newenv(). (St-Amant) |
| |
| The menus and mappings in mswin.vim didn't handle text ending in a NL |
| correctly. (Acevedo) |
| |
| The ":k" command didn't check if it had a valid argument or extra characters. |
| Now give a meaningful error message. (Webb) |
| |
| On SGI, the signal function doesn't always have three arguments. Check for |
| struct sigcontext to find out. Might still be wrong... |
| |
| Could crash when using 'hlsearch' and search pattern is "^". |
| |
| When search patterns were saved and restored, status of no_hlsearch was not |
| also saved and restored (from ":nohlsearch" command). |
| |
| When using setline() to make a line shorter, the cursor position was not |
| adjusted. |
| |
| MS-DOS and Win95: When trying to edit a file and accidentally adding a slash |
| or backslash at the end, the file was deleted. Probably when trying to create |
| the swap file. Explicitly check for a trailing slash or backslash before |
| trying to read a file. |
| |
| X11 GUI: When starting the GUI failed and received a deadly signal while |
| setting the title, would lock up when trying to exit, because the title is |
| reset again. Avoid using mch_settitle() recursively. |
| |
| X11 GUI: When starting the GUI fails, and then trying it again, would crash, |
| because argv[] has been freed and x11_display was reset to NULL. |
| |
| Win32: When $HOME was set, would put "~user" in the swap file, which would |
| never compare with a file name, and never cause the attention message. Put |
| the full path in the swap file instead. |
| |
| Win32 console: There were funny characters at the end of the "vim -r" swap |
| files message (direct output of CR CR LF). |
| |
| DOS 32 bit: "vim -r" put the text at the top of the window. |
| |
| GUI: With 'mousefocus' set, got mouse codes as text with "!sleep 100" or "Q". |
| |
| Motif and Win32 GUI: When changing 'guifont' to a font of the same size the |
| screen wasn't redrawn. |
| |
| Unix: When using ":make", jumping to a file b.c, which is already open as a |
| symbolic link a.c, opened a new buffer instead of using the existing one. |
| |
| Inserting text in the current buffer while sourcing the .vimrc file would |
| cause a crash or hang. The memfile for the current buffer was never |
| allocated. Now it's allocated as soon as something is written in the buffer. |
| |
| DOS 32 bit: "lightblue" background worked for text, but not drawn parts were |
| black. |
| |
| DOS: Colors of console were not restored upon exiting. |
| |
| When recording, with 'cmdheight' set to 2 and typing Esc> in Insert mode |
| caused the "recording" message to be doubled. |
| |
| Spurious "file changed" messages could happen on Windows. Now tolerate a one |
| second difference, like for Linux. |
| |
| GUI: When returning from Ex mode, scrollbars were not updated. |
| |
| Win32: Copying text to the clipboard containing a <CR>, pasting it would |
| replace it with a <NL> and drop the next character. |
| |
| Entering a double byte character didn't work if the second byte is in [xXoO]. |
| (Eric Lee) |
| |
| vim_realloc was both defined and had a prototype in proto/misc2.pro. Caused |
| conflicts on Solaris. |
| |
| A pattern in an autocommand was treated differently on DOS et al. than on |
| Unix. Now it's the same, also when using backslashes. |
| |
| When using <Tab> twice for command line completion, without a match, the <Tab> |
| would be inserted. (Negri) |
| |
| Bug in MS-Visual C++ 6.0 when compiling ex_docmd.c with optimization. (Negri) |
| |
| Testing the result of mktemp() for failure was wrong. Could cause a crash. |
| (Peters) |
| |
| GUI: When checking for a ".gvimrc" file in the current directory, didn't check |
| for a "_gvimrc" file too. |
| |
| Motif GUI: When using the popup menu and then adding an item to the menu bar, |
| the menu bar would get very high. |
| |
| Mouse clicks and special keys (e.g. cursor keys) quit the more prompt and |
| dialogs. Now they are ignored. |
| |
| When at the more-prompt, xterm selection didn't work. Now use the 'r' flag in |
| 'mouse' also for the more-prompt. |
| |
| When selecting a Visual area of more than 1023 lines, with 'guioptions' set to |
| "a", could mess up the display because of a message in free_yank(). Removed |
| that message, except for the Amiga. |
| |
| Moved auto-selection from ui_write() to the screen update functions. Avoids |
| unexpected behavior from a low-level function. Also makes the different |
| feedback of owning the selection possible. |
| |
| Vi incompatibility: Using "i<CR>" in an indent, with 'ai' set, used the |
| original indent instead of truncating it at the cursor. (Webb) |
| |
| ":echo x" didn't stop at "q" for the more prompt. |
| |
| Various fixes for Macintosh. (St-Amant) |
| |
| When using 'selectmode' set to "exclusive", selecting a word and then using |
| CTRL-] included the character under the cursor. |
| |
| Using ":let a:name" in a function caused a crash. (Webb) |
| |
| When using ":append", an empty line didn't scroll up. |
| |
| DOS etc.: A file name starting with '!' didn't work. Added '!' to default for |
| 'isfname'. |
| |
| BeOS: Compilation problem with prototype of skip_class_name(). (Price) |
| |
| When deleting more than one line, e.g., with "de", could still use "U" |
| command, which didn't work properly then. |
| |
| Amiga: Could not compile ex_docmd.c, it was getting too big. Moved some |
| functions to ex_cmds.c. |
| |
| The expand() function would add a trailing slash for directories. |
| |
| Didn't give an error message when trying to assign a value to an argument of a |
| function. (Webb) |
| |
| Moved including sys/ptem.h to after termios.h. Needed for Sinix. |
| |
| OLE interface: Don't delete the object in CVimCF::Release() when the reference |
| count becomes zero. (Cordell) |
| VisVim could still crash on exit. (Erhardt) |
| |
| "case a: case b:" (two case statements in one line) aligned with the second |
| case. Now it uses one 'sw' for indent. (Webb) |
| |
| Font initialisation wasn't right for Athena/Motif GUI. Moved the call to |
| highlight_gui_started() gui_mch_init() to gui_mch_open(). (Nam) |
| |
| In Replace mode, backspacing over a TAB before where the replace mode started |
| while 'sts' is different from 'ts', would delete the TAB. |
| |
| Win32 console: When executing external commands and switching between the two |
| console screens, Vim would copy the text between the buffers. That caused the |
| screen to be messed up for backtick expansion. |
| |
| ":winpos -1" then ":winpos" gave wrong error message. |
| |
| Windows commander creates files called c:\tmp\$wc\abc.txt. Don't remove the |
| backslash before the $. Environment variables were not expanded anyway, |
| because of the backslash before the dollar. |
| |
| Using "-=" with ":set" could remove half a part when it contains a "\,". |
| E.g., ":set path+=a\\,b" and then "set path-=b" removed ",b". |
| |
| When Visually selecting lines, with 'selection' set to "inclusive", including |
| the last char of the line, "<<" moved an extra line. Also for other operators |
| that always work on lines. |
| |
| link.sh changed "-lnsl_s" to "_s" when looking for "nsl" to be removed. |
| Now it only remove whole words. |
| |
| When jumped to a mark or using "fz", and there is an error, the current column |
| was lost. E.g. when using "$fzj". |
| |
| The "g CTRL-G" command could not be interrupted, even though it can take a |
| long time. |
| |
| Some terminals do have <F4> and <xF4>. <xF4> was always interpreted as <F4>. |
| Now map <xF4> to <F4>, so that the user can override this. |
| |
| When compiling os_win32.c with MIN_FEAT the apply_autocmds() should not be |
| used. (Aaron) |
| |
| This autocommand looped forever: ":au FileChangedShell * nested e <afile>" |
| Now FileChangeShell never nests. (Roemer) |
| |
| When evaluating an ":elseif" that was not going to matter anyway, ignore |
| errors. (Roemer) |
| |
| GUI Lesstif: Tearoff bar was the last item, instead of the first. |
| |
| GUI Motif: Colors of tear-off widgets was wrong when 't' flag added to |
| 'guioptions' afterwards. When 't' flag in 'guioptions' is excluded, would |
| still get a tearoff item in a new menu. |
| |
| An inode number can be "long long". Use ino_t instead of long. Added |
| configure check for ino_t. |
| |
| Binary search for tags was using a file offset "long" instead of "off_t". |
| |
| Insert mode completion of tags was not using 'ignorecase' properly. |
| |
| In Insert mode, the <xFn> keys were not properly mapped to <Fn> for the |
| default mappings. Also caused errors for ":mkvimrc" and ":mksession". |
| |
| When jumping to another window while in Insert mode, would get the "warning: |
| changing readonly file" even when not making a change. |
| |
| A '(' or '{' inside a trailing "//" comment would disturb C-indenting. |
| When using two labels below each other, the second one was not indented |
| properly. Comments could mess up C-indenting in many places. (Roemer) |
| |
| Could delete or redefine a function while it was being used. Could cause a |
| crash. |
| In a function it's logical to prepend "g:" to a system variable, but this |
| didn't work. (Roemer) |
| |
| Hangul input: Buffer would overflow when user inputs invalid key sequence. |
| (Nam) |
| |
| When BufLoad or BufEnter autocommands change the topline of the buffer in the |
| window, it was overruled and the cursor put halfway the window. Now only put |
| the cursor halfway if the autocommands didn't change the topline. |
| |
| Calling exists("&option") always returned 1. (Roemer) |
| |
| Win32: Didn't take actually available memory into account. (Williams) |
| |
| White space after an automatically inserted comment leader was not removed |
| when 'ai' is not set and <CR> hit just after inserting it. (Webb) |
| |
| A few menus had duplicated accelerators. (Roemer) |
| |
| Spelling errors in documentation, quite a few "the the". (Roemer) |
| |
| Missing prototypes for Macintosh. (Kielhorn) |
| |
| Win32: When using 'shellquote' or 'shellxquote', the "!start cmd" wasn't |
| executed in a disconnected process. |
| |
| When resizing the window, causing a line before the cursor to wrap or unwrap, |
| the cursor was displayed in the wrong position. |
| |
| There was quite a bit of dead code when compiling with minimal features. |
| |
| When doing a ":%s///" command that makes lines shorter, such that lines above |
| the final cursor position no longer wrap, the cursor position was not updated. |
| |
| get_id_list() could allocate an array one too small, when a "contains=" item |
| has a wildcard that matches a group name that is added just after it. E.g.: |
| "contains=a.*b,axb". Give an error message for it. |
| |
| When yanking a Visual area and using the middle mouse button -> crash. When |
| clipboard doesn't work, now make "* always use "". |
| |
| Win32: Using ":buf a\ b\file" didn't work, it was interpreted as "ab\file". |
| |
| Using ":ts ident", then hit <CR>, with 'cmdheight' set to 2: command line was |
| not cleared, the tselect prompt was on the last but one line. |
| |
| mksession didn't restore the cursor column properly when it was after a tab. |
| Could not get all windows back when using a smaller terminal screen. Didn't |
| restore all windows when "winsize" was not in 'sessionoptions'. (Webb) |
| |
| Command line completion for ":buffer" depended on 'ignorecase' for Unix, but |
| not for DOS et al.. Now don't use 'ignorecase', but let it depend on whether |
| file names are case sensitive or not (like when expanding file names). |
| |
| Win32 GUI: (Negri) |
| - Redrawing the background caused flicker when resizing the window. Removed |
| _OnEraseBG(). Removed CS_HREDRAW and CS_VREDRAW flags from the |
| sndclass.style. |
| - Some parts of the window were drawn in grey, instead of using the color from |
| the user color scheme. |
| - Dropping a file on gvim didn't activate the window. |
| - When there is no menu ('guioptions' excludes 'm'), never use the ALT key for |
| it. |
| |
| GUI: When resizing the window, would make the window height a bit smaller. |
| Now round off to the nearest char cell size. (Negri) |
| |
| In Vi the ")" and "(" commands don't stop at a single space after a dot. |
| Added 'J' flag in 'cpoptions' to make this behave Vi compatible. (Roemer) |
| |
| When saving a session without any buffers loaded, there would be a ":normal" |
| command without arguments in it. (Webb) |
| |
| Memory leaks fixed: (Madsen) |
| - eval.c: forgot to release func structure when func deleted |
| - ex_docmd.c: forgot to release string after "<sfile>" |
| - misc1.c: leak when completion pattern had no matches. |
| - os_unix.c: forgot to release regexp after file completions |
| |
| Could crash when using a buffer without a name. (Madsen) |
| Could crash when doing file name completion, because of backslash_halve(). |
| (Madsen) |
| |
| ":@a" would do mappings on register a, which is not Vi compatible. (Roemer) |
| |
| ":g/foo.*()/s/foobar/_&/gc" worked fine, but then "n" searched for "foobar" |
| and displayed "/foo.*()". (Roemer) |
| |
| OS/2: get_cmd_output() was not included. Didn't check for $VIM/.vimrc file. |
| |
| Command line completion of options didn't work after "+=" and "-=". |
| |
| Unix configure: Test for memmove()/bcopy()/memcpy() tried redefining these |
| functions, which could fail if they are defined already. Use mch_memmove() to |
| redefine. |
| |
| Unix: ":let a = expand("`xterm`&")" started an xterm asynchronously, but |
| ":let a = expand("`xterm&`")" generated an error message, because the |
| redirection was put after the '&'. |
| |
| Win32 GUI: Dialog buttons could not be selected properly with cursor keys, |
| when the default is not the first button. (Webb) |
| |
| The "File has changed since editing started" (when regaining focus) could not |
| always be seen. (Webb) |
| |
| When starting with "ex filename", the file message was overwritten with |
| the "entering Ex mode" message. |
| |
| Output of ":tselect" listed name of file directly from the tags file. Now it |
| is corrected for the position of the tags file. |
| |
| When 'backspace' is 0, could backspace over autoindent. Now it is no longer |
| allowed (Vi compatible). |
| |
| In Replace mode, when 'noexpandtab' and 'smarttab' were set, and inserting |
| Tabs, backspacing didn't work correctly for Tabs inserted at the start of the |
| line (unless 'sts' was set too). Also, when replacing the first non-blank |
| after which is a space, rounding the indent was done on the first non-blank |
| instead of on the character under the cursor. |
| |
| When 'sw' at 4, 'ts' at 8 and 'smarttab' set: When a tab was appended after |
| four spaces (they are replaced with a tab) couldn't backspace over the tab. |
| |
| In Insert mode, with 'bs' set to 0, couldn't backspace to before autoindent, |
| even when it was removed with CTRL-D. |
| |
| When repeating an insert command where a <BS>, <Left> or other key causes an |
| error, would flush buffers and remain in Insert mode. No longer flush |
| buffers, only beep and continue with the insert command. |
| |
| Dos and Win32 console: Setting t_me didn't work to get another color. Made |
| this works backwards compatible. |
| |
| For Turkish (LANG = "tr") uppercase 'i' is not an 'I'. Use ASCII uppercase |
| translation in vim_strup() to avoid language problems. (Komur) |
| |
| Unix: Use usleep() or nanosleep() for mch_delay() when available. Hopefully |
| this avoids a hangup in select(0, ..) for Solaris 2.6. |
| |
| Vim would crash when using a script file with 'let &sp = "| tee"', starting |
| vim with "vim -u test", then doing ":set sp=". The P_WAS_SET flag wasn't set |
| for a string option, could cause problems with any string option. |
| |
| When using "cmd | vim -", stdin is not a terminal. This gave problems with |
| GPM (Linux console mouse) and when executing external commands. Now close |
| stdin and re-open it as a copy of stderr. |
| |
| Syntax highlighting: A "nextgroup" item was not properly stored in the state |
| list. This caused missing of next groups when not redrawing from start to |
| end, but starting halfway. |
| |
| Didn't check for valid values of 'ttymouse'. |
| |
| When executing an external command from the GUI, waiting for the child to |
| terminate might not work, causing a hang. (Parmelan) |
| |
| "make uninstall" didn't delete the vimrc_example.vim and gvimrc_example.vim |
| files and the vimtutor. |
| |
| Win32: "expand("%:p:h")" with no buffer name removed the directory name. |
| "fnamemodify("", ":p")" did not add a trailing slash, fname_case() removed it. |
| |
| Fixed: When 'hlsearch' was set and the 'c' flag was not in 'cpoptions': |
| highlighting was not correct. Now overlapping matches are handled correctly. |
| |
| Athena, Motif and GTK GUI: When started without focus, cursor was shown as if |
| with focus. |
| |
| Don't include 'shellpipe' when compiled without quickfix, it's not used. |
| Don't include 'dictionary' option when compiled without the +insert_expand |
| feature. |
| Only include the 'shelltype' option for the Amiga. |
| |
| When making a change to a line, with 'hlsearch' on, causing it to wrap, while |
| executing a register, the screen would not be updated correctly. This was a |
| generic problem in update_screenline() being called while must_redraw is |
| VALID. |
| |
| Using ":bdelete" in a BufUnload autocommand could cause a crash. The window |
| height was added to another window twice in close_window(). |
| |
| Win32 GUI: When removing a menu item, the tearoff wasn't updated. (Negri) |
| |
| Some performance bottlenecks removed. Allocating memory was not efficient. |
| For Win32 checking for available memory was slow, don't check it every time |
| now. On NT obtaining the user name takes a long time, cache the result (for |
| all systems). |
| |
| fnamemodify() with an argument ":~:." or ":.:~" didn't work properly. |
| |
| When editing a new file and exiting, the marks for the buffer were not saved |
| in the viminfo file. |
| |
| ":confirm only" didn't put up a dialog. |
| |
| These text objects didn't work when 'selection' was "exclusive": va( vi( va{ |
| vi{ va< vi< vi[ va[. |
| |
| The dialog for writing a readonly file didn't have a valid default. (Negri) |
| |
| The line number used for error messages when sourcing a file was reset when |
| modelines were inspected. It was wrong when executing a function. |
| |
| The file name and line number for an error message wasn't displayed when it |
| was the same as for the last error, even when this was long ago. Now reset |
| the name/lnum after a hit-enter prompt. |
| |
| In a session file, a "%" in a file name caused trouble, because fprintf() was |
| used to write it to the file. |
| |
| When skipping statements, a mark in an address wasn't skipped correctly: |
| "ka|if 0|'ad|else|echo|endif". (Roemer) |
| |
| ":wall" could overwrite a not-edited file without asking. |
| |
| GUI: When $DISPLAY was not set or starting the GUI failed in another way, the |
| console mode then started with wrong colors and skipped initializations. Now |
| do an early check if the GUI can be started. Don't source the menu.vim or |
| gvimrc when it will not. Also do normal terminal initializations if the GUI |
| might not start. |
| |
| When using a BufEnter autocommand to position the cursor and scroll the |
| window, the cursor was always put at the last used line and halfway the window |
| anyhow. |
| |
| When 'wildmode' was set to "longest,list:full", ":e *.c<Tab><Tab>" didn't list |
| the matches. Also avoid that listing after a "longest" lists the wrong |
| matches when the first expansion changed the string in front of the cursor. |
| |
| When using ":insert", ":append" or ":change" inside a while loop, was not able |
| to break out of it with a CTRL-C. |
| |
| Win32: ":e ." took an awful long time before an error message when used in |
| "C:\". Was caused by adding another backslash and then trying to get the full |
| name for "C:\\". |
| |
| ":winpos -10 100" was working like ":winpos -10 -10", because a pointer was |
| not advanced past the '-' sign. |
| |
| When obtaining the value of a hidden option, would give an error message. Now |
| just use a zero value. |
| |
| OS/2: Was using argv[0], even though it was not a useful name. It could be |
| just "vim", found in the search path. |
| |
| Xterm: ":set columns=78" didn't redraw properly (when lines wrap/unwrap) until |
| after a delay of 'updatetime'. Didn't check for the size-changed signal. |
| |
| 'scrollbind' didn't work in Insert mode. |
| Horizontal scrollbinding didn't always work for "0" and "$" commands (e.g., |
| when 'showcmd' was off). |
| |
| When compiled with minimal features but with GUI, switching on the mouse in an |
| xterm caused garbage, because the mouse codes were not recognized. Don't |
| enable the mouse when it can't be recognized. In the GUI it also didn't work, |
| the arguments to the mouse code were not interpreted. |
| |
| When 'showbreak' used, in Insert mode, when the cursor is just after the last |
| character in the line, which is also the in the rightmost column, the cursor |
| position would be like the 'showbreak' string is shown, but it wasn't. |
| |
| Autocommands could move the cursor in a new file, so that CTRL-W i didn't show |
| the right line. Same for when using a filemark to jump to another file. |
| |
| When redefining the argument list, the title used for other windows could be |
| showing the wrong info about the position in the argument list. Also update |
| this for a ":split" command without arguments. |
| |
| When editing file 97 of 13, ":Next" didn't work. Now it goes to the last |
| file in the argument list. |
| |
| Insert mode completion (for dictionaries or included files) could not be |
| interrupted by typing an <Esc>. Could get hit-enter prompt after line |
| completion, or whenever the informative message would get too long. |
| |
| When using the ":edit" command to re-edit the same file, an autocommand to |
| jump to the last cursor position caused the cursor to move. Now set the last |
| used cursor position to avoid this. |
| |
| When 'comments' has a part that starts with white space, formatting the |
| comment didn't work. |
| |
| At the ":tselect" prompt Normal mode mappings were used. That has been |
| disabled. |
| |
| When 'selection' is not "old", some commands still didn't allow the cursor |
| past the end-of-line in Visual mode. |
| |
| Athena: When a menu was deleted, it would appear again (but not functional) |
| when adding another menu. Now they don't reappear anymore (although they are |
| not really deleted either). |
| |
| Borland C++ 4.x had an optimizer problem in fill_breakat_flags(). (Negri) |
| |
| "ze" didn't work when 'number' was on. (Davis) |
| |
| Win32 GUI: Intellimouse code didn't work properly on Windows 98. (Robinson) |
| |
| A few files were including proto.h a second time, after vim.h had already done |
| that, which could cause problems with the vim_realloc() macro. |
| |
| Win32 console: <M-x> or ALT-x was not recognized. Also keypad '+', '-' and |
| '*'. (Negri) |
| MS-DOS: <M-x> didn't work, produced a two-byte code. Now the alphabetic and |
| number keys work. (Negri) |
| |
| When finding a lot of matches for a tag completion, the check for avoiding |
| double matches could take a lot of time. Add a line_breakcheck() to be able |
| to interrupt this. (Deshpande) |
| |
| When the command line was getting longer than the screen, the more-prompt |
| would be given regularly, and the cursor position would be wrong. Now only |
| show the part of the command line that fits on the screen and force the cursor |
| to be positioned on the visible part. There can be text after the cursor |
| which isn't editable. |
| |
| At the more prompt and with the console dialog, a cursor key was interpreted |
| as <Esc> and OA. Now recognize special keys in get_keystroke(). Ignore mouse |
| and scrollbar events. |
| |
| When typing a BS after inserting a middle comment leader, typing the last char |
| of the end comment leader still changed it into the end comment leader. (Webb) |
| |
| When a file system is full, writing to a swap file failed. Now first try to |
| write one block to the file. Try next entry in 'dir' if it fails. |
| |
| When "~" is in 'whichwrap', doing "~" on last char of a line didn't update the |
| display. |
| |
| Unix: Expanding wildcards for ":file {\\}" didn't work, because "\}" was |
| translated to "}" before the shell got it. Now don't remove backslashes when |
| wildcards are going to be expanded. |
| |
| Unix: ":e /tmp/$uid" didn't work. When expanding environment variables in a |
| file name doesn't work, use the shell to expand the file name. ":e /tmp/$tty" |
| still doesn't work though. |
| |
| "make test" didn't always work on DOS/Windows for test30, because it depended |
| on the external "echo" command. |
| |
| The link.sh script used "make" instead of $MAKE from the Makefile. Caused |
| problems for generating pathdef.c when "make" doesn't work properly. |
| |
| On versions that can do console and GUI: In the console a typed CSI code could |
| cause trouble. |
| |
| The patterns in expression evaluation didn't ignore the 'l' flag in |
| 'cpoptions'. This broke the working of <CR> in the options window. |
| |
| When 'hls' off and 'ai' on, "O<Esc>" did remove the indent, but it was still |
| highlighted red for trailing space. |
| |
| Win32 GUI: Dropping an encrypted file on a running gvim didn't work right. Vim |
| would loop while outputting "*" characters. vgetc() was called recursively, |
| thus it returns NUL. Added safe_vgetc(), which reads input directly from the |
| user in this situation. |
| |
| While reading text from stdin, only an empty screen was shown. Now show that |
| Vim is reading from stdin. |
| |
| The cursor shape wasn't set properly when returning to Insert mode, after |
| using a CTRL-O /asdf command which fails. It would be OK after a few seconds. |
| Now it's OK right away. |
| |
| The 'isfname' default for DOS/Windows didn't include the '@' character. File |
| names that contained "dir\@file" could not be edited. |
| |
| Win32 console: <C-S-Left> could cause a crash when compiled with Borland or |
| egcs. (Aaron) |
| |
| Unix and VMS: "#if HAVE_DIRENT_H" caused problems for some compilers. Use |
| "#ifdef HAVE_DIRENT_H" instead. (Jones) |
| |
| When a matching tag is in the current file but has a search pattern that |
| doesn't match, the cursor would jump to the first line. |
| |
| Unix: Dependencies for pty.c were not included in Makefile. Dependency of |
| ctags/config.h was not included (only matters for parallel make). |
| |
| Removed a few Uninitialized Memory Reads (potential crashes). In do_call() |
| calling clear_var() when not evaluating. In win32_expandpath() and |
| dos_expandpath() calling backslash_halve() past the end of a file name. |
| |
| Removed memory leaks: Set_vim_var_string() never freed the value. The |
| next_list for a syntax keyword was never freed. |
| |
| On non-Unix systems, using a file name with wildcards without a match would |
| silently fail. E.g., ":e *.sh". Now give a "No match" error message. |
| |
| The life/life.mac, urm/urm.mac and hanoi/hanoi.mac files were not recognized |
| as Vim scripts. Renamed them to *.vim. |
| |
| [Note: some numbered patches are not relevant when upgrading from version 5.3, |
| they have been removed] |
| |
| Patch 5.4m.1 |
| Problem: When editing a file with a long name, would get the hit-enter |
| prompt, even though all settings are such that the name should be |
| truncated to avoid that. filemess() was printing the file name |
| without truncating it. |
| Solution: Truncate the message in filemess(). Use the same code as for |
| msg_trunc_attr(), which is moved to the new function |
| msg_may_trunc(). |
| Files: src/message.c, src/proto/message.pro, src/fileio.c |
| |
| Patch 5.4m.3 |
| Problem: The Motif libraries were not found by configure for Digital Unix. |
| Solution: Add "/usr/shlib" to the search path. (Andy Kahn) |
| Files: src/configure.in, src/configure |
| |
| Patch 5.4m.5 |
| Problem: Win32 GUI: When using the Save-As menu entry and selecting an |
| existing file in the file browser, would get a dialog to confirm |
| overwriting twice. (Ed Krall) |
| Solution: Removed the dialog from the file browser. It would be nicer to |
| set the "forceit" flag and skip Vim's ":confirm" dialog, but it |
| requires quite a few changes to do that. |
| Files: src/gui_w32.c |
| |
| Patch 5.4m.6 |
| Problem: Win32 GUI: When reading text from stdin, e.g., "cat foo | gvim -", |
| a message box would pop up with "-stdin-" (when exiting). (Michael |
| Schaap) |
| Solution: Don't switch off termcap mode for versions that are GUI-only. |
| They use another terminal to read from stdin. |
| Files: src/main.c, src/fileio.c |
| |
| Patch 5.4m.7 |
| Problem: Unix: running configure with --enable-gtk-check, |
| --enable-motif-check, --enable-athena-check or --enable-gtktest |
| had the reverse effect. (Thomas Koehler) |
| Solution: Use $enable_gtk_check variable correctly in AC_ARG_ENABLE(). |
| Files: src/configure.in, src/configure |
| |
| Patch 5.4m.9 |
| Problem: Multi-byte: With wrapping lines, the cursor was sometimes 2 |
| characters to the left. Syntax highlighting was wrong when a |
| double-byte character was split for a wrapping line. When |
| 'showbreak' was on the splitting also didn't work. |
| Solution: Adjust getvcol() and win_line(). (Chong-Dae Park) |
| Files: src/charset.c, src/screen.c |
| |
| Patch 5.4m.11 |
| Problem: The ":call" command didn't check for illegal trailing characters. |
| (Stefan Roemer) |
| Solution: Add the check in do_call(). |
| Files: src/eval.c |
| |
| Patch 5.4m.13 |
| Problem: With the ":s" command: |
| 1. When performing a substitute command, the mouse would be |
| disabled and enabled for every substitution. |
| 2. The cursor position could be beyond the end of the line. |
| Calling line_breakcheck() could try to position the cursor, |
| which causes a crash in the Win32 GUI. |
| 3. When using ":s" in a ":g" command, the cursor was not put on |
| the first non-white in the line. |
| 4. There was a hit-enter prompt when confirming the substitution |
| and the replacement was a bit longer. |
| Solution: 1. Only disable/enable the mouse when asking for confirmation. |
| 2. Always put the cursor on the first character, it is going to be |
| moved to the first non-blank anyway. |
| Don't use the cursor position in gui_mch_draw_hollow_cursor(), |
| get the character from the screen buffer. |
| 3. Added global_need_beginline flag to call beginline() after ":g" |
| has finished all substitutions. |
| 4. Clear the need_wait_return flag after prompting the user. |
| Files: src/ex_cmds.c, src/gui_w32.c |
| |
| Patch 5.4m.14 |
| Problem: When doing "vim xxx", ":opt", ":only" and then ":e xxx" we end |
| up with two swapfiles for "xxx". That is caused by the ":bdel" |
| command which is executed when unloading the option-window. |
| Also, there was no check if closing a buffer made the new one |
| invalid, this could cause a crash. |
| Solution: When closing a buffer causes the current buffer to be deleted, |
| use the new buffer to replace it. Also detect that the new buffer |
| has become invalid as a side effect of closing the current one. |
| Make autocommand that calls ":bdel" in optwin.vim nested, so that |
| the buffer loading it triggers also executes autocommands. |
| Also added a test for this in test13. |
| Files: runtime/optwin.vim, src/buffer.c, src/ex_cmds.c, src/globals.h |
| src/testdir/test13.in, src/testdir/test13.ok |
| |
| Patch 5.4m.15 |
| Problem: When using a BufEnter autocommand to reload the syntax file, |
| conversion to HTML caused a crash. (Sung-Hyun Nam) |
| Solution: When using ":syntax clear" the current stack of syntax items was |
| not cleared. This will cause memory to be used that has already |
| been freed. Added call to invalidate_current_state() in |
| syntax_clear(). |
| Files: src/syntax.c |
| |
| Patch 5.4m.17 |
| Problem: When omitting a ')' in an expression it would not be seen as a |
| failure. |
| When detecting an error inside (), there would be an error message |
| for a missing ')' too. |
| When using ":echo 1+|echo 2" there was no error message. (Roemer) |
| When using ":exe 1+" there was no error message. |
| When using ":return 1+" there was no error message. |
| Solution: Fix do_echo(), do_execute() and do_return() to give an error |
| message when eval1() returns FAIL. |
| Fix eval6() to handle trailing ')' correctly and return FAIL when |
| it's missing. |
| Files: src/eval.c |
| |
| Patch 5.4m.18 |
| Problem: When using input() from inside an expression entered with |
| "CTRL-R =" on the command line, there could be a crash. And the |
| resulting command line was wrong. |
| Solution: Added getcmdline_prompt(), which handles recursive use of |
| getcmdline() correctly. It also sets the command line prompt. |
| Removed cmdline_prompt(). Also use getcmdline_prompt() for |
| getting the crypt key in get_crypt_key(). |
| Files: src/proto/ex_getln.pro, src/ex_getln.c, src/eval.c, src/misc2.c |
| |
| Patch 5.4m.21 |
| Problem: When starting up, the screen structures were first allocated at |
| the minimal size, then initializations were done with Rows |
| possibly different from screen_Rows. Caused a crash in rare |
| situations (GTK with XIM and fontset). |
| Solution: Call screenalloc() in main() only after calling ui_get_winsize(). |
| Also avoids a potential delay because of calling screenclear() |
| while "starting" is non-zero. |
| Files: src/main.c |
| |
| Patch 5.4m.22 |
| Problem: In the GUI it was possible that the screen was resized and the |
| screen structures re-allocated while redrawing the screen. This |
| could cause a crash (hard to reproduce). The call sequence goes |
| through update_screen() .. syntax_start() .. ui_breakcheck() .. |
| gui_resize_window() .. screenalloc(). |
| Solution: Set updating_screen while redrawing. If the window is resized |
| remember the new size and handle it only after redrawing is |
| finished. |
| This also fixes that resizing the screen while still redrawing |
| (slow syntax highlighting) would not work properly. |
| Also disable display_hint, it was never used. |
| Files: src/globals.h, src/gui.c, src/screen.c, src/proto/gui.pro |
| |
| Patch 5.4m.23 |
| Problem: When using expand("<cword>") when there was no word under the |
| cursor, would get an error message. Same for <cWORD> and <cfile>. |
| Solution: Don't give an error message, return an empty string. |
| Files: src/eval.c |
| |
| Patch 5.4m.24 |
| Problem: ":help \|" didn't find anything. It was translated to "/\\|". |
| Solution: Translate "\|" into "\\bar". First check the table for specific |
| translations before checking for "\x". |
| Files: src/ex_cmds.c |
| |
| Patch 5.4m.25 |
| Problem: Unix: When using command line completion on files that contain |
| ''', '"' or '|' the file name could not be used. |
| Adding this file name to the Buffers menu caused an error message. |
| Solution: Insert a backslash before these three characters. |
| Adjust Mungename() function to insert a backslash before '|'. |
| Files: src/ex_getln.c, runtime/menu.vim |
| |
| Patch 5.4m.26 |
| Problem: When using a mapping of two function keys, e.g., <F1><F1>, and |
| only the first char of the second key has been read, the mapping |
| would not be recognized. Noticed on some Unix systems with xterm. |
| Solution: Add 'K' flag to 'cpoptions' to wait for the whole key code, even |
| when halfway a mapping. |
| Files: src/option.h, src/term.c |
| |
| Patch 5.4m.27 |
| Problem: When making test33 without the lisp feature it hangs. Interrupting |
| the execution of the script then might cause a crash. |
| Solution: In inchar(), after closing a script, don't use buf[] anymore. |
| closescript() has freed typebuf[] and buf[] might be pointing |
| inside typebuf[]. |
| Avoid that test33 hangs when the lisp feature is missing. |
| Files: src/getchar.c src/testdir/test33.in |
| |
| "os2" was missing from the feature list. Useful for has("os2"). |
| |
| BeOS: |
| - Included patches from Richard Offer for BeOS R4.5. |
| - menu code didn't work right. Crashed in the Buffers menu. The window title |
| wasn't set. (Offer) |
| |
| Patch 5.4n.3 |
| Problem: C-indenting was wrong after " } else". The white space was not |
| skipped. Visible when 'cino' has "+10". |
| Solution: Skip white space before calling cin_iselse(). (Norbert Zeh) |
| Files: src/misc1.c |
| |
| Patch 5.4n.4 |
| Problem: When the 't' flag in 'cpoptions' is included, after a |
| ":nohlsearch" the search highlighting would not be enabled again |
| after a tag search. (Norbert Zeh) |
| Solution: When setting the new search pattern in jumpto_tag(), don't restore |
| no_hlsearch. |
| Files: src/tag.c |
| |
| Patch 5.4n.5 |
| Problem: When using ":normal" from a CursorHold autocommand Vim hangs. The |
| autocommand is executed down from vgetc(). Calling vgetc() |
| recursively to execute the command doesn't work then. |
| Solution: Forbid the use of ":normal" when vgetc_busy is set. Give an error |
| message when this happens. |
| Files: src/ex_docmd.c, runtime/doc/autocmd.txt |
| |
| Patch 5.4n.6 |
| Problem: "gv" could reselect a Visual that starts and/or ends past the end |
| of a line. (Robert Webb) |
| Solution: Check that the start and end of the Visual area are on a valid |
| character by calling adjust_cursor(). |
| Files: src/normal.c |
| |
| Patch 5.4n.8 |
| Problem: When a mark was on a non existing line (e.g., when the .viminfo |
| was edited), jumping to it caused ml_get errors. (Alexey |
| Marinichev). |
| Solution: Added check_cursor_lnum() in nv_gomark(). |
| Files: src/normal.c |
| |
| Patch 5.4n.9 |
| Problem: ":-2" moved the cursor to a negative line number. (Ralf Schandl) |
| Solution: Give an error message for a negative line number. |
| Files: src/ex_docmd.c |
| |
| Patch 5.4n.10 |
| Problem: Win32 GUI: At the hit-enter prompt, it was possible to scroll the |
| text. This erased the prompt and made Vim look like it is in |
| Normal mode, while it is actually still waiting for a <CR>. |
| Solution: Disallow scrolling at the hit-enter prompt for systems that use |
| on the fly scrolling. |
| Files: src/message.c |
| |
| Patch 5.4n.14 |
| Problem: Win32 GUI: When using ":winsize 80 46" and the height is more than |
| what fits on the screen, the window size was made smaller than |
| asked for (that's OK) and Vim crashed (that's not OK)> |
| Solution: Call check_winsize() from gui_set_winsize() to resize the windows. |
| Files: src/gui.c |
| |
| Patch 5.4n.16 |
| Problem: Win32 GUI: The <F10> key both selected the menu and was handled as |
| a key hit. |
| Solution: Apply 'winaltkeys' to <F10>, like it is used for Alt keys. |
| Files: src/gui_w32.c |
| |
| Patch 5.4n.17 |
| Problem: Local buffer variables were freed when the buffer is unloaded. |
| That's not logical, since options are not freed. (Ron Aaron) |
| Solution: Free local buffer variables only when deleting the buffer. |
| Files: src/buffer.c |
| |
| Patch 5.4n.19 |
| Problem: Doing ":e" (without argument) in an option-window causes trouble. |
| The mappings for <CR> and <Space> are not removed. When there is |
| another buffer loaded, the swap file for it gets mixed up. |
| (Steve Mueller) |
| Solution: Also remove the mappings at the BufUnload event, if they are still |
| present. |
| When re-editing the same file causes the current buffer to be |
| deleted, don't try editing it. |
| Also added a test for this situation. |
| Files: runtime/optwin.vim, src/ex_cmds.c, src/testdir/test13.in, |
| src/testdir/test13.ok |
| |
| Patch 5.4n.24 |
| Problem: BeOS: configure never enabled the GUI, because $with_x was "no". |
| Unix prototypes caused problems, because Display and Widget are |
| undefined. |
| Freeing fonts on exit caused a crash. |
| Solution: Only disable the GUI when $with_x is "no" and $BEOS is not "yes". |
| Add dummy defines for Display and Widget in proto.h. |
| Don't free the fonts in gui_exit() for BeOS. |
| Files: src/configure.in, src/configure, src/proto.h, src/gui.c. |
| |
| |
| The runtime/vim48x48.xpm icon didn't have a transparent background. (Schild) |
| |
| Some versions of the mingw32/egcs compiler didn't have WINBASEAPI defined. |
| (Aaron) |
| |
| VMS: |
| - mch_setenv() had two arguments instead of three. |
| - The system vimrc and gvimrc files were called ".vimrc" and ".gvimrc". |
| Removed the dot. |
| - call to RealWaitForChar() had one argument too many. (Campbell) |
| - WaitForChar() is static, removed the prototype from proto/os_vms.pro. |
| - Many file accesses failed, because Unix style file names were used. |
| Translate file names to VMS style by using vim_fopen(). |
| - Filtering didn't work, because the temporary file name was generated wrong. |
| - There was an extra newline every 9192 characters when writing a file. Work |
| around it by writing line by line. (Campbell) |
| - os_vms.c contained "# typedef int DESC". Should be "typedef int DESC;". |
| Only mattered for generating prototypes. |
| - Added file name translation to many places. Made easy by defining macros |
| mch_access(), mch_fopen(), mch_fstat(), mch_lstat() and mch_stat(). |
| - Set default for 'tagbsearch' to off, because binary tag searching apparently |
| doesn't work for VMS. |
| - make mch_get_host_name() work with /dec and /standard=vaxc. (Campbell) |
| |
| |
| Patch 5.4o.2 |
| Problem: Crash when using "gf" on "file.c://comment here". (Scott Graham) |
| Solution: Fix wrong use of pointers in get_file_name_in_path(). |
| Files: src/window.c |
| |
| Patch 5.4o.3 |
| Problem: The horizontal scrollbar was not sized correctly when 'number' is |
| set and 'wrap' not set. |
| Athena: Horizontal scrollbar wasn't updated when the cursor was |
| positioned with a mouse click just after dragging. |
| Solution: Subtract 8 from the size when 'number' set and 'wrap' not set. |
| Reset gui.dragged_sb when a mouse click is received. |
| Files: src/gui.c |
| |
| Patch 5.4o.4 |
| Problem: When running in an xterm and $WINDOWID is set to an illegal value, |
| Vim would exit with "Vim: Got X error". |
| Solution: When using the display which was opened for the xterm clipboard, |
| check if x11_window is valid by trying to obtain the window title. |
| Also add a check in setup_xterm_clip(), for when using X calls to |
| get the pointer position in an xterm. |
| Files: src/os_unix.c |
| |
| Patch 5.4o.5 |
| Problem: Motif version with Lesstif: When removing the menubar and then |
| using a menu shortcut key, Vim would crash. (raf) |
| Solution: Disable the menu mnemonics when the menu bar is removed. |
| Files: src/gui_motif.c |
| |
| Patch 5.4o.9 |
| Problem: The DOS install.exe program used the "move" program. That doesn't |
| work on Windows NT, where "move" is internal to cmd.exe. |
| Solution: Don't use an external program for moving the executables. Use C |
| functions to copy the file and delete the original. |
| Files: src/dosinst.c |
| |
| Motif and Athena obtained the status area height differently from GTK. Moved |
| status_area_enabled from global.h to gui_x11.c and call |
| xim_get_status_area_height() to get the status area height. |
| |
| Patch 5.4p.1 |
| Problem: When using auto-select, and the "gv" command is used, would not |
| always obtain ownership of the selection. Caused by the Visual |
| area still being the same, but ownership taken away by another |
| program. |
| Solution: Reset the clipboard Visual mode to force updating the selection. |
| Files: src/normal.c |
| |
| Patch 5.4p.2 |
| Problem: Motif and Athena with XIM: Typing 3-byte |
| <multibyte><multibyte><space> doesn't work correctly with Ami XIM. |
| Solution: Avoid using key_sym XK_VoidSymbol. (Nam) |
| Files: src/multbyte.c, src/gui_x11.c |
| |
| Patch 5.4p.4 |
| Problem: Win32 GUI: The scrollbar values were reduced for a file with more |
| than 32767 lines. But this info was kept global for all |
| scrollbars, causing a mixup between the windows. |
| Using the down arrow of a scrollbar in a large file didn't work. |
| Because of round-off errors there is no scroll at all. |
| Solution: Give each scrollbar its own scroll_shift field. When the down |
| arrow is used, scroll several lines. |
| Files: src/gui.h, src/gui_w32.c |
| |
| Patch 5.4p.5 |
| Problem: When changing buffers in a BufDelete autocommand, there could be |
| ml_line errors and/or a crash. (Schandl) Was caused by deleting |
| the current buffer. |
| Solution: When the buffer to be deleted unexpectedly becomes the current |
| buffer, don't delete it. |
| Also added a check for this in test13. |
| Files: src/buffer.c, src/testdir/test13.in, src/testdir/test13.ok |
| |
| Patch 5.4p.7 |
| Problem: Win32 GUI: When using 'mousemodel' set to "popup_setpos" and |
| clicking the right mouse button outside of the selected area, the |
| selected area wasn't removed until the popup menu has gone. |
| (Aaron) |
| Solution: Set the cursor and update the display before showing the popup |
| menu. |
| Files: src/normal.c |
| |
| Patch 5.4p.8 |
| Problem: The generated bugreport didn't contain information about |
| $VIMRUNTIME and whether runtime files actually exist. |
| Solution: Added a few checks to the bugreport script. |
| Files: runtime/bugreport.vim |
| |
| Patch 5.4p.9 |
| Problem: The windows install.exe created a wrong entry in the popup menu. |
| The "%1" was "". The full directory was included, even when the |
| executable had been moved elsewhere. (Ott) |
| Solution: Double the '%' to get one from printf. Only include the path to |
| gvim.exe when it wasn't moved and it's not in $PATH. |
| Files: src/dosinst.c |
| |
| Patch 5.4p.10 |
| Problem: Win32: On top of 5.4p.9: The "Edit with Vim" entry sometimes used |
| a short file name for a directory. |
| Solution: Change the "%1" to "%L" in the registry entry. |
| Files: src/dosinst.c |
| |
| Patch 5.4p.11 |
| Problem: Motif, Athena and GTK: When closing the GUI window when there is a |
| changed buffer, there was only an error message and Vim would not |
| exit. |
| Solution: Put up a dialog, like for ":confirm qa". Uses the code that was |
| already used for MS-Windows. |
| Files: src/gui.c, src/gui_w32.c |
| |
| Patch 5.4p.12 |
| Problem: Win32: Trying to expand a string that is longer than 256 |
| characters could cause a crash. (Steed) |
| Solution: For the buffer in win32_expandpath() don't use a fixed size array, |
| allocate it. |
| Files: src/os_win32.c |
| |
| MSDOS: Added "-Wall" to Makefile.djg compile flags. Function prototypes for |
| fname_case() and mch_update_cursor() were missing. "fd" was unused in |
| mf_sync(). "puiLocation" was unused in myputch(). "newcmd" unused in |
| mch_call_shell() for DJGPP version. |
| |
| ============================================================================== |
| VERSION 5.5 *version-5.5* |
| |
| Version 5.5 is a bug-fix version of 5.4. |
| |
| |
| Changed *changed-5.5* |
| ------- |
| |
| The DJGPP version is now compiled with "-O2" instead of "-O4" to reduce the |
| size of the executables. |
| |
| Moved the src/STYLE file to runtime/doc/develop.txt. Added the design goals |
| to it. |
| |
| 'backspace' is now a string option. See patch 5.4.15. |
| |
| |
| Added *added-5.5* |
| ----- |
| |
| Included Exuberant Ctags version 3.3. (Darren Hiebert) |
| |
| In runtime/mswin.vim, map CTRL-Q to CTRL-V, so that CTRL-Q can be used |
| everywhere to do what CTRL-V used to do. |
| |
| Support for decompression of bzip2 files in vimrc_example.vim. |
| |
| When a patch is included, the patch number is entered in a table in version.c. |
| This allows skipping a patch without breaking a next one. |
| |
| Support for mouse scroll wheel in X11. See patch 5.5a.14. |
| |
| line2byte() can be used to get the size of the buffer. See patch 5.4.35. |
| |
| The CTRL-R CTRL-O r and CTRL-R CTRL-P r commands in Insert mode are used to |
| insert a register literally. See patch 5.4.48. |
| |
| Uninstall program for MS-Windows. To be able to remove the registry entries |
| for "Edit with Vim". It is registered to be run from the "Add/Remove |
| programs" application. See patch 5.4.x7. |
| |
| |
| Fixed *fixed-5.5* |
| ----- |
| |
| When using vimrc_example.vim: An error message when the cursor is on a line |
| higher than the number of lines in the compressed file. Move the autocommand |
| for jumping to the last known cursor position to after the decompressing |
| autocommands. |
| |
| ":mkexrc" and ":mksession" wrote the current value of 'textmode'. That may |
| mark a file as modified, which causes problems. This is a buffer-specific |
| setting, it should not affect all files. |
| |
| "vim --version" wrote two empty lines. |
| |
| Unix: The alarm signal could kill Vim. It is generated by the Perl alarm() |
| function. Ignore SIGALRM. |
| |
| Win32 GUI: Toolbar still had the yellow bitmap for running a Vim script. |
| |
| BeOS: "tmo" must be bigtime_t, instead of double. (Seibert) |
| |
| Patch 5.4.1 |
| Problem: Test11 fails when $GZIP is set to "-v". (Matthew Jackson) |
| Solution: Set $GZIP to an empty string. |
| Files: src/testdir/test11.in |
| |
| Patch 5.4.2 |
| Problem: Typing <Esc> at the crypt key prompt caused a crash. (Kallingal) |
| Solution: Check for a NULL pointer returned from get_crypt_key(). |
| Files: src/fileio.c |
| |
| Patch 5.4.3 |
| Problem: Python: Trying to use the name of an unnamed buffer caused a |
| crash. (Daniel Burrows) |
| Solution: Check for b_fname being a NULL pointer. |
| Files: src/if_python.c |
| |
| Patch 5.4.4 |
| Problem: Win32: When compiled without toolbar, but the 'T' flag is in |
| 'guioptions', there would be an empty space for the toolbar. |
| Solution: Add two #ifdefs where checking for the 'T' flag. (Vince Negri) |
| Files: src/gui.c |
| |
| Patch 5.4.5 |
| Problem: Athena GUI: Using the Buffers.Refresh menu entry caused a crash. |
| Looks like any ":unmenu" command may cause trouble. |
| Solution: Disallow ":unmenu" in the Athena version. Disable the Buffers |
| menu, because the Refresh item would not work. |
| Files: src/menu.c, runtime/menu.vim |
| |
| Patch 5.4.6 |
| Problem: GTK GUI: Using ":gui" in the .gvimrc file caused an error. Only |
| happens when the GUI forks. |
| Solution: Don't fork in a recursive call of gui_start(). |
| Files: src/gui.c |
| |
| Patch 5.4.7 |
| Problem: Typing 'q' at the more prompt for the ATTENTION message causes the |
| file loading to be interrupted. (Will Day) |
| Solution: Reset got_int after showing the ATTENTION message. |
| Files: src/memline.c |
| |
| Patch 5.4.8 |
| Problem: Edit some file, ":he", ":opt": options from help window are shown, |
| but pressing space updates from the other window. (Phillipps) |
| Also: When there are changes in the option-window, ":q!" gives an |
| error message. |
| Solution: Before creating the option-window, go to a non-help window. |
| Use ":bdel!" to delete the buffer. |
| Files: runtime/optwin.vim |
| |
| Patch 5.4.9 |
| Just updates version.h. The real patch has been moved to 5.4.x1. |
| This patch is just to keep the version number correct. |
| |
| Patch 5.4.10 |
| Problem: GTK GUI: When $DISPLAY is invalid, "gvim -f" just exits. It |
| should run in the terminal. |
| Solution: Use gtk_init_check() instead of gtk_init(). |
| Files: src/gui_gtk_x11.c |
| |
| Patch 5.4.11 |
| Problem: When using the 'S' flag in 'cpoptions', 'tabstop' is not copied to |
| the next buffer for some commands, e.g., ":buffer". |
| Solution: When the BCO_NOHELP flag is given to buf_copy_options(), still |
| copy the options used by do_help() when neither the "from" or "to" |
| buffer is a help buffer. |
| Files: src/option.c |
| |
| Patch 5.4.12 |
| Problem: When using 'smartindent', there would be no extra indent if the |
| current line did not have any indent already. (Hanus Adler) |
| Solution: There was a wrongly placed "else", that previously matched with |
| the "if" that set trunc_line. Removed the "else" and added a |
| check for trunc_line to be false. |
| Files: src/misc1.c |
| |
| Patch 5.4.13 |
| Problem: New SGI C compilers need another option for optimisation. |
| Solution: Add a check in configure for "-OPT:Olimit". (Chin A Young) |
| Files: src/configure.in, src/configure |
| |
| Patch 5.4.14 |
| Problem: Motif GUI: When the popup menu is present, a tiny window appears |
| on the desktop for some users. |
| Solution: Set the menu widget ID for a popup menu to 0. (Thomas Koehler) |
| Files: src/gui_motif.c |
| |
| Patch 5.4.15 |
| Problem: Since 'backspace' set to 0 has been made Vi compatible, it is no |
| longer possible to only allow deleting autoindent. |
| Solution: Make 'backspace' a list of parts, to allow each kind of |
| backspacing separately. |
| Files: src/edit.c, src/option.c, src/option.h, src/proto/option.pro, |
| runtime/doc/option.txt, runtime/doc/insert.txt |
| |
| Patch 5.4.16 |
| Problem: Multibyte: Locale zh_TW.Big5 was not checked for in configure. |
| Solution: Add zh_TW.Big5 to configure check. (Chih-Tsun Huang) |
| Files: src/configure.in, src/configure |
| |
| Patch 5.4.17 |
| Problem: GUI: When started from inside gvim with ":!gvim", Vim would not |
| start. ":!gvim -f" works fine. |
| Solution: After forking, wait a moment in the parent process, to give the |
| child a chance to set its process group. |
| Files: src/gui.c |
| |
| Patch 5.4.18 |
| Problem: Python: The clear_history() function also exists in a library. |
| Solution: Rename clear_history() to clear_hist(). |
| Files: src/ex_getln.c, src/eval.c, src/proto/ex_getln.pro |
| |
| Patch 5.4.19 |
| Problem: In a terminal with 25 lines, there is a more prompt after the |
| ATTENTION message. When hitting 'q' here the dialog prompt |
| doesn't appear and file loading is interrupted. (Will Day) |
| Solution: Don't allow quitting the printing of a message for the dialog |
| prompt. Added the msg_noquit_more flag for this. |
| Files: src/message.c |
| |
| Patch 5.4.20 |
| Problem: GTK: When starting gvim, would send escape sequences to the |
| terminal to switch the cursor off and on. |
| Solution: Don't call msg_start() if the GUI is expected to start. |
| Files: src/main.c |
| |
| Patch 5.4.21 |
| Problem: Motif: Toplevel menu ordering was wrong when using tear-off items. |
| Solution: Don't add one to the index for a toplevel menu. |
| Files: src/gui_motif.c |
| |
| Patch 5.4.22 |
| Problem: In Insert mode, <C-Left>, <S-Left>, <C-Right> and <S-Right> didn't |
| update the column used for vertical movement. |
| Solution: Set curwin->w_set_curswant for those commands. |
| Files: src/edit.c |
| |
| Patch 5.4.23 |
| Problem: When a Visual selection is lost to another program, and then the |
| same text is Visually selected again, the clipboard ownership |
| wasn't regained. |
| Solution: Set clipboard.vmode to NUL to force regaining the clipboard. |
| Files: src/normal.c |
| |
| Patch 5.4.24 |
| Problem: Encryption: When using ":r file" while 'key' has already entered, |
| the 'key' option would be messed up. When writing the file it |
| would be encrypted with an unknown key and lost! (Brad Despres) |
| Solution: Don't free cryptkey when it is equal to the 'key' option. |
| Files: src/fileio.c |
| |
| Patch 5.4.25 |
| Problem: When 'cindent' is set, but 'autoindent' isn't, comments are not |
| properly indented when starting a new line. (Mitterand) |
| Solution: When there is a comment leader for the new line, but 'autoindent' |
| isn't set, do C-indenting. |
| Files: src/misc1.c |
| |
| Patch 5.4.26 |
| Problem: Multi-byte: a multi-byte character is never recognized in a file |
| name, causing a backslash before it to be removed on Windows. |
| Solution: Assume that a leading-byte character is a file name character in |
| vim_isfilec(). |
| Files: src/charset.c |
| |
| Patch 5.4.27 |
| Problem: Entries in the PopUp[nvic] menus were added for several modes, but |
| only deleted for the mode they were used for. This resulted in |
| the entry remaining in the PopUp menu. |
| When removing a PopUp[nvic] menu, the name had been truncated, |
| could result in greying-out the whole PopUp menu. |
| Solution: Remove entries for all modes from the PopUp[nvic] menus. Remove |
| the PopUp[nvic] menu entries first, before the name is changed. |
| Files: src/menu.c |
| |
| Patch 5.4.28 |
| Problem: When using a BufWritePre autocommand to change 'fileformat', the |
| new value would not be used for writing the file. |
| Solution: Check 'fileformat' after executing the autocommands instead of |
| before. |
| Files: src/fileio.c |
| |
| Patch 5.4.29 |
| Problem: Athena GUI: When removing the 'g' flag from 'guioptions', using a |
| menu can result in a crash. |
| Solution: Always grey-out menus for Athena, don't hide them. |
| Files: src/menu.c |
| |
| Patch 5.4.30 |
| Problem: BeOS: Suspending Vim with CTRL-Z didn't work (killed Vim). The |
| first character typed after ":sh" goes to Vim, instead of the |
| started shell. |
| Solution: Don't suspend Vim, start a new shell. Kill the async read thread |
| when starting a new shell. It will be restarted later. (Will Day) |
| Files: src/os_unix.c, src/ui.c |
| |
| Patch 5.4.31 |
| Problem: GUI: When 'mousefocus' is set, moving the mouse over where a |
| window boundary was, causes a hit-enter prompt to be finished. |
| (Jeff Walker) |
| Solution: Don't use 'mousefocus' at the hit-enter prompt. Also ignore it |
| for the more prompt and a few other situations. When an operator |
| is pending, abort it first. |
| Files: src/gui.c |
| |
| Patch 5.4.32 |
| Problem: Unix: $LDFLAGS was not passed to configure. |
| Solution: Pass $LDFLAGS to configure just like $CFLAGS. (Jon Miner) |
| Files: src/Makefile |
| |
| Patch 5.4.33 |
| Problem: Unix: After expanding an environment variable with the shell, the |
| next expansion would also use the shell, even though it is not |
| needed. |
| Solution: Reset "recursive" before returning from gen_expand_wildcards(). |
| Files: src/misc1.c |
| |
| Patch 5.4.34 (also see 5.4.x5) |
| Problem: When editing a file, and the file name is relative to a directory |
| above the current directory, the file name was made absolute. |
| (Gregory Margo) |
| Solution: Add an argument to shorten_fnames() which indicates if all file |
| names should be shortened, or only absolute names. In main() only |
| use shorten_fnames() to shorten absolute names. |
| Files: src/ex_docmd.c, src/fileio.c, src/main.c, src/proto/fileio.pro |
| |
| Patch 5.4.35 |
| Problem: There is no function to get the current file size. |
| Solution: Allow using line2byte() with the number of lines in the file plus |
| one. This returns the offset of the line past the end of the |
| file, which is the file size plus one. |
| Files: src/eval.c, runtime/doc/eval.txt |
| |
| Patch 5.4.36 |
| Problem: Comparing strings while ignoring case didn't work correctly for |
| some machines. (Mide Steed) |
| Solution: vim_stricmp() and vim_strnicmp() only returned 0 or 1. Changed |
| them to return -1 when the first argument is smaller. |
| Files: src/misc2.c |
| |
| Patch 5.4.37 (also see 5.4.40 and 5.4.43) |
| Problem: Long strings from the viminfo file are truncated. |
| Solution: When writing a long string to the viminfo file, first write a line |
| with the length, then the string itself in a second line. |
| Files: src/eval.c, src/ex_cmds.c, src/ex_getln.c, src/mark.c, src/ops.c, |
| src/search.c, src/proto/ex_cmds.pro, runtime/syntax/viminfo.vim |
| |
| Patch 5.4.38 |
| Problem: In the option-window, ":set go&" resulted in 'go' being handled |
| like a boolean option. |
| Mappings for <Space> and <CR> were overruled by the option-window. |
| Solution: When the value of an option isn't 0 or 1, don't handle it like a |
| boolean option. |
| Save and restore mappings for <Space> and <CR> when entering and |
| leaving the option-window. |
| Files: runtime/optwin.vim |
| |
| Patch 5.4.39 |
| Problem: When setting a hidden option, spaces before the equal sign were |
| not skipped and cause an error message. E.g., ":set csprg =cmd". |
| Solution: When skipping over a hidden option, check for a following "=val" |
| and skip it too. |
| Files: src/option.c |
| |
| Patch 5.4.40 (depends on 5.4.37) |
| Problem: Compiler error for "atol(p + 1)". (Axel Kielhorn) |
| Solution: Add a typecast: "atol((char *)p + 1)". |
| Files: src/ex_cmds.c |
| |
| Patch 5.4.41 |
| Problem: Some commands that were not included would give an error message, |
| even when after "if 0". |
| Solution: Don't give an error message for an unsupported command when not |
| executing the command. |
| Files: src/ex_docmd.c |
| |
| Patch 5.4.42 |
| Problem: ":w" would also cause a truncated message to appear in the message |
| history. |
| Solution: Don't put a kept message in the message history when it starts |
| with "<". |
| Files: src/message.c |
| |
| Patch 5.4.43 (depends on 5.4.37) |
| Problem: Mixing long lines with multiple lines in a register causes errors |
| when writing the viminfo file. (Robinson) |
| Solution: When reading the viminfo file to skip register contents, skip |
| lines that start with "<". |
| Files: src/ops.c |
| |
| Patch 5.4.44 |
| Problem: When 'whichwrap' includes '~', a "~" command that goes on to the |
| next line cannot be properly undone. (Zellner) |
| Solution: Save each line for undo in n_swapchar(). |
| Files: src/normal.c |
| |
| Patch 5.4.45 (also see 5.4.x8) |
| Problem: When expand("$ASDF") fails, there is an error message. |
| Solution: Remove the global expand_interactively. Pass a flag down to skip |
| the error message. |
| Also: expand("$ASDF") returns an empty string if $ASDF isn't set. |
| Previously it returned "$ASDF" when 'shell' is "sh". |
| Also: system() doesn't print an error when the command returns an |
| error code. |
| Files: many |
| |
| Patch 5.4.46 |
| Problem: Backspacing did not always use 'softtabstop' after hitting <CR>, |
| inserting a register, moving the cursor, etc. |
| Solution: Reset inserted_space much more often in edit(). |
| Files: src/edit.c |
| |
| Patch 5.4.47 |
| Problem: When executing BufWritePre or BufWritePost autocommands for a |
| hidden buffer, the cursor could be moved to a non-existing |
| position. (Vince Negri) |
| Solution: Save and restore the cursor and topline for the current window |
| when it is going to be used to execute autocommands for a hidden |
| buffer. Use an existing window for the buffer when it's not |
| hidden. |
| Files: src/fileio.c |
| |
| Patch 5.4.48 |
| Problem: A paste with the mouse in Insert mode was not repeated exactly the |
| same with ".". For example, when 'autoindent' is set and pasting |
| text with leading indent. (Perry) |
| Solution: Add the CTRL-R CTRL-O r and CTRL-R CTRL-P r commands in Insert |
| mode, which insert the contents of a register literally. |
| Files: src/edit.c, src/normal.c, runtime/doc/insert.txt |
| |
| Patch 5.4.49 |
| Problem: When pasting text with [ <MiddleMouse>, the cursor could end up |
| after the last character of the line. |
| Solution: Correct the cursor position for the change in indent. |
| Files: src/ops.c |
| |
| Patch 5.4.x1 (note: Replaces patch 5.4.9) |
| Problem: Win32 GUI: menu hints were never used, because WANT_MENU is not |
| defined until vim.h is included. |
| Solution: Move the #ifdef WANT_MENU from where MENUHINTS is defined to where |
| it is used. |
| Files: src/gui_w32.c |
| |
| Patch 5.4.x2 |
| Problem: BeOS: When pasting text, one character was moved to the end. |
| Solution: Re-enable the BeOS code in fill_input_buf(), and fix timing out |
| with acquire_sem_etc(). (Will Day) |
| Files: src/os_beos.c, src/ui.c |
| |
| Patch 5.4.x3 |
| Problem: Win32 GUI: When dropping a directory on a running gvim it crashes. |
| Solution: Avoid using a NULL file name. Also display a message to indicate |
| that the current directory was changed. |
| Files: src/gui_w32.c |
| |
| Patch 5.4.x4 |
| Problem: Win32 GUI: Removing an item from the popup menu doesn't work. |
| Solution: Don't remove the item from the menubar, but from the parent popup |
| menu. |
| Files: src/gui_w32.c |
| |
| Patch 5.4.x5 (addition to 5.4.34) |
| Files: src/gui_w32.c |
| |
| Patch 5.4.x6 |
| Problem: Win32: Expanding (dir)name starting with a dot doesn't work. |
| (McCormack) Only when there is a path before it. |
| Solution: Fix the check, done before expansion, if the file name pattern |
| starts with a dot. |
| Files: src/os_win32.c |
| |
| Patch 5.4.x7 |
| Problem: Win32 GUI: Removing "Edit with Vim" from registry is difficult. |
| Solution: Add uninstall program to remove the registry keys. It is installed |
| in the "Add/Remove programs" list for ease of use. |
| Also: don't set $VIM when the executable is with the runtime files. |
| Also: Add a text file with a step-by-step description of how to |
| uninstall Vim for DOS and Windows. |
| Files: src/uninstal.c, src/dosinst.c, src/Makefile.w32, uninstal.txt |
| |
| Patch 5.4.x8 (addition to 5.4.45) |
| Files: many |
| |
| Patch 5.4.x9 |
| Problem: Win32 GUI: After executing an external command, focus is not |
| always regained (when using focus-follows-mouse). |
| Solution: Add SetFocus() in mch_system(). (Mike Steed) |
| Files: src/os_win32.c |
| |
| |
| Patch 5.5a.1 |
| Problem: ":let @* = @:" did not work. The text was not put on the |
| I clipboard. (Fisher) |
| Solution: Own the clipboard and put the text on it. |
| Files: src/ops.c |
| |
| Patch 5.5a.2 |
| Problem: append() did not mark the buffer modified. Marks below the |
| new line were not adjusted. |
| Solution: Fix the f_append() function. |
| Files: src/eval.c |
| |
| Patch 5.5a.3 |
| Problem: Editing compressed ".gz" files doesn't work on non-Unix systems, |
| because there is no "mv" command. |
| Solution: Add the rename() function and use it instead of ":!mv". |
| Also: Disable the automatic jump to the last position, because it |
| changes the jumplist. |
| Files: src/eval.c, runtime/doc/eval.txt, runtime/vimrc_example.vim |
| |
| Patch 5.5a.4 |
| Problem: When using whole-line completion in insert mode while the cursor |
| is in the indent, get "out of memory" error. (Stekrt) |
| Solution: Don't allocate a negative amount of memory in ins_complete(). |
| Files: src/edit.c |
| |
| Patch 5.5a.5 |
| Problem: Win32: The 'path' option can hold only up to 256 characters, |
| because _MAX_PATH is 256. (Robert Webb) |
| Solution: Use a fixed path length of 1024. |
| Files: src/os_win32.h |
| |
| Patch 5.5a.6 |
| Problem: Compiling with gcc on Win32, using the Unix Makefile, didn't work. |
| Solution: Add $(SUFFIX) to all places where an executable is used. Also |
| pass it to ctags. (Reynolds) |
| Files: src/Makefile |
| |
| Patch 5.5a.7 |
| Problem: When using "cat | vim -" in an xterm, the xterm version reply |
| would end up in the file. |
| Solution: Read the file from stdin before switching the terminal to RAW |
| mode. Should also avoid problems with programs that use a |
| specific terminal setting. |
| Also: when using the GUI, print "Reading from stdin..." in the GUI |
| window, to give a hint why it doesn't do anything. |
| Files: src/main.c, src/fileio.c |
| |
| Patch 5.5a.8 |
| Problem: On multi-threaded Solaris, suspending doesn't work. |
| Solution: Call pause() when the SIGCONT signal was not received after |
| sending the SIGTSTP signal. (Nagano) |
| Files: src/os_unix.c |
| |
| Patch 5.5a.9 |
| Problem: 'winaltkeys' could be set to an empty argument, which is illegal. |
| Solution: Give an error message when doing ":set winaltkeys=". |
| Files: src/option.c |
| |
| Patch 5.5a.10 |
| Problem: Win32 console: Using ALTGR on a German keyboard to produce "}" |
| doesn't work, because the 8th bit is set when ALT is pressed. |
| Solution: Don't set the 8th bit when ALT and CTRL are used. (Leipert) |
| Files: src/os_win32.c |
| |
| Patch 5.5a.11 |
| Problem: Tcl: Configure always uses tclsh8.0. |
| Also: Loading a library doesn't work. |
| Solution: Add "--with-tclsh" configure argument to allow specifying another |
| name for the tcl shell. |
| Call Tcl_Init() in tclinit() to make loading libraries work. |
| (Johannes Zellner) |
| Files: src/configure.in, src/configure, src/if_tcl.c |
| |
| Patch 5.5a.12 |
| Problem: The "user_commands" feature is called "user-commands". |
| Solution: Replace "user-commands" with "user_commands". (Kim Sung-bom) |
| Keep "user-commands" for the has() function, to remain backwards |
| compatible with 5.4. |
| Files: src/eval.c, src/version.c |
| |
| Patch 5.5a.13 |
| Problem: OS/2: When $HOME is not defined, "C:/" is used for the viminfo |
| file. That is very wrong when OS/2 is on another partition. |
| Solution: Use $VIM for the viminfo file when it is defined, like for MSDOS. |
| Also: Makefile.os2 didn't depend on os_unix.h. |
| Files: src/os_unix.h, src/Makefile.os2 |
| |
| Patch 5.5a.14 |
| Problem: Athena, Motif and GTK: The Mouse scroll wheel doesn't work. |
| Solution: Interpret a click of the wheel as a key press of the <MouseDown> |
| or <MouseUp> keys. Default behavior is to scroll three lines, or |
| a full page when Shift is used. |
| Files: src/edit.c, src/ex_getln.c, src/gui.c, src/gui_gtk_x11.c, |
| src/gui_x11.c, src/keymap.h, src/message.c, src/misc1.c, |
| src/misc2.c, src/normal.c, src/proto/normal.pro, src/vim.h, |
| runtime/doc/scroll.txt |
| |
| Patch 5.5a.15 |
| Problem: Using CTRL-A in Insert mode doesn't work correctly when the insert |
| started with the <Insert> key. (Andreas Rohrschneider) |
| Solution: Replace <Insert> with "i" before setting up the redo buffer. |
| Files: src/normal.c |
| |
| Patch 5.5a.16 |
| Problem: VMS: GUI does not compile and run. |
| Solution: Various fixes. (Zoltan Arpadffy) |
| Moved functions from os_unix.c to ui.c, so that VMS can use them |
| too: open_app_context(), x11_setup_atoms() and clip_x11* functions. |
| Made xterm_dpy global, it's now used by ui.c and os_unix.c. |
| Use gethostname() always, sys_hostname doesn't exist. |
| Files: src/globals.h, src/gui_x11.c, src/os_vms.mms, src/os_unix.c, |
| src/os_vms.c, src/ui.c, src/proto/os_unix.pro, src/proto/ui.pro |
| |
| Renamed AdjustCursorForMultiByteCharacter() to AdjustCursorForMultiByteChar() |
| to avoid symbol length limit of 31 characters. (Steve P. Wall) |
| |
| Patch 5.5b.1 |
| Problem: SASC complains about dead assignments and implicit type casts. |
| Solution: Removed the dead assignments. Added explicit type casts. |
| Files: src/buffer.c, src/edit.c, src/eval.c, src/ex_cmds.c, |
| src/ex_getln.c, src/fileio.c, src/getchar.c, src/memline.c, |
| src/menu.c, src/misc1.c, src/normal.c, src/ops.c, src/quickfix.c, |
| src/screen.c |
| |
| Patch 5.5b.2 |
| Problem: When using "CTRL-O O" in Insert mode, hit <Esc> and then "o" in |
| another line truncates that line. (Devin Weaver) |
| Solution: When using a command that starts Insert mode from CTRL-O, reset |
| "restart_edit" first. This avoids that edit() is called with a |
| mix of starting a new edit command and restarting a previous one. |
| Files: src/normal.c |
| |
| ============================================================================== |
| VERSION 5.6 *version-5.6* |
| |
| Version 5.6 is a bug-fix version of 5.5. |
| |
| |
| Changed *changed-5.6* |
| ------- |
| |
| Small changes to OleVim files. (Christian Schaller) |
| |
| Inserted "/**/" between patch numbers in src/version.c. This allows for one |
| line of context, which some versions of patch need. |
| |
| Reordered the Syntax menu to avoid long submenus. Removed keyboard shortcuts |
| for alphabetical items to avoid a clash with fixed items. |
| |
| |
| Added *added-5.6* |
| ----- |
| |
| Included Exuberant Ctags version 3.4. (Darren Hiebert) |
| |
| OpenWithVim in Python. (Christian Schaller) |
| |
| Win32 GUI: gvimext.dll, for the context menu "Edit with Vim" entry. Avoids |
| the reported problems with the MS Office taskbar. Now it's a Shell Extension. |
| (Tianmiao Hu) |
| |
| New syntax files: |
| abel Abel (John Cook) |
| aml Arc Macro Language (Nikki Knuit) |
| apachestyle Apache-style config file (Christian Hammers) |
| cf Cold Fusion (Jeff Lanzarotta) |
| ctrlh files with CTRL-H sequences (Bram Moolenaar) |
| cupl CUPL (John Cook) |
| cuplsim CUPL simulation (John Cook) |
| erlang Erlang (Kresimir Marzic) |
| gedcom Gedcom (Paul Johnson) |
| icon Icon (Wendell Turner) |
| ist MakeIndex style (Peter Meszaros) |
| jsp Java Server Pages (Rafael Garcia-Suarez) |
| rcslog Rcslog (Joe Karthauser) |
| remind Remind (Davide Alberani) |
| sqr Structured Query Report Writer (Paul Moore) |
| tads TADS (Amir Karger) |
| texinfo Texinfo (Sandor Kopanyi) |
| xpm2 X Pixmap v2 (Steve Wall) |
| |
| The 'C' flag in 'cpoptions' can be used to switch off concatenation for |
| sourced lines. See patch 5.5.013 below. |line-continuation| |
| |
| "excludenl" argument for the ":syntax" command. See patch 5.5.032 below. |
| |:syn-excludenl| |
| |
| Implemented |z+| and |z^| commands. See patch 5.5.050 below. |
| |
| Vim logo in Corel Draw format. Can be scaled to any resolution. |
| |
| |
| Fixed *fixed-5.6* |
| ----- |
| |
| Using this mapping in Select mode, terminated completion: |
| ":vnoremap <C-N> <Esc>a<C-N>" (Benji Fisher) |
| Ignore K_SELECT in ins_compl_prep(). |
| |
| VMS (Zoltan Arpadffy, David Elins): |
| - ioctl() in pty.c caused trouble, #ifndef VMS added. |
| - Cut & paste mismatch corrected. |
| - Popup menu line crash corrected. (Patch 5.5.047) |
| - Motif directories during open and save as corrected. |
| - Handle full file names with version numbers. (Patch 5.5.046) |
| - Directory handling (CD command etc.) |
| - Corrected file name conversion VMS to Unix and v.v. |
| - Recovery was not working. |
| - Terminal and signal handling was outdated compared to os_unix.c. |
| - Improved os_vms.txt. |
| |
| Configure used fprintf() instead of printf() to check for __DATE__ and |
| __TIME__. (John Card II) |
| |
| BeOS: Adjust computing the char_height and char_ascent. Round them up |
| separately, avoids redrawing artifacts. (Mike Steed) |
| |
| Fix a few multi-byte problems in menu_name_skip(), set_reg_ic(), searchc() and |
| findmatchlimit(). (Taro Muraoka) |
| |
| GTK GUI: |
| - With GTK 1.2.5 and later the scrollbars were not redrawn correctly. |
| - Adjusted the gtk_form_draw() function. |
| - SNiFF connection didn't work. |
| - 'mousefocus' was not working. (Dalecki) |
| - Some keys were not working with modifiers: Shift-Tab, Ctrl-Space and CTRL-@. |
| |
| |
| Patch 5.5.001 |
| Problem: Configure in the top directory did not pass on an argument with a |
| space correctly. For example "./configure --previs="/My home". |
| (Stephane Chazelas) |
| Solution: Use '"$@"' instead of '$*' to pass on the arguments. |
| Files: configure |
| |
| Patch 5.5.002 |
| Problem: Compilation error for using "fds[] & POLLIN". (Jeff Walker) |
| Solution: Use "fds[].revents & POLLIN". |
| Files: src/os_unix.c |
| |
| Patch 5.5.003 |
| Problem: The autoconf check for sizeof(int) is wrong on machines where |
| sizeof(size_t) != sizeof(int). |
| Solution: Use our own configure check. Also fixes the warning for |
| cross-compiling. |
| Files: src/configure.in, src/configure |
| |
| Patch 5.5.004 |
| Problem: On Unix it's not possible to interrupt ":sleep 100". |
| Solution: Switch terminal to cooked mode while asleep, to allow a SIGINT to |
| wake us up. But switch off echo, added TMODE_SLEEP. |
| Files: src/term.h, src/os_unix.c |
| |
| Patch 5.5.005 |
| Problem: When using <f-args> with a user command, an empty argument to the |
| command resulted in one empty string, while no string was |
| expected. |
| Solution: Catch an empty argument and pass no argument to the function. |
| (Paul Moore) |
| Files: src/ex_docmd.c |
| |
| Patch 5.5.006 |
| Problem: Python: When platform-dependent files are in another directory |
| than the platform-independent files it doesn't work. |
| Solution: Also check the executable directory, and add it to CFLAGS. (Tessa |
| Lau) |
| Files: src/configure.in, src/configure |
| |
| Patch 5.5.007 (extra) |
| Problem: Win32 OLE: Occasional crash when exiting while still being used |
| via OLE. |
| Solution: Move OleUninitialize() to before deleting the application object. |
| (Vince Negri) |
| Files: src/if_ole.cpp |
| |
| Patch 5.5.008 |
| Problem: 10000@@ takes a long time and cannot be interrupted. |
| Solution: Check for CTRL-C typed while in the loop to push the register. |
| Files: src/normal.c |
| |
| Patch 5.5.009 |
| Problem: Recent Sequent machines don't link with "-linet". (Kurtis Rader) |
| Solution: Remove configure check for Sequent. |
| Files: src/configure.in, src/configure |
| |
| Patch 5.5.010 |
| Problem: Ctags freed a memory block twice when exiting. When out of |
| memory, a misleading error message was given. |
| Solution: Update to ctags 3.3.2. Also fixes a few other problems. (Darren |
| Hiebert) |
| Files: src/ctags/* |
| |
| Patch 5.5.011 |
| Problem: After "CTRL-V s", the cursor jumps back to the start, while all |
| other operators leave the cursor on the last changed character. |
| (Xiangjiang Ma) |
| Solution: Position cursor on last changed character, if possible. |
| Files: src/ops.c |
| |
| Patch 5.5.012 |
| Problem: Using CTRL-] in Visual mode doesn't work when the text includes a |
| space (just where it's useful). (Stefan Bittner) |
| Solution: Don't escape special characters in a tag name with a backslash. |
| Files: src/normal.c |
| |
| Patch 5.5.013 |
| Problem: The ":append" and ":insert" commands allow using a leading |
| backslash in a line. The ":source" command concatenates those |
| lines. (Heinlein) |
| Solution: Add the 'C' flag in 'cpoptions' to switch off concatenation. |
| Files: src/ex_docmd.c, src/option.h, runtime/doc/options.txt, |
| runtime/filetype.vim, runtime/scripts.vim |
| |
| Patch 5.5.014 |
| Problem: When executing a register with ":@", the ":append" command would |
| get text lines with a ':' prepended. (Heinlein) |
| Solution: Remove the ':' characters. |
| Files: src/ex_docmd.c, src/ex_getln.c, src/globals.h |
| |
| Patch 5.5.015 |
| Problem: When using ":g/pat/p", it's hard to see where the output starts, |
| the ":g" command is overwritten. Vi keeps the ":g" command. |
| Solution: Keep the ":g" command, but allow overwriting it with the report |
| for the number of changes. |
| Files: src/ex_cmds.c |
| |
| Patch 5.5.016 (extra) |
| Problem: Win32: Using regedit to install Vim in the popup menu requires the |
| user to confirm this in a dialog. |
| Solution: Use "regedit /s" to avoid the dialog |
| Files: src/dosinst.c |
| |
| Patch 5.5.017 |
| Problem: If an error occurs when closing the current window, Vim could get |
| stuck in the error handling. |
| Solution: Don't set curwin to NULL when closing the current window. |
| Files: src/window.c |
| |
| Patch 5.5.018 |
| Problem: Absolute paths in shell scripts do not always work. |
| Solution: Use /usr/bin/env to find out the path. |
| Files: runtime/doc/vim2html.pl, runtime/tools/efm_filter.pl, |
| runtime/tools/shtags.pl |
| |
| Patch 5.5.019 |
| Problem: A function call in 'statusline' stops using ":q" twice from |
| exiting, when the last argument hasn't been edited. |
| Solution: Don't decrement quitmore when executing a function. (Madsen) |
| Files: src/ex_docmd.c |
| |
| Patch 5.5.020 |
| Problem: When the output of CTRL-D completion in the commandline goes all |
| the way to the last column, there is an empty line. |
| Solution: Don't add a newline when the cursor wrapped already. (Madsen) |
| Files: src/ex_getln.c |
| |
| Patch 5.5.021 |
| Problem: When checking if a file name in the tags file is relative, |
| environment variables were not expanded. |
| Solution: Expand the file name before checking if it is relative. (Madsen) |
| Files: src/tag.c |
| |
| Patch 5.5.022 |
| Problem: When setting or resetting 'paste' the ruler wasn't updated. |
| Solution: Update the status lines when 'ruler' changes because of 'paste'. |
| Files: src/option.c |
| |
| Patch 5.5.023 |
| Problem: When editing a new file and autocommands change the cursor |
| position, the cursor was moved back to the first non-white, unless |
| 'startofline' was reset. |
| Solution: Keep the new column, just like the line number. |
| Files: src/ex_cmds.c |
| |
| Patch 5.5.024 (extra) |
| Problem: Win32 GUI: When using confirm() to put up a dialog without a |
| default button, the dialog would not have keyboard focus. |
| (Krishna) |
| Solution: Always set focus to the dialog window. Only set focus to a button |
| when a default one is specified. |
| Files: src/gui_w32.c |
| |
| Patch 5.5.025 |
| Problem: When using "keepend" in a syntax region, a contained match that |
| includes the end-of-line could still force that region to |
| continue, if there is another contained match in between. |
| Solution: Check the keepend_level in check_state_ends(). |
| Files: src/syntax.c |
| |
| Patch 5.5.026 |
| Problem: When starting Vim in a white-on-black xterm, with 'bg' set to |
| "dark", and then starting the GUI with ":gui", setting 'bg' to |
| "light" in the gvimrc, the highlighting isn't set. (Tsjokwing) |
| Solution: Set the highlighting when 'bg' is changed in the gvimrc, even |
| though full_screen isn't set. |
| Files: src/option.c |
| |
| Patch 5.5.027 |
| Problem: Unix: os_unix.c doesn't compile when XTERM_CLIP is used but |
| WANT_TITLE isn't. (Barnum) |
| Solution: Move a few functions that are used by the X11 title and clipboard |
| and put another "#if" around it. |
| Files: src/os_unix.c |
| |
| Patch 5.5.028 (extra) |
| Problem: Win32 GUI: When a file is dropped on Win32 gvim while at the ":" |
| prompt, the file is edited but the command line is actually still |
| there, the cursor goes back to command line on the next command. |
| (Krishna) |
| Solution: When dropping a file or directory on gvim while at the ":" prompt, |
| insert the name of the file/directory. Allows using the |
| file/directory name for any Ex command. |
| Files: src/gui_w32.c |
| |
| Patch 5.5.029 |
| Problem: "das" at the end of the file didn't delete the last character of |
| the sentence. |
| Solution: When there is no character after the sentence, make the operation |
| inclusive in current_sent(). |
| Files: src/search.c |
| |
| Patch 5.5.030 |
| Problem: Unix: in os_unix.c, "term_str" is used, which is also defined in |
| vim.h as a macro. (wuxin) |
| Solution: Renamed "term_str" to "buf" in do_xterm_trace(). |
| Files: src/os_unix.c |
| |
| Patch 5.5.031 (extra) |
| Problem: Win32 GUI: When exiting Windows, gvim will leave swap files behind |
| and will be killed ungracefully. (Krishna) |
| Solution: Catch the WM_QUERYENDSESSION and WM_ENDSESSION messages and try to |
| exit gracefully. Allow the user to cancel the shutdown if there |
| is a changed buffer. |
| Files: src/gui_w32.c |
| |
| Patch 5.5.032 |
| Problem: Patch 5.5.025 wasn't right. And C highlighting was still not |
| working correctly for a #define. |
| Solution: Added "excludenl" argument to ":syntax", to be able not to extend |
| a containing item when there is a match with the end-of-line. |
| Files: src/syntax.c, runtime/doc/syntax.txt, runtime/syntax/c.vim |
| |
| Patch 5.5.033 |
| Problem: When reading from stdin, a long line in viminfo would mess up the |
| file message. readfile() uses IObuff for keep_msg, which could be |
| overwritten by anyone. |
| Solution: Copy the message from IObuff to msg_buf and set keep_msg to that. |
| Also change vim_fgets() to not use IObuff any longer. |
| Files: src/fileio.c |
| |
| Patch 5.5.034 |
| Problem: "gvim -rv" caused a crash. Using 't_Co' before it's set. |
| Solution: Don't try to initialize the highlighting before it has been |
| initialized from main(). |
| Files: src/syntax.c |
| |
| Patch 5.5.035 |
| Problem: GTK with XIM: Resizing with status area was messy, and |
| ":set guioptions+=b" didn't work. |
| Solution: Make status area a separate widget, but not a separate window. |
| (Chi-Deok Hwang) |
| Files: src/gui_gtk_f.c, src/gui_gtk_x11.c, src/multbyte.c |
| |
| Patch 5.5.036 |
| Problem: The GZIP_read() function in $VIMRUNTIME/vimrc_example.vim to |
| uncompress a file did not do detection for 'fileformat'. This is |
| because the filtering is done with 'binary' set. |
| Solution: Split the filtering into separate write, filter and read commands. |
| Files: runtime/vimrc_example.vim |
| |
| Patch 5.5.037 |
| Problem: The "U" command didn't mark the buffer as changed. (McCormack) |
| Solution: Set the 'modified' flag when using "U". |
| Files: src/undo.c |
| |
| Patch 5.5.038 |
| Problem: When typing a long ":" command, so that the screen scrolls up, |
| causes the hit-enter prompt, even though the user just typed |
| return to execute the command. |
| Solution: Reset need_wait_return if (part of) the command was typed in |
| getcmdline(). |
| Files: src/ex_getln.c |
| |
| Patch 5.5.039 |
| Problem: When using a custom status line, "%a" (file # of #) reports the |
| index of the current window for all windows. |
| Solution: Pass a window pointer to append_arg_number(), and pass the window |
| being updated from build_stl_str_hl(). (Stephen P. Wall) |
| Files: src/buffer.c, src/screen.c, src/proto/buffer.pro |
| |
| Patch 5.5.040 |
| Problem: Multi-byte: When there is some error in xim_real_init(), it can |
| close XIM and return. After this there can be a segv. |
| Solution: Test "xic" for being non-NULL, don't set "xim" to NULL. Also try |
| to find more matches for supported styles. (Sung-Hyun Nam) |
| Files: src/multbyte.c |
| |
| Patch 5.5.041 |
| Problem: X11 GUI: CTRL-_ requires the SHIFT key only on some machines. |
| Solution: Translate CTRL-- to CTRL-_. (Robert Webb) |
| Files: src/gui_x11.c |
| |
| Patch 5.5.042 |
| Problem: X11 GUI: keys with ALT were assumed to be used for the menu, even |
| when the menu has been disabled by removing 'm' from 'guioptions'. |
| Solution: Ignore keys with ALT only when gui.menu_is_active is set. (Raf) |
| Files: src/gui_x11.c |
| |
| Patch 5.5.043 |
| Problem: GTK: Handling of fontset fonts was not right when 'guifontset' |
| contains exactly 14 times '-'. |
| Solution: Avoid setting fonts when working with a fontset. (Sung-Hyun Nam) |
| Files: src/gui_gtk_x11.c |
| |
| Patch 5.5.044 |
| Problem: pltags.pl contains an absolute path "/usr/local/bin/perl". That |
| might not work everywhere. |
| Solution: Use "/usr/bin/env perl" instead. |
| Files: runtime/tools/pltags.pl |
| |
| Patch 5.5.045 |
| Problem: Using "this_session" variable does not work, requires preceding it |
| with "v:". Default filename for ":mksession" isn't mentioned |
| in the docs. (Fisher) |
| Solution: Support using "this_session" to be backwards compatible. |
| Files: src/eval.c, runtime/doc/options.txt |
| |
| Patch 5.5.046 (extra) |
| Problem: VMS: problems with path and filename. |
| Solution: Truncate file name at last ';', etc. (Zoltan Arpadffy) |
| Files: src/buffer.c, src/fileio.c, src/gui_motif.c, src/os_vms.c, |
| src/proto/os_vms.pro |
| |
| Patch 5.5.047 |
| Problem: VMS: Crash when using the popup menu |
| Solution: Turn the #define MENU_MODE_CHARS into an array. (Arpadffy) |
| Files: src/structs.h, src/menu.c |
| |
| Patch 5.5.048 |
| Problem: HP-UX 11: Compiling doesn't work, because both string.h and |
| strings.h are included. (Squassabia) |
| Solution: The configure test for including both string.h and strings.h |
| must include <Xm/Xm.h> first, because it causes problems. |
| Files: src/configure.in, src/configure, src/config.h.in |
| |
| Patch 5.5.049 |
| Problem: Unix: When installing Vim, the protection bits of files might be |
| influenced by the umask. |
| Solution: Add $(FILEMOD) to Makefile. (Shetye) |
| Files: src/Makefile |
| |
| Patch 5.5.050 |
| Problem: "z+" and "z^" commands are missing. |
| Solution: Implemented "z+" and "z^". |
| Files: src/normal.c, runtime/doc/scroll.txt, runtime/doc/index.txt |
| |
| Patch 5.5.051 |
| Problem: Several Unix systems have a problem with the optimization limits |
| check in configure. |
| Solution: Removed the configure check, let the user add it manually in |
| Makefile or the environment. |
| Files: src/configure.in, src/configure, src/Makefile |
| |
| Patch 5.5.052 |
| Problem: Crash when using a cursor key at the ATTENTION prompt. (Alberani) |
| Solution: Ignore special keys at the console dialog. Also ignore characters |
| > 255 for other uses of tolower() and toupper(). |
| Files: src/menu.c, src/message.c, src/misc2.c |
| |
| Patch 5.5.053 |
| Problem: Indenting is wrong after a function when 'cino' has "fs". Another |
| problem when 'cino' has "{s". |
| Solution: Put line after closing "}" of a function at the left margin. |
| Apply ind_open_extra in the right way after a '{'. |
| Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok |
| |
| Patch 5.5.054 |
| Problem: Unix: ":e #" doesn't work if the alternate file name contains a |
| space or backslash. (Hudacek) |
| Solution: When replacing "#", "%" or other items that stand for a file name, |
| prepend a backslash before special characters. |
| Files: src/ex_docmd.c |
| |
| Patch 5.5.055 |
| Problem: Using "<C-V>$r-" in blockwise Visual mode replaces one character |
| beyond the end of the line. (Zivkov) |
| Solution: Only replace existing characters. |
| Files: src/ops.c |
| |
| Patch 5.5.056 |
| Problem: After "z20<CR>" messages were printed at the old command line |
| position once. (Veselinovic) |
| Solution: Set msg_row and msg_col when changing cmdline_row in |
| win_setheight(). |
| Files: src/window.c |
| |
| Patch 5.5.057 |
| Problem: After "S<Esc>" it should be possible to restore the line with "U". |
| (Veselinovic) |
| Solution: Don't call u_clearline() in op_delete() when changing only one |
| line. |
| Files: src/ops.c |
| |
| Patch 5.5.058 |
| Problem: Using a long search pattern and then "n" causes the hit-enter |
| prompt. (Krishna) |
| Solution: Truncate the echoed pattern, like other messages. Moved code for |
| truncating from msg_attr() to msg_strtrunc(). |
| Files: src/message.c, src/proto/message.pro, src/search.c |
| |
| Patch 5.5.059 |
| Problem: GTK GUI: When $term is invalid, using "gvim" gives an error |
| message, even though $term isn't really used. (Robbins) |
| Solution: When the GUI is about to start, skip the error messages for a |
| wrong $term. |
| Files: src/term.c |
| |
| Patch 5.5.060 (extra) |
| Problem: Dos 32 bit: When a directory in 'backupdir' doesn't exist, ":w" |
| causes the file to be renamed to "axlqwqhy.ba~". (Matzdorf) |
| Solution: The code to work around a LFN bug in Windows 95 doesn't handle a |
| non-existing target name correctly. When renaming fails, make |
| sure the file has its original name. Also do this for the Win32 |
| version, although it's unlikely that it runs into this problem. |
| Files: src/os_msdos.c, src/os_win32.c |
| |
| Patch 5.5.061 |
| Problem: When using "\:" in a modeline, the backslash is included in the |
| option value. (Mohsin) |
| Solution: Remove one backslash before the ':' in a modeline. |
| Files: src/buffer.c, runtime/doc/options.txt |
| |
| Patch 5.5.062 (extra) |
| Problem: Win32 console: Temp files are created in the root of the current |
| drive, which may be read-only. (Peterson) |
| Solution: Use the same mechanism of the GUI version: Use $TMP, $TEMP or the |
| current directory. Cleaned up vim_tempname() a bit. |
| Files: src/fileio.c, src/os_win32.h, runtime/doc/os_dos.txt |
| |
| Patch 5.5.063 |
| Problem: When using whole-line completion in Insert mode, 'cindent' is |
| applied, even after changing the indent of the line. |
| Solution: Don't reindent the completed line after inserting/removing indent. |
| (Robert Webb) |
| Files: src/edit.c |
| |
| Patch 5.5.064 |
| Problem: has("sniff") doesn't work correctly. |
| Solution: Return 1 when Vim was compiled with the +sniff feature. (Pruemmer) |
| Files: src/eval.c |
| |
| Patch 5.5.065 |
| Problem: When dropping a file on Vim, the 'shellslash' option is not |
| effective. (Krishna) |
| Solution: Fix the slashes in the dropped file names according to |
| 'shellslash'. |
| Files: src/ex_docmd.c, runtime/doc/options.txt |
| |
| Patch 5.5.066 |
| Problem: For systems with backslash in file name: Setting a file name |
| option to a value starting with "\\machine" removed a backslash. |
| Solution: Keep the double backslash for "\\machine", but do change |
| "\\\\machine" to "\\machine" for backwards compatibility. |
| Files: src/option.c, runtime/doc/options.txt |
| |
| Patch 5.5.067 |
| Problem: With 'hlsearch' set, the pattern "\>" doesn't highlight the first |
| match in a line. (Benji Fisher) |
| Solution: Fix highlighting an empty match. Also highlight the first |
| character in an empty line for "$". |
| Files: src/screen.c |
| |
| Patch 5.5.068 |
| Problem: Crash when a ":while" is used with an argument that has an error. |
| (Sylvain Viart) |
| Solution: Was using an uninitialized index in the cs_line[] array. The |
| crash only happened when the index was far off. Made sure the |
| uninitialized index isn't used. |
| Files: src/ex_docmd.c |
| |
| Patch 5.5.069 |
| Problem: Shifting lines in blockwise Visual mode didn't set the 'modified' |
| flag. |
| Solution: Do set the 'modified' flag. |
| Files: src/ops.c |
| |
| Patch 5.5.070 |
| Problem: When editing a new file, creating that file outside of Vim, then |
| editing it again, ":w" still warns for overwriting an existing |
| file. (Nam) |
| Solution: The BF_NEW flag in the "b_flags" field wasn't cleared properly. |
| Files: src/buffer.c, src/fileio.c |
| |
| Patch 5.5.071 |
| Problem: Using a matchgroup in a ":syn region", which is the same syntax |
| group as the region, didn't stop a contained item from matching in |
| the start pattern. |
| Solution: Also push an item on the stack when the syntax ID of the |
| matchgroup is the same as the syntax ID of the region. |
| Files: src/syntax.c |
| |
| Patch 5.5.072 (extra) |
| Problem: Dos 32 bit: When setting 'columns' to a too large value, Vim may |
| crash, and the DOS console too. |
| Solution: Check that the value of 'columns' isn't larger than the number of |
| columns that the BIOS reports. |
| Files: src/os_msdos.c, src/proto/os_msdos.pro, src/option.c |
| |
| Patch 5.5.073 (extra) |
| Problem: Win 32 GUI: The Find and Find/Replace dialogs didn't show the |
| "match case" checkbox. The Find/Replace dialog didn't handle the |
| "match whole word" checkbox. |
| Solution: Support the "match case" and "match whole word" checkboxes. |
| Files: src/gui_w32.c |
| |
| Patch 5.6a.001 |
| Problem: Using <C-End> with a count doesn't work like it does with "G". |
| (Benji Fisher) |
| Solution: Accept a count for <C-End> and <C-Home>. |
| Files: src/normal.c |
| |
| Patch 5.6a.002 |
| Problem: The script for conversion to HTML was an older version. |
| Solution: Add support for running 2html.vim on a color terminal. |
| Files: runtime/syntax/2html.vim |
| |
| Patch 5.6a.003 |
| Problem: Defining a function inside a function didn't give an error |
| message. A missing ":endfunction" doesn't give an error message. |
| Solution: Allow defining a function inside a function. |
| Files: src/eval.c, runtime/doc/eval.txt |
| |
| Patch 5.6a.004 |
| Problem: A missing ":endwhile" or ":endif" doesn't give an error message. |
| (Johannes Zellner) |
| Solution: Check for missing ":endwhile" and ":endif" in sourced files. |
| Add missing ":endif" in file selection macros. |
| Files: src/ex_docmd.c, runtime/macros/file_select.vim |
| |
| Patch 5.6a.005 |
| Problem: 'hlsearch' was not listed alphabetically. The value of 'toolbar' |
| was changed when 'compatible' is set. |
| Solution: Moved entry of 'hlsearch' in options[] table down. |
| Don't reset 'toolbar' option to the default value when |
| 'compatible' is set. |
| Files: src/option.c |
| |
| Patch 5.6a.006 |
| Problem: Using a backwards range inside ":if 0" gave an error message. |
| Solution: Don't complain about a range when it is not going to be used. |
| (Stefan Roemer) |
| Files: src/ex_docmd.c |
| |
| Patch 5.6a.007 |
| Problem: ":let" didn't show internal Vim variables. (Ron Aaron) |
| Solution: Do show ":v" variables for ":let" and ":let v:name". |
| Files: src/eval.c |
| |
| Patch 5.6a.008 |
| Problem: Selecting a syntax from the Syntax menu gives an error message. |
| Solution: Replace "else if" in SetSyn() with "elseif". (Ronald Schild) |
| Files: runtime/menu.vim |
| |
| Patch 5.6a.009 |
| Problem: When compiling with +extra_search but without +syntax, there is a |
| compilation error in screen.c. (Axel Kielhorn) |
| Solution: Adjust the #ifdef for declaring and initializing "line" in |
| win_line(). Also solve compilation problem when +statusline is |
| used without +eval. Another one when +cmdline_compl is used |
| without +eval. |
| Files: src/screen.c, src/misc2.c |
| |
| Patch 5.6a.010 |
| Problem: In a function, ":startinsert!" does not append to the end of the |
| line if a ":normal" command was used to move the cursor. (Fisher) |
| Solution: Reset "w_set_curswant" to avoid that w_curswant is changed again. |
| Files: src/ex_docmd.c |
| |
| Patch 5.6a.011 (depends on 5.6a.004) |
| Problem: A missing ":endif" or ":endwhile" in a function doesn't give an |
| error message. |
| Solution: Give that error message. |
| Files: src/ex_docmd.c |
| |
| Patch 5.6a.012 (depends on 5.6a.008) |
| Problem: Some Syntax menu entries caused a hit-enter prompt. |
| Solution: Call a function to make the command shorter. Also rename a few |
| functions to avoid name clashes. |
| Files: runtime/menu.vim |
| |
| Patch 5.6a.013 |
| Problem: Command line completion works different when another completion |
| was done earlier. (Johannes Zellner) |
| Solution: Reset wim_index when starting a new completion. |
| Files: src/ex_getln.c |
| |
| Patch 5.6a.014 |
| Problem: Various warning messages when compiling and running lint with |
| different combinations of features. |
| Solution: Fix the warning messages. |
| Files: src/eval.c, src/ex_cmds.c, src/ex_docmd.c, src/gui_gtk_x11.c, |
| src/option.c, src/screen.c, src/search.c, src/syntax.c, |
| src/feature.h, src/globals.h |
| |
| Patch 5.6a.015 |
| Problem: The vimtutor command doesn't always know the value of $VIMRUNTIME. |
| Solution: Let Vim expand $VIMRUNTIME, instead of the shell. |
| Files: src/vimtutor |
| |
| Patch 5.6a.016 (extra) |
| Problem: Mac: Window size is restricted when starting. Cannot drag the |
| window all over the desktop. |
| Solution: Get real screen size instead of assuming 640x400. Do not use a |
| fixed number for the drag limits. (Axel Kielhorn) |
| Files: src/gui_mac.c |
| |
| Patch 5.6a.017 |
| Problem: The "Paste" entry in popup menu for Visual, Insert and Cmdline |
| mode is in the wrong position. (Stol) |
| Solution: Add priority numbers for all Paste menu entries. |
| Files: runtime/menu.vim |
| |
| Patch 5.6a.018 |
| Problem: GTK GUI: submenu priority doesn't work. |
| Help dialog could be destroyed too soon. |
| When closing a dialog window (e.g. the "ATTENTION" one), Vim would |
| just hang. |
| When GTK theme is changed, Vim doesn't adjust to the new colors. |
| Argument for ":promptfind" isn't used. |
| Solution: Fixed the mentioned problems. |
| Made the dialogs look&feel nicer. |
| Moved functions to avoid the need for a forward declaration. |
| Fixed reentrancy of the file browser dialog. |
| Added drag&drop support for GNOME. |
| Init the text for the Find/replace dialog from the last used |
| search string. Set "match whole word" toggle button correctly. |
| Made repeat rate for drag outside of window depend on the |
| distance from the window. (Marcin Dalecki) |
| Made the drag in Visual mode actually work. |
| Removed recursiveness protection from gui_mch_get_rgb(), it might |
| cause more trouble than it solves. |
| Files: src/ex_docmd.c, src/gui_gtk.c, src/gui_gtk_x11.c, src/ui.c, |
| src/proto/ui.pro, src/misc2.c |
| |
| Patch 5.6a.019 |
| Problem: When trying to recover through NFS, which uses a large block size, |
| Vim might think the swap file is empty, because mf_blocknr_max is |
| zero. (Scott McDermott) |
| Solution: When computing the number of blocks of the file in mf_open(), |
| round up instead of down. |
| Files: src/memfile.c |
| |
| Patch 5.6a.020 |
| Problem: GUI GTK: Could not set display for gvim. |
| Solution: Add "-display" and "--display" arguments. (Marcin Dalecki) |
| Files: src/gui_gtk_x11.c |
| |
| Patch 5.6a.021 |
| Problem: Recovering still may not work when the block size of the device |
| where the swap file is located is larger than 4096. |
| Solution: Read block 0 with the minimal block size. |
| Files: src/memline.c, src/memfile.c, src/vim.h |
| |
| Patch 5.6a.022 (extra) |
| Problem: Win32 GUI: When an error in the vimrc causes a dialog to pop up |
| (e.g., for an existing swap file), Vim crashes. (David Elins) |
| Solution: Before showing a dialog, open the main window. |
| Files: src/gui_w32.c |
| |
| Patch 5.6a.023 |
| Problem: Using expand("%:gs??/?") causes a crash. (Ron Aaron) |
| Solution: Check for running into the end of the string in do_string_sub(). |
| Files: src/eval.c |
| |
| Patch 5.6a.024 |
| Problem: Using an autocommand to delete a buffer when leaving it can cause |
| a crash when jumping to a tag. (Franz Gorkotte) |
| Solution: In do_tag(), store tagstacklen before jumping to another buffer. |
| Check tagstackidx after jumping to another buffer. |
| Add extra check in win_split() if tagname isn't NULL. |
| Files: src/tag.c, src/window.c |
| |
| Patch 5.6a.025 (extra) |
| Problem: Win32 GUI: The tables for toupper() and tolower() are initialized |
| too late. (Mike Steed) |
| Solution: Move the initialization to win32_init() and call it from main(). |
| Files: src/main.c, src/os_w32.c, src/proto/os_w32.pro |
| |
| Patch 5.6a.026 |
| Problem: When the SNiFF connection is open, shell commands hang. (Pruemmer) |
| Solution: Skip a second wait() call if waitpid() already detected that the |
| child has exited. |
| Files: src/os_unix.c |
| |
| Patch 5.6a.027 (extra) |
| Problem: Win32 GUI: The "Edit with Vim" popup menu entry causes problems |
| for the Office toolbar. |
| Solution: Use a shell extension dll. (Tianmiao Hu) |
| Added it to the install and uninstal programs, replaces the old |
| "Edit with Vim" menu registry entries. |
| Files: src/dosinst.c, src/uninstal.c, gvimext/*, runtime/doc/gui_w32.txt |
| |
| Patch 5.6a.028 (extra) |
| Problem: Win32 GUI: Dialogs and tear-off menus can't handle multi-byte |
| characters. |
| Solution: Adjust nCopyAnsiToWideChar() to handle multi-byte characters |
| correctly. |
| Files: src/gui_w32.c |
| |
| ============================================================================== |
| VERSION 5.7 *version-5.7* |
| |
| Version 5.7 is a bug-fix version of 5.6. |
| |
| Changed *changed-5.7* |
| ------- |
| |
| Renamed src/INSTALL.mac to INSTALL_mac.txt to avoid it being recognized with a |
| wrong file type. Also renamed src/INSTALL.amiga to INSTALL_ami.txt. |
| |
| |
| Added *added-5.7* |
| ----- |
| |
| New syntax files: |
| stp Stored Procedures (Jeff Lanzarotta) |
| snnsnet, snnspat, snnsres SNNS (Davide Alberani) |
| mel MEL (Robert Minsk) |
| ruby Ruby (Mirko Nasato) |
| tli TealInfo (Kurt W. Andrews) |
| ora Oracle config file (Sandor Kopanyi) |
| abaqus Abaqus (Carl Osterwisch) |
| jproperties Java Properties (Simon Baldwin) |
| apache Apache config (Allan Kelly) |
| csp CSP (Jan Bredereke) |
| samba Samba config (Rafael Garcia-Suarez) |
| kscript KDE script (Thomas Capricelli) |
| hb Hyper Builder (Alejandro Forero Cuervo) |
| fortran Fortran (rewritten) (Ajit J. Thakkar) |
| sml SML (Fabrizio Zeno Cornelli) |
| cvs CVS commit (Matt Dunford) |
| aspperl ASP Perl (Aaron Hope) |
| bc BC calculator (Vladimir Scholtz) |
| latte Latte (Nick Moffitt) |
| wml WML (Gerfried Fuchs) |
| |
| Included Exuberant ctags 3.5.1. (Darren Hiebert) |
| |
| "display" and "fold" arguments for syntax items. For future extension, they |
| are ignored now. |
| |
| strftime() function for the Macintosh. |
| |
| macros/explorer.vim: A file browser script (M A Aziz Ahmed) |
| |
| |
| Fixed *fixed-5.7* |
| ----- |
| |
| The 16 bit MS-DOS version is now compiled with Bcc 3.1 instead of 4.0. The |
| executable is smaller. |
| |
| When a "make test" failed, the output file was lost. Rename it to |
| test99.failed to be able to see what went wrong. |
| |
| After sourcing bugreport.vim, it's not clear that bugreport.txt has been |
| written in the current directory. Edit bugreport.txt to avoid that. |
| |
| Adding IME support when using Makefile.w32 didn't work. (Taro Muraoka) |
| |
| Win32 console: Mouse drags were passed on even when the mouse didn't move. |
| |
| Perl interface: In Buffers(), type of argument to SvPV() was int, should be |
| STRLEN. (Tony Leneis) |
| |
| Problem with prototype for index() on AIX 4.3.0. Added check for _AIX43 in |
| os_unix.h. (Jake Hamby) |
| |
| Mappings in mswin.vim could break when some commands are mapped. Add "nore" |
| to most mappings to avoid re-mapping. |
| |
| modify_fname() made a copy of a file name for ":p" when it already was a full |
| path name, which is a bit slow. |
| |
| Win32 with Borland C++ 5.5: Pass the path to the compiler on to xxd and ctags, |
| to avoid depending on $PATH. Fixed "make clean". |
| |
| Many fixes to Macintosh specific parts: (mostly by Dany StAmant) |
| - Only one Help menu. |
| - No more crash when removing a menu item. |
| - Support as External Editor for Codewarrior (still some little glitches). |
| - Popup menu support. |
| - Fixed crash when pasting after application switch. |
| - Color from rgb.txt properly displayed. |
| - 'isprint' default includes all chars above '~'. (Axel Kielhorn) |
| - mac_expandpath() was leaking memory. |
| - Add digraphs table. (Axel Kielhorn) |
| - Multi-byte support: (Kenichi Asai) |
| Switch keyscript when going in/out of Insert mode. |
| Draw multi-byte character correctly. |
| Don't use mblen() but highest bit of char to detect multi-byte char. |
| Display value of multi-byte in statusline (also for other systems). |
| - mouse button was not initialized properly to MOUSE_LEFT when |
| USE_CTRLCLICKMENU not defined. |
| - With Japanese SJIS characters: Make "w", "b", and "e" work |
| properly. (Kenichi Asai) |
| - Replaced old CodeWarrior file os_mac.CW9.hqx with os_mac.cw5.sit.hqx. |
| |
| Fixes for VMS: (Zoltan Arpadffy) (also see patch 5.6.045 below) |
| - Added Makefile_vms.mms and vimrc.vms to src/testdir to be able to run the |
| tests. |
| - Various fixes. |
| - Set 'undolevels' to 1000 by default. |
| - Made mch_settitle() equivalent to the one in os_unix.c. |
| |
| RiscOS: A few prototypes for os_riscos.c were outdated. Generate prototypes |
| automatically. |
| |
| |
| Previously released patches: |
| |
| Patch 5.6.001 |
| Problem: When using "set bs=0 si cin", Inserting "#<BS>" or "}<BS>" which |
| reduces the indent doesn't delete the "#" or "}". (Lorton) |
| Solution: Adjust ai_col in ins_try_si(). |
| Files: src/edit.c |
| |
| Patch 5.6.002 |
| Problem: When using the vim.vim syntax file, a comment with all uppercase |
| characters causes a hang. |
| Solution: Adjust pattern for vimCommentTitle (Charles Campbell) |
| Files: runtime/syntax/vim.vim |
| |
| Patch 5.6.003 |
| Problem: GTK GUI: Loading a user defined toolbar bitmap gives a warning |
| about the colormap. Probably because the window has not been |
| opened yet. |
| Solution: Use gdk_pixmap_colormap_create_from_xpm() to convert the xpm file. |
| (Keith Radebaugh) |
| Files: src/gui_gtk.c |
| |
| Patch 5.6.004 (extra) |
| Problem: Win32 GUI with IME: When setting 'guifont' to "*", the font |
| requester appears twice. |
| Solution: In gui_mch_init_font() don't call get_logfont() but copy |
| norm_logfont from fh. (Yasuhiro Matsumoto) |
| Files: src/gui_w32.c |
| |
| Patch 5.6.005 |
| Problem: When 'winminheight' is zero, CTRL-W - with a big number causes a |
| crash. (David Kotchan) |
| Solution: Check for negative window height in win_setheight(). |
| Files: src/window.c |
| |
| Patch 5.6.006 |
| Problem: GTK GUI: Bold font cannot always be used. Memory is freed too |
| early in gui_mch_init_font(). |
| Solution: Move call to g_free() to after where sdup is used. (Artem Hodyush) |
| Files: src/gui_gtk_x11.c |
| |
| Patch 5.6.007 (extra) |
| Problem: Win32 IME: Font is not changed when screen font is changed. And |
| IME composition window does not trace the cursor. |
| Solution: Initialize IME font. When cursor is moved, set IME composition |
| window with ImeSetCompositionWindow(). Add call to |
| ImmReleaseContext() in several places. (Taro Muraoka) |
| Files: src/gui.c, src/gui_w32.c, src/proto/gui_w32.pro |
| |
| Patch 5.6.008 (extra) |
| Problem: Win32: When two files exist with the same name but different case |
| (through NFS or Samba), fixing the file name case could cause the |
| wrong one to be edited. |
| Solution: Prefer a perfect match above a match while ignoring case in |
| fname_case(). (Flemming Madsen) |
| Files: src/os_win32.c |
| |
| Patch 5.6.009 (extra) |
| Problem: Win32 GUI: Garbage in Windows Explorer help line when selecting |
| "Edit with Vim" popup menu entry. |
| Solution: Only return the help line when called with the GCS_HELPTEXT flag. |
| (Tianmiao Hu) |
| Files: GvimExt/gvimext.cpp |
| |
| Patch 5.6.010 |
| Problem: A file name which contains a TAB was not read correctly from the |
| viminfo file and the ":ls" listing was not aligned properly. |
| Solution: Parse the buffer list lines in the viminfo file from the end |
| backwards. Count a Tab for two characters to align the ":ls" list. |
| Files: src/buffer.c |
| |
| Patch 5.6.011 |
| Problem: When 'columns' is huge (using a tiny font) and 'statusline' is |
| used, Vim can crash. |
| Solution: Limit maxlen to MAXPATHL in win_redr_custom(). (John Mullin) |
| Files: src/screen.c |
| |
| Patch 5.6.012 |
| Problem: When using "zsh" for /bin/sh, toolcheck may hang until "exit" is |
| typed. (Kuratczyk) |
| Solution: Add "-c exit" when checking for the shell version. |
| Files: src/toolcheck |
| |
| Patch 5.6.013 |
| Problem: Multibyte char in tooltip is broken. |
| Solution: Consider multibyte char in replace_termcodes(). (Taro Muraoka) |
| Files: src/term.c |
| |
| Patch 5.6.014 |
| Problem: When cursor is at the end of line and the character under cursor |
| is a multibyte character, "yl" doesn't yank 1 multibyte-char. |
| (Takuhiro Nishioka) |
| Solution: Recognize a multibyte-char at end-of-line correctly in oneright(). |
| (Taro Muraoka) |
| Also: make "+quickfix" in ":version" output appear alphabetically. |
| Files: src/edit.c |
| |
| Patch 5.6.015 |
| Problem: New xterm delete key sends <Esc>[3~ by default. |
| Solution: Added <kDel> and <kIns> to make the set of keypad keys complete. |
| Files: src/edit.c, src/ex_getln.c, src/keymap.h, src/misc1.c, |
| src/misc2.c, src/normal.c, src/os_unix.c, src/term.c |
| |
| Patch 5.6.016 |
| Problem: When deleting a search string from history from inside a mapping, |
| another entry is deleted too. (Benji Fisher) |
| Solution: Reset last_maptick when deleting the last entry of the search |
| history. Also: Increment maptick when starting a mapping from |
| typed characters to avoid a just added search string being |
| overwritten or removed from history. |
| Files: src/ex_getln.c, src/getchar.c |
| |
| Patch 5.6.017 |
| Problem: ":s/e/\^M/" should replace an "e" with a CTRL-M, not split the |
| line. (Calder) |
| Solution: Replace the backslash with a CTRL-V internally. (Stephen P. Wall) |
| Files: src/ex_cmds.c |
| |
| Patch 5.6.018 |
| Problem: ":help [:digit:]" takes a long time to jump to the wrong place. |
| Solution: Insert a backslash to avoid the special meaning of '[]'. |
| Files: src/ex_cmds.c |
| |
| Patch 5.6.019 |
| Problem: "snd.c", "snd.java", etc. were recognized as "mail" filetype. |
| Solution: Make pattern for mail filetype more strict. |
| Files: runtime/filetype.vim |
| |
| Patch 5.6.020 (extra) |
| Problem: The DJGPP version eats processor time (Walter Briscoe). |
| Solution: Call __dpmi_yield() in the busy-wait loop. |
| Files: src/os_msdos.c |
| |
| Patch 5.6.021 |
| Problem: When 'selection' is "exclusive", a double mouse click in Insert |
| mode doesn't select last char in line. (Lutz) |
| Solution: Allow leaving the cursor on the NUL past the line in this case. |
| Files: src/edit.c |
| |
| Patch 5.6.022 |
| Problem: ":e \~<Tab>" expands to ":e ~\$ceelen", which doesn't work. |
| Solution: Re-insert the backslash before the '~'. |
| Files: src/ex_getln.c |
| |
| Patch 5.6.023 (extra) |
| Problem: Various warnings for the Ming compiler. |
| Solution: Changes to avoid the warnings. (Bill McCarthy) |
| Files: src/ex_cmds.c, src/gui_w32.c, src/os_w32exe.c, src/os_win32.c, |
| src/syntax.c, src/vim.rc |
| |
| Patch 5.6.024 (extra) |
| Problem: Win32 console: Entering CTRL-_ requires the shift key. (Kotchan) |
| Solution: Specifically catch keycode 0xBD, like the GUI. |
| Files: src/os_win32.c |
| |
| Patch 5.6.025 |
| Problem: GTK GUI: Starting the GUI could be interrupted by a SIGWINCH. |
| (Nils Lohner) |
| Solution: Repeat the read() call to get the gui_in_use value when |
| interrupted by a signal. |
| Files: src/gui.c |
| |
| Patch 5.6.026 (extra) |
| Problem: Win32 GUI: Toolbar bitmaps are searched for in |
| $VIMRUNTIME/bitmaps, while GTK looks in $VIM/bitmaps. (Keith |
| Radebaugh) |
| Solution: Use $VIM/bitmaps for both, because these are not part of the |
| distribution but defined by the user. |
| Files: src/gui_w32.c, runtime/doc/gui.txt |
| |
| Patch 5.6.027 |
| Problem: TCL: Crash when using a Tcl script (reported for Win32). |
| Solution: Call Tcl_FindExecutable() in main(). (Brent Fulgham) |
| Files: src/main.c |
| |
| Patch 5.6.028 |
| Problem: Xterm patch level 126 sends codes for mouse scroll wheel. |
| Fully works with xterm patch level 131. |
| Solution: Recognize the codes for button 4 (0x60) and button 5 (0x61). |
| Files: src/term.c |
| |
| Patch 5.6.029 |
| Problem: GTK GUI: Shortcut keys cannot be used for a dialog. (Johannes |
| Zellner) |
| Solution: Add support for shortcut keys. (Marcin Dalecki) |
| Files: src/gui_gtk.c |
| |
| Patch 5.6.030 |
| Problem: When closing a window and 'ea' is set, Vim can crash. (Yasuhiro |
| Matsumoto) |
| Solution: Set "curbuf" to a valid value in win_close(). |
| Files: src/window.c |
| |
| Patch 5.6.031 |
| Problem: Multi-byte: When a double-byte character ends in CSI, Vim waits |
| for another character to be typed. |
| Solution: Recognize the CSI as the second byte of a character and don't wait |
| for another one. (Yasuhiro Matsumoto) |
| Files: src/getchar.c |
| |
| Patch 5.6.032 |
| Problem: Functions with an argument that is a line number don't all accept |
| ".", "$", etc. (Ralf Arens) |
| Solution: Add get_art_lnum() and use it for setline(), line2byte() and |
| synID(). |
| Files: src/eval.c |
| |
| Patch 5.6.033 |
| Problem: Multi-byte: "f " sometimes skips to the second space. (Sung-Hyun |
| Nam) |
| Solution: Change logic in searchc() to skip trailing byte of a double-byte |
| character. |
| Also: Ask for second byte when searching for double-byte |
| character. (Park Chong-Dae) |
| Files: src/search.c |
| |
| Patch 5.6.034 (extra) |
| Problem: Compiling with Borland C++ 5.5 fails on tolower() and toupper(). |
| Solution: Use TO_LOWER() and TO_UPPER() instead. Also adjust the Makefile |
| to make using bcc 5.5 easier. |
| Files: src/edit.c, src/ex_docmd.c, src/misc1.c, src/Makefile.bor |
| |
| Patch 5.6.035 |
| Problem: Listing the"+comments" feature in the ":version" output depended |
| on the wrong ID. (Stephen P. Wall) |
| Solution: Change "CRYPTV" to "COMMENTS". |
| Files: src/version.c |
| |
| Patch 5.6.036 |
| Problem: GTK GUI: Copy/paste text doesn't work between gvim and Eterm. |
| Solution: Support TEXT and COMPOUND_TEXT selection targets. (ChiDeok Hwang) |
| Files: src/gui_gtk_x11.c |
| |
| Patch 5.6.037 |
| Problem: Multi-byte: Can't use "f" command with multi-byte character in GUI. |
| Solution: Enable XIM in Normal mode for the GUI. (Sung-Hyun Nam) |
| Files: src/gui_gtk_x11.c, src/multbyte.c |
| |
| Patch 5.6.038 |
| Problem: Multi-clicks in GUI are interpreted as a mouse wheel click. When |
| 'ttymouse' is "xterm" a mouse click is interpreted as a mouse |
| wheel click. |
| Solution: Don't recognize the mouse wheel in check_termcode() in the GUI. |
| Use 0x43 for a mouse drag in do_xterm_trace(), not 0x63. |
| Files: src/term.c, src/os_unix.c |
| |
| Patch 5.6.039 |
| Problem: Motif GUI under KDE: When trying to logout, Vim hangs up the |
| system. (Hermann Rochholz) |
| Solution: When handling the WM_SAVE_YOURSELF event, set the WM_COMMAND |
| property of the window to let the session manager know we finished |
| saving ourselves. |
| Files: src/gui_x11.c |
| |
| Patch 5.6.040 |
| Problem: When using ":s" command, matching the regexp is done twice. |
| Solution: After copying the matched line, adjust the pointers instead of |
| finding the match again. (Loic Grenie) Added vim_regnewptr(). |
| Files: src/ex_cmds.c, src/regexp.c, src/proto/regexp.pro |
| |
| Patch 5.6.041 |
| Problem: GUI: Athena, Motif and GTK don't give more than 10 dialog buttons. |
| Solution: Remove the limit on the number of buttons. |
| Also support the 'v' flag in 'guioptions'. |
| For GTK: Center the buttons. |
| Files: src/gui_athena.c, src/gui_gtk.c, src/gui_motif.c |
| |
| Patch 5.6.042 |
| Problem: When doing "vim -u vimrc" and vimrc contains ":q", the cursor in |
| the terminal can remain off. |
| Solution: Call cursor_on() in mch_windexit(). |
| Files: src/os_unix.c |
| |
| Patch 5.6.043 (extra) |
| Problem: Win32 GUI: When selecting guifont with the dialog, 'guifont' |
| doesn't include the bold or italic attributes. |
| Solution: Append ":i" and/or ":b" to 'guifont' in gui_mch_init_font(). |
| Files: src/gui_w32.c |
| |
| Patch 5.6.044 (extra) |
| Problem: MS-DOS and Windows: The line that dosinst.exe appends to |
| autoexec.bat to set PATH is wrong when Vim is in a directory with |
| an embedded space. |
| Solution: Use double quotes for the value when there is an embedded space. |
| Files: src/dosinst.c |
| |
| Patch 5.6.045 (extra) (fixed version) |
| Problem: VMS: Various small problems. |
| Solution: Many small changes. (Zoltan Arpadffy) |
| File name modifier ":h" keeps the path separator. |
| File name modifier ":e" also removes version. |
| Compile with MAX_FEAT by default. |
| When checking for autocommands ignore version in file name. |
| Be aware of file names being case insensitive. |
| Added vt320 builtin termcap. |
| Be prepared for an empty default_vim_dir. |
| Files: runtime/gvimrc_example.vim, runtime/vimrc_example.vim, |
| runtime/doc/os_vms.txt, src/eval.c, src/feature.h, src/fileio.c, |
| src/gui_motif.c, src/gui_vms_conf.h, src/main.c, src/memline.c, |
| src/misc1.c, src/option.c, src/os_vms_conf.h, src/os_vms.c, |
| src/os_vms.h, src/os_vms.mms, src/tag.c, src/term.c, src/version.c |
| |
| Patch 5.6.046 |
| Problem: Systems with backslash in file name: With 'shellslash' set, "vim |
| */*.c" only uses a slash for the first file name. (Har'El) |
| Solution: Fix slashes in file name arguments after reading the vimrc file. |
| Files: src/option.c |
| |
| Patch 5.6.047 |
| Problem: $CPPFLAGS is not passed on to ctags configure. |
| Solution: Add it. (Walter Briscoe) |
| Files: src/config.mk.in, src/Makefile |
| |
| Patch 5.6.048 |
| Problem: CTRL-R in Command-line mode is documented to insert text as typed, |
| but inserts text literally. |
| Solution: Make CTRL-R insert text as typed, use CTRL-R CTRL-R to insert |
| literally. This is consistent with Insert mode. But characters |
| that end Command-line mode are inserted literally. |
| Files: runtime/doc/index.txt, runtime/doc/cmdline.txt, src/ex_getln.c, |
| src/ops.c, src/proto/ops.pro |
| |
| Patch 5.6.049 |
| Problem: Documentation for [!] after ":ijump" is wrong way around. (Benji |
| Fisher) |
| Solution: Fix the documentation. Also improve the code to check for a match |
| after a /* */ comment. |
| Files: runtime/doc/tagsearch.txt, src/search.c |
| |
| Patch 5.6.050 |
| Problem: Replacing is wrong when replacing a single-byte char with |
| double-byte char or the other way around. |
| Solution: Shift the text after the character when it is replaced. |
| (Yasuhiro Matsumoto) |
| Files: src/normal.c, src/misc1.c |
| |
| Patch 5.6.051 |
| Problem: ":tprev" and ":tnext" don't give an error message when trying to |
| go before the first or beyond the last tag. (Robert Webb) |
| Solution: Added error messages. Also: Delay a second when a file-read |
| message is going to overwrite an error message, otherwise it won't |
| be seen. |
| Files: src/fileio.c, src/tag.c |
| |
| Patch 5.6.052 |
| Problem: Multi-byte: When an Ex command has a '|' or '"' as a second byte, |
| it terminates the command. |
| Solution: Skip second byte of multi-byte char when checking for '|' and '"'. |
| (Asai Kenichi) |
| Files: src/ex_docmd.c |
| |
| Patch 5.6.053 |
| Problem: CTRL-] doesn't work on a tag that contains a '|'. (Cesar Crusius) |
| Solution: Escape '|', '"' and '\' in tag names when using CTRL-] and also |
| for command-line completion. |
| Files: src/ex_getln.c, src/normal.c |
| |
| Patch 5.6.054 |
| Problem: When using ":e" and ":e #" the cursor is put in the first column |
| when 'startofline' is set. (Cordell) |
| Solution: Use the last known column when 'startofline' is set. |
| Also, use ECMD_LAST more often to simplify the code. |
| Files: src/buffer.c, src/ex_cmds.c, src/ex_docmd.c, src/proto/buffer.pro |
| |
| Patch 5.6.055 |
| Problem: When 'statusline' only contains a text without "%" and doesn't fit |
| in the window, Vim crashes. (Ron Aaron) |
| Solution: Don't use the pointer for the first item if there is no item. |
| Files: src/screen.c |
| |
| Patch 5.6.056 (extra) |
| Problem: MS-DOS: F11 and F12 don't work when 'bioskey' is set. |
| Solution: Use enhanced keyboard functions. (Vince Negri) |
| Detect presence of enhanced keyboard and set bioskey_read and |
| bioskey_ready. |
| Files: src/os_msdos.c |
| |
| Patch 5.6.057 (extra) |
| Problem: Win32 GUI: Multi-byte characters are wrong in dialogs and tear-off |
| menus. |
| Solution: Use system font instead of a fixed font. (Matsumoto, Muraoka) |
| Files: src/gui_w32.c |
| |
| Patch 5.6.058 |
| Problem: When the 'a' flag is not in 'guioptions', non-Windows systems |
| copy Visually selected text to the clipboard/selection on a yank |
| or delete command anyway. On Windows it isn't done even when the |
| 'a' flag is included. |
| Solution: Respect the 'a' flag in 'guioptions' on all systems. |
| Files: src/normal.c |
| |
| Patch 5.6.059 (extra) |
| Problem: When moving the cursor over italic text and the characters spill |
| over to the cell on the right, that spill-over is deleted. |
| Noticed in the Win32 GUI, can happen on other systems too. |
| Solution: Redraw italic text starting from a blank, like this is already |
| done for bold text. (Vince Negri) |
| Files: src/gui.c, src/gui.h, src/gui_w32.c |
| |
| Patch 5.6.060 |
| Problem: Some bold characters spill over to the cell on the left, that |
| spill-over can remain sometimes. |
| Solution: Redraw a characters when the next character was bold and needs |
| redrawing. (Robert Webb) |
| Files: src/screen.c |
| |
| Patch 5.6.061 |
| Problem: When xterm sends 8-bit controls, recognizing the version response |
| doesn't work. |
| When using CSI instead of <Esc>[ for the termcap color codes, |
| using 16 colors doesn't work. (Neil Bird) |
| Solution: Also accept CSI in place of <Esc>[ for the version string. |
| Also check for CSI when handling colors 8-15 in term_color(). |
| Use CSI for builtin xterm termcap entries when 'term' contains |
| "8bit". |
| Files: runtime/doc/term.txt, src/ex_cmds.c, src/option.c, src/term.c, |
| src/os_unix.c, src/proto/option.pro, src/proto/term.pro |
| |
| Patch 5.6.062 |
| Problem: The documentation says that setting 'smartindent' doesn't have an |
| effect when 'cindent' is set, but it does make a difference for |
| lines starting with "#". (Neil Bird) |
| Solution: Really ignore 'smartindent' when 'cindent' is set. |
| Files: src/misc1.c, src/ops.c |
| |
| Patch 5.6.063 |
| Problem: Using "I" in Visual-block mode doesn't accept a count. (Johannes |
| Zellner) |
| Solution: Pass the count on to do_insert() and edit(). (Allan Kelly) |
| Files: src/normal.c, src/ops.c, src/proto/ops.pro |
| |
| Patch 5.6.064 |
| Problem: MS-DOS and Win32 console: Mouse doesn't work correctly after |
| including patch 5.6.28. (Vince Negri) |
| Solution: Don't check for mouse scroll wheel when the mouse code contains |
| the number of clicks. |
| Files: src/term.c |
| |
| Patch 5.6.065 |
| Problem: After moving the cursor around in Insert mode, typing a space can |
| still trigger an abbreviation. (Benji Fisher) |
| Solution: Don't check for an abbreviation after moving around in Insert mode. |
| Files: src/edit.c |
| |
| Patch 5.6.066 |
| Problem: Still a few bold character spill-over remains after patch 60. |
| Solution: Clear character just in front of blanking out rest of the line. |
| (Robert Webb) |
| Files: src/screen.c |
| |
| Patch 5.6.067 |
| Problem: When a file name contains a NL, the viminfo file is corrupted. |
| Solution: Use viminfo_writestring() to convert the NL to CTRL-V n. |
| Also fix the Buffers menu and listing a menu name with a newline. |
| Files: runtime/menu.vim, src/buffer.c, src/mark.c, src/menu.c |
| |
| Patch 5.6.068 |
| Problem: Compiling the Perl interface doesn't work with Perl 5.6.0. |
| (Bernhard Rosenkraenzer) |
| Solution: Also check xs_apiversion for the version number when prepending |
| defines for PL_*. |
| Files: src/Makefile |
| |
| Patch 5.6.069 |
| Problem: "go" doesn't always end up at the right character when |
| 'fileformat' is "dos". (Bruce DeVisser) |
| Solution: Correct computations in ml_find_line_or_offset(). |
| Files: src/memline. |
| |
| Patch 5.6.070 (depends on 5.6.068) |
| Problem: Compiling the Perl interface doesn't work with Perl 5.6.0. |
| (Bernhard Rosenkraenzer) |
| Solution: Simpler check instead of the one from patch 68. |
| Files: src/Makefile |
| |
| Patch 5.6.071 |
| Problem: "A" in Visual block mode on a Tab positions the cursor one char to |
| the right. (Michael Haumann) |
| Solution: Correct the column computation in op_insert(). |
| Files: src/ops.c |
| |
| Patch 5.6.072 |
| Problem: When starting Vim with "vim +startinsert", it enters Insert mode |
| only after typing the first command. (Andrew Pimlott) |
| Solution: Insert a dummy command in the stuff buffer. |
| Files: src/main.c |
| |
| Patch 5.6.073 (extra) (depends on 5.6.034) |
| Problem: Win32 GUI: When compiled with Bcc 5.5 menus don't work. |
| In dosinst.c toupper() and tolower() give an "internal compiler |
| error" for Bcc 5.5. |
| Solution: Define WINVER to 4 to avoid compiling for Windows 2000. (Dan |
| Sharp) Also cleaned up compilation arguments. |
| Use our own implementation of toupper() in dosinst.c. Use |
| mytoupper() instead of tolower(). |
| Files: src/Makefile.bor, src/dosinst.c |
| |
| Patch 5.6.074 (extra) |
| Problem: Entering CSI directly doesn't always work, because it's recognized |
| as the start of a special key. Mostly a problem with multi-byte |
| in the GUI. |
| Solution: Use K_CSI for a typed CSI character. Use <CSI> for a normal CSI, |
| <xCSI> for a CSI typed in the GUI. |
| Files: runtime/doc/intro.txt, src/getchar.c, src/gui_amiga.c, |
| src/gui_gtk_x11.c, src/gui_mac.c, src/gui_riscos.c, src/gui_w32.c, |
| src/keymap.h, src/misc2.c |
| |
| Patch 5.6.075 |
| Problem: When using "I" or "A" in Visual block mode while 'sts' is set may |
| change spaces to a Tab the inserted text is not correct. (Mike |
| Steed) And some other problems when using "A" to append after the |
| end of the line. |
| Solution: Check for change in spaces/tabs after inserting the text. Append |
| spaces to fill the gap between the end-of-line and the right edge |
| of the block. |
| Files: src/ops.c |
| |
| Patch 5.6.076 |
| Problem: GTK GUI: Mapping <M-Space> doesn't work. |
| Solution: Don't use the "Alt" modifier twice in key_press_event(). |
| Files: src/gui_gtk_x11.c |
| |
| Patch 5.6.077 |
| Problem: GUI: When interrupting an external program with CTRL-C, gvim might |
| crash. (Benjamin Korvemaker) |
| Solution: Avoid using a NULL pointer in ui_inchar_undo(). |
| Files: src/ui.c |
| |
| Patch 5.6.078 |
| Problem: Locale doesn't always work on FreeBSD. (David O'Brien) |
| Solution: Link with the "xpg4" library when available. |
| Files: src/configure.in, src/configure |
| |
| Patch 5.6.079 |
| Problem: Vim could crash when several Tcl interpreters are created and |
| destroyed. |
| Solution: handle the "exit" command and nested ":tcl" commands better. (Ingo |
| Wilken) |
| Files: runtime/doc/if_tcl.txt, src/if_tcl.c |
| |
| Patch 5.6.080 |
| Problem: When jumping to a tag, generating the tags file and jumping to the |
| same tag again uses the old search pattern. (Sung-Hyun Nam) |
| Solution: Flush cached tag matches when executing an external command. |
| Files: src/misc2.c, src/proto/tag.pro, src/tag.c |
| |
| Patch 5.6.081 |
| Problem: ":syn include" uses a level for the included file, this confuses |
| contained items included at the same level. |
| Solution: Use a unique tag for each included file. Changed sp_syn_inc_lvl |
| to sp_syn_inc_tag. (Scott Bigham) |
| Files: src/syntax.c, src/structs.h |
| |
| Patch 5.6.082 |
| Problem: When using cscope, Vim can crash. |
| Solution: Initialize tag_fname in find_tags(). (Anton Blanchard) |
| Files: src/tag.c |
| |
| Patch 5.6.083 (extra) |
| Problem: Win32: The visual beep can't be seen. (Eric Roesinger) |
| Solution: Flush the output before waiting with GdiFlush(). (Maurice S. Barnum) |
| Also: Allow specifying the delay in t_vb for the GUI. |
| Files: src/gui.c, src/gui_amiga.c, src/gui_gtk_x11.c, src/gui_mac.c, |
| src/gui_riscos.c, src/gui_w32.c, src/gui_x11.c, src/gui_beos.cc, |
| src/proto/gui_amiga.pro, src/proto/gui_gtk_x11.pro, |
| src/proto/gui_mac.pro, src/proto/gui_riscos.pro, |
| src/proto/gui_w32.pro, src/proto/gui_x11.pro, |
| src/proto/gui_beos.pro |
| |
| Patch 5.6.084 (depends on 5.6.074) |
| Problem: GUI: Entering CSI doesn't always work for Athena and Motif. |
| Solution: Handle typed CSI as <xCSI> (forgot this bit in 5.6.074). |
| Files: src/gui_x11.c |
| |
| Patch 5.6.085 |
| Problem: Multi-byte: Using "r" to replace a double-byte char with a |
| single-byte char moved the cursor one character. (Matsumoto) |
| Also, using a count when replacing a single-byte char with a |
| double-byte char didn't work. |
| Solution: Don't use del_char() to delete the second byte. |
| Get "ptr" again after calling ins_char(). |
| Files: src/normal.c |
| |
| Patch 5.6.086 (extra) |
| Problem: Win32: When using libcall() and the returned value is not a valid |
| pointer, Vim crashes. |
| Solution: Use IsBadStringPtr() to check if the pointer is valid. |
| Files: src/os_win32.c |
| |
| Patch 5.6.087 |
| Problem: Multi-byte: Commands and messages with multi-byte characters are |
| displayed wrong. |
| Solution: Detect double-byte characters. (Yasuhiro Matsumoto) |
| Files: src/ex_getln.c, src/message.c, src/misc2.c, src/screen.c |
| |
| Patch 5.6.088 |
| Problem: Multi-byte with Motif or Athena: The message "XIM requires |
| fontset" is annoying when Vim was compiled with XIM support but it |
| is not being used. |
| Solution: Remove that message. |
| Files: src/multbyte.c |
| |
| Patch 5.6.089 |
| Problem: On non-Unix systems it's possible to overwrite a read-only file |
| without using "!". |
| Solution: Check if the file permissions allow overwriting before moving the |
| file to become the backup file. |
| Files: src/fileio.c |
| |
| Patch 5.6.090 |
| Problem: When editing a file in "/home/dir/home/dir" this was replaced with |
| "~~". (Andreas Jellinghaus) |
| Solution: Replace the home directory only once in home_replace(). |
| Files: src/misc1.c |
| |
| Patch 5.6.091 |
| Problem: When editing many "no file" files, can't create swap file, because |
| .sw[a-p] have all been used. (Neil Bird) |
| Solution: Also use ".sv[a-z]", ".su[a-z]", etc. |
| Files: src/memline.c |
| |
| Patch 5.6.092 |
| Problem: FreeBSD: When setting $TERM to a non-valid terminal name, Vim |
| hangs in tputs(). |
| Solution: After tgetent() returns an error code, call it again with the |
| terminal name "dumb". This apparently creates an environment in |
| which tputs() doesn't fail. |
| Files: src/term.c |
| |
| Patch 5.6.093 (extra) |
| Problem: Win32 GUI: "ls | gvim -" will show a message box about reading |
| stdin when Vim exits. (Donohue) |
| Solution: Don't write a message about the file read from stdin until the GUI |
| has started. |
| Files: src/fileio.c |
| |
| Patch 5.6.094 |
| Problem: Problem with multi-byte string for ":echo var". |
| Solution: Check for length in msg_outtrans_len_attr(). (Sung-Hyun Nam) |
| Also make do_echo() aware of multi-byte characters. |
| Files: src/eval.c, src/message.c |
| |
| Patch 5.6.095 |
| Problem: With an Emacs TAGS file that include another a relative path |
| doesn't always work. |
| Solution: Use expand_tag_fname() on the name of the included file. |
| (Utz-Uwe Haus) |
| Files: src/tag.c |
| |
| Patch 5.6.096 |
| Problem: Unix: When editing many files, startup can be slow. (Paul |
| Ackersviller) |
| Solution: Halve the number of stat() calls used to add a file to the buffer |
| list. |
| Files: src/buffer.c |
| |
| Patch 5.7a.001 |
| Problem: GTK doesn't respond on drag&drop from ROX-Filer. |
| Solution: Add "text/uri-list" target. (Thomas Leonard) |
| Also: fix problem with checking for trash arguments. |
| Files: src/gui_gtk_x11.c |
| |
| Patch 5.7a.002 |
| Problem: Multi-byte: 'showmatch' is performed when second byte of an |
| inserted double-byte char is a paren or brace. |
| Solution: Check IsTrailByte() before calling showmatch(). (Taro Muraoka) |
| Files: src/misc1.c |
| |
| Patch 5.7a.003 |
| Problem: Multi-byte: After using CTRL-O in Insert mode with the cursor at |
| the end of the line on a multi-byte character the cursor moves to |
| the left. |
| Solution: Check for multi-byte character at end-of-line. (Taro Muraoka) |
| Also: fix cls() to detect a double-byte character. (Chong-Dae Park) |
| Files: src/edit.c, src/search.c |
| |
| Patch 5.7a.004 |
| Problem: When reporting the search pattern offset, the string could be |
| unterminated, which may cause a crash. |
| Solution: Terminate the string for the search offset. (Stephen P. Wall) |
| Files: src/search.c |
| |
| Patch 5.7a.005 |
| Problem: When ":s//~/" doesn't find a match it reports "[NULL]" for the |
| pattern. |
| Solution: Use get_search_pat() to obtain the actually used pattern. |
| Files: src/ex_cmds.c, src/proto/search.pro, src/search.c |
| |
| Patch 5.7a.006 (extra) |
| Problem: VMS: Various problems, also with the VAXC compiler. |
| Solution: In many places use the Unix code for VMS too. |
| Added time, date and compiler version to version message. |
| (Zoltan Arpadffy) |
| Files: src/ex_cmds.c, src/ex_docmd.c, src/globals.h, src/gui_vms_conf.h, |
| src/main.c, src/message.c, src/misc1.c, src/os_vms.c, |
| src/os_vms.h, src/os_vms.mms, src/os_vms_conf.h, |
| src/proto/os_vms.pro, src/proto/version.pro, src/term.c, |
| src/version.c, src/xxd/os_vms.mms, src/xxd/xxd.c |
| |
| Patch 5.7a.007 |
| Problem: Motif and Athena GUI: CTRL-@ is interpreted as CTRL-C. |
| Solution: Only use "intr_char" when it has been set. |
| Files: src/gui_x11.c |
| |
| Patch 5.7a.008 |
| Problem: GTK GUI: When using CTRL-L the screen is redrawn twice, causing |
| trouble for bold characters. Also happens when moving with the |
| scrollbar. Best seen when 'writedelay' is non-zero. |
| When starting the GUI with ":gui" the screen is redrawn once with |
| the wrong colors. |
| Solution: Only set the geometry hints when the window size really changed. |
| This avoids setting it each time the scrollbar is forcefully |
| redrawn. |
| Don't redraw in expose_event() when gui.starting is still set. |
| Files: src/gui_gtk_x11.c |
| |
| |
| ============================================================================== |
| VERSION 5.8 *version-5.8* |
| |
| Version 5.8 is a bug-fix version of 5.7. |
| |
| |
| Changed *changed-5.8* |
| ------- |
| |
| Ctags is no longer included with Vim. It has grown into a project of its own. |
| You can find it here: http://ctags.sf.net. It is highly recommended as a Vim |
| companion when you are writing programs. |
| |
| |
| Added *added-5.8* |
| ----- |
| |
| New syntax files: |
| acedb AceDB (Stewart Morris) |
| aflex Aflex (Mathieu Clabaut) |
| antlr Antlr (Mathieu Clabaut) |
| asm68k 68000 Assembly (Steve Wall) |
| automake Automake (John Williams) |
| ayacc Ayacc (Mathieu Clabaut) |
| b B (Mathieu Clabaut) |
| bindzone BIND zone (glory hump) |
| blank Blank (Rafal Sulejman) |
| cfg Configure files (Igor Prischepoff) |
| changelog ChangeLog (Gediminas Paulauskas) |
| cl Clever (Phil Uren) |
| crontab Crontab (John Hoelzel) |
| csc Essbase script (Raul Segura Acevedo) |
| cynlib Cynlib(C++) (Phil Derrick) |
| cynpp Cyn++ (Phil Derrick) |
| debchangelog Debian Changelog (Wichert Akkerman) |
| debcontrol Debian Control (Wichert Akkerman) |
| dns DNS zone file (Jehsom) |
| dtml Zope's DTML (Jean Jordaan) |
| dylan Dylan, Dylan-intr and Dylan-lid (Brent Fulgham) |
| ecd Embedix Component Description (John Beppu) |
| fgl Informix 4GL (Rafal Sulejman) |
| foxpro FoxPro (Powing Tse) |
| gsp GNU Server Pages (Nathaniel Harward) |
| gtkrc GTK rc (David Necas) |
| hercules Hercules (Avant! Corporation) (Dana Edwards) |
| htmlos HTML/OS by Aestiva (Jason Rust) |
| inittab SysV process control (David Necas) |
| iss Inno Setup (Dominique Stephan) |
| jam Jam (Ralf Lemke) |
| jess Jess (Paul Baleme) |
| lprolog LambdaProlog (Markus Mottl) |
| ia64 Intel Itanium (parth malwankar) |
| kix Kixtart (Nigel Gibbs) |
| mgp MaGic Point (Gerfried Fuchs) |
| mason Mason (HTML with Perl) (Andrew Smith) |
| mma Mathematica (Wolfgang Waltenberger) |
| nqc Not Quite C (Stefan Scherer) |
| omnimark Omnimark (Paul Terray) |
| openroad OpenROAD (Luis Moreno Serrano) |
| named BIND configuration (glory hump) |
| papp PApp (Marc Lehmann) |
| pfmain Postfix main config (Peter Kelemen) |
| pic PIC assembly (Aleksandar Veselinovic) |
| ppwiz PPWizard (Stefan Schwarzer) |
| progress Progress (Phil Uren) |
| psf Product Specification File (Rex Barzee) |
| r R (Tom Payne) |
| registry MS-Windows registry (Dominique Stephan) |
| robots Robots.txt (Dominique Stephan) |
| rtf Rich Text Format (Dominique Stephan) |
| setl SETL (Alex Poylisher) |
| sgmldecl SGML Declarations (Daniel A. Molina W.) |
| sinda Sinda input (Adrian Nagle) |
| sindacmp Sinda compare (Adrian Nagle) |
| sindaout Sinda output (Adrian Nagle) |
| smith SMITH (Rafal Sulejman) |
| snobol4 Snobol 4 (Rafal Sulejman) |
| strace Strace (David Necas) |
| tak TAK input (Adrian Nagle) |
| takcmp TAK compare (Adrian Nagle) |
| takout TAK output (Adrian Nagle) |
| tasm Turbo assembly (FooLman) |
| texmf TeX configuration (David Necas) |
| trasys Trasys input (Adrian Nagle) |
| tssgm TSS Geometry (Adrian Nagle) |
| tssop TSS Optics (Adrian Nagle) |
| tsscl TSS Command line (Adrian Nagle) |
| virata Virata Configuration Script (Manuel M.H. Stol) |
| vsejcl VSE JCL (David Ondrejko) |
| wdiff Wordwise diff (Gerfried Fuchs) |
| wsh Windows Scripting Host (Paul Moore) |
| xkb X Keyboard Extension (David Necas) |
| |
| Renamed php3 to php, it now also supports php4 (Lutz Eymers) |
| |
| Patch 5.7.015 |
| Problem: Syntax files for Vim 6.0 can't be used with 5.x. |
| Solution: Add the "default" argument to the ":highlight" command: Ignore the |
| command if highlighting was already specified. |
| Files: src/syntax.c |
| |
| Generate the Syntax menu with makemenu.vim, so that it doesn't have to be done |
| when Vim is starting up. Reduces the startup time of the GUI. |
| |
| |
| Fixed *fixed-5.8* |
| ----- |
| |
| Conversion of docs to HTML didn't convert "|tag|s" to a hyperlink. |
| |
| Fixed compiling under NeXT. (Jeroen C.M. Goudswaard) |
| |
| optwin.vim gave an error when used in Vi compatible mode ('cpo' contains 'C'). |
| |
| Tcl interpreter: "buffer" command didn't check for presence of an argument. |
| (Dave Bodenstab) |
| |
| dosinst.c: Added checks for too long file name. |
| |
| Amiga: a file name starting with a colon was considered absolute but it isn't. |
| Amiga: ":pwd" added a slash when in the root of a drive. |
| |
| Macintosh: Warnings for unused variables. (Bernhard Pruemmer) |
| |
| Unix: When catching a deadly signal, handle it in such a way that it's |
| unlikely that Vim will hang. Call _exit() instead of exit() in case of a |
| severe problem. |
| |
| Setting the window title from nothing to something didn't work after patch 29. |
| |
| Check for ownership of .exrc and .vimrc was done with stat(). Use lstat() as |
| well for extra security. |
| |
| Win32 GUI: Printing a file with 'fileformat' "unix" didn't work. Set |
| 'fileformat' to "dos" before writing the temp file. |
| |
| Unix: Could start waiting for a character when checking for a CTRL-C typed |
| when an X event is received. |
| |
| Could not use Perl and Python at the same time on FreeBSD, because Perl used |
| "-lc" and Python used the threaded C library. |
| |
| Win32: The Mingw compiler gave a few warning messages. |
| |
| When using "ZZ" and an autocommand for writing uses an abbreviation it didn't |
| work. Don't stuff the ":x" command but execute it directly. (Mikael Berthe) |
| |
| VMS doesn't always have lstat(), added an #ifdef around it. |
| |
| Added a few corrections for the Macintosh. (Axel Kielhorn) |
| |
| Win32: Gvimext could not edit more than a few files at once, the length of the |
| argument was fixed. |
| |
| |
| Previously released patches for Vim 5.7: |
| |
| Patch 5.7.001 |
| Problem: When the current buffer is crypted, and another modified buffer |
| isn't, ":wall" will encrypt the other buffer. |
| Solution: In buf_write() use "buf" instead of "curbuf" to check for the |
| crypt key. |
| Files: src/fileio.c |
| |
| Patch 5.7.002 |
| Problem: When 'showmode' is set, using "CTRL-O :r file" waits three seconds |
| before displaying the read text. (Wichert Akkerman) |
| Solution: Set "keep_msg" to the file message so that the screen is redrawn |
| before the three seconds wait for displaying the mode message. |
| Files: src/fileio.c |
| |
| Patch 5.7.003 |
| Problem: Searching for "[[:cntrl:]]" doesn't work. |
| Solution: Exclude NUL from the matching characters, it terminates the list. |
| Files: src/regexp.c |
| |
| Patch 5.7.004 |
| Problem: GTK: When selecting a new font, Vim can crash. |
| Solution: In gui_mch_init_font() unreference the old font, not the new one. |
| Files: src/gui_gtk_x11.c |
| |
| Patch 5.7.005 |
| Problem: Multibyte: Inserting a wrapped line corrupts kterm screen. |
| Pasting TEXT/COMPOUND_TEXT into Vim does not work. |
| On Motif no XIM status line is displayed even though it is |
| available. |
| Solution: Don't use xterm trick for wrapping lines for multibyte mode. |
| Correct a missing "break", added TEXT/COMPOUND_TEXT selection |
| request. |
| Add XIMStatusArea fallback code. |
| (Katsuhito Nagano) |
| Files: src/gui_gtk_x11.c, src/multbyte.c, src/screen.c, src/ui.c |
| |
| Patch 5.7.006 |
| Problem: GUI: redrawing the non-Visual selection is wrong when the window |
| is unobscured. (Jean-Pierre Etienne) |
| Solution: Redraw the selection properly and don't clear it. Added "len" |
| argument to clip_may_redraw_selection(). |
| Files: src/gui.c, src/ui.c, src/proto/ui.pro |
| |
| Patch 5.7.007 |
| Problem: Python: Crash when using the current buffer twice. |
| Solution: Increase the reference count for buffer and window objects. |
| (Johannes Zellner) |
| Files: src/if_python.c |
| |
| Patch 5.7.008 |
| Problem: In Ex mode, backspacing over the first TAB doesn't work properly. |
| (Wichert Akkerman) |
| Solution: Switch the cursor on before printing the newline. |
| Files: src/ex_getln.c |
| |
| Patch 5.7.009 (extra) |
| Problem: Mac: Crash when using a long file. |
| Solution: Don't redefine malloc() and free(), because it will break using |
| realloc(). |
| Files: src/os_mac.h |
| |
| Patch 5.7.010 |
| Problem: When using CTRL-A on a very long number Vim can crash. (Michael |
| Naumann) |
| Solution: Truncate the length of the new number to avoid a buffer overflow. |
| Files: src/ops.c |
| |
| Patch 5.7.011 (extra) |
| Problem: Win32 GUI on NT 5 and Win98: Displaying Hebrew is reversed. |
| Solution: Output each character separately, to avoid that Windows reverses |
| the text for some fonts. (Ron Aaron) |
| Files: src/gui_w32.c |
| |
| Patch 5.7.012 |
| Problem: When using "-complete=buffer" for ":command" the user command |
| fails. |
| Solution: In a user command don't replace the buffer name with a count for |
| the buffer number. |
| Files: src/ex_docmd.c |
| |
| Patch 5.7.013 |
| Problem: "gD" didn't always find a match in the first line, depending on |
| the column the search started at. |
| Solution: Reset the column to zero before starting to search. |
| Files: src/normal.c |
| |
| Patch 5.7.014 |
| Problem: Rot13 encoding was done on characters with accents, which is |
| wrong. (Sven Gottwald) |
| Solution: Only do rot13 encoding on ASCII characters. |
| Files: src/ops.c |
| |
| Patch 5.7.016 |
| Problem: When hitting 'n' for a ":s///c" command, the ignore-case flag was |
| not restored, some matches were skipped. (Daniel Blaustein) |
| Solution: Restore the reg_ic variable when 'n' was hit. |
| Files: src/ex_cmds.c |
| |
| Patch 5.7.017 |
| Problem: When using a Vim script for Vim 6.0 with <SID> before a function |
| name, it produces an error message even when inside an "if version |
| >= 600". (Charles Campbell) |
| Solution: Ignore errors in the function name when the function is not going |
| to be defined. |
| Files: src/eval.c |
| |
| Patch 5.7.018 |
| Problem: When running "rvim" or "vim -Z" it was still possible to execute a |
| shell command with system() and backtick-expansion. (Antonios A. |
| Kavarnos) |
| Solution: Disallow executing a shell command in get_cmd_output() and |
| mch_expand_wildcards(). |
| Files: src/misc1.c, src/os_unix.c |
| |
| Patch 5.7.019 |
| Problem: Multibyte: In a substitute string, a multi-byte character isn't |
| skipped properly, can be a problem when the second byte is a |
| backslash. |
| Solution: Skip an extra byte for a double-byte character. (Muraoka Taro) |
| Files: src/ex_cmds.c |
| |
| Patch 5.7.020 |
| Problem: Compilation doesn't work on MacOS-X. |
| Solution: Add a couple of #ifdefs. (Jamie Curmi) |
| Files: src/regexp.c, src/ctags/general.h |
| |
| Patch 5.7.021 |
| Problem: Vim sometimes produces a beep when started in an xterm. Only |
| happens when compiled without mouse support. |
| Solution: Requesting the xterm version results in a K_IGNORE. This wasn't |
| handled when mouse support is disabled. Accept K_IGNORE always. |
| Files: src/normal.c |
| |
| Patch 5.7.022 |
| Problem: %v in 'statusline' is not displayed when it's equal to %c. |
| Solution: Check if %V or %v is used and handle them differently. |
| Files: src/screen.c |
| |
| Patch 5.7.023 |
| Problem: Crash when a WinLeave autocommand deletes the buffer in the other |
| window. |
| Solution: Check that after executing the WinLeave autocommands there still |
| is a window to be closed. Also update the test that was supposed |
| to check for this problem. |
| Files: src/window.c, testdir/test13.in, testdir/test13.ok |
| |
| Patch 5.7.024 |
| Problem: Evaluating an expression for 'statusline' can have side effects. |
| Solution: Evaluate the expression in a sandbox. |
| Files: src/edit.c, src/eval.c, src/proto/eval.pro, src/ex_cmds.c, |
| src/ex_cmds.h, src/ex_docmd.c, src/globals.h, src/option.c, |
| src/screen.c, src/undo.c |
| |
| Patch 5.7.025 (fixed) |
| Problem: Creating a temp file has a race condition. |
| Solution: Create a private directory to write the temp files in. |
| Files: src/fileio.c, src/misc1.c, src/proto/misc1.pro, |
| src/proto/fileio.pro, src/memline.c, src/os_unix.h |
| |
| Patch 5.7.026 (extra) |
| Problem: Creating a temp file has a race condition. |
| Solution: Create a private directory to write the temp files in. |
| This is the extra part of patch 5.7.025. |
| Files: src/os_msdos.h |
| |
| Patch 5.7.027 |
| Problem: Starting to edit a file can cause a crash. For example when in |
| Insert mode, using CTRL-O :help abbr<Tab> to scroll the screen and |
| then <CR>, which edits a help file. (Robert Bogomip) |
| Solution: Check if keep_msg is NULL before copying it. |
| Files: src/fileio.c |
| |
| Patch 5.7.028 |
| Problem: Creating a backup or swap file could fail in rare situations. |
| Solution: Use O_EXCL for open(). |
| Files: src/fileio.c, src/memfile.c |
| |
| Patch 5.7.029 |
| Problem: Editing a file with an extremely long name crashed Vim. |
| Solution: Check for length of the name when setting the window title. |
| Files: src/buffer.c |
| |
| Patch 5.7.030 |
| Problem: A ":make" or ":grep" command with a very long argument could cause |
| a crash. |
| Solution: Allocate the buffer for the shell command. |
| Files: src/ex_docmd.c |
| |
| |
| vim:tw=78:ts=8:ft=help:norl: |