From: Bram Moolenaar To: vim-dev@vim.org Subject: Vim version 5.4o BETA available Date: Sun, 11 Jul 1999 20:06:57 +0200 Message-Id: <199907111806.UAA17045@moolenaar.net> Hello Vimmers, Here is the fourth BETA version of Vim 5.4. Again, this is hopefully the last one (don't have to explain that, do I?. Please check if everything unpacks and runs correctly. The changes since the 5.4n release are small. But still enough to justify another BETA version. A few changes were not brought out as a patch yet. Mostly for VMS and a few for GTK. These must be checked for side effects. If you included the patches sent to the vim-dev list, you should still apply the new diff files (on top of an unpatched 5.4n). If you want to try out the GTK GUI version, you should download GTK version 1.2.3. A few things have been included that require at least 1.1.16. The 1.1.x versions were only for testing anyway. GTK 1.0 should also work, more or less. WHERE TO GET IT --------------- You can find Vim 5.4o here: ftp://ftp.home.vim.org/pub/vim/unreleased/ See this file for Mirrors: ftp://ftp.home.vim.org/pub/vim/MIRRORS FILE SYSTEM COMMENTS unix/vim-5.4o-src.tar.gz Unix(*) Sources unix/vim-5.4n-5.4o-src.diff.gz sources diff with version 5.4n unix/vim-5.4o-rt.tar.gz Unix(*) runtime files unix/vim-5.4n-5.4o-rt.diff.gz runtime diff with version 5.4n extra/vim-5.4o-extra.tar.gz Unix(*) Extra sources and docs (Farsi, OLE, VisVim) extra/vim-5.4o-5.4o-extra.diff.gz diff with version 5.4n pc/vim54ort.zip Win32 DOS and MS-Windows runtime files pc/gvim54o.zip Win32 32 bit Windows 95/NT GUI binaries. Recommended for Windows 95 and NT. The best choice for syntax highlighting and speed. pc/gvim54oole.zip Win32 32 bit Windows 95/NT GUI binaries, with OLE support and VisVim. pc/gvim54o_s.zip Win32s 32 bit Windows 3.1/3.11 GUI binaries. Requires Win32s. pc/vim54ow32.zip Win32 32 bit Windows 95/98/NT console binaries. Recommended for Windows NT, not for 95/98. Supports long file names. pc/vim54od32.zip MS-DOS 32 bit protected mode binaries. Recommended for MS-DOS, Windows 3.1 and Windows 95/98 console. It is compiled with DJGPP, it may need a DPMI driver (CWSDPMI is included). Supports long file names on Windows 95/NT. pc/vim54od16.zip MS-DOS 16 bit real mode binaries. Runs on most MS-DOS systems, but is restricted to using 640K memory. Small version, without e.g., syntax highlighting and autocommands. pc/vim54osrc.zip PC Sources for PC versions (with CR-LF). os2/vim54oos2.zip OS/2 binary and docs. (use the Unix archives for sources) amiga/vim54ort.tgz Amiga runtime files amiga/vim54obin.tgz Amiga Binary amiga/vim54obig.tgz Amiga Binary with more features amiga/vim54osrc.tgz Amiga Sources for Amiga doc/vim54ohtml.zip all Documentation converted to HTML (*) Also for BeOS, OS/2, VMS, Macintosh and Atari MiNT The contents of the source archives depends on the specified system. To obtain the full sources and docs, get the three Unix archives. system file type Unpack with Unix file.tar.gz gunzip file.tar.gz; tar xf file.tar Amiga file.tgz gzip -d file.tgz; tar xf file.tar PC file.zip pkunzip -d file.zip unzip file.zip WHAT IS NEW ----------- This is the complete list of changes since version 5.4n. For a list of changes since version 5.3, see ":help version-5.4". Patch 5.4n.1 Problem: GTK: When compiling with XIM the window sometimes pops up in the wrong place, most of it is off-screen. Depends on 'guifont'. Solution: Move xim_init() to after gtk_widget_show() in gui_mch_open(). Files: src/gui_gtk_x11.c Patch 5.4n.2 Problem: GTK: When using the selection from a popup menu (@* in an expression), would get an empty result. The button-up event probably interrupts the waiting for the selection to arrive. Solution: Added the did_receive_selection flag to keep waiting until the selection has really been handled. Files: src/gui_gtk_x11.c 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.7 Problem: Closing a window in a specific situation crashed Vim. There was a mixup of the current buffer and the buffer of the closed window in ml_flush_line(). Solution: Use "buf" instead of "curbuf" in the call to ml_updatechunk(). Files: src/memline.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-return 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 . Solution: Disallow scrolling at the hit-return prompt for systems that use on the fly scrolling. Files: src/message.c Patch 5.4n.11 Problem: When setting the 'helpfile' option, the $VIMRUNTIME environment variable could be reset. Happened when it was first determined automatically and then given a value with ":let $VIMRUNTIME =". (John Mullin) After 'helpfile' was set, "echo $VIMRUNTIME" showed an empty string. Solution: Fix a typo in do_let(): didset_vim should be didset_vimruntime. When mch_getenv() returns an empty string, try to get its value from vim_getenv(). Files: src/eval.c Patch 5.4n.12 Problem: When using the wildmenu on a system that uses a backslash as path separator, file names in the wildmenu had the backslashes removed. (Schild) Solution: Don't remove the backslashes when they are used as a path separator. Files: src/screen.c Patch 5.4n.13 Problem: GTK: Using modifiers with the mouse didn't work. Solution: Use MOUSE_SHIFT/CTRL/ALT instead of MOD_MASK_SHIFT/CTRL/ALT, three times. Files: src/gui_gtk_x11.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.15 Problem: GTK: When using Alt-Key to use a menu, the key was also sent to Vim. Mostly this would cause a beep. Solution: Implement the use of 'winaltkeys' for GTK. Except for "no". Files: src/gui_gtk_x11.c, src/menu.c Patch 5.4n.16 Problem: Win32 GUI: The key both selected the menu and was handled as a key hit. Solution: Apply 'winaltkeys' to , 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.18 Problem: When going to Ex mode with "Q", the "Entering Ex mode" message was shortened. (Wichert Akkerman) Solution: Don't truncate messages when in Ex mode, we don't get the hit-return prompt anyway. Files: src/message.c Patch 5.4n.19 Problem: Doing ":e" (without argument) in an option-window causes trouble. The mappings for and 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.20 Problem: Got a warning message for a missing prototype for usleep(). Solution: Added optional prototype for usleep(). (Ronald Schild) Files: src/osdef2.h.in Patch 5.4n.21 Problem: In the option-window, hitting on the ":set im" line caused an extra ":echo" to be inserted. (Pablo Ariel Kohan) Solution: Use to make sure the ":echo" is done in Normal mode. Files: runtime/optwin.vim Patch 5.4n.22 Problem: It was possible to get the value of the encryption key in an expression with "&key". Solution: Always return "*****" for "&key". Files: src/option.c Patch 5.4n.23 Problem: "]m" going to the end of the current method isn't very logical, when "[[" and "]]' are compared with "[m" and "]m". Solution: Made "]m" go to the start of the next method. Added "[M" and "]M", which go backward/forward to the end of a method. Made the use of these commands outside of the class more logical. Added tests for these commands. Files: src/normal.c, src/testdir/test14.in, src/testdir/test14.ok, runtime/doc/motion.txt 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. Added: Unix: A default for $VIMRUNTIME can be given in the Makefile. This is useful if $VIM doesn't point to above the runtime directory but to e.g., "/etc/". Fixed: 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) Win32: In the Buffers menu the & character makes the first three entries executed with some characters, so that they can not be used to select one of the buffer names. Removed those &s. VMS: - 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. GTK: Included a few patches from Marcin Dalecki. GTK: Adjust the window size after opening the window, instead of before. Makes the check if the window fits on the screen work better. 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) -- --/-/---- Bram Moolenaar ---- Bram@moolenaar.net ---- Bram@vim.org ---\-\-- \ \ www.vim.org/iccf www.moolenaar.net www.vim.org / /