From: Bram Moolenaar To: vim-dev@vim.org Subject: Vim version 5.4e ALPHA available Date: Wed, 17 Feb 99 12:43:55 +0100 Message-Id: <9902171144.AA06064@smtp02.oce.nl> Hello Developers, Quite a few changes this time. The most remarkable are: - Console mode menu: 'wildmenu' - Line continuation for Ex commands. - New 'statusline' format, also used for 'titlestring'. - Support for X11 clipboard from the xterm, even without GUI. - Errorformat supports changing directory for GNU make. - Backtick expansion for non-Unix systems. And a whole lot more, see further on. Still, quite a bit of work remains at the top of the todo file... I'll probably release 5.4 when all this gets done, and then start working on folding. If you want to try out the GTK GUI version, you can either download GTK version 1.1.13, or, if that doesn't work for you, 1.1.7. For me the 1.1.13 version only compiled by using "configure --disable-nls". And then fixing a few small things (I have reported these to the GTK people now). 1.1.7 compiled without changes and appears to work fine with Vim. The result is still an UNSTABLE version, ready for more changes. It is supposed to be used to make new patches against. You can use it for normal work (like me) but it's more risky than a normal release. WHERE TO GET IT --------------- This is a source-only release! Note that ftp.nl.vim.org and ftp.vim.org are now linked to another site. To get to the "home" ftp site at Oce, use ftp.home.vim.org. You can find Vim 5.4e here: ftp://ftp.home.vim.org/pub/vim/unreleased/ See this file for Mirrors: ftp://ftp.home.vim.org/pub/vim/MIRRORS unix/vim-5.4e-src.tar.gz source files for Unix unix/vim-5.4d-5.4e-src.diff.gz source diff with version 5.4d unix/vim-5.4e-rt.tar.gz runtime files for Unix unix/vim-5.4d-5.4e-rt.diff.gz runtime diff with version 5.4d extra/vim-5.4e-extra.tar.gz extra files extra/vim-5.4d-5.4e-extra.diff.gz diff with version 5.4d WHAT IS NEW ----------- This is the complete list of changes since version 5.4d. For a list of changes since version 5.3, see ":help version-5.4". Changed: In a regexp, a '$' before "\)" is also considered to be an end-of-line. 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 the first blank line above the start of the current function. Avoids that using "gd" in the first function finds global a variable. Added: "[m" and "]m" commands, for jumping to start/end of method in a (Java) class. Console-mode menu system: 'wildmenu' option and ":emenu" command. Also works as a minimal file browser. Uses the last status line to list items. (Negri) The 'wildcharx' option can be used to trigger 'wildmenu' completion from a mapping. Moved all the menu code from gui.c to menu.c. Included ctags 3.1.2. (Hiebert) With a patch to change "dir" to "filePath" in main.c Included VisVim 1.3a. (Erhardt) Included better configure check for GTK. Requires either version 1.0.6 or 1.1.12. (Kahn) 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) ":@*" executes the * register. (Acevedo) The history items now have a number that increases, so that they can be easily referred to. (Roemer) When an Ex line ends in a backslash, concatenate the next line to it. (Roemer) A whole bunch of changes for the 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 environement variables. Now $VIM is calculated only once, not regenerated every time it is used. - No more CPU hog when in background. Port to EGCS/mingw32. New Makefile.ming. (Aaron) "warningmsg" and "statusmsg" internal variables. Contain the last given warning and status message. (Madsen) 'rulerformat' option. New format for the 'statusline' option. Highlighting of each item in 'statusline' with "StatusLineItem". (Madsen) "+title" feature. Don't add code to set title or icon for MSDOS, this was not possible anyway. "go" and ":goto" commands: Jump to byte offset in the file. Allow numbers in the name of a user command. (Webb) Complete the arguments of the ":command" command. (Webb) When ":let @/ =" is used in an autocommand, this last search pattern will be used after the autocommand finishes. Made xterm work with clipboard even when not compiled with a GUI, or when compiled with GTK. "BufCreate" autocommand event. Called just after a new buffer has been created or has been renamed. Also call "BufDelete" just before a buffer is going to be renamed. (Madsen) "count1" variable: like "count", but defaults to one when no count is used. When using "gf" to go to a buffer that has already been used, jump to the line where the cursor last was. Improved quickfix and 'errorformat'. Use 'isfname' for "%f". Parse change-directory lines for gmake: make[1]: Entering directory 'name'. Allow a range for the ":clist" command. (Roemer) GUI: When in Ex mode, use non-Visual selection for the whole screen. DOS 16 bit: Don't include cursor shape stuff. Save some bytes. Colored the output of ":tselect" a bit more. Different highlighting between tag name and file name. Highlight field name ("struct:") separately from argument. maparg() function. Returns rhs of a mapping. Based on a patch from Vikas. Unix: Speed up comparing a file name with existing buffers by storing the device/inode number with the buffer. OS/2: Use argv[0] to find runtime files. When using an executable in the "src" directory, check if "vim54" or "runtime" can be added after removing it. Finds the runtime files just after compiling. 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*`')". Fixed: Prototype for setup_xterm_clip() was missing. at the end of the file caused ml_get errors. When compiling without X11, got an error for clip_init() not defined. Put "#ifdef USE_CLIPBOARD" around it. (Schild) 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. Executing external commands with 'noguipty' caused a hangup. Removed the code to regain typeahead, it doesn't work. Using ":history" without a history caused a crash. With the "all" argument it caused a hang. ANSI-C initializations in gui_x11.c. (Green) GTK version didn't compile with GTK 1.0.x. (Kahn) When using ncursus/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. The tempname() function under the Win32 GUI already created the file. Caused problems when using ":w". Now the file is deleted. 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) Win32 GUI: Cursor disappeared when ending up in the top-left character on the screen after scrolling. (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. Was using vim_free() instead of g_free() in gui_mch_init_font() in gui_gtk_x11.c. (Kahn) GUI GTK: When using the Edit.Options menu, the "Tab Position" button didn't work and generated an error message. (Kahn) 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 , pasting it would replace it with a and drop the next character. 'mousemodel' popup_setpos didn't work properly with TABs. ===