aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.ci/api-python.sh15
-rw-r--r--CMakeLists.txt11
-rw-r--r--CONTRIBUTING.md60
-rw-r--r--README.md46
-rw-r--r--cmake/GenerateHelptags.cmake20
-rw-r--r--runtime/autoload/ada.vim2
-rw-r--r--runtime/autoload/sqlcomplete.vim6
-rw-r--r--runtime/autoload/syntaxcomplete.vim2
-rw-r--r--runtime/compiler/checkstyle.vim2
-rw-r--r--runtime/doc/Makefile13
-rw-r--r--runtime/doc/help.txt4
-rw-r--r--runtime/doc/os_dos.txt4
-rw-r--r--runtime/doc/os_msdos.txt276
-rw-r--r--runtime/doc/os_win32.txt2
-rw-r--r--runtime/doc/version4.txt355
-rw-r--r--runtime/doc/version5.txt7813
-rw-r--r--runtime/doc/version6.txt14530
-rw-r--r--runtime/doc/version7.txt18311
-rw-r--r--runtime/filetype.vim14
-rw-r--r--runtime/indent/ada.vim2
-rw-r--r--runtime/syntax/asm68k.vim2
-rw-r--r--runtime/syntax/aspvbs.vim4
-rw-r--r--runtime/syntax/chill.vim2
-rw-r--r--runtime/syntax/clipper.vim2
-rw-r--r--runtime/syntax/d.vim2
-rw-r--r--runtime/syntax/dtrace.vim2
-rw-r--r--runtime/syntax/ia64.vim2
-rw-r--r--runtime/syntax/kix.vim2
-rw-r--r--runtime/syntax/mel.vim2
-rw-r--r--runtime/syntax/php.vim2
-rw-r--r--runtime/syntax/postscr.vim4
-rw-r--r--runtime/syntax/redif.vim2
-rw-r--r--runtime/syntax/samba.vim2
-rw-r--r--runtime/syntax/sather.vim2
-rw-r--r--runtime/syntax/specman.vim4
-rw-r--r--runtime/syntax/spup.vim2
-rw-r--r--runtime/syntax/tcl.vim2
-rw-r--r--scripts/msgpack-gen.lua40
-rwxr-xr-xscripts/run-api-tests.exp37
-rw-r--r--src/nvim/api/window.c4
-rw-r--r--src/nvim/buffer.c12
-rw-r--r--src/nvim/buffer_defs.h2
-rw-r--r--src/nvim/diff.c7
-rw-r--r--src/nvim/eval.c43
-rw-r--r--src/nvim/ex_cmds.c2
-rw-r--r--src/nvim/ex_cmds2.c24
-rw-r--r--src/nvim/ex_getln.c4
-rw-r--r--src/nvim/file_search.c4
-rw-r--r--src/nvim/fileio.c53
-rw-r--r--src/nvim/globals.h3
-rw-r--r--src/nvim/if_cscope.c8
-rw-r--r--src/nvim/main.c48
-rw-r--r--src/nvim/memfile.c12
-rw-r--r--src/nvim/memline.c26
-rw-r--r--src/nvim/misc1.c2
-rw-r--r--src/nvim/ops.c10
-rw-r--r--src/nvim/os/channel.c97
-rw-r--r--src/nvim/os/fs.c59
-rw-r--r--src/nvim/os/input.c22
-rw-r--r--src/nvim/os/msgpack_rpc.c18
-rw-r--r--src/nvim/os/msgpack_rpc.h7
-rw-r--r--src/nvim/os/provider.c6
-rw-r--r--src/nvim/os/signal.c5
-rw-r--r--src/nvim/os/wstream.c43
-rw-r--r--src/nvim/os_unix.c20
-rw-r--r--src/nvim/path.c18
-rw-r--r--src/nvim/quickfix.c2
-rw-r--r--src/nvim/term.c3
-rw-r--r--src/nvim/testdir/test105.in4
-rw-r--r--src/nvim/testdir/test105.ok6
-rw-r--r--src/nvim/undo.c8
-rw-r--r--src/nvim/version.c2
-rw-r--r--test/unit/formatc.lua1
-rw-r--r--test/unit/garray_spec.lua391
-rw-r--r--test/unit/garray_spec.moon271
-rw-r--r--test/unit/helpers.lua155
-rw-r--r--test/unit/helpers.moon131
-rw-r--r--test/unit/os/env_spec.lua130
-rw-r--r--test/unit/os/env_spec.moon106
-rw-r--r--test/unit/os/fs_spec.lua704
-rw-r--r--test/unit/os/fs_spec.moon525
-rw-r--r--test/unit/os/users_spec.lua91
-rw-r--r--test/unit/os/users_spec.moon70
-rw-r--r--test/unit/path_spec.lua478
-rw-r--r--test/unit/path_spec.moon383
-rw-r--r--test/unit/preprocess.lua198
-rw-r--r--test/unit/preprocess.moon158
-rw-r--r--test/unit/set.lua127
-rw-r--r--test/unit/set.moon72
-rw-r--r--third-party/CMakeLists.txt24
90 files changed, 2830 insertions, 43374 deletions
diff --git a/.ci/api-python.sh b/.ci/api-python.sh
index 093f6b7166..556361cb96 100644
--- a/.ci/api-python.sh
+++ b/.ci/api-python.sh
@@ -10,10 +10,23 @@ git clone --depth=1 -b master git://github.com/neovim/python-client
cd python-client
sudo pip install .
sudo pip install nose
-test_cmd="nosetests --verbosity=2"
+# We run the tests twice:
+# - First by connecting with an nvim instance spawned by "expect"
+# - Second by starting nvim in embedded mode through the python client
+# This is required until nvim is mature enough to always run in embedded mode
+test_cmd="nosetests --verbosity=2 --nologcapture"
nvim_cmd="valgrind -q --track-origins=yes --leak-check=yes --suppressions=$suppressions --log-file=$tmpdir/valgrind-%p.log ../build/bin/nvim -u NONE"
if ! ../scripts/run-api-tests.exp "$test_cmd" "$nvim_cmd"; then
valgrind_check "$tmpdir"
exit 1
fi
+
+valgrind_check "$tmpdir"
+
+export NVIM_SPAWN_ARGV="[\"valgrind\", \"-q\", \"--track-origins=yes\", \"--leak-check=yes\", \"--suppressions=$suppressions\", \"--log-file=$tmpdir/valgrind-%p.log\", \"../build/bin/nvim\", \"-u\", \"NONE\", \"--embedded-mode\"]"
+if ! nosetests --verbosity=2 --nologcapture; then
+ valgrind_check "$tmpdir"
+ exit 1
+fi
+
valgrind_check "$tmpdir"
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0f8978d74f..16887376b2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -94,7 +94,7 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
# Find Lua interpreter
include(LuaHelpers)
-set(LUA_DEPENDENCIES lpeg cmsgpack)
+set(LUA_DEPENDENCIES lpeg cmsgpack bit)
if(NOT LUA_PRG)
foreach(CURRENT_LUA_PRG luajit lua)
# If LUA_PRG is set find_program() will not search
@@ -153,6 +153,12 @@ endif()
if(BUSTED_PRG)
get_property(TEST_INCLUDE_DIRS DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
PROPERTY INCLUDE_DIRECTORIES)
+
+ # Set policy CMP0026 to OLD so we avoid CMake warnings on newer
+ # versions of cmake.
+ if(POLICY CMP0026)
+ cmake_policy(SET CMP0026 OLD)
+ endif()
get_target_property(TEST_LIBNVIM_PATH nvim-test LOCATION)
configure_file(
@@ -171,7 +177,8 @@ if(BUSTED_PRG)
DEPENDS nvim-test unittest-headers)
endif()
-install(DIRECTORY runtime DESTINATION share/nvim/)
+install(DIRECTORY runtime DESTINATION share/nvim)
+install(SCRIPT ${CMAKE_MODULE_PATH}/GenerateHelptags.cmake)
# Unfortunately, the below does not work under Ninja. Ninja doesn't use a
# pseudo-tty when launching processes, because it can put many jobs in parallel
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 46ab3f8838..8ef6d78d40 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,11 +1,13 @@
# Contributing to Neovim
-If you need additional support see [the wiki][wiki].
+## Getting started
-## Getting started contributing
-
-- Look for the [`entry-level`][entry] Issue Label. It marks easier issues.
-- Take a look at [Waffle][waffle]. It'll show who is working on what isssues.
+- Help us review [open pull requests](https://github.com/neovim/neovim/pulls)!
+- Look for [**entry-level**][entry] issues to work on.
+ - [**documentation**](https://github.com/neovim/neovim/labels/documentation)
+ improvements are also very helpful.
+- Look at [Waffle][waffle] to see who is working on what issues.
+- Refer to the [the wiki][wiki] for detailed guidance.
### What not to do
@@ -20,23 +22,20 @@ excessive noise to `git blame`.
## Pull requests
-### For all PRs
-
- Make it clear in the issue tracker what you are working on.
- Be descriptive in your PR message: what is it for, why is it needed, etc.
- Don't make cosmetic changes to unrelated files in the same PR.
#### Tagging in the issue tracker
-When submitting pull requests, include one of the following 'tags' in the title:
+When submitting pull requests, include one of the following tokens in the title:
* `[WIP]` - Work In Progress. The pull request will change, and there is no need
to review it yet.
* `[RFC]` - Request For Comment. The request needs reviewing and/or comments.
* `[RDY]` - The request is ready to be merged. The request must have been
reviewed by at least one person and have no outstanding issues.
-* Default label is assumed to be `[WIP]` as long as there's no indication
- otherwise.
+* Default label is assumed to be `[WIP]` if there's no indication otherwise.
#### Branching & history
@@ -52,34 +51,43 @@ When submitting pull requests, include one of the following 'tags' in the title:
#### Testing
- We are unlikely to merge your PR if the Travis build fails.
-- The Travis build does not currently run the tests under valgrind, but we would
- strongly encourage you to do so locally.
+- The Travis build does not currently run the tests under valgrind, but you
+ are encouraged to do so locally.
#### Coding style
-All code changes should follow the [Neovim style guide][style].
+Code changes should follow the [Neovim style guide][style].
Please run [`clint.py`][clint] to detect style errors. It is not perfect and may
have false positives and negatives. To have `clint.py` ignore certain special
cases, put `// NOLINT` at the end of the line.
-#### Commit messages
-
-Follow the [Tim Pope Convention][commit] (@tpope) for commit messages. Most
-importantly, do the following:
-
-- Keep the first line a summary of 50 characters or less.
-- Write the summary in the [imperative mood][imperative].
-- Write a more detailed explanation (after a blank line) that explains more in
- depth (only if necessary).
+#### Commit guidelines
+
+The purpose of these guidelines is to *make reviews easier* and make the VCS logs more valuable.
+
+- Try to keep the first line under 70 characters.
+- Include further description, if necessary, after a blank line.
+ - Don't make it too verbose by including obvious things.
+ - But don't spare clarifications for anything that could be not so obvious.
+ Some commit messages are pages long, and that's fine if there's no better
+ place for those comments to live.
+ - **Recommended:** Prefix logically-related commits with a consistent
+ identifier at the beginning of each commit message.
+ [For example](https://github.com/neovim/neovim/commits?author=elmart),
+ the following commits are related by task (*Introduce vim namespace*) and
+ scope (*Contrib YCM*).
+ <br/> `Introduce vim namespace: Contrib YCM: Fix style issues.`
+ <br/> `Introduce vim namespace: Contrib YCM: Fix build dir calculation`
+ - Subtasks can be *activity-oriented* (doing different things on the same area)
+ or *scope-oriented* (doing the same thing on different areas).
+ - Granularity helps, but it's conceptual size that matters, not extent size.
+- Use the imperative voice: "Fix bug" rather than "Fixed bug" or "Fixes bug."
-Take a look at @elmart's [commits on Neovim][elmart] for examples.
[clint]: clint.py
-[commit]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
[entry]: https://github.com/neovim/neovim/issues?labels=entry-level&state=open
-[elmart]: https://github.com/neovim/neovim/commits?author=elmart
-[imperative]: http://en.wikipedia.org/wiki/Imperative_mood
+[imperative]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
[style]: http://neovim.org/develop/style-guide.xml
[waffle]: https://waffle.io/neovim/neovim
[wiki]: https://github.com/neovim/neovim/wiki/Contributing
diff --git a/README.md b/README.md
index 1eddbd9f6b..b8af1a61a3 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,9 @@
![Neovim](https://raw.githubusercontent.com/neovim/neovim.github.io/master/logos/neovim-logo.png)
[Website](http://neovim.org) |
-[Google Group](https://groups.google.com/forum/#!forum/neovim) |
+[Wiki](https://github.com/neovim/neovim/wiki) |
+[Documentation](http://neovim.org/doc) |
+[Mailing List](https://groups.google.com/forum/#!forum/neovim) |
[Twitter](http://twitter.com/Neovim) |
[Reddit](http://www.reddit.com/r/neovim) |
[Bountysource](https://www.bountysource.com/teams/neovim)
@@ -11,59 +13,35 @@
[![Coverage Status](https://img.shields.io/coveralls/neovim/neovim.svg)](https://coveralls.io/r/neovim/neovim)
[![Coverity Scan Build](https://scan.coverity.com/projects/2227/badge.svg)](https://scan.coverity.com/projects/2227)
[![Clang Scan Build](http://neovim.org/doc/reports/clang/badge.svg)](http://neovim.org/doc/reports/clang)
-[![Bountysource](https://www.bountysource.com/badge/tracker?tracker_id=461131)](https://www.bountysource.com/trackers/461131-neovim?utm_source=461131&utm_medium=shield&utm_campaign=TRACKER_BADGE)
Neovim is a project that seeks to aggressively refactor Vim in order to:
-- Simplify maintenance and encourage contributions
+- Simplify maintenance and encourage [contributions](https://github.com/neovim/neovim/wiki/Contributing)
- Split the work between multiple developers
- Enable the implementation of new/modern user interfaces without any
modifications to the core source
-- Improve extensibility with a new plugin architecture
+- Improve extensibility with a new [plugin architecture](https://github.com/neovim/neovim/wiki/Plugin-UI-architecture)
For lots more details, see
[the wiki](https://github.com/neovim/neovim/wiki/Introduction)!
### What's been done so far
-- Cleaned up source tree, leaving only core files
-- Removed support for legacy systems and moved to C99
- - Removed tons of `FEAT_*` macros with [unifdef]
- - Reduced C code from 300k lines to 170k
-- Enabled modern compiler features and [optimizations](https://github.com/neovim/neovim/pull/426)
-- Formatted entire source with [uncrustify]
-- Replaced autotools build system with [CMake]
-- Implemented [continuous integration] and [test coverage]
-- Wrote 100+ new unit tests
-- Split large, monolithic files (`misc1.c`) into logical units
- (`path.c`, `indent.c`, `garray.c`, `keymap.c`, ...)
-- [Implemented](https://github.com/neovim/neovim/pull/475) job control ("async")
-- Reworked out-of-memory handling resulting in greatly simplified control flow
-- Merged 50+ upstream patches (nearly caught up with upstream)
-- [Removed](https://github.com/neovim/neovim/pull/635) 8.3 filename support
-- [Changed](https://github.com/neovim/neovim/pull/574) to portable format
- specifiers (first step towards building on Windows)
-
-[unifdef]: http://freecode.com/projects/unifdef
-[uncrustify]: http://uncrustify.sourceforge.net/
-[CMake]: http://cmake.org/
-[continuous integration]: https://travis-ci.org/neovim/neovim
-[test coverage]: https://coveralls.io/r/neovim/neovim
+- [Job control](https://github.com/neovim/neovim/pull/475) (work with processes asynchronously)
+- msgpack remote API
+- Performance, reliability, and portability improvements
+- See the [progress page](https://github.com/neovim/neovim/wiki/Progress) for a comprehensive list.
### What's being worked on now
-- Porting all IO to libuv
+- Port all IO to libuv
- Lots of refactoring
- A VimL => Lua transpiler
-- Formatting with `clint.py`
-- msg-pack remote API
### How do I get it?
-There is a formula for OSX/homebrew, a PKGBUILD for Arch Linux,
-and detailed instructions for building on other OSes.
-
-See [the wiki](https://github.com/neovim/neovim/wiki/Installing)!
+There is a formula for OSX/homebrew, a PKGBUILD for Arch Linux, RPM, deb, and
+more. See [the wiki](https://github.com/neovim/neovim/wiki/Installing)!
### Community
diff --git a/cmake/GenerateHelptags.cmake b/cmake/GenerateHelptags.cmake
new file mode 100644
index 0000000000..4101ff6cbf
--- /dev/null
+++ b/cmake/GenerateHelptags.cmake
@@ -0,0 +1,20 @@
+file(TO_CMAKE_PATH
+ "$ENV{DESTDIR}/${CMAKE_INSTALL_PREFIX}/share/nvim/runtime/doc"
+ HELPTAGS_WORKING_DIRECTORY)
+
+message(STATUS "Generating helptags in ${HELPTAGS_WORKING_DIRECTORY}.")
+
+execute_process(
+ COMMAND "${CMAKE_CURRENT_BINARY_DIR}/bin/nvim"
+ -u NONE
+ -esX
+ -c "helptags ++t ."
+ -c quit
+ WORKING_DIRECTORY "${HELPTAGS_WORKING_DIRECTORY}"
+ OUTPUT_VARIABLE err
+ ERROR_VARIABLE err
+ RESULT_VARIABLE res)
+
+if(NOT res EQUAL 0)
+ message(FATAL_ERROR "Generating helptags failed: ${err}")
+endif()
diff --git a/runtime/autoload/ada.vim b/runtime/autoload/ada.vim
index 1f8234a575..cc5191fa43 100644
--- a/runtime/autoload/ada.vim
+++ b/runtime/autoload/ada.vim
@@ -447,7 +447,7 @@ function ada#Switch_Session (New_Session)
if a:New_Session != v:this_session
"
- " We actualy got a new session - otherwise there
+ " We actually got a new session - otherwise there
" is nothing to do.
"
if strlen (v:this_session) > 0
diff --git a/runtime/autoload/sqlcomplete.vim b/runtime/autoload/sqlcomplete.vim
index 9326c15bb3..4a8863e15f 100644
--- a/runtime/autoload/sqlcomplete.vim
+++ b/runtime/autoload/sqlcomplete.vim
@@ -588,7 +588,7 @@ function! sqlcomplete#DrillIntoTable()
else
" If the popup is not visible, simple perform the normal
" key behaviour.
- " Must use exec since they key must be preceeded by "\"
+ " Must use exec since the key must be preceded by "\"
" or feedkeys will simply push each character of the string
" rather than the "key press".
exec 'call feedkeys("\'.g:ftplugin_sql_omni_key_right.'", "n")'
@@ -605,7 +605,7 @@ function! sqlcomplete#DrillOutOfColumns()
else
" If the popup is not visible, simple perform the normal
" key behaviour.
- " Must use exec since they key must be preceeded by "\"
+ " Must use exec since the key must be preceded by "\"
" or feedkeys will simply push each character of the string
" rather than the "key press".
exec 'call feedkeys("\'.g:ftplugin_sql_omni_key_left.'", "n")'
@@ -831,7 +831,7 @@ function! s:SQLCGetColumns(table_name, list_type)
" Start characterwise visual mode
" Advance right one character
- " Search foward until one of the following:
+ " Search forward until one of the following:
" 1. Another select/update/delete statement
" 2. A ; at the end of a line (the delimiter)
" 3. The end of the file (incase no delimiter)
diff --git a/runtime/autoload/syntaxcomplete.vim b/runtime/autoload/syntaxcomplete.vim
index a18c3c360c..0ce3e6e154 100644
--- a/runtime/autoload/syntaxcomplete.vim
+++ b/runtime/autoload/syntaxcomplete.vim
@@ -548,7 +548,7 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
" let syn_list = substitute( @l, '^.*xxx\s*\%(contained\s*\)\?', "", '' )
" let syn_list = substitute( @l, '^.*xxx\s*', "", '' )
- " We only want the words for the lines begining with
+ " We only want the words for the lines beginning with
" containedin, but there could be other items.
" Tried to remove all lines that do not begin with contained
diff --git a/runtime/compiler/checkstyle.vim b/runtime/compiler/checkstyle.vim
index eac461bb2d..ccab3c585d 100644
--- a/runtime/compiler/checkstyle.vim
+++ b/runtime/compiler/checkstyle.vim
@@ -14,6 +14,6 @@ endif
CompilerSet makeprg=java\ com.puppycrawl.tools.checkstyle.Main\ -f\ plain
-" sample error: WebTable.java:282: '+=' is not preceeded with whitespace.
+" sample error: WebTable.java:282: '+=' is not preceded with whitespace.
" WebTable.java:201:1: '{' should be on the previous line.
CompilerSet errorformat=%f:%l:%v:\ %m,%f:%l:\ %m,%-G%.%#
diff --git a/runtime/doc/Makefile b/runtime/doc/Makefile
index a6610a937a..8bd5aaf049 100644
--- a/runtime/doc/Makefile
+++ b/runtime/doc/Makefile
@@ -65,7 +65,6 @@ DOCS = \
os_dos.txt \
os_mac.txt \
os_mint.txt \
- os_msdos.txt \
os_os2.txt \
os_qnx.txt \
os_risc.txt \
@@ -137,10 +136,6 @@ DOCS = \
usr_90.txt \
usr_toc.txt \
various.txt \
- version4.txt \
- version5.txt \
- version6.txt \
- version7.txt \
vi_diff.txt \
visual.txt \
windows.txt \
@@ -197,7 +192,6 @@ HTMLS = \
os_dos.html \
os_mac.html \
os_mint.html \
- os_msdos.html \
os_os2.html \
os_qnx.html \
os_risc.html \
@@ -270,10 +264,6 @@ HTMLS = \
usr_90.html \
usr_toc.html \
various.html \
- version4.html \
- version5.html \
- version6.html \
- version7.html \
vi_diff.html \
vimindex.html \
visual.html \
@@ -412,9 +402,6 @@ os_mac.txt:
os_mint.txt:
touch os_mint.txt
-os_msdos.txt:
- touch os_msdos.txt
-
os_os2.txt:
touch os_os2.txt
diff --git a/runtime/doc/help.txt b/runtime/doc/help.txt
index f13a5294ec..a9af50dd09 100644
--- a/runtime/doc/help.txt
+++ b/runtime/doc/help.txt
@@ -173,10 +173,6 @@ Interfaces ~
Versions ~
|vi_diff.txt| Main differences between Vim and Vi
-|version4.txt| Differences between Vim version 3.0 and 4.x
-|version5.txt| Differences between Vim version 4.6 and 5.x
-|version6.txt| Differences between Vim version 5.7 and 6.x
-|version7.txt| Differences between Vim version 6.4 and 7.x
*sys-file-list*
Remarks about specific systems ~
|os_390.txt| OS/390 Unix
diff --git a/runtime/doc/os_dos.txt b/runtime/doc/os_dos.txt
index 245a31846f..03170cf1d8 100644
--- a/runtime/doc/os_dos.txt
+++ b/runtime/doc/os_dos.txt
@@ -5,8 +5,8 @@
*dos* *DOS*
-This file documents the common particularities of the MS-DOS and Win32
-versions of Vim. Also see |os_win32.txt| and |os_msdos.txt|.
+This file documents some particularities of the Win32
+version of Vim. Also see |os_win32.txt|.
1. File locations |dos-locations|
2. Using backslashes |dos-backslash|
diff --git a/runtime/doc/os_msdos.txt b/runtime/doc/os_msdos.txt
deleted file mode 100644
index bd996be0c3..0000000000
--- a/runtime/doc/os_msdos.txt
+++ /dev/null
@@ -1,276 +0,0 @@
-*os_msdos.txt* For Vim version 7.4. Last change: 2005 Mar 29
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-
-
- *msdos* *ms-dos* *MSDOS* *MS-DOS*
-This file contains the particularities for the MS-DOS version of Vim.
-
-1. Two versions for MS-DOS |msdos-versions|
-2. Known problems |msdos-problems|
-3. Long file names |msdos-longfname|
-4. Termcap codes |msdos-termcap|
-5. Shifted arrow keys |msdos-arrows|
-6. Filename extensions |msdos-fname-extensions|
-7. Memory usage and limitations |msdos-limitations|
-8. Symbolically linked files |msdos-linked-files|
-9. Copy/paste in a dos box |msdos-copy-paste|
-
-Additionally, there are a number of common Win32 and DOS items:
-File locations |dos-locations|
-Using backslashes |dos-backslash|
-Standard mappings |dos-standard-mappings|
-Screen output and colors |dos-colors|
-File formats |dos-file-formats|
-:cd command |dos-:cd|
-Interrupting |dos-CTRL-Break|
-Temp files |dos-temp-files|
-Shell option default |dos-shell|
-
-For compiling Vim see src/INSTALL.pc. *msdos-compiling*
-
-==============================================================================
-1. Two versions for MS-DOS *msdos-versions*
-
-There are two versions of Vim that can be used with MS-DOS machines:
-
- *dos16*
-Dos16 version Can be used on any MS-DOS system, only uses up to 640 Kbyte of
- memory. Also runs on OS/2, Windows 95, and NT. Excludes some
- Vim-specific features (autocommands, syntax highlighting,
- etc.). Recommended for use on pre-386 machines.
- *dos32*
-Dos32 version Requires 386 processor and a |DPMI| driver, uses all
- available memory. Supports long file names and the Windows
- clipboard, but NOT on Windows NT. Recommended for MS-DOS,
- Windows 3.1 and Windows 95.
-
-There are also two versions that run under Windows:
-Win32 version Requires Windows 95 or Windows NT, uses all available
- memory, supports long file names, etc. Has some problems on
- Windows 95. Recommended for Windows NT. See |os_win32.txt|
-Win32 GUI Requirements like the Win32 version, but runs in its own
- window, instead of a console. Has scrollbars, menu, etc.
- Recommended for Windows 95 and Windows NT. See |gui-w32|.
-
-It is recommended to use the Dos32 or Win32 version. Although the Dos16
-version is able to edit very big files, it quickly runs out of memory when
-making big changes. Disabling undo helps: ":set ul=-1". The screen updating
-of the Dos16 version is the fastest of the three on DOS or Windows 95; on
-Windows NT, the Win32 version is just as fast.
-
- *DPMI*
-For the Dos32 version, you may need a DPMI driver when running in MS-DOS. If
-you are running Windows or installed a clever memory manager, it will probably
-work already. If you get the message "No DPMI", you need to install a DPMI
-driver. Such a driver is included with the executable in CSDPMI4B.ZIP. Run
-"cwsdpmi" just before starting Vim each time. Or you might want to include
-"cwsdpmi -p" in your autoexec.bat to make it resident. The latest version of
-"CSDPMI*.ZIP" can be obtained from: "ftp.neosoft.com:pub/users/s/sandmann".
-
- *minimal-features*
-The 16 bit DOS version has been compiled with minimal features. Check the
-|+feature-list| which ones are included (marked with a "T").
-You can include more features by editing feature.h and recompiling.
-
-==============================================================================
-2. Known problems *msdos-problems*
-
-When using smartdrive (MS-DOS 6.x) with write-behind caching, it is possible
-that Vim will try to create a swap file on a read-only file system (e.g.
-write protected floppy). You will then be given the message >
- A serious disk error has occurred .., Retry (r)?
-There is nothing you can do but unprotect the floppy or switch off the
-computer. Even CTRL-ALT-DEL will not get you out of this. This is really a
-problem of smartdrive, not Vim. Smartdrive works fine otherwise. If this
-bothers you, don't use the write-behind caching.
-
-Vim can't read swap files that have been opened already, unless the "share"
-command has been used. If you see stray warnings for existing swap files,
-include the "share" command in your config.sys or autoexec.bat (see your MSDOS
-documentation).
-
-The Dos16 version can only have about 10 files open (in a window or hidden) at
-one time. With more files you will get error messages when trying to read or
-write a file, and for filter commands. Or Vim runs out of memory, and random
-problems may result.
-
-The Dos32 version cannot have an unlimited number of files open at any one
-time. The limit depends on the setting of FILES in your CONFIG.SYS. This
-defaults to 15; if you need to edit a lot of files, you should increase this.
-If you do not set FILES high enough, you can get strange errors, and shell
-commands may cause a crash!
-
-The Dos32 version can work with long file names. When doing file name
-completion, matches for the short file name will also be found. But this will
-result in the corresponding long file name. For example, if you have the long
-file name "this_is_a_test" with the short file name "this_i~1", the command
-":e *1" will start editing "this_is_a_test".
-
-When using the Dos32 version and you run into problems with DPMI support,
-check if there is a program in your config.sys that eats resources. One
-program known to cause this problem is "netx", which says "NetWare v. 3.26
-Workstation shell". Replace it with version 3.32 to fix the problem.
-
-The Dos32 version will parse its arguments to handle quotation. This is good
-to edit a file with spaces in its name, for example: >
- vim "program files\accessories\ppp.scp"
-A side effect is that single quotes are removed. Insert a backslash to avoid
-that. For example, to edit the file "fi'le.txt": >
- vim fi\'le.txt
-
-==============================================================================
-3. Long file names *msdos-longfname*
-
-If the Dos32 version is run on Windows 95, it can use long file names. It
-will work by default. If you want to disable this, use this setting:
- set LFN=N
-You can put this in your autoexec.bat file.
-
-Note: If you have installed DJGPP on your machine, you probably have a
-"djgpp.env" file, which contains "LFN=n". You need to use "LFN=Y" to switch
-on using long file names then.
-
-==============================================================================
-4. Termcap codes *msdos-termcap*
-
-If you want to use another output method (e.g., when using a terminal on a COM
-port), set the terminal name to "pcansi". You can change the termcap options
-when needed (see |terminal-options|). Note that the
-normal IBM ansi.sys does not support all the codes of the builtin pcansi
-terminal. If you use ansi.sys, you will need to delete the termcap entries
-t_al and t_dl with >
- :set t_al= t_dl=
-Otherwise, the screen will not be updated correctly. It is better to use
-nansi.sys, nnansi.sys, or the like instead of ansi.sys.
-
-If you want to use Vim on a terminal connected to a COM: port, reset the
-'bioskey' option. Otherwise the commands will be read from the PC keyboard.
-CTRL-C and CTRL-P may not work correctly with 'bioskey' reset.
-
-==============================================================================
-5. Shifted arrow keys *msdos-arrows*
-
-Use CTRL-arrow-left and CTRL-arrow-right instead of SHIFT-arrow-left and
-SHIFT-arrow-right. The arrow-up and arrow-down cannot be used with SHIFT or
-CTRL.
-
-==============================================================================
-6. Filename extensions *msdos-fname-extensions*
-
-MS-DOS allows for only one file name extension. Therefore, when appending an
-extension, the '.' in the original file name is replaced with a '_', the name
-is truncated to 8 characters, and the new extension (e.g., ".swp") is
-appended. Two examples: "test.c" becomes "test_c.bak", "thisisat.est"
-becomes "thisisat.bak". To reduce these problems, the default for
-'backupext' is "~" instead of ".bak". The backup file for "thisisat.est"
-then becomes "thisisat.es~". The 'shortname' option is not available,
-because it would always be set.
-
-==============================================================================
-7. Memory usage and limitations *msdos-limitations*
-
-A swap file is used to store most of the text. You should be able to edit
-very large files. However, memory is used for undo and other things. If you
-delete a lot of text, you can still run out of memory in the Dos16 version.
-
-If Vim gives an "Out of memory" warning, you should stop editing. The result
-of further editing actions is unpredictable. Setting 'undolevels' to 0 saves
-some memory. Running the maze macros on a big maze is guaranteed to run out
-of memory, because each change is remembered for undo. In this case set
-'undolevels' to a negative number. This will switch off undo completely.
-
- *msdos-clipboard-limits*
-In the Dos32 version, extended memory is used to avoid these problems.
-However, if you are using the clipboard, you can still run into memory
-limitations because the Windows clipboard can only communicate with Vim using
-Dos memory. This means that the largest amount of text that can be sent to
-or received from the Windows clipboard is limited by how much free Dos memory
-is available on your system.
-
-You can usually maximize the amount of available Dos memory by adding the
-following lines to Dos's "config.sys" file: >
-
- DOS=HIGH,UMB
- DEVICE=C:\WINDOWS\himem.sys
- DEVICE=C:\WINDOWS\emm386.exe RAM
-
-Modifying config.sys in this way will also help to make more memory available
-for the Dos16 version, if you are using that.
-
-In the Dos16 version the line length is limited to about 32000 characters.
-When reading a file the lines are automatically split. But editing a line
-in such a way that it becomes too long may give unexpected results.
-
-==============================================================================
-8. Symbolically linked files *msdos-linked-files*
-
-When using Vim to edit a symbolically linked file on a unix NFS file server,
-you may run into problems. When writing the file, Vim does not "write
-through" the symlink. Instead, it deletes the symbolic link and creates a new
-file in its place.
-
-On Unix, Vim is prepared for links (symbolic or hard). A backup copy of the
-original file is made and then the original file is overwritten. This assures
-that all properties of the file remain the same. On non-Unix systems, the
-original file is renamed and a new file is written. Only the protection bits
-are set like the original file. However, this doesn't work properly when
-working on an NFS-mounted file system where links and other things exist. The
-only way to fix this in the current version is not making a backup file, by
-":set nobackup nowritebackup" |'writebackup'|
-
-A similar problem occurs when mounting a Unix filesystem through Samba or a
-similar system. When Vim creates a new file it will get the default user ID
-for the mounted file system. This may be different from the original user ID.
-To avoid this set the 'backupcopy' option to "yes".
-
-==============================================================================
-9. Copy/paste in a dos box *msdos-copy-paste*
-
- *E450* *E451* *E452* *E453* *E454*
-The 32 bit version can copy/paste from/to the Windows clipboard directly. Use
-the "* register. Large amounts of text can be copied this way, but it must be
-possible to allocate memory for it, see |msdos-clipboard-limits|. When moving
-text from one Vim to another, the type of the selection
-(characterwise/linewise/blockwise) is passed on.
-
-In other versions, the following can be used.
-
-(posted to comp.editors by John Velman <velman@igate1.hac.com>)
-
-How to copy/paste text from/to vim in a dos box:
-
-1) To get VIM to run in a window, instead of full screen, press alt+enter.
- This toggles back and forth between full screen and a dos window.
- NOTE: In Windows 95 you must have the property "Fast Pasting" unchecked!
- In the properties dialog box for the MS-DOS window, go to "MS-DOS
- Prompt/Misc/Fast pasting" and make sure that it is NOT checked.
- To make this permanent, change the properties for
- "\windows\system\conagent.exe" (from Philip Nelson, unverified).
-
-2) To paste something _into_ Vim, put Vim in insert mode.
-
-3) Put the text you want to paste on the windows clipboard.
-
-4) Click the control box in the upper left of the Vim window. (This looks
- like a big minus sign.) If you don't want to use the mouse, you can get
- this with alt+spacebar.
-5) On the resulting dropdown menu choose "Edit".
-6) On the child dropdown menu choose "Paste".
-
-To copy something from the Vim window to the clipboard,
-
-1) Select the control box to get the control drop down menu.
-2) Select "Edit".
-3) Select "Mark".
-4) Using either the keys or the mouse, select the part of the Vim window that
- you want to copy. To use the keys, use the arrow keys, and hold down shift
- to extend the selection.
-5) When you've completed your selection, press 'enter'. The selection
- is now in the windows clipboard. By the way, this can be any
- rectangular selection, for example columns 4-25 in rows 7-10. It can
- include anything in the VIM window: the output of a :!dir, for
- example.
-
- vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/os_win32.txt b/runtime/doc/os_win32.txt
index a01a06c8ec..22e763a08e 100644
--- a/runtime/doc/os_win32.txt
+++ b/runtime/doc/os_win32.txt
@@ -334,7 +334,7 @@ A. You have two possible solutions depending on what you want:
:!start /min ctags -R .
< When it has finished you should see file named "tags" in your current
directory. You should notice the window title blinking on your taskbar.
- This is more noticable for commands that take longer.
+ This is more noticeable for commands that take longer.
Now delete the "tags" file and run this command: >
:!start /b ctags -R .
< You should have the same "tags" file, but this time there will be no
diff --git a/runtime/doc/version4.txt b/runtime/doc/version4.txt
deleted file mode 100644
index 6b791be88b..0000000000
--- a/runtime/doc/version4.txt
+++ /dev/null
@@ -1,355 +0,0 @@
-*version4.txt* For Vim version 7.4. Last change: 2006 Apr 24
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-
-
-This document lists the incompatible differences between Vim 3.0 and Vim 4.0.
-Although 4.0 is mentioned here, this is also for version 4.1, 4.2, etc..
-
-This file is important for everybody upgrading from Vim 3.0. Read it
-carefully to avoid unexpected problems.
-
-'backup' option default changed |backup-changed|
-Extension for backup file changed |backup-extension|
-Structure of swap file changed |swapfile-changed|
-"-w scriptout" argument changed |scriptout-changed|
-Backspace and Delete keys |backspace-delete|
-Escape for | changed |escape-bar|
-Key codes changed |key-codes-changed|
-Terminal options changed |termcap-changed|
-'errorformat' option changed |errorformat-changed|
-'graphic' option gone |graphic-option-gone|
-'yankendofline' option gone |ye-option-gone|
-'icon' and 'title' default value changed |icon-changed|
-'highlight' option changed |highlight-changed|
-'tildeop' and 'weirdinvert' short names changed |short-name-changed|
-Use of "v", "V" and "CTRL-V" in Visual mode |use-visual-cmds|
-CTRL-B in Insert mode removed |toggle-revins|
-
-
-'backup' option default changed *backup-changed*
--------------------------------
-
-The default value for 'backup' used to be on. This resulted in a backup file
-being made when the original file was overwritten.
-
-Now the default for 'backup' is off. As soon as the writing of the file has
-successfully finished, the backup file is deleted. If you want to keep the
-backup file, set 'backup' on in your vimrc. The reason for this change is
-that many people complained that leaving a backup file behind is not
-Vi-compatible. |'backup'|
-
-
-Extension for backup file changed *backup-extension*
----------------------------------
-
-The extension for the backup file used to be ".bak". Since other programs
-also use this extension and some users make copies with this extension, it was
-changed to the less obvious "~". Another advantage is that this takes less
-space, which is useful when working on a system with short file names. For
-example, on MS-DOS the backup files for "longfile.c" and "longfile.h" would
-both become "longfile.bak"; now they will be "longfile.c~" and "longfile.h~".
-
-If you prefer to use ".bak", you can set the 'backupext' option: >
- :set bex=.bak
-
-
-Structure of swap file changed *swapfile-changed*
-------------------------------
-
-The contents of the swap file were extended with several parameters. Vim
-stores the user name and other information about the edited file to make
-recovery more easy and to be able to know where the swap file comes from. The
-first part of the swap file can now be understood on a machine with a
-different byte order or sizeof(int). When you try to recover a file on such a
-machine, you will get an error message that this is not possible.
-
-Because of this change, swap files cannot be exchanged between 3.0 and 4.0.
-If you have a swap file from a crashed session with 3.0, use Vim 3.0 to
-recover the file---don't use 4.0. |swap-file|
-
-
-"-w scriptout" argument changed *scriptout-changed*
--------------------------------
-
-"vim -w scriptout" used to append to the scriptout file. Since this was
-illogical, it now creates a new file. An existing file is not overwritten
-(to avoid destroying an existing file for those who rely on the appending).
-[This was removed again later] |-w|
-
-
-Backspace and Delete keys *backspace-delete*
--------------------------
-
-In 3.0 both the delete key and the backspace key worked as a backspace in
-insert mode; they deleted the character to the left of the cursor. In 4.0 the
-delete key has a new function: it deletes the character under the cursor, just
-like it does on the command-line. If the cursor is after the end of the line
-and 'bs' is set, two lines are joined. |<Del>| |i_<Del>|
-
-In 3.0 the backspace key was always defined as CTRL-H and delete as CTRL-?.
-In 4.0 the code for the backspace and delete key is obtained from termcap or
-termlib, and adjusted for the "stty erase" value on Unix. This helps people
-who define the erase character according to the keyboard they are working on.
- |<BS>| |i_<BS>|
-
-If you prefer backspace and delete in Insert mode to have the old behavior,
-put this line in your vimrc:
-
- inoremap ^? ^H
-
-And you may also want to add these, to fix the values for <BS> and <Del>:
-
- set t_kb=^H
- set t_kD=^?
-
-(Enter ^H with CTRL-V CTRL-H and ^? with CTRL-V CTRL-? or <Del>.)
-
-If the value for t_kb is correct, but the t_kD value is not, use the ":fixdel"
-command. It will set t_kD according to the value of t_kb. This is useful if
-you are using several different terminals. |:fixdel|
-
-When ^H is not recognized as <BS> or <Del>, it is used like a backspace.
-
-
-Escape for | changed *escape-bar*
---------------------
-
-When the 'b' flag is present in 'cpoptions', the backslash cannot be used to
-escape '|' in mapping and abbreviate commands, only CTRL-V can. This is
-Vi-compatible. If you work in Vi-compatible mode and had used "\|" to include
-a bar in a mapping, this needs to be replaced by "^V|". See |:bar|.
-
-
-Key codes changed *key-codes-changed*
------------------
-
-The internal representation of key codes has changed dramatically. In 3.0 a
-one-byte code was used to represent a key. This caused problems with
-different characters sets that also used these codes. In 4.0 a three-byte
-code is used that cannot be confused with a character. |key-notation|
-
-If you have used the single-byte key codes in your vimrc for mappings, you
-will have to replace them with the 4.0 codes. Instead of using the three-byte
-code directly, you should use the symbolic representation for this in <>. See
-the table below. The table also lists the old name, as it was used in the 3.0
-documentation.
-
-The key names in <> can be used in mappings directly. This makes it possible
-to copy/paste examples or type them literally. The <> notation has been
-introduced for this |<>|. The 'B' and '<' flags must not be present in
-'cpoptions' to enable this to work |'cpoptions'|.
-
-old name new name old code old MS-DOS code ~
- hex dec hex dec ~
-<ESC> <Esc>
-<TAB> <Tab>
-<LF> <NL> <NewLine> <LineFeed>
-<SPACE> <Space>
-<NUL> <Nul>
-<BELL> <Bell>
-<BS> <BS> <BackSpace>
-<INSERT> <Insert>
-<DEL> <Del> <Delete>
-<HOME> <Home>
-<END> <End>
-<PAGE_UP> <PageUp>
-<PAGE_DOWN> <PageDown>
-
-<C_UP> <Up> 0x80 128 0xb0 176
-<C_DOWN> <Down> 0x81 129 0xb1 177
-<C_LEFT> <Left> 0x82 130 0xb2 178
-<C_RIGHT> <Right> 0x83 131 0xb3 179
-<SC_UP> <S-Up> 0x84 132 0xb4 180
-<SC_DOWN> <S-Down> 0x85 133 0xb5 181
-<SC_LEFT> <S-Left> 0x86 134 0xb6 182
-<SC_RIGHT> <S-Right> 0x87 135 0xb7 183
-
-<F1> <F1> 0x88 136 0xb8 184
-<F2> <F2> 0x89 137 0xb9 185
-<F3> <F3> 0x8a 138 0xba 186
-<F4> <F4> 0x8b 139 0xbb 187
-<F5> <F5> 0x8c 140 0xbc 188
-<F6> <F6> 0x8d 141 0xbd 189
-<F7> <F7> 0x8e 142 0xbe 190
-<F8> <F8> 0x8f 143 0xbf 191
-<F9> <F9> 0x90 144 0xc0 192
-<F10> <F10> 0x91 145 0xc1 193
-
-<SF1> <S-F1> 0x92 146 0xc2 194
-<SF2> <S-F2> 0x93 147 0xc3 195
-<SF3> <S-F3> 0x94 148 0xc4 196
-<SF4> <S-F4> 0x95 149 0xc5 197
-<SF5> <S-F5> 0x96 150 0xc6 198
-<SF6> <S-F6> 0x97 151 0xc7 199
-<SF7> <S-F7> 0x98 152 0xc8 200
-<SF8> <S-F8> 0x99 153 0xc9 201
-<SF9> <S-F9> 0x9a 154 0xca 202
-<SF10> <S-F10> 0x9b 155 0xcb 203
-
-<HELP> <Help> 0x9c 156 0xcc 204
-<UNDO> <Undo> 0x9d 157 0xcd 205
-
- (not used) 0x9e 158 0xce 206
- (not used) 0x9f 159 0xcf 207
-
-
-Terminal options changed *termcap-changed*
-------------------------
-
-The names of the terminal options have been changed to match the termcap names
-of these options. All terminal options now have the name t_xx, where xx is
-the termcap name. Normally these options are not used, unless you have a
-termcap entry that is wrong or incomplete, or you have set the highlight
-options to a different value. |terminal-options|
-
-Note that for some keys there is no termcap name. Use the <> type of name
-instead, which is a good idea anyway.
-
-Note that "t_ti" has become "t_mr" (invert/reverse output) and "t_ts" has
-become "t_ti" (init terminal mode). Be careful when you use "t_ti"!
-
-old name new name meaning ~
-t_cdl t_DL delete number of lines *t_cdl*
-t_ci t_vi cursor invisible *t_ci*
-t_cil t_AL insert number of lines *t_cil*
-t_cm t_cm move cursor
-t_cri t_RI cursor number of chars right *t_cri*
-t_cv t_ve cursor visible *t_cv*
-t_cvv t_vs cursor very visible *t_cvv*
-t_dl t_dl delete line
-t_cs t_cs scroll region
-t_ed t_cl clear display *t_ed*
-t_el t_ce clear line *t_el*
-t_il t_al insert line *t_il*
- t_da display may be retained above the screen
- t_db display may be retained below the screen
-t_ke t_ke put terminal out of keypad transmit mode
-t_ks t_ks put terminal in keypad transmit mode
-t_ms t_ms save to move cursor in highlight mode
-t_se t_se normal mode (undo t_so)
-t_so t_so shift out (standout) mode
-t_ti t_mr reverse highlight
-t_tb t_md bold mode *t_tb*
-t_tp t_me highlight end *t_tp*
-t_sr t_sr scroll reverse
-t_te t_te out of termcap mode
-t_ts t_ti into termcap mode *t_ts_old*
-t_vb t_vb visual bell
-t_csc t_CS cursor is relative to scroll region *t_csc*
-
-t_ku t_ku <Up> arrow up
-t_kd t_kd <Down> arrow down
-t_kr t_kr <Right> arrow right
-t_kl t_kl <Left> arrow left
-t_sku <S-Up> shifted arrow up *t_sku*
-t_skd <S-Down> shifted arrow down *t_skd*
-t_skr t_%i <S-Right> shifted arrow right *t_skr*
-t_skl t_#4 <S-Left> shifted arrow left *t_skl*
-t_f1 t_k1 <F1> function key 1 *t_f1*
-t_f2 t_k2 <F2> function key 2 *t_f2*
-t_f3 t_k3 <F3> function key 3 *t_f3*
-t_f4 t_k4 <F4> function key 4 *t_f4*
-t_f5 t_k5 <F5> function key 5 *t_f5*
-t_f6 t_k6 <F6> function key 6 *t_f6*
-t_f7 t_k7 <F7> function key 7 *t_f7*
-t_f8 t_k8 <F8> function key 8 *t_f8*
-t_f9 t_k9 <F9> function key 9 *t_f9*
-t_f10 t_k; <F10> function key 10 *t_f10*
-t_sf1 <S-F1> shifted function key 1 *t_sf1*
-t_sf2 <S-F2> shifted function key 2 *t_sf2*
-t_sf3 <S-F3> shifted function key 3 *t_sf3*
-t_sf4 <S-F4> shifted function key 4 *t_sf4*
-t_sf5 <S-F5> shifted function key 5 *t_sf5*
-t_sf6 <S-F6> shifted function key 6 *t_sf6*
-t_sf7 <S-F7> shifted function key 7 *t_sf7*
-t_sf8 <S-F8> shifted function key 8 *t_sf8*
-t_sf9 <S-F9> shifted function key 9 *t_sf9*
-t_sf10 <S-F10> shifted function key 10 *t_sf10*
-t_help t_%1 <Help> help key *t_help*
-t_undo t_&8 <Undo> undo key *t_undo*
-
-
-'errorformat' option changed *errorformat-changed*
-----------------------------
-
-'errorformat' can now contain several formats, separated by commas. The first
-format that matches is used. The default values have been adjusted to catch
-the most common formats. |errorformat|
-
-If you have a format that contains a comma, it needs to be preceded with a
-backslash. Type two backslashes, because the ":set" command will eat one.
-
-
-'graphic' option gone *graphic-option-gone*
----------------------
-
-The 'graphic' option was used to make the characters between <~> and 0xa0
-display directly on the screen. Now the 'isprint' option takes care of this
-with many more possibilities. The default setting is the same; you only need
-to look into this if you previously set the 'graphic' option in your vimrc.
- |'isprint'|
-
-
-'yankendofline' option gone *ye-option-gone*
----------------------------
-
-The 'yankendofline' option has been removed. Instead you can just use
- :map Y y$
-
-
-'icon' and 'title' default value changed *icon-changed*
-----------------------------------------
-
-The 'title' option is now only set by default if the original title can be
-restored. Avoids "Thanks for flying Vim" titles. If you want them anyway,
-put ":set title" in your vimrc. |'title'|
-
-The default for 'icon' now depends on the possibility of restoring the
-original value, just like 'title'. If you don't like your icon titles to be
-changed, add this line to your vimrc: |'icon'|
- :set noicon
-
-
-'highlight' option changed *highlight-changed*
---------------------------
-
-The 'i' flag now means italic highlighting, instead of invert. The 'r' flag
-is used for reverse highlighting, which is what 'i' used to be. Normally you
-won't see the difference, because italic mode is not supported on most
-terminals and reverse mode is used as a fallback. |'highlight'|
-
-When an occasion is not present in 'highlight', use the mode from the default
-value for 'highlight', instead of reverse mode.
-
-
-'tildeop' and 'weirdinvert' short names changed *short-name-changed*
------------------------------------------------
-
-Renamed 'to' (abbreviation for 'tildeop') to 'top'. |'tildeop'|
-Renamed 'wi' (abbreviation for 'weirdinvert') to 'wiv'. |'weirdinvert'|
-
-This was done because Vi uses 'wi' as the short name for 'window' and 'to' as
-the short name for 'timeout'. This means that if you try setting these
-options, you won't get an error message, but the effect will be different.
-
-
-Use of "v", "V" and "CTRL-V" in Visual mode *use-visual-cmds*
--------------------------------------------
-
-In Visual mode, "v", "V", and "CTRL-V" used to end Visual mode. Now this
-happens only if the Visual mode was in the corresponding type. Otherwise the
-type of Visual mode is changed. Now only ESC can be used in all circumstances
-to end Visual mode without doing anything. |v_V|
-
-
-CTRL-B in Insert mode removed *toggle-revins*
------------------------------
-
-CTRL-B in Insert mode used to toggle the 'revins' option. If you don't know
-this and accidentally hit CTRL-B, it is very difficult to find out how to undo
-it. Since hardly anybody uses this feature, it is disabled by default. If
-you want to use it, define RIGHTLEFT in feature.h before compiling. |'revins'|
-
- vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/version5.txt b/runtime/doc/version5.txt
deleted file mode 100644
index 1cc6a25597..0000000000
--- a/runtime/doc/version5.txt
+++ /dev/null
@@ -1,7813 +0,0 @@
-*version5.txt* For Vim version 7.4. Last change: 2012 Aug 08
-
-
- 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 an 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 character 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:
diff --git a/runtime/doc/version6.txt b/runtime/doc/version6.txt
deleted file mode 100644
index f18fea8705..0000000000
--- a/runtime/doc/version6.txt
+++ /dev/null
@@ -1,14530 +0,0 @@
-*version6.txt* For Vim version 7.4. Last change: 2013 Jul 28
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-
-
-Welcome to Vim Version 6.0! A large number of features has been added. This
-file mentions all the new items that have been added, changes to existing
-features and bug fixes compared to Vim 5.x.
-
-See |vi_diff.txt| for an overview of differences between Vi and Vim 6.0.
-See |version4.txt| for differences between Vim 3.0 and Vim 4.0.
-See |version5.txt| for differences between Vim 4.0 and Vim 5.0.
-
-INCOMPATIBLE CHANGES |incompatible-6|
-
-Cursor position in Visual mode |curpos-visual|
-substitute command Vi compatible |substitute-CR|
-global option values introduced |new-global-values|
-'fileencoding' changed |fileencoding-changed|
-Digraphs changed |digraphs-changed|
-Filetype detection changed |filetypedetect-changed|
-Unlisted buffers introduced |new-unlisted-buffers|
-CTRL-U in Command-line mode changed |CTRL-U-changed|
-Ctags gone |ctags-gone|
-Documentation reorganized |documentation-6|
-Modeless selection and clipboard |modeless-and-clipboard|
-Small incompatibilities |incomp-small-6|
-
-NEW FEATURES |new-6|
-
-Folding |new-folding|
-Vertically split windows |new-vertsplit|
-Diff mode |new-diff-mode|
-Easy Vim: click-and-type |new-evim|
-User manual |new-user-manual|
-Flexible indenting |new-indent-flex|
-Extended search patterns |new-searchpat|
-UTF-8 support |new-utf-8|
-Multi-language support |new-multi-lang|
-Plugin support |new-plugins|
-Filetype plugins |new-filetype-plugins|
-File browser |new-file-browser|
-Editing files over a network |new-network-files|
-Window for command-line editing |new-cmdwin|
-Debugging mode |new-debug-mode|
-Cursor in virtual position |new-virtedit|
-Debugger interface |new-debug-itf|
-Communication between Vims |new-vim-server|
-Buffer type options |new-buftype|
-Printing |new-printing|
-Ports |ports-6|
-Quickfix extended |quickfix-6|
-Operator modifiers |new-operator-mod|
-Search Path |new-search-path|
-Writing files improved |new-file-writing|
-Argument list |new-argument-list|
-Restore a View |new-View|
-Color schemes |new-color-schemes|
-Various new items |new-items-6|
-
-IMPROVEMENTS |improvements-6|
-
-COMPILE TIME CHANGES |compile-changes-6|
-
-BUG FIXES |bug-fixes-6|
-
-VERSION 6.1 |version-6.1|
-Changed |changed-6.1|
-Added |added-6.1|
-Fixed |fixed-6.1|
-
-VERSION 6.2 |version-6.2|
-Changed |changed-6.2|
-Added |added-6.2|
-Fixed |fixed-6.2|
-
-VERSION 6.3 |version-6.3|
-Changed |changed-6.3|
-Added |added-6.3|
-Fixed |fixed-6.3|
-
-VERSION 6.4 |version-6.4|
-Changed |changed-6.4|
-Added |added-6.4|
-Fixed |fixed-6.4|
-
-==============================================================================
-INCOMPATIBLE CHANGES *incompatible-6*
-
-These changes are incompatible with previous releases. Check this list if you
-run into a problem when upgrading from Vim 5.x to 6.0
-
-
-Cursor position in Visual mode *curpos-visual*
-------------------------------
-
-When going from one window to another window on the same buffer while in
-Visual mode, the cursor position of the other window is adjusted to keep the
-same Visual area. This can be used to set the start of the Visual area in one
-window and the end in another. In vim 5.x the cursor position of the other
-window would be used, which could be anywhere and was not very useful.
-
-
-Substitute command Vi compatible *substitute-CR*
---------------------------------
-
-The substitute string (the "to" part of the substitute command) has been made
-Vi compatible. Previously a CTRL-V had a special meaning and could be used to
-prevent a <CR> to insert a line break. This made it impossible to insert a
-CTRL-V before a line break. Now a backslash is used to prevent a <CR> to
-cause a line break. Since the number of backslashes is halved, it is still
-possible to insert a line break at the end of the line. This now works just
-like Vi, but it's not compatible with Vim versions before 6.0.
-
-When a ":s" command doesn't make any substitutions, it no longer sets the '[
-and '] marks. This is not related to Vi, since it doesn't have these marks.
-
-
-Global option values introduced *new-global-values*
--------------------------------
-
-There are now global values for options which are local to a buffer or window.
-Previously the local options were copied from one buffer to another. When
-editing another file this could cause option values from a modeline to be used
-for the wrong file. Now the global values are used when entering a buffer
-that has not been used before. Also, when editing another buffer in a window,
-the local window options are reset to their global values. The ":set" command
-sets both the local and global values, this is still compatible. But a
-modeline only sets the local value, this is not backwards compatible.
-
-":let &opt = val" now sets the local and global values, like ":set". New
-commands have been added to set the global or local value:
- :let &opt = val like ":set"
- :let &g:opt = val like ":setglobal"
- :let &l:opt = val like ":setlocal"
-
-
-'fileencoding' changed *fileencoding-changed*
-----------------------
-
-'fileencoding' was used in Vim 5.x to set the encoding used inside all of Vim.
-This was a bit strange, because it was local to a buffer and worked for all
-buffers. It could never be different between buffers, because it changed the
-way text in all buffers was interpreted.
-It is now used for the encoding of the file related to the buffer. If you
-still set 'fileencoding' it is likely to be overwritten by the detected
-encoding from 'fileencodings', thus it is "mostly harmless".
-The old FileEncoding autocommand now does the same as the new EncodingChanged
-event.
-
-
-Digraphs changed *digraphs-changed*
-----------------
-
-The default digraphs now correspond to RFC1345. This is very different from
-what was used in Vim 5.x. |digraphs|
-
-
-Filetype detection changed *filetypedetect-changed*
---------------------------
-
-The filetype detection previously was using the "filetype" autocommand group.
-This caused confusion with the FileType event name (case is ignored). The
-group is now called "filetypedetect". It still works, but if the "filetype"
-group is used the autocommands will not be removed by ":filetype off".
- The support for 'runtimepath' has made the "myfiletypefile" and
-"mysyntaxfile" mechanism obsolete. They are still used for backwards
-compatibility.
-
-The connection between the FileType event and setting the 'syntax' option was
-previously in the "syntax" autocommand group. That caused confusion with the
-Syntax event name. The group is now called "syntaxset".
-
-The distributed syntax files no longer contain "syntax clear". That makes it
-possible to include one in the other without tricks. The syntax is now
-cleared when the 'syntax' option is set (by an autocommand added from
-synload.vim). This makes the syntax cleared when the value of 'syntax' does
-not correspond to a syntax file. Previously the existing highlighting was
-kept.
-
-
-Unlisted buffers introduced *new-unlisted-buffers*
----------------------------
-
-There is now a difference between buffers which don't appear in the buffer
-list and buffers which are really not in the buffer list. Commands like
-":ls", ":bnext", ":blast" and the Buffers menu will skip buffers not in the
-buffer list. |unlisted-buffer|
-The 'buflisted' option can be used to make a buffer appear in the buffer list
-or not.
-
-Several commands that previously added a buffer to the buffer list now create
-an unlisted buffer. This means that a ":bnext" and ":ball" will not find these
-files until they have actually been edited. For example, buffers used for the
-alternative file by ":write file" and ":read file".
- Other commands previously completely deleted a buffer and now only remove
-the buffer from the buffer list. Commands relying on a buffer not to be
-present might fail. For example, a ":bdelete" command in an autocommand that
-relied on something following to fail (was used in the automatic tests).
-|:bwipeout| can be used for the old meaning of ":bdelete".
-
-The BufDelete autocommand event is now triggered when a buffer is removed from
-the buffer list. The BufCreate event is only triggered when a buffer is
-created that is added to the buffer list, or when an existing buffer is added
-to the buffer list. BufAdd is a new name for BufCreate.
-The new BufNew event is for creating any buffer and BufWipeout for really
-deleting a buffer.
-
-When doing Insert mode completion, only buffers in the buffer list are
-scanned. Added the 'U' flag to 'complete' to do completion from unlisted
-buffers.
-
-Unlisted buffers are not stored in a viminfo file.
-
-
-CTRL-U in Command-line mode changed *CTRL-U-changed*
------------------------------------
-
-Using CTRL-U when editing the command line cleared the whole line. Most
-shells only delete the characters before the cursor. Made it work like that.
-(Steve Wall)
-
-You can get the old behavior with CTRL-E CTRL-U: >
- :cnoremap <C-U> <C-E><C-U>
-
-
-Ctags gone *ctags-gone*
-----------
-
-Ctags is no longer part of the Vim distribution. It's now a grown-up program
-by itself, it deserves to be distributed separately.
-Ctags can be found here: http://ctags.sf.net/.
-
-
-Documentation reorganized *documentation-6*
--------------------------
-
-The documentation has been reorganized, an item may not be where you found it
-in Vim 5.x.
-- The user manual was added, some items have been moved to it from the
- reference manual.
-- The quick reference is now in a separate file (so that it can be printed).
-
-The examples in the documentation were previously marked with a ">" in the
-first column. This made it difficult to copy/paste them. There is now a
-single ">" before the example and it ends at a "<" or a non-blank in the first
-column. This also looks better without highlighting.
-
-'helpfile' is no longer used to find the help tags file. This allows a user
-to add its own help files (e.g., for plugins).
-
-
-Modeless selection and clipboard *modeless-and-clipboard*
---------------------------------
-
-The modeless selection is used to select text when Visual mode can't be used,
-for example when editing the command line or at the more prompt.
-In Vim 5.x the modeless selection was always used. On MS-Windows this caused
-the clipboard to be overwritten, with no way to avoid that. The modeless
-selection now obeys the 'a' and 'A' flags in 'guioptions' and "autoselect" and
-"autoselectml" in 'clipboard'. By default there is no automatic copy on
-MS-Windows. Use the |c_CTRL-Y| command to manually copy the selection.
-
-To get the old behavior back, do this: >
-
- :set clipboard^=autoselectml guioptions+=A
-
-
-Small incompatibilities *incomp-small-6*
------------------------
-
-'backupdir', 'cdpath', 'directory', 'equalprg', 'errorfile', 'formatprg',
-'grepprg', 'helpfile', 'makeef', 'makeprg', 'keywordprg', 'cscopeprg',
-'viminfo' and 'runtimepath' can no longer be set from a modeline, for better
-security.
-
-Removed '_' from the 'breakat' default: It's commonly used in keywords.
-
-The default for 'mousehide' is on, because this works well for most people.
-
-The Amiga binary is now always compiled with "big" features. The "big" binary
-archive no longer exists.
-
-The items "[RO]", "[+]", "[help]", "[Preview]" and "[filetype]" in
-'statusline' no longer have a leading space.
-
-Non-Unix systems: When expanding wildcards for the Vim arguments, don't use
-'suffixes'. It now works as if the shell had expanded the arguments.
-
-The 'lisp', 'smartindent' and 'cindent' options are not switched off when
-'paste' is set. The auto-indenting is disabled when 'paste' is set, but
-manual indenting with "=" still works.
-
-When formatting with "=" uses 'cindent' or 'indentexpr' indenting, and there
-is no change in indent, this is not counted as a change ('modified' isn't set
-and there is nothing to undo).
-
-Report 'modified' as changed when 'fileencoding' or 'fileformat' was set.
-Thus it reflects the possibility to abandon the buffer without losing changes.
-
-The "Save As" menu entry now edits the saved file. Most people expect it to
-work like this.
-
-A buffer for a directory is no longer added to the Buffers menu.
-
-Renamed <Return> to <Enter>, since that's what it's called on most keyboards.
-Thus it's now the hit-enter prompt instead of the hit-return prompt.
-Can map <Enter> just like <CR> or <Return>.
-
-The default for the 'viminfo' option is now '20,"50,h when 'compatible' isn't
-set. Most people will want to use it, including beginners, but it required
-setting the option, which isn't that easy.
-
-After using ":colder" the newer error lists are overwritten. This makes it
-possible to use ":grep" to browse in a tree-like way. Must use ":cnewer 99"
-to get the old behavior.
-
-The patterns in 'errorformat' would sometimes ignore case (MS-Windows) and
-sometimes not (Unix). Now case is always ignored. Add "\C" to the pattern to
-match case.
-
-The 16 bit MS-DOS version is now compiled without the +listcmds feature
-(buffer list manipulation commands). They are not often needed and this
-executable needs to be smaller.
-
-'sessionoptions' now includes "curdir" by default. This means that restoring
-a session will result in the current directory being restored, instead of
-going to the directory where the session file is located.
-
-A session deleted all buffers, deleting all marks. Now keep the buffer list,
-it shouldn't hurt for some existing buffers to remain present.
-When the argument list is empty ":argdel *" caused an error message.
-
-No longer put the search pattern from a tag jump in the history.
-
-Use "SpecialKey" highlighting for unprintable characters instead of "NonText".
-The idea is that unprintable text or any text that's displayed differently
-from the characters in the file is using "SpecialKey", and "NonText" is used
-for text that doesn't really exist in the file.
-
-Motif now uses the system default colors for the menu and scrollbar. Used to
-be grey. It's still possible to set the colors with ":highlight" commands and
-resources.
-
-Formatting text with "gq" breaks a paragraph at a non-empty blank line.
-Previously the line would be removed, which wasn't very useful.
-
-":normal" does no longer hang when the argument ends in half a command.
-Previously Vim would wait for more characters to be typed, without updating
-the screen. Now it pretends an <Esc> was typed.
-
-Bitmaps for the toolbar are no longer searched for in "$VIM/bitmaps" but in
-the "bitmaps" directories in 'runtimepath'.
-
-Now use the Cmdline-mode menus for the hit-enter prompt instead of the Normal
-mode menus. This generally works better and allows using the "Copy" menu to
-produce CTRL-Y to copy the modeless selection.
-
-Moved the font selection from the Window to the Edit menu, together with the
-other settings.
-
-The default values for 'isfname' include more characters to make "gf" work
-better.
-
-Changed the license for the documentation to the Open Publication License.
-This seemed fair, considering the inclusion of parts of the Vim book, which is
-also published under the OPL. The downside is that we can't force someone who
-would sell copies of the manual to contribute to Uganda.
-
-After "ayy don't let ""yy or :let @" = val overwrite the "a register.
-Use the unnamed register instead.
-
-MSDOS: A pattern "*.*" previously also matched a file name without a dot.
-This was inconsistent with other versions.
-
-In Insert mode, CTRL-O CTRL-\ CTRL-N {cmd} remains in Normal mode. Previously
-it would go back to Insert mode, thus confusing the meaning of CTRL-\ CTRL-N,
-which is supposed to take us to Normal mode (especially in ":amenu").
-
-Allow using ":" commands after an operator. Could be used to implement a new
-movement command. Thus it no longer aborts a pending operator.
-
-For the Amiga the "-d {device}" argument was possible. When compiled with the
-diff feature, this no longer works. Use "-dev {device}" instead. |-dev|
-
-Made the default mappings for <S-Insert> in Insert mode insert the text
-literally, avoids that special characters like BS cause side effects.
-
-Using ":confirm" applied to the rest of the line. Now it applies only to the
-command right after it. Thus ":confirm if x | edit | endif" no longer works,
-use ":if x | confirm edit | endif". This was the original intention, that it
-worked differently was a bug.
-
-==============================================================================
-NEW FEATURES *new-6*
-
-Folding *new-folding*
--------
-
-Vim can now display a buffer with text folded. This allows overviewing the
-structure of a file quickly. It is also possible to yank, delete and put
-folded text, for example to move a function to another position.
-
-There is a whole bunch of new commands and options related to folding.
-See |folding|.
-
-
-Vertically split windows *new-vertsplit*
-------------------------
-
-Windows can also be split vertically. This makes it possible to have windows
-side by side. One nice use for this is to compare two similar files (see
-|new-diff-mode|). The 'scrollbind' option can be used to synchronize
-scrolling.
-
-A vertical split can be created with the commands:
- :vsplit or CTRL-W v or CTRL-W CTRL-V |:vsplit|
- :vnew |:vnew|
- :vertical {cmd} |:vertical|
-The last one is a modifier, which has a meaning for any command that splits a
-window. For example: >
- :vertical stag main
-Will vertically split the window and jump to the tag "main" in the new window.
-
-Moving from window to window horizontally can be done with the |CTRL-W_h| and
-|CTRL-W_l| commands. The |CTRL-W_k| and |CTRL-W_j| commands have been changed
-to jump to the window above or below the cursor position.
-
-The vertical and horizontal splits can be mixed as you like. Resizing windows
-is easy when using the mouse, just position the pointer on a status line or
-vertical separator and drag it. In the GUI a special mouse pointer shape
-indicates where you can drag a status or separator line.
-
-To resize vertically split windows use the |CTRL-W_<| and |CTRL-W_>| commands.
-To make a window the maximum width use the CTRL-W | command |CTRL-W_bar|.
-
-To force a new window to use the full width or height of the Vim window,
-these two modifiers are available:
- :topleft {cmd} New window appears at the top with full
- width or at the left with full height.
- :botright {cmd} New window appears at the bottom with full
- width or at the right with full height.
-This can be combined with ":vertical" to force a vertical split: >
- :vert bot dsplit DEBUG
-This will open a window at the far right, occupying the full height of the Vim
-window, with the cursor on the first definition of "DEBUG".
-The help window is opened at the top, like ":topleft" was used, if the current
-window is fewer than 80 characters wide.
-
-A few options can be used to set the preferences for vertically split windows.
-They work similar to their existing horizontal equivalents:
- horizontal vertical ~
- 'splitbelow' 'splitright'
- 'winheight' 'winwidth'
- 'winminheight' 'winminwidth'
-It's possible to set 'winminwidth' to zero, so that temporarily unused windows
-hardly take up space without closing them.
-
-The new 'eadirection' option tells where 'equalalways' applies:
- :set eadirection=both both directions
- :set eadirection=ver equalize window heights
- :set eadirection=hor equalize windows widths
-This can be used to avoid changing window sizes when you want to keep them.
-
-Since windows can become quite narrow with vertical splits, text lines will
-often not fit. The 'sidescrolloff' has been added to keep some context left
-and right of the cursor. The 'listchars' option has been extended with the
-"precedes" item, to show a "<" for example, when there is text left off the
-screen. (Utz-Uwe Haus)
-
-"-O" command line argument: Like "-o" but split windows vertically. (Scott
-Urban)
-
-Added commands to move the current window to the very top (CTRL-W K), bottom
-(CTRL-W J), left (CTRL-W H) and right (CTRL-W L). In the new position the
-window uses the full width/height of the screen.
-
-When there is not enough room in the status line for both the file name and
-the ruler, use up to half the width for the ruler. Useful for narrow windows.
-
-
-Diff mode *new-diff-mode*
----------
-
-In diff mode Vim shows the differences between two, three or four files.
-Folding is used to hide the parts of the file that are equal.
-Highlighting is used to show deleted and changed lines.
-See |diff-mode|.
-
-An easy way to start in diff mode is to start Vim as "vimdiff file1 file2".
-Added the vimdiff manpage.
-
-In a running Vim the |:diffsplit| command starts diff mode for the current
-file and another file. The |:diffpatch| command starts diff mode using the
-current file and a patch file. The |:diffthis| command starts diff mode for
-the current window.
-
-Differences can be removed with the |:diffget| and |:diffput| commands.
-
-- The 'diff' option switches diff mode on in a window.
-- The |:diffupdate| command refreshes the diffs.
-- The 'diffopt' option changes how diffs are displayed.
-- The 'diffexpr' option can be set how a diff is to be created.
-- The 'patchexpr' option can be set how patch is applied to a file.
-- Added the "diff" folding method. When opening a window for diff-mode, set
- 'foldlevel' to zero and 'foldenable' on, to close the folds.
-- Added the DiffAdd, DiffChange, DiffDelete and DiffText highlight groups to
- specify the highlighting for differences. The defaults are ugly...
-- Unix: make a vimdiff symbolic link for "make install".
-- Removed the now obsolete "vimdiff.vim" script from the distribution.
-- Added the "[c" and "]c" commands to move to the next/previous change in diff
- mode.
-
-
-Easy Vim: click-and-type *new-evim*
-------------------------
-
-eVim stands for "Easy Vim". This is a separate program, but can also be
-started as "vim -y".
-
-This starts Vim with 'insertmode' set to allow click-and-type editing. The
-$VIMRUNTIME/evim.vim script is used to add mappings and set options to be able
-to do most things like Notepad. This is only for people who can't stand two
-modes.
-
-eView does the same but in readonly mode.
-
-In the GUI a CTRL-C now only interrupts when busy with something, not when
-waiting for a character. Allows using CTRL-C to copy text to the clipboard.
-
-
-User manual *new-user-manual*
------------
-
-The user manual has been added. It is organised around editing tasks. It
-reads like a book, from start to end. It should allow beginners to start
-learning Vim. It helps everybody to learn using the most useful Vim features.
-It is much easier to read than the reference manual, but omits details. See
-|user-manual|.
-
-The user manual includes parts of the Vim book by Steve Oualline |frombook|.
-It is published under the OPL |manual-copyright|.
-
-When syntax highlighting is not enabled, the characters in the help file which
-mark examples ('>' and '<') and header lines ('~') are replaced with a space.
-
-When closing the help window, the window layout is restored from before
-opening it, if the window layout didn't change since then.
-When opening the help window, put it at the top of the Vim window if the
-current window is fewer than 80 characters and not full width.
-
-
-Flexible indenting *new-indent-flex*
-------------------
-
-Automatic indenting is now possible for any language. It works with a Vim
-script, which makes it very flexible to compute the indent.
-
-The ":filetype indent on" command enables using the provided indent scripts.
-This is explained in the user manual: |30.3|.
-
-The 'indentexpr' option is evaluated to get the indent for a line. The
-'indentkeys' option tells when to trigger re-indenting. Normally these
-options are set from an indent script. Like Syntax files, indent scripts will
-be created and maintained by many people.
-
-
-Extended search patterns *new-searchpat*
-------------------------
-
-Added the possibility to match more than one line with a pattern. (partly by
-Loic Grenie)
-New items in a search pattern for multi-line matches:
-\n match end-of-line, also in []
-\_[] match characters in range and end-of-line
-\_x match character class and end-of-line
-\_. match any character or end-of-line
-\_^ match start-of-line, can be used anywhere in the regexp
-\_$ match end-of-line, can be used anywhere in the regexp
-
-Various other new items in search patterns:
-\c ignore case for the whole pattern
-\C match case for the whole pattern
-\m magic on for the following
-\M magic off for the following
-\v make following characters "very magic"
-\V make following characters "very nomagic"
-
-\@! don't match atom before this.
- Example: "foo\(bar\)\@!" matches "foo " but not "foobar".
-\@= match atom, resulting in zero-width match
- Example: "foo\(bar\)\@=" matches "foo" in "foobar".
-\@<! don't match preceding atom before the current position
-\@<= match preceding atom before the current position
-\@> match preceding atom as a subexpression
-
-\& match only when branch before and after it match
-
-\%[] optionally match a list of atoms; "end\%[if]" matches "end",
- "endi" and "endif"
-\%(\) like \(\), but without creating a back-reference; there can be
- any number of these, overcomes the limit of nine \( \) pairs
-\%^ match start-of-file (Chase Tingley)
-\%$ match end-of-file (Chase Tingley)
-\%# Match with the cursor position. (Chase Tingley)
-\? Just like "\=" but can't be used in a "?" command.
-
-\%23l match in line 23
-\%<23l match before line 23
-\%>23l match after line 23
-\%23c, \%<23c, \%>23c match in/before/after column 23
-\%23v, \%<23v, \%>23v match in/before/after virtual column 23
-
-
-For syntax items:
-\z(...\) external reference match set (in region start pattern)
-\z1 - \z9 external reference match use (in region skip or end pattern)
- (Scott Bigham)
-
-\zs use position as start of match
-\ze use position as end of match
-
-Removed limit of matching only up to 32767 times with *, \+, etc.
-
-Added support to match multi-byte characters. (partly by Muraoka Taro)
-Made "\<" and "\>" work for UTF-8. (Muraoka Taro)
-
-
-UTF-8 support *new-utf-8*
--------------
-
-Vim can now edit files in UTF-8 encoding. Up to 31 bit characters can be
-used, but only 16 bit characters are displayed. Up to two combining
-characters are supported, they overprint the preceding character.
-Double-wide characters are also supported. See |UTF-8|.
-
-UCS-2, UCS-4 and UTF-16 encodings are supported too, they are converted to
-UTF-8 internally. There is also support for editing Unicode files in a Latin1
-environment. Other encodings are converted with iconv() or an external
-converter specified with 'charconvert'.
-
-Many new items for Multi-byte support:
-- Added 'encoding' option: specifies character encoding used inside Vim. It
- can be any 8-bit encoding, some double-byte encodings or Unicode.
- It is initialized from the environment when a supported value is found.
-- Added 'fileencoding' and 'fileencodings': specify character coding in a
- file, similar to 'fileformat' and 'fileformats'.
- When 'encoding' is "utf-8" and 'fileencodings' is "utf-8,latin1" this will
- automatically switch to latin1 if a file does not contain valid UTF-8.
-- Added 'bomb' option and detection of a BOM at the start of a file. Can be
- used with "ucs-bom" in 'fileencodings' to automatically detect a Unicode
- file if it starts with a BOM. Especially useful on MS-Windows (NT and
- 2000), which uses ucs-2le files with a BOM (e.g., when exporting the
- registry).
-- Added the 'termencoding' option: Specifies the encoding used for the
- terminal. Useful to put Vim in utf-8 mode while in a non-Unicode locale: >
- :let &termencoding = &encoding
- :set encoding=utf-8
-- When 'viminfo' contains the 'c' flag, the viminfo file is converted from the
- 'encoding' it was written with to the current 'encoding'.
-- Added ":scriptencoding" command: convert lines in a sourced script to
- 'encoding'. Useful for menu files.
-- Added 'guifontwide' to specify a font for double-wide characters.
-- Added Korean support for character class detection. Also fix cls() in
- search.c. (Chong-Dae Park)
-- Win32: Typing multi-byte characters without IME. (Alexander Smishlajev)
-- Win32 with Mingw: compile with iconv library. (Ron Aaron)
-- Win32 with MSVC: dynamically load iconv.dll library. (Muraoka Taro)
-- Make it possible to build a version with multi-byte and iconv support with
- Borland 5.5. (Yasuhiro Matsumoto)
-- Added 'delcombine' option: Delete combining character separately. (Ron
- Aaron)
-- The "xfontset" feature isn't required for "xim". These are now two
- independent features.
-- XIM: enable XIM when typing a language character (Insert mode, Search
- pattern, "f" or "r" command). Disable XIM when typing a Normal mode
- command.
-- When the XIM is active, show "XIM" in the 'showmode' message. (Nam SungHyun)
-- Support "CursorIM" for XIM. (Nam SungHyun)
-- Added 'm' flag to 'formatoptions': When wrapping words, allow splitting at
- each multibyte character, not only at a space.
-- Made ":syntax keyword" work with multi-byte characters.
-- Added support for Unicode upper/lowercase flipping and comparing. (based on
- patch by Raphael Finkel)
- Let "~" on multi-byte characters that have a third case ("title case")
- switch between the three cases. (Raphael Finkel)
-
-Allow defining digraphs for multi-byte characters.
-Added RFC1345 digraphs for Unicode.
-Most Normal mode commands that accept a character argument, like "r", "t" and
-"f" now accept a digraph. The 'D' flag in 'cpoptions' disables this to remain
-Vi compatible.
-
-Added Language mapping and 'keymap' to be able to type multi-byte characters:
-- Added the ":lmap" command and friends: Define mappings that are used when
- typing characters in the language of the text. Also for "r", "t", etc. In
- Insert and Command-line mode CTRL-^ switches the use of the mappings on/off.
- CTRL-^ also toggles the use of an input method when no language mappings are
- present. Allows switching the IM back on halfway typing.
-- "<char-123>" argument to ":map", allows to specify the decimal, octal or
- hexadecimal value of a character.
-- Implemented the 'keymap' option: Load a keymap file. Uses ":lnoremap" to
- define mappings for the keymap. The new ":loadkeymap" command is used in
- the keymap file.
-- Added 'k' flag in 'statusline': Value of "b:keymap_name" or 'keymap' when
- it's being used. Uses "<lang>" when no keymap is loaded and ":lmap"s are
- active. Show this text in the default statusline too.
-- Added the 'iminsert' and 'imsearch' options: Specify use of langmap mappings
- and Input Method with an option. (Muraoka Taro)
- Added 'imcmdline' option: When set the input method is always enabled when
- starting to edit a command line. Useful for a XIM that uses dead keys to
- type accented characters.
- Added 'imactivatekey' option to better control XIM. (Muraoka Taro)
-- When typing a mapping that's not finished yet, display the last character
- under the cursor in Insert mode and Command-line mode. Looks good for dead
- characters.
-- Made the 'langmap' option recognize multi-byte characters. But mapping only
- works for 8-bit characters. Helps when using UTF-8.
-- Use a different cursor for when ":lmap" mappings are active. Can specify
- two highlight groups for an item in 'guicursor'. By default "lCursor" and
- "Cursor" are equal, the user must set a color he likes.
- Use the cursor color for hangul input as well. (Sung-Hyun Nam)
-- Show "(lang)" for 'showmode' when language mapping is enabled.
-- UTF-8: Made "r" work with a ":lmap" that includes a composing character.
- Also works for "f", which now works to find a character that includes a
- composing character.
-
-Other multi-byte character additions:
-- Support double-byte single-width characters for euc-jp: Characters starting
- with 0x8E. Added ScreenLines2[] to store the second byte.
-
-
-Multi-language support *new-multi-lang*
-----------------------
-
-The messages used in Vim can be translated. Several translations are
-available. This uses the gettext mechanism. It allows adding a translation
-without recompiling Vim. |multi-lang| (partly by Marcin Dalecki)
-
-The translation files are in the src/po directory. The src/po/README.txt file
-explains a few things about doing a translation.
-
-Menu translations are available as well. This uses the new |:menutranslate|
-command. The translations are found in the runtime directory "lang". This
-allows a user to add a translation.
-
-Added |:language| command to set the language (locale) for messages, time and
-character type. This allows switching languages in Vim without changing the
-locale outside of Vim.
-
-Made it possible to have vimtutor use different languages. (Eduardo Fernandez)
-Spanish (Eduardo Fernandez), Italian (Antonio Colombo), Japanese (Yasuhiro
-Matsumoto) and French (Adrien Beau) translations are included.
-Added "vimtutor.bat": script to start Vim on a copy of the tutor file for
-MS-Windows. (Dan Sharp)
-
-- Added v:lang variable to be able to get current language setting.
- (Marcin Dalecki) Also v:lc_time and v:ctype.
-- Make it possible to translate the dialogs used by the menus. Uses global
- "menutrans_" variables. ":menutrans clear" deletes them.
-- removed "broken locale" (Marcin Dalecki).
-- Don't use color names in icons, use RGB values. The names could be
- translated.
-- Win32: Added global IME support (Muraoka)
-- Win32: Added dynamic loading of IME support.
-- ":messages" prints a message about who maintains the messages or the
- translations. Useful to find out where to make a remark about a wrong
- translation.
-- --disable-nls argument for configure: Disable use of gettext(). (Sung-Hyun
- Nam)
-- Added NLS support for Win32 with the MingW compiler. (Eduardo Fernandez)
-- When available, call bind_textdomain_codeset() to have gettext() translate
- messages to 'encoding'. This requires GNU gettext 0.10.36 or later.
-- Added gettext support for Win32. This means messages will be translated
- when the locale is set and libintl.dll can be found. (Muraoka Taro)
- Also made it work with MingW compiler. (Eduardo Fernandez)
- Detect the language and set $LANG to get the appropriate translated messages
- (if supported). Also use $LANG to select a language, v:lang is a very
- different kind of name.
-- Made gvimext.dll use translated messages, if possible. (Yasuhiro Matsumoto)
-
-
-Plugin support *new-plugins*
---------------
-
-To make it really easy to load a Vim script when starting Vim, the "plugin"
-runtime directory can be used. All "*.vim" files in it will be automatically
-loaded. For Unix, the directory "~/.vim/plugin" is used by default. The
-'runtimepath' option can be set to look in other directories for plugins.
-|load-plugins| |add-plugin|
-
-The |:runtime| command has been added to load one or more files in
-'runtimepath'.
-
-Standard plugins:
-netrw.vim - Edit files over a network |new-network-files|
-gzip.vim - Edit compressed files
-explorer.vim - Browse directories |new-file-browser|
-
-Added support for local help files. |add-local-help|.
-When searching for help tags, all "doc/tags" files in 'runtimepath' are used.
-Added the ":helptags" command: Generate a tags file for a help directory.
-The first line of each help file is automagically added to the "LOCAL
-ADDITIONS" section in doc/help.txt.
-
-Added the <unique> argument to ":map": only add a mapping when it wasn't
-defined before.
-
-When displaying an option value with 'verbose' set will give a message about
-where the option was last set. Very useful to find out which script did set
-the value.
-
-The new |:scriptnames| command displays a list of all scripts that have been
-sourced.
-
-GUI: For Athena, Motif and GTK look for a toolbar bitmap in the "bitmaps"
-directories in 'runtimepath'. Allows adding your own bitmaps.
-
-
-Filetype plugins *new-filetype-plugins*
------------------
-
-A new group of files has been added to do settings for specific file types.
-These can be options and mappings which are specifically used for one value of
-'filetype'.
-
-The files are located in "$VIMRUNTIME/ftplugin". The 'runtimepath' option
-makes it possible to use several sets of plugins: Your own, system-wide,
-included in the Vim distribution, etc.
-
-To be able to make this work, several features were added:
-- Added the "s:" variables, local to a script. Avoids name conflicts with
- global variables. They can be used in the script and in functions,
- autocommands and user commands defined in the script. They are kept between
- invocations of the same script. |s:var|
-- Added the global value for local options. This value is used when opening
- a new buffer or editing another file. The option value specified in a
- modeline or filetype setting is not carried over to another buffer.
- ":set" sets both the local and the global value.
- ":setlocal" sets the local option value only.
- ":setglobal" sets or displays the global value for a local option.
- ":setlocal name<" sets a local option to its global value.
-- Added the buffer-local value for some global options: 'equalprg', 'makeprg',
- 'errorformat', 'grepprg', 'path', 'dictionary', 'thesaurus', 'tags',
- 'include' and 'define'. This allows setting a local value for these global
- options, without making it incompatible.
-- Added mappings and abbreviations local to a buffer: ":map <buffer>".
-- In a mapping "<Leader>" can be used to get the value of the "mapleader"
- variable. This simplifies mappings that use "mapleader". "<Leader>"
- defaults to "\". "<LocalLeader>" does the same with "maplocalleader". This
- is to be used for mappings local to a buffer.
-- Added <SID> Script ID to define functions and mappings local to a script.
-- Added <script> argument to ":noremap" and ":noremenu": Only remap
- script-local mappings. Avoids that mappings from other scripts get in the
- way, but does allow using mappings defined in the script.
-- User commands can be local to a buffer: ":command -buffer".
-
-The new ":setfiletype" command is used in the filetype detection autocommands,
-to avoid that 'filetype' is set twice.
-
-
-File browser *new-file-browser*
-------------
-
-When editing a directory, the explorer plugin will list the files in the
-directory. Pressing <Enter> on a file name edits that file. Pressing <Enter>
-on a directory moves the browser to that directory.
-
-There are several other possibilities, such as opening a file in the preview
-window, renaming files and deleting files.
-
-
-Editing files over a network *new-network-files*
-----------------------------
-
-Files starting with scp://, rcp://, ftp:// and http:// are recognized as
-remote files. An attempt is made to access these files with the indicated
-method. For http:// only reading is possible, for the others writing is also
-supported. Uses the netrw.vim script as a standard "plugin". |netrw|
-
-Made "gf" work on a URL. It no longer assumes the file is local on the
-computer (mostly didn't work anyway, because the full path was required).
-Adjusted test2 for this.
-
-Allow using a URL in 'path'. Makes ":find index.html" work.
-
-GTK: Allow dropping a http:// and ftp:// URL on Vim. The netrw plugin takes
-care of downloading the file. (MiKael Berthe)
-
-
-Window for command-line editing *new-cmdwin*
--------------------------------
-
-The Command-line window can be used to edit a command-line with Normal and
-Insert mode commands. When it is opened it contains the history. This allows
-copying parts of previous command lines. |cmdwin|
-
-The command-line window can be opened from the command-line with the key
-specified by the 'cedit' option (like Nvi). It can also be opened directly
-from Normal mode with "q:", "q/" and "q?".
-
-The 'cmdwinheight' is used to specify the initial height of the window.
-
-In Insert mode CTRL-X CTRL-V can be used to complete an Ex command line, like
-it's done on the command-line. This is also useful for writing Vim scripts!
-
-Additionally, there is "improved Ex mode". Entered when Vim is started as
-"exim" or "vim -E", and with the "gQ" command. Works like repeated use of
-":", with full command-line editing and completion. (Ulf Carlsson)
-
-
-Debugging mode *new-debug-mode*
---------------
-
-In debugging mode sourced scripts and user functions can be executed line by
-line. There are commands to step over a command or step into it. |debug-mode|
-
-Breakpoints can be set to run until a certain line in a script or user
-function is executed. |:breakadd|
-
-Debugging can be started with ":debug {cmd}" to debug what happens when a
-command executes. The |-D| argument can be used to debug while starting up.
-
-
-Cursor in virtual position *new-virtedit*
---------------------------
-
-Added the 'virtualedit' option: Allow positioning the cursor where there is no
-actual character in Insert mode, Visual mode or always. (Matthias Kramm)
-This is especially useful in Visual-block mode. It allows positioning a
-corner of the area where there is no text character. (Many improvements by
-Chase Tingley)
-
-
-Debugger interface *new-debug-itf*
-------------------
-
-This was originally made to work with Sun Visual Workshop. (Gordon Prieur)
-See |debugger.txt|, |sign.txt| and |workshop.txt|.
-
-Added the ":sign" command to define and place signs. They can be displayed
-with two ASCII characters or an icon. The line after it can be highlighted.
-Useful to display breakpoints and the current PC position.
-
-Added the |:wsverb| command to execute debugger commands.
-
-Added balloon stuff: 'balloondelay' and 'ballooneval' options.
-
-Added "icon=" argument for ":menu". Allows defining a specific icon for a
-ToolBar item.
-
-
-Communication between Vims *new-vim-server*
---------------------------
-
-Added communication between two Vims. Makes it possible to send commands from
-one Vim to another. Works for X-Windows and MS-Windows |clientserver|.
-
-Use "--remote" to have files be edited in an already running Vim.
-Use "--remote-wait" to do the same and wait for the editing to finish.
-Use "--remote-send" to send commands from one Vim to another.
-Use "--remote-expr" to have an expression evaluated in another Vim.
-Use "--serverlist" to list the currently available Vim servers. (X only)
-There are also functions to communicate between the server and the client.
-|remote_send()| |remote_expr()|
-
-(X-windows version implemented by Flemming Madsen, MS-Windows version by Paul
-Moore)
-
-Added the command server name to the window title, so you can see which server
-name belongs to which Vim.
-
-Removed the OleVim directory and SendToVim.exe and EditWithVim.exe from the
-distribution. Can now use "gvim --remote" and "gvim --remote-send", which is
-portable.
-
-GTK+: Support running Vim inside another window. Uses the --socketid argument
-(Neil Bird)
-
-
-Buffer type options *new-buftype*
--------------------
-
-The 'buftype' and 'bufhidden' options have been added. They can be set to
-have different kinds of buffers. For example:
-- 'buftype' = "quickfix": buffer with error list
-- 'buftype' = "nofile" and 'bufhidden' = "delete": scratch buffer that will be
- deleted as soon as there is no window displaying it.
-
-'bufhidden' can be used to overrule the 'hidden' option for one buffer.
-
-In combination with 'buflisted' and 'swapfile' this offers the possibility to
-use various kinds of special buffers. See |special-buffers|.
-
-
-Printing *new-printing*
---------
-
-Included first implementation of the ":hardcopy" command for printing
-to paper. For MS-Windows any installed printer can be used. For other
-systems a PostScript file is generated, which can be printed with the
-'printexpr' option.
-(MS-Windows part by Vince Negri, Vipin Aravind, PostScript by Vince Negri and
-Mike Williams)
-
-Made ":hardcopy" work with multi-byte characters. (Muraoka Taro, Yasuhiro
-Matsumoto)
-
-Added options to tune the way printing works: (Vince Negri)
-- 'printoptions' defines various things.
-- 'printheader' specifies the header format. Added "N" field to 'statusline'
- for the page number.
-- 'printfont' specifies the font name and attributes.
-- 'printdevice' defines the default printer for ":hardcopy!".
-
-
-Ports *ports-6*
------
-
-Port to OS/390 Unix (Ralf Schandl)
-- A lot of changes to handle EBCDIC encoding.
-- Changed Ctrl('x') to Ctrl_x define.
-
-Included jsbmouse support. (Darren Garth)
-Support for dec mouse in Unix. (Steve Wall)
-
-Port to 16-bit MS Windows (Windows 3.1x) (Vince Negri)
-
-Port to QNX. Supports the Photon GUI, mouse, etc. (Julian Kinraid)
-
-Allow cross-compiling the Win32 version with Make_ming.mak. (Ron Aaron)
-Added Python support for compiling with Mingw. (Ron Aaron)
-
-Dos 32 bit: Added support the Windows clipboard. (David Kotchan)
-
-Win32: Dynamically load Perl and Python. Allows compiling Vim with these
-interfaces and will try to find the DLLs at runtime. (Muraoka Taro)
-
-Compiling the Win32 GUI with Cygwin. Also compile vimrun, dosinst and
-uninstall. (Gerfried)
-
-Mac: Make Vim compile with the free MPW compiler supplied by Apple. And
-updates for CodeWarrior. (Axel Kielhorn)
-
-Added typecasts and ifdefs as a start to make Vim work on Win64 (George
-Reilly)
-
-
-Quickfix extended *quickfix-6*
------------------
-
-Added the "error window". It contains all the errors of the current error
-list. Pressing <Enter> in a line makes Vim jump to that line (in another
-window). This makes it easy to navigate through the error list.
-|quickfix-window|.
-
-- |:copen| opens the quickfix window.
-- |:cclose| closes the quickfix window.
-- |:cwindow| takes care that there is a quickfix window only when there are
- recognized errors. (Dan Sharp)
-
-- Quickfix also knows "info", next to "warning" and "error" types. "%I" can be
- used for the start of a multi-line informational message. (Tony Leneis)
-- The "%p" argument can be used in 'errorformat' to get the column number from
- a line where "^" points to the column. (Stefan Roemer)
-- When using "%f" in 'errorformat' on a DOS/Windows system, also include "c:"
- in the filename, even when using "%f:".
-
-
-Operator modifiers *new-operator-mod*
-------------------
-
-Insert "v", "V" or CTRL-V between an operator and a motion command to force
-the operator to work characterwise, linewise or blockwise. |o_v|
-
-
-Search Path *new-search-path*
------------
-
-Vim can search in a directory tree not only in downwards but also upwards.
-Works for the 'path', 'cdpath' and 'tags' options. (Ralf Schandl)
-
-Also use "**" for 'tags' option. (Ralf Schandl)
-
-Added 'includeexpr', can be used to modify file name found by 'include'
-option.
-Also use 'includeexpr' for "gf" and "<cfile>" when the file can't be found
-without modification. Useful for doing "gf" on the name after an include or
-import statement.
-
-Added the 'cdpath' option: Locations to find a ":cd" argument. (Raf)
-
-Added the 'suffixesadd' option: Suffixes to be added to a file name when
-searching for a file for the "gf", "[I", etc. commands.
-
-
-Writing files improved *new-file-writing*
-----------------------
-
-Added the 'backupcopy' option: Select whether a file is to be copied or
-renamed to make a backup file. Useful on Unix to speed up writing an ordinary
-file. Useful on other systems to preserve file attributes and when editing a
-file on a Unix filesystem.
-
-Added the 'autowriteall' option. Works like 'autowrite' but for more
-commands.
-
-Added the 'backupskip' option: A list of file patterns to skip making a backup
-file when it matches. The default for Unix includes "/tmp/*", this makes
-"crontab -e" work.
-
-Added support for Access Control Lists (ACL) for FreeBSD and Win32. The ACL
-is copied from the original file to the new file (or the backup if it's
-copied).
-ACL is also supported for AIX, Solaris and generic POSIX. (Tomas Ogren)
-And on SGI.
-
-
-Argument list *new-argument-list*
--------------
-
-The support for the argument list has been extended. It can now be
-manipulated to contain the files you want it to contain.
-
-The argument list can now be local to a window. It is created with the
-|:arglocal| command. The |:argglobal| command can be used to go back to the
-global argument list.
-
-The |:argdo| command executes a command on all files in the argument list.
-
-File names can be added to the argument list with |:argadd|. File names can
-be removed with |:argdelete|.
-
-"##" can be used like "#", it is replaced by all the names in the argument
-list concatenated. Useful for ":grep foo ##".
-
-The |:argedit| adds a file to the argument list and edits it. Like ":argadd"
-and then ":edit".
-
-
-Restore a View *new-View*
---------------
-
-The ":mkview" command writes a Vim script with the settings and mappings for
-one window. When the created file is sourced, the view of the window is
-restored. It's like ":mksession" for one window.
-The View also contains the local argument list and manually created, opened
-and closed folds.
-
-Added the ":loadview" command and the 'viewdir' option: Allows for saving and
-restoring views of a file with simple commands. ":mkview 1" saves view 1 for
-the current file, ":loadview 1" loads it again. Also allows quickly switching
-between two views on one file. And saving and restoring manual folds and the
-folding state.
-
-Added 'viewoptions' to specify how ":mkview" works.
-
-":mksession" now also works fine with vertical splits. It has been further
-improved and restores the view of each window. It also works properly with
-preview and quickfix windows.
-
-'sessionoptions' is used for ":mkview" as well.
-Added "curdir" and "sesdir" to 'sessionoptions'. Allows selection of what
-the current directory will be restored to.
-
-The session file now also contains the argument list(s).
-
-
-Color schemes *new-color-schemes*
--------------
-
-Support for loading a color scheme. Added the ":colorscheme" command.
-Automatically add menu entries for available schemes.
-Should now properly reset the colors when 'background' or 't_Co' is changed.
-":highlight clear" sets the default colors again.
-":syntax reset" sets the syntax highlight colors back to the defaults.
-For ":set bg&" guess the value. This allows a color scheme to switch back to
-the default colors.
-When syntax highlighting is switched on and a color scheme was defined, reload
-the color scheme to define the colors.
-
-
-Various new items *new-items-6*
------------------
-
-Normal mode commands: ~
-
-"gi" Jump to the ^ mark and start Insert mode. Also works when the
- mark is just after the line. |gi|
-
-"g'm" and "g`m"
- Jump to a mark without changing the jumplist. Now you can use
- g`" to jump to the last known position in a file without side
- effects. Also useful in mappings.
-
-[', [`, ]' and ]`
- move the cursor to the next/previous lowercase mark.
-
-g_ Go to last non-blank in line. (Steve Wall)
-
-
-Options: ~
-
-'autoread' When detected that a file changed outside of Vim,
- automatically read a buffer again when it's not changed.
- It has a global and a local value. Use ":setlocal autoread<"
- to go back to using the global value for 'autoread'.
-
-'debug' When set to "msg" it will print error messages that would
- otherwise be omitted. Useful for debugging 'indentexpr' and
- 'foldexpr'.
-
-'lispwords' List of words used for lisp indenting. It was previously hard
- coded. Added a number of Lisp names to the default.
-
-'fold...' Many new options for folding.
-
-'modifiable' When off, it is impossible to make changes to a buffer.
- The %m and %M items in 'statusline' show a '-'.
-
-'previewwindow' Set in the preview window. Used in a session file to mark a
- window as the preview window.
-
-'printfont'
-'printexpr'
-'printheader'
-'printdevice'
-'printoptions' for ":hardcopy".
-
-'buflisted' Makes a buffer appear in the buffer list or not.
-
-Use "vim{version}:" for modelines, only to be executed when the version is
->= {version}. Also "vim>{version}", "vim<{version}" and "vim={version}".
-
-
-Ex commands: ~
-
-:sav[eas][!] {file}
- Works like ":w file" and ":e #", but without loading the file
- again and avoiding other side effects. |:saveas|
-
-:silent[!] {cmd}
- Execute a command silently. Also don't use a delay that would
- come after the message. And don't do 'showmatch'.
- RISCOS: Removed that "!~cmd" didn't output anything, and
- didn't wait for <Enter> afterwards. Can use ":silent !cmd"
- now.
-:menu <silent> Add a menu that won't echo Ex commands.
-:map <silent> Add a mapping that won't echo Ex commands.
-
-:checktime Check for changed buffers.
-
-:verbose {cmd} Set 'verbose' for one command.
-
-:echomsg {expr}
-:echoerr {expr} Like ":echo" but store the message in the history. (Mark
- Waggoner)
-
-:grepadd Works just like ":grep" but adds to the current error list
- instead of defining a new list. |:grepadd|
-
-:finish Finish sourcing a file. Can be used to skip the rest of a Vim
- script. |:finish|
-
-:leftabove
-:aboveleft Split left/above current window.
-
-:rightbelow
-:belowright Split right/below current window.
-
-:first, :bfirst, :ptfirst, etc.
- Alias for ":rewind". It's more logical compared to ":last".
-
-:enew Edit a new, unnamed buffer. This is needed, because ":edit"
- re-edits the same file. (Wall)
-
-:quitall Same as ":qall".
-
-:match Define match highlighting local to a window. Allows
- highlighting an item in the current window without interfering
- with syntax highlighting.
-
-:menu enable
-:menu disable Commands to enable/disable menu entries without removing them.
- (Monish Shah)
-
-:windo Execute a command in all windows.
-:bufdo Execute a command in all buffers.
-
-:wincmd Window (CTRL-W) command. Useful when a Normal mode command
- can't be used (e.g., for a CursorHold autocommand). See
- |CursorHold-example| for a nice application with it.
-
-:lcd and :lchdir
- Set local directory for a window. (Benjie Chen)
-
-:hide {command}
- Execute {command} with 'hidden' set.
-
-:emenu in Visual mode to execute a ":vmenu" entry.
-
-:popup Pop up a popup menu.
-
-:redraw Redraw the screen even when busy with a script or function.
-
-:hardcopy Print to paper.
-
-:compiler Load a Vim script to do settings for a specific compiler.
-
-:z# List numbered lines. (Bohdan Vlasyuk)
-
-
-New marks: ~
-
-'( and ') Begin or end of current sentence. Useful in Ex commands.
-'{ and '} Begin or end of current paragraph. Useful in Ex commands.
-'. Position of the last change in the current buffer.
-'^ Position where Insert mode was stopped.
-
-Store the ^ and . marks in the viminfo file. Makes it possible to jump to the
-last insert position or changed text.
-
-
-New functions: ~
-argidx() Current index in argument list.
-buflisted() Checks if the buffer exists and has 'buflisted' set.
-cindent() Get indent according to 'cindent'.
-eventhandler() Returns 1 when inside an event handler and interactive
- commands can't be used.
-executable() Checks if a program or batch script can be executed.
-filewritable() Checks if a file can be written. (Ron Aaron)
-foldclosed() Find out if there is a closed fold. (Johannes Zellner).
-foldcloseend() Find the end of a closed fold.
-foldlevel() Find out the foldlevel. (Johannes Zellner)
-foreground() Move the GUI window to the foreground.
-getchar() Get one character from the user. Can be used to define a
- mapping that takes an argument.
-getcharmod() Get last used key modifier.
-getbufvar() gets the value of an option or local variable in a buffer (Ron
- Aaron)
-getfsize() Return the size of a file.
-getwinvar() gets the value of an option or local variable in a window (Ron
- Aaron)
-globpath() Find matching files in a list of directories.
-hasmapto() Detect if a mapping to a string is already present.
-iconv() Convert a string from one encoding to another.
-indent() gets the indent of a line (Ron Aaron)
-inputdialog() Like input() but use a GUI dialog when possible. Currently
- only works for Win32, Motif, Athena and GTK.
- Use inputdialog() for the Edit/Settings/Text Width menu. Also
- for the Help/Find.. and Toolbar FindHelp items.
- (Win32 support by Thore B. Karlsen)
- (Win16 support by Vince Negri)
-inputsecret() Ask the user to type a string without showing the typed keys.
- (Charles Campbell)
-libcall() for Unix (Neil Bird, Johannes Zellner, Stephen Wall)
-libcallnr() for Win32 and Unix
-lispindent() Get indent according to 'lisp'.
-mode() Return a string that indicates the current mode.
-nextnonblank() Skip blank lines forwards.
-prevnonblank() Skip blank lines backwards. Useful to for indent scripts.
-resolve() MS-Windows: resolve a shortcut to the file it points to.
- Unix: resolve a symbolic link.
-search() Search for a pattern.
-searchpair() Search for matching pair. Can be used in indent files to find
- the "if" matching an endif.
-setbufvar() sets an option or variable local to a buffer (Ron Aaron)
-setwinvar() sets an option or variable local to a window (Ron Aaron)
-stridx() Search for first occurrence of one string in another.
-strridx() Search for last occurrence of one string in another.
-tolower() Convert string to all-lowercase.
-toupper() Convert string to all-uppercase.
-type() Check the type of an expression.
-wincol() window column of the cursor
-winwidth() Width of a window. (Johannes Zellner)
-winline() window line of the cursor
-
-
-Added expansion of curly braces in variable and function names. This can be
-used for variable names that include the value of an option. Or a primitive
-form of arrays. (Vince Negri)
-
-
-New autocommand events: ~
-BufWinEnter Triggered when a buffer is displayed in a window, after using
- the modelines. Can be used to load a view.
-BufWinLeave Triggered when a buffer is no longer in a window. Also
- triggered when exiting Vim. Can be used to save views.
-FileChangedRO Triggered before making the first change to a read-only file.
- Can be used to check-out the file. (Scott Graham)
-TermResponse Triggered when the terminal replies to the version-request.
- The v:termresponse internal variable holds the result. Can be
- used to react to the version of the terminal. (Ronald Schild)
-FileReadCmd Triggered before reading a file.
-BufReadCmd Triggered before reading a file into a buffer.
-FileWriteCmd Triggered before writing a file.
-BufWriteCmd Triggered before writing a buffer into a file.
-FileAppendCmd Triggered before appending to a file.
-FuncUndefined Triggered when a user function is not defined. (Ron Aaron)
-
-The autocommands for the *Cmd events read or write the file instead of normal
-file read/write. Use this in netrw.vim to be able to edit files on a remote
-system. (Charles Campbell)
-
-
-New Syntax files: ~
-
-bdf BDF font definition (Nikolai Weibull)
-catalog SGML catalog (Johannes Zellner)
-debchangelog Debian Changelog (Wichert Akkerman)
-debcontrol Debian Control (Wichert Akkerman)
-dot dot (Markus Mottl)
-dsl DSSSL syntax (Johannes Zellner)
-eterm Eterm configuration (Nikolai Weibull)
-indent Indent profile (Nikolai Weibull)
-lftp LFTP (Nikolai Weibull)
-lynx Lynx config (Doug Kearns)
-mush mush sourcecode (Bek Oberin)
-natural Natural (Marko Leipert)
-pilrc Pal resource compiler (Brian Schau)
-plm PL/M (Philippe Coulonges)
-povini Povray configuration (David Necas)
-ratpoison Ratpoison config/command (Doug Kearns)
-readline readline config (Nikolai Weibull)
-screen Screen RC (Nikolai Weibull)
-specman Specman (Or Freund)
-sqlforms SQL*Forms (Austin Ziegler)
-terminfo terminfo (Nikolai Weibull)
-tidy Tidy configuration (Doug Kearns)
-wget Wget configuration (Doug Kearns)
-
-
-Updated many syntax files to work both with Vim 5.7 and 6.0.
-
-Interface to Ruby. (Shugo Maeda)
-Support dynamic loading of the Ruby interface on MS-Windows. (Muraoka Taro)
-Support this for Mingw too. (Benoit Cerrina)
-
-Win32: Added possibility to load TCL dynamically. (Muraoka Taro)
-Also for Borland 5.5. (Dan Sharp)
-
-Win32: When editing a file that is a shortcut (*.lnk file), edit the file it
-links to. Unless 'binary' is set, then edit the shortcut file itself.
-(Yasuhiro Matsumoto)
-
-The ":command" command now accepts a "-bar" argument. This allows the user
-command to be followed by "| command".
-
-The preview window is now also used by these commands:
-- |:pedit| edits the specified file in the preview window
-- |:psearch| searches for a word in included files, like |:ijump|, and
- displays the found text in the preview window.
-Added the CTRL-W P command: go to preview window.
-
-MS-DOS and MS-Windows also read the system-wide vimrc file $VIM/vimrc. Mostly
-for NT systems with multiple users.
-
-A double-click of the mouse on a character that has a "%" match selects from
-that character to the match. Similar to "v%".
-
-"-S session.vim" argument: Source a script file when starting up. Convenient
-way to start Vim with a session file.
-
-Added "--cmd {command}" Vim argument to execute a command before a vimrc file
-is loaded. (Vince Negri)
-
-Added the "-M" Vim argument: reset 'modifiable' and 'write', thus disallow
-making changes and writing files.
-
-Added runtime/delmenu.vim. Source this to remove all menus and prepare for
-loading new menus. Useful when changing 'langmenu'.
-
-Perl script to filter Perl error messages to quickfix usable format. (Joerg
-Ziefle)
-
-Added runtime/macros/less.vim: Vim script to simulate less, but with syntax
-highlighting.
-
-MS-Windows install program: (Jon Merz)
-- The Win32 program can now create shortcuts on the desktop and install Vim in
- the Start menu.
-- Possibly remove old "Edit with Vim" entries.
-- The Vim executable is never moved or $PATH changed. A small batch file is
- created in a directory in $PATH. Fewer choices to be made.
-- Detect already installed Vim versions and offer to uninstall them first.
-
-Improved the MS-Windows uninstal program. It now also deletes the entries in
-the Start menu, icons from the desktop and the created batch files. (Jon Merz)
-Also made it possible to delete only some of these. Also unregister gvim for
-OLE.
-
-Generate a self-installing Vim package for MS-Windows. This uses NSIS. (Jon
-Merz et al.)
-
-Added ":filetype detect". Try detecting the filetype again. Helps when
-writing a new shell script, after adding "#!/bin/csh".
-
-Added ":augroup! name" to delete an autocommand group. Needed for the
-client-server "--remote-wait".
-
-Add the Vim version number to the viminfo file, useful for debugging.
-
-==============================================================================
-IMPROVEMENTS *improvements-6*
-
-Added the 'n' flag in 'cpoptions': When omitted text of wrapped lines is not
-put between line numbers from 'number' option. Makes it a lot easier to read
-wrapped lines.
-
-When there is a format error in a tags file, the byte position is reported so
-that the error can be located.
-
-"gf" works in Visual mode: Use the selected text as the file name. (Chase
-Tingley)
-
-Allow ambiguous mappings. Thus "aa" and "aaa" can both be mapped, the longest
-matching one is used. Especially useful for ":lmap" and 'keymap'.
-
-Encryption: Ask the key to be typed twice when crypting the first time.
-Otherwise a typo might cause the text to be lost forever. (Chase Tingley)
-
-The window title now has "VIM" on the end. The file name comes first, useful
-in the taskbar. A "+" is added when the file is modified. "=" is added for
-a read-only file. "-" is added for a file with 'modifiable' off.
-
-In Visual mode, mention the size of the selected area in the 'showcmd'
-position.
-
-Added the "b:changedtick" variable. Incremented at each change, also for
-undo. Can be used to take action only if the buffer has been changed.
-
-In the replacement string of a ":s" command "\=" can be used to replace with
-the result of an expression. From this expression the submatch() function can
-be used to access submatches.
-
-When doing ":qall" and there is a change in a buffer that is being edited in
-another window, jump to that window, instead of editing that buffer in the
-current window.
-
-Added the "++enc=" and "++ff=" arguments to file read/write commands to force
-using the given 'encoding' or 'fileformat'. And added the "v:cmdarg"
-variable, to be used for FileReadCmd autocommands that read/write the file
-themselves.
-
-When reading stdin, first read the text in binary mode and then re-read it
-with automatic selection of 'fileformat' and 'fileencoding'. This avoids
-problems with not being able to rewind the file (e.g., when a line near the
-end of the file ends in LF instead of CR-LF).
-When reading text from stdin and the buffer is empty, don't mark it changed.
-Allows exiting without trouble.
-
-Added an ID to many error messages. This will make it easier to find help for
-a message.
-
-Insert mode:
-- "CTRL-G j" and "CTRL-G k" can be used to insert in another line in the same
- column. Useful for editing a table.
-- Added Thesaurus completion with CTRL-X CTRL-T. (Vince Negri)
-- Added the 'thesaurus' option, to use instead of 'dictionary' for thesaurus
- completion. Added the 's' flag in 'complete'.
-- Made CTRL-X CTRL-L in Insert mode use the 'complete' option. It now also
- scans other loaded buffers for matching lines.
-- CTRL-R now also works in Insert mode while doing completion with CTRL-X or
- CTRL-N. (Neil Bird)
-- When doing Insert mode completion, when completion is finished check for a
- match with words from 'cinkeys' or 'indentkeys'.
-
-Performance:
-- Made display updating more efficient. Insert/delete lines may be used for
- all changes, also for undo/redo.
-- The display is not redrawn when there is typeahead in Insert mode. Speeds
- up CTRL-R a lot.
-- Improved speed of screen output for 32 bit DOS version. (Vince Negri)
-- When dragging with the mouse, there is a lookahead to skip mouse codes when
- there is another one next. Makes dragging with the mouse a lot faster.
-- Also a memory usage improvement: When calling u_save with a single line,
- don't save it if the line was recently saved for the same undo already.
-- When using a script that appends one character at a time, the amount of
- allocated memory was growing steadily. Also when 'undolevels' is -1.
- Caused by the line saved for "U" never to be freed. Now free an undo block
- when it becomes empty.
-- GUI and Dos32: Use a vertical scroll region, to make scrolling in a
- vertically split window faster. No need to redraw the whole window.
-- When scrolling isn't possible with terminal codes (e.g., for a vertically
- split window) redraw from ScreenLines[]. That should be faster than going
- through the lines with win_line(), especially when using syntax
- highlighting.
-- The Syntax menu is now pre-generated by a separate script. Makes loading
- the menu 70% faster. This can halve the startup time of gvim.
-- When doing ":help tag", don't open help.txt first, jump directly to the help
- tag. It's faster and avoids an extra message.
-- Win32: When a file name doesn't end in ".lnk" don't try resolving a
- shortcut, it takes quite a bit of time.
-- Don't update the mouse pointer shape while there are typeahead characters.
-- Change META[] from a string into an array, avoids using strchr() on it.
-- Don't clear the command line when adding characters, avoids that screen_fill
- is called but doesn't do anything.
-
-Robustness:
-- Unix: Check for running out of stack space when executing a regexp. Avoids
- a nasty crash. Only works when the system supports running the signal
- function on another stack.
-- Disallow ":source <dirname>". On unix it's possible to read a directory,
- does not make sense to use it as Vim commands.
-
-Security:
-- When reading from or writing to a temporary file, check that it isn't a
- symbolic link. Gives some protection against symlink attacks.
-- When creating a backup file copy or a swap file, check for it already
- existing to avoid a symlink attack. (Colin Phipps)
-- Evaluating options which are an expression is done in a |sandbox|. If the
- option was set by a modeline, it cannot cause damage.
-- Use a secure way to generate temp file names: Create a private directory for
- temp files. Used for Unix, MS-DOS and OS/2.
-- 'makeef' can be empty, which means that an internally generated file name is
- used. The old default was "/tmp/file", which is a security risk.
- Writing 'makeef' in the current directory fails in a read-only directory and
- causes trouble when using ":grep" on all files. Made the default empty for
- all systems, so that a temp file is used.
-- The command from a tags file is executed in the sandbox for better security.
-- The Ruby, Tcl and Python interfaces cannot be used from the sandbox. They
- might do dangerous things. Perl is still possible, but limited to the Safe
- environment. (Donnie Smith)
-
-Syntax highlighting:
-- Optimized the speed by caching the state stack all over the file, not just
- the part being displayed. Required for folding.
-- Added ":syntax sync fromstart": Always parse from the start of the file.
-- Added the "display" argument for syntax items: use the item only when
- displaying the result. Can make parsing faster for text that isn't going to
- be displayed.
-- When using CTRL-L, the cached states are deleted, to force parsing the text
- again.
-- Use elfhash algorithm for table of keywords. This should give a better
- distribution and speedup keyword lookup. (Campbell)
-- Also allow the "lc" leading context for skip and end patterns. (Scott
- Bigham)
-- Syntax items can have the "extend" argument to undo the effect of a
- "keepend" argument of an item it is contained in. Makes it possible to have
- some contained items extend a region while others don't.
-- ":syntax clear" now deletes the b:current_syntax variable. That's logical,
- since no syntax is defined after this command.
-- Added ":syntax enable": switch on syntax highlighting without changing the
- colors. This allows specifying the colors in the .vimrc file without the
- need for a mysyntaxfile.
-- Added ":syntax reset": reset the colors to their defaults.
-- Added the "contains=TOP" and "contains=CONTAINED" arguments. Makes it
- possible to define a transparent item that doesn't contain itself.
-- Added a "containedin" argument to syntax items. Allows adding a contained
- item to an existing item (e.g., to highlight a name in a comment).
-
-Modeless selection:
-- When in the command-line window, use modeless selection in the other
- windows. Makes it possible to copy visible text to the command-line window.
-- Support modeless selection on the cmdline in a terminal. Previously it was
- only possible for the GUI.
-- Make double-right-click in modeless selection select a whole word. Single
- right click doesn't use the word selection started by a double-left-click.
- Makes it work like in Visual mode.
-- The modeless selection no longer has an implied automatic copy to the
- clipboard. It now obeys the 'a' and 'A' flags in 'guioptions' or
- "autoselect" and "autoselectml" in 'clipboard'.
-- Added the CTRL-Y command in Cmdline-mode to copy the modeless selection to
- the clipboard. Also works at the hit-enter prompt and the more prompt.
- Removed the mappings in runtime/mswin.vim for CTRL-Y and CTRL-Z in
- cmdline-mode to be able to use CTRL-Y in the new way.
-
-Reduced the amount of stack space used by regmatch() to allow it to handle
-complicated patterns on a longer text.
-
-'isfname' now includes '%' and '#'. Makes "vim dir\#file" work for MS-DOS.
-
-Added keypad special keys <kEnter>, <k0> - <k9>. When not mapped they behave
-like the ASCII equivalent. (Ivan Wellesz and Vince Negri)
-Recognize a few more xterm keys: <C-Right>, <C-Left>, <C-End>, <C-Home>
-
-Also trigger the BufUnload event when Vim is going to exit. Perhaps a script
-needs to do some cleaning up.
-
-Expand expression in backticks: `={expr}`. Can be used where backtick
-expansion is done. (Vince Negri)
-
-GUI:
-- Added 'L' and 'R' flags in 'guioptions': Add a left or right scrollbar only
- when there is a vertically split window.
-- X11: When a color can't be allocated, use the nearest match from the
- colormap. This avoids that black is used for many things. (Monish Shah)
- Also do this for the menu and scrollbar, to avoid that they become black.
-- Win32 and X11: Added 'mouseshape' option: Adjust the mouse pointer shape to
- the current mode. (Vince Negri)
-- Added the 'linespace' option: Insert a pixel line between lines. (Nam)
-- Allow modeless selection (without moving the cursor) by keeping CTRL and
- SHIFT pressed. (Ivan Wellesz)
-- Motif: added toolbar. (Gordon Prieur) Also added tooltips.
-- Athena: added toolbar and tooltips. (David Harrison -- based on Gordon
- Prieur's work)
-- Made the 'toolbar' option work for Athena and Motif. Can now switch between
- text and icons on the fly. (David Harrison)
-- Support menu separator lines for Athena. (David Harrison)
-- Athena: Adjust the arrow pixmap used in a pullright menu to the size of the
- font. (David Harrison)
-- Win32: Added "c" flag to 'guifont' to be able to specify the charset. (Artem
- Khodush)
-- When no --enable-xim argument is given, automatically enable it when a X GUI
- is used. Required for dead key support (and multi-byte input).
-- After a file selection dialog, check that the edited files were not changed
- or deleted. The Win32 dialog allows deleting and renaming files.
-- Motif and Athena: Added support for "editres". (Marcin Dalecki)
-- Motif and Athena: Added "menuFont" to be able to specify a font or fontset
- for the menus. Can also be set with the "Menu" highlight group. Useful
- when the locale is different from 'encoding'. (David Harrison)
- When FONTSET_ALWAYS is defined, always use a fontset for the menus. Should
- avoid trouble with changing from a font to a fontset. (David Harrison)
-- Highlighting and font for the tooltips can be specified with the "Tooltip"
- highlight group. (David Harrison)
-- The Cmdline-mode menus can be used at the more-prompt. This mostly works
- fine, because they start with a CTRL-C. The "Copy" menu works to copy the
- modeless selection. Allows copying the output of ":set all" or ":intro"
- without auto-selection.
-- When starting the GUI when there is no terminal connected to stdout and
- stderr, display error messages in a dialog. Previously they wouldn't be
- displayed at all.
-- Allow setting 'browsedir' to the name of a directory, to be used for the
- file dialog. (Dan Sharp)
-- b:browsefilter and g:browsefilter can be set to the filters used for the
- file dialog. Supported for Win32 and Motif GUI. (Dan Sharp)
-
-X11:
-- Support for the clipboard selection as register "+. When exiting or
- suspending copy the selection to cut buffer 0. Should allow copy/paste with
- more applications in a X11-standard way. (Neil Bird)
-- Use the X clipboard in any terminal, not just in an xterm.
- Added "exclude:" in 'clipboard': Specify a pattern to match against terminal
- names for which no connection should be made to the X server. The default
- currently work for FreeBSD and Linux consoles.
-- Added a few messages for when 'verbose' is non-zero to show what happens
- when trying to connect to the X server. Should help when trying to find out
- why startup is slow.
-
-GTK GUI: (partly by Marcin Dalecki)
-- With some fonts the characters can be taller than ascent + descent. E.g.,
- "-misc-fixed-*-*-*-*-18-*-*-*-*-*-iso10646-1". Add one to the character
- cell height.
-- Implement "no" value for 'winaltkeys': don't use Alt-Key as a menu shortcut,
- when 'wak' changed after creating the menus.
-- Setting 'wak' after the GUI started works.
-- recycle text GC's to reduce communication.
-- Adjust icon size to window manager.
-- Cleanup in font handling.
-- Replace XQueryColor with GDK calls.
-- Gnome support. Detects Gnome in configure and uses different widgets.
- Otherwise it's much like GTK. (Andy Kahn)
- It is disabled by default, because it causes a few problems.
-- Removed the special code to fork first and then start the GUI. Now use
- _exit() instead of exit(), this works fine without special tricks.
-- Dialogs sometimes appeared a bit far away. Position the dialogs inside
- the gvim window. (Brent Verner)
-- When dropping a file on Vim, remove extra slashes from the start of the
- path. Also shorten the file name if possible.
-
-Motif: (Marcin Dalecki)
-- Made the dialog layout better.
-- Added find and find/replace dialogs.
-- For the menus, change "iso-8859" to "iso_8859", Linux appears to need this.
-- Added icon to dialogs, like for GTK.
-- Use XPM bitmaps for the icon when possible. Use the Solaris XpmP.h include
- file when it's available.
-- Change the shadow of the toolbar items to get a visual feedback of it being
- pressed on non-LessTif.
-- Use gadgets instead of windows for some items for speed.
-
-Command line completion:
-- Complete environment variable names. (Mike Steed)
-- For ":command", added a few completion methods: "mapping", "function",
- "expression" and "environment".
-- When a function doesn't take arguments, let completion add () instead of (.
-
-For MS-DOS, MS-Windows and OS/2: Expand %VAR% environment variables like $VAR.
-(Walter Briscoe)
-
-Redirect messages to the clipboard ":redir @*" and to the unnamed register
-":redir @"". (Wall)
-
-":let @/ = ''" clears the search pattern, instead of setting it to an empty
-string.
-
-Expression evaluation:
-- "? :" can be used like in C.
-- col("$") returns the length of the cursor line plus one. (Stephen P. Wall)
-- Optional extra argument for match(), matchend() and matchstr(): Offset to
- start looking for a match.
-- Made third argument to strpart() optional. (Paul Moore, Zdenek Sekera)
-- exists() can also be used to check for Ex commands and defined autocommands.
-- Added extra argument to input(): Default text.
-- Also set "v:errmsg" when using ":silent! cmd".
-- Added the v:prevcount variable: v:count for the previous command.
-- Added "v:progname", name with which Vim was started. (Vince Negri)
-- In the verbose message about returning from a function, also show the return
- value.
-
-Cscope:
-- Added the cscope_connection() function. (Andy Kahn)
-- ":cscope kill -1" kills all cscope connections. (Andy Kahn)
-- Added the 'cscopepathcomp' option. (Scott Hauck)
-- Added ":scscope" command, split window and execute Cscope command. (Jason
- Duell)
-
-VMS:
-- Command line arguments are always uppercase. Interpret a "-X" argument as
- "-x" and "-/X" as "-X".
-- Set 'makeprg' and 'grepprg' to meaningful defaults. (Zoltan Arpadffy)
-- Use the X-clipboard feature and the X command server. (Zoltan Arpadffy)
-
-Macintosh: (Dany St-Amant)
-- Allow a tags file to have CR, CR-LF or LF line separator. (Axel Kielhorn)
-- Carbonized (while keeping non Carbon code)
- (Some work "stolen" from Ammon Skidmore)
-- Improved the menu item index handling (should be faster)
-- Runtime commands now handle / in file name (MacOS 9 version)
-- Added ":winpos" support.
-- Support using "~" in file names for home directory.
-
-Options:
-- When using set += or ^= , check for items used twice. Duplicates are
- removed. (Vince Negri)
-- When setting an option that is a list of flags, remove duplicate flags.
-- If possible, use getrlimit() to set 'maxmemtot' and 'maxmem'. (Pina)
-- Added "alpha" to 'nrformats': increment or decrement an alphabetic character
- with CTRL-A and CTRL-X.
-- ":set opt&vi" sets an option to its Vi default, ":set opt&vim" to its Vim
- default. Useful to set 'cpo' to its Vim default without knowing what flags
- that includes.
-- 'scrolloff' now also applies to a long, wrapped line that doesn't fit in the
- window.
-- Added more option settings to the default menus.
-- Updated the option window with new options. Made it a bit easier to read.
-
-Internal changes:
-- Split line pointers in text part and attributes part. Allows for future
- change to make attribute more than one byte.
-- Provide a qsort() function for systems that don't have it.
-- Changed the big switch for Normal mode commands into a table. This cleans
- up the code considerably and avoids trouble for some optimizing compilers.
-- Assigned a negative value to special keys, to avoid them being mixed up with
- Unicode characters.
-- Global variables expand_context and expand_pattern were not supposed to be
- global. Pass them to ExpandOne() and all functions called by it.
-- No longer use the global reg_ic flag. It caused trouble and in a few places
- it was not set.
-- Removed the use of the stuff buffer for "*", "K", CTRL-], etc. Avoids
- problem with autocommands.
-- Moved some code from ex_docmd.c to ex_cmds2.c. The file was getting too
- big. Also moved some code from screen.c to move.c.
-- Don't include the CRC table for encryption, generate it. Saves quite a bit
- of space in the source code. (Matthias Kramm)
-- Renamed multibyte.c to mbyte.c to avoid a problem with 8.3 filesystems.
-- Removed the GTK implementation of ":findhelp", it now uses the
- ToolBar.FindHelp menu entry.
-- Renamed mch_windexit() to mch_exit(), mch_init() to mch_early_init() and
- mch_shellinit() to mch_init().
-
-Highlighting:
-- In a ":highlight" listing, show "xxx" with the highlight color.
-- Added support for xterm with 88 or 256 colors. The right color numbers will
- be used for the name used in a ":highlight" command. (Steve Wall)
-- Added "default" argument for ":highlight". When included, the command is
- ignored if highlighting for the group was already defined.
- All syntax files now use ":hi default ..." to allow the user to specify
- colors in his vimrc file. Also, the "if did_xxx_syntax_inits" is not needed
- anymore. This greatly simplifies using non-default colors for a specific
- language.
-- Adjusted colortest.vim: Included colors on normal background and reduced the
- size by using a while loop. (Rafael Garcia-Suarez)
-- Added the "DarkYellow" color name. Just to make the list of standard colors
- consistent, it's not really a nice color to use.
-
-When an xterm is in 8-bit mode this is detected by the code returned for
-|t_RV|. All key codes are automatically converted to their 8-bit versions.
-
-The OPT_TCAP_QUERY in xterm patch level 141 and later is used to obtain the
-actual key codes used and the number of colors for t_Co. Only when |t_RV| is
-also used.
-
-":browse set" now also works in the console mode. ":browse edit" will give an
-error message.
-
-":bdelete" and ":bunload" only report the number of deleted/unloaded buffers
-when more than 'report'. The message was annoying when deleting a buffer in a
-script.
-
-Jump list:
-- The number of marks kept in the jumplist has been increased from 50 to 100.
-- The jumplist is now stored in the viminfo file. CTRL-O can be used to jump
- to positions from a previous edit session.
-- When doing ":split" copy the jumplist to the new window.
-
-Also set the '[ and '] marks for the "~" and "r" commands. These marks are
-now always set when making a change with a Normal mode command.
-
-Python interface: Allow setting the width of a vertically split window. (John
-Cook)
-
-Added "=word" and "=~word" to 'cinkeys' (also used in 'indentkeys').
-
-Added "j1" argument in 'cinoptions': indent {} inside () for Java. (Johannes
-Zellner)
-Added the "l" flag in 'cinoptions'. (Anduin Withers)
-Added 'C', 'U', 'w' and 'm' flags to 'cinoptions'. (Servatius Brandt)
-
-When doing ":wall" or ":wqall" and a modified buffer doesn't have a name,
-mention its buffer number in the error message.
-
-":function Name" lists the function with line numbers. Makes it easier to
-find out where an error happened.
-
-In non-blockwise Visual mode, "r" replaces all selected characters with the
-typed one, like in blockwise Visual mode.
-
-When editing the last file in the argument list in any way, allow exiting.
-Previously this was only possible when getting to that file with ":next" or
-":last".
-
-Added the '1' flag to 'formatoptions'. (Vit Stradal)
-Added 'n' flag in 'formatoptions': format a numbered list.
-
-Swap file:
-- When a swap file already exists, and the user selects "Delete" at the
- ATTENTION prompt, use the same ".swp" swapfile, to avoid creating a ".swo"
- file which won't always be found.
-- When giving the ATTENTION message and the date of the file is newer than the
- date of swap file, give a warning about this.
-- Made the info for an existing swap file a bit shorter, so that it still fits
- on a 24 line screen.
-- It was possible to make a symlink with the name of a swap file, linking to a
- file that doesn't exist. Vim would then silently use another file (if open
- with O_EXCL refuses a symlink). Now check for a symlink to exist. Also do
- another check for an existing swap file just before creating it to catch a
- symlink attack.
-
-The g CTRL-G command also works in Visual mode and counts the number of words.
-(Chase Tingley)
-
-Give an error message when using 'shell' and it's empty.
-
-Added the possibility to include "%s" in 'shellpipe'.
-
-Added "uhex" value for 'display': show non-printable characters as <xx>.
-Show unprintable characters with NonText highlighting, also in the command
-line.
-
-When asked to display the value of a hidden option, tell it's not supported.
-
-Win32:
-- When dropping a shortcut on gvim (.lnk file) edit the target, not the
- shortcut itself. (Yasuhiro Matsumoto)
-- Added C versions of the OpenWithVim and SendToVim programs. (Walter Briscoe)
-- When 'shell' is "cmd" or "cmd.exe", set 'shellredir' to redirect stderr too.
- Also check for the Unix shell names.
-- When $HOMEDRIVE and $HOMEPATH are defined, use them to define $HOME. (Craig
- Barkhouse)
-
-Win32 console version:
-- Includes the user and system name in the ":version" message, when available.
- It generates a pathdef.c file for this. (Jon Miner)
-- Set the window icon to Vim's icon (only for Windows 2000). While executing
- a shell command, modify the window title to show this. When exiting,
- restore the cursor position too. (Craig Barkhouse)
-- The Win32 console version can be compiled with OLE support. It can only
- function as a client, not as an OLE server.
-
-Errorformat:
-- Let "%p" in 'errorformat' (column of error indicated by a row of characters)
- also accept a line of dots.
-- Added "%v" item in 'errorformat': Virtual column number. (Dan Sharp)
-- Added a default 'errorformat' value for VMS. (Jim Bush)
-
-The "p" command can now be used in Visual mode. It overwrites the selected
-text with the contents of a register.
-
-Highlight the <> items in the intro message to make clear they are special.
-
-When using the "c" flag for ":substitute", allow typing "l" for replacing this
-item and then stop: "last".
-
-When printing a verbose message about sourcing another file, print the line
-number.
-
-When resizing the Vim window, don't use 'equalalways'. Avoids that making the
-Vim window smaller makes split windows bigger. And it's what the docs say.
-
-When typing CTRL-D in Insert mode, just after an autoindent, then hitting CR
-kept the remaining white space. Now made it work like BS: delete the
-autoindent to avoid a blank non-empty line results.
-
-Added a GetHwnd() call to the OLE interface. (Vince Negri)
-
-Made ":normal" work in an event handler. Useful when dropping a file on Vim
-and for CursorHold autocommands.
-
-For the MS-Windows version, don't change to the directory of the file when a
-slash is used instead of a backslash. Explorer should always use a backslash,
-the user can use a slash when typing the command.
-
-Timestamps:
-- When a buffer was changed outside of Vim and regaining focus, give a dialog
- to allow the user to reload the file. Now also for other GUIs than
- MS-Windows. And also used in the console, when compiled with dialog
- support.
-- Inspect the file contents to find out if it really changed, ignore
- situations where only the time stamp changed (e.g., checking the file out
- from CVS).
-- When checking the timestamp, first check if the file size changed, to avoid
- a file compare then. Makes it quicker for large (log) files that are
- appended to.
-- Don't give a warning for a changed or deleted file when 'buftype' is set.
-- No longer warn for a changed directory. This avoids that the file explorer
- produces warnings.
-- Checking timestamps is only done for buffers that are not hidden. These
- will be checked when they become unhidden.
-- When checking for a file being changed outside of Vim, also check if the
- file permissions changed. When the file contents didn't change but the
- permissions did, give a warning.
-- Avoid checking too often, otherwise the dialog keeps popping up for a log
- file that steadily grows.
-
-Mapping <M-A> when 'encoding' is "latin1" and then setting 'encoding' to
-"utf-8" causes the first byte of a multi-byte to be mapped. Can cause very
-hard to find problems. Disallow mapping part of a multi-byte character.
-
-For ":python" and ":tcl" accept an in-line script. (Johannes Zellner)
-Also for ":ruby" and ":perl". (Benoit Cerrina)
-
-Made ":syn include" use 'runtimepath' when the file name is not a full path.
-
-When 'switchbuf' contains "split" and the current window is empty, don't split
-the window.
-
-Unix: Catch SIGPWR to preserve files when the power is about to go down.
-
-Sniff interface: (Anton Leherbauer)
-- fixed windows code, esp. the event handling stuff
-- adaptations for sniff 4.x ($SNIFF_DIR4)
-- support for adding sniff requests at runtime
-
-Support the notation <A-x> as an alias for <M-x>. This logical, since the Alt
-key is used.
-
-":find" accepts a count, which means that the count'th match in 'path' is
-used.
-
-":ls" and ":buffers" output shows modified/readonly/modifiable flag. When a
-buffer is active show "a" instead of nothing. When a buffer isn't loaded
-show nothing instead of "-".
-
-Unix install:
-- When installing the tools, set absolute paths in tools scripts efm_perl.pl
- and mve.awk. Avoids that the user has to edit these files.
-- Install Icons for KDE when the directories exist and the icons do not exist
- yet.
-
-Added has("win95"), to be able to distinguish between MS-Windows 95/98/ME and
-NT/2000/XP in a Vim script.
-
-When a ":cd" command was typed, echo the new current directory. (Dan Sharp)
-
-When using ":winpos" before the GUI window has been opened, remember the
-values until it is opened.
-
-In the ":version" output, add "/dyn" for features that are dynamically loaded.
-This indicates the feature may not always work.
-
-On Windows NT it is possible that a directory is read-only, but a file can be
-deleted. When making a backup by renaming the file and 'backupdir' doesn't
-use the current directory, this causes the original file to be deleted,
-without the possibility to create a new file. Give an extra error message
-then to warn to user about this.
-
-Made CTRL-R CTRL-O at the command line work like CTRL-R CTRL-R, so that it's
-consistent with Insert mode.
-
-==============================================================================
-COMPILE TIME CHANGES *compile-changes-6*
-
-All generated files have been moved out of the "src" directory. This makes it
-easy to see which files are not edited by hand. The files generated by
-configure are now in the "src/auto" directory. For Unix, compiled object
-files go in the objects directory.
-
-The source archive was over the 1.4M floppy limit. The archives are now split
-up into two runtime and two source archives. Also provide a bzip2 compressed
-archive that contains all the sources and runtime files.
-
-Added "reconfig" as a target for make. Useful when changing some of the
-arguments that require flushing the cache, such as switching from GTK to
-Motif. Adjusted the meaning of GUI_INC_LOC and GUI_LIB_LOC to be consistent
-over different GUIs.
-
-Added src/README.txt to give an overview of the main parts of the source code.
-
-The Unix Makefile now fully supports using $(DESTDIR) to install to a specific
-location. Replaces the manual setting of *ENDLOC variables.
-
-Added the possibility for a maintainer of a binary version to include his
-e-mail address with the --with-compiledby configure argument.
-
-Included features are now grouped in "tiny", "small", "normal", "big" and
-"huge". This replaces "min-features" and "max-features". Using "tiny"
-disables multiple windows for a really small Vim.
-
-For the tiny version or when FEAT_WINDOWS is not defined: Firstwin and lastwin
-are equal to curwin and don't use w_next and w_prev.
-
-Added the +listcmds feature. Can be used to compile without the Vim commands
-that manipulate the buffer list and argument list (the buffer list itself is
-still there, can't do without it).
-
-Added the +vreplace feature. It is disabled in the "small" version to avoid
-that the 16 bit DOS version runs out of memory.
-
-Removed GTK+ support for versions older than 1.1.16.
-
-The configure checks for using PTYs have been improved. Code taken from a
-recent version of screen.
-
-Added configure options to install Vim, Ex and View under another name (e.g.,
-vim6, ex6 and view6).
-
-Added "--with-global-runtime" configure argument. Allows specifying the
-global directory used in the 'runtimepath' default.
-
-Made enabling the SNiFF+ interface possible with a configure argument.
-
-Configure now always checks /usr/local/lib for libraries and
-/usr/local/include for include files. Helps finding the stuff for iconv() and
-gettext().
-
-Moved the command line history stuff into the +cmdline_hist feature, to
-exclude the command line history from the tiny version.
-
-MS-Windows: Moved common functions from Win16 and Win32 to os_mswin.c. Avoids
-having to change two files for one problem. (Vince Negri)
-
-Moved common code from gui_w16.c and gui_w32.c to gui_w48.c (Vince Negri)
-
-The jumplist is now a separate feature. It is disabled for the "small"
-version (16 bit MS-DOS).
-
-Renamed all types ending in _t to end in _T. Avoids potential problems with
-system types.
-
-Added a configure check for X11 header files that implicitly define the return
-type to int. (Steve Wall)
-
-"make doslang" in the top directory makes an archive with the menu and .mo
-files for Windows. This uses the files generated on Unix, these should work
-on MS-Windows as well.
-
-Merged a large part of os_vms.c with os_unix.c. The code was duplicated in
-the past which made maintenance more work. (Zoltan Arpadffy)
-
-Updated the Borland C version 5 Makefile: (Dan Sharp)
-- Fixed the Perl build
-- Added python and tcl builds
-- Added dynamic perl and dynamic python builds
-- Added uninstal.exe build
-- Use "yes" and "no" for the options, like in Make_mvc.mak.
-
-Win32: Merged Make_gvc.mak and Make_ovc.mak into one file: Make_ivc.mak. It's
-much smaller, many unnecessary text has been removed. (Walter Briscoe)
-Added Make_dvc.mak to be able to debug exe generated with Make_mvc.mak in
-MS-Devstudio. (Walter Briscoe)
-
-MS-Windows: The big gvim.exe, which includes OLE, now also includes
-dynamically loaded Tcl, Perl and Python. This uses ActivePerl 5.6.1,
-ActivePython 2.1.1 and ActiveTCL 8.3.3
-
-Added AC_EXEEXT to configure.in, to check if the executable needs ".exe" for
-Cygwin or MingW. Renamed SUFFIX to EXEEXT in Makefile.
-
-Win32: Load comdlg32.dll delayed for faster startup. Only when using VC 6.
-(Vipin Aravind)
-
-Win32: When compiling with Borland, allow using IME. (Yasuhiro Matsumoto)
-
-Win32: Added Makefile for Borland 5 to compile gvimext.dll. (Yasuhiro
-Matsumoto)
-
-==============================================================================
-BUG FIXES *bug-fixes-6*
-
-When checking the command name for "gvim", "ex", etc. ignore case. Required
-for systems where case is ignored in command names.
-
-Search pattern "[a-c-e]" also matched a 'd' and didn't match a '-'.
-
-When double-clicking in another window, wasn't recognized as double click,
-because topline is different. Added set_mouse_topline().
-
-The BROKEN_LOCALE check was broken. (Marcin Dalecki)
-
-When "t_Co" is set, the default colors remain the same, thus wrong. Reset the
-colors after changing "t_Co". (Steve Wall)
-
-When exiting with ":wqall" the messages about writing files could overwrite
-each other and be lost forever.
-
-When starting Vim with an extremely long file name (around 1024 characters) it
-would crash. Added a few checks to avoid buffer overflows.
-
-CTRL-E could get stuck in a file with very long lines.
-
-":au syntax<Tab>" expanded event names while it should expand groups starting
-with "syntax".
-
-When expanding a file name caused an error (e.g., for <amatch>) it was
-produced even when inside an "if 0".
-
-'cindent' formatted C comments differently from what the 'comments' option
-specified. (Steve Wall)
-
-Default for 'grepprg' didn't include the file name when only grepping in one
-file. Now /dev/null has been added for Unix.
-
-Opening the option window twice caused trouble. Now the cursor goes to the
-existing option window.
-
-":sview" and ":view" didn't set 'readonly' for an existing buffer. Now do set
-'readonly', unless the buffer is also edited in another window.
-
-GTK GUI: When 'guioptions' excluded 'g', the more prompt caused the toolbar
-and menubar to disappear and resize the window (which clears the text).
-Now always grey-out the toplevel menus to avoid that the menubar changes size
-or disappears.
-
-When re-using the current buffer for a new buffer, buffer-local variables were
-not deleted.
-
-GUI: when 'scrolloff' is 0 dragging the mouse above the window didn't cause a
-down scroll. Now pass on a mouse event with mouse_row set to -1.
-
-Win32: Console version didn't work on telnet, because of switching between two
-console screens. Now use one console screen and save/restore the contents
-when needed. (Craig Barkhouse)
-
-When reading a file the magic number for encryption was included in the file
-length. (Antonio Colombo)
-
-The quickfix window contained leading whitespace and NULs for multi-line
-messages. (David Harrison)
-
-When using cscope, redundant tags were removed. This caused a numbering
-problem, because they were all listed. Don't remove redundant cscope tags.
-(David Bustos).
-
-Cscope: Test for which matches are in the current buffer sometimes failed,
-causing a jump to another match than selected. (David Bustos)
-
-Win32: Buffer overflow when adding a charset name in a font.
-
-'titlestring' and 'iconstring' were evaluating an expression in the current
-context, which could be a user function, which is a problem for local
-variables vs global variables.
-
-Win32 GUI: Mapping <M-F> didn't work. Now handle SHIFT and CTRL in
-_OnSysChar().
-
-Win32 GUI: (on no file), :vs<CR>:q<CR> left a trail of pixels down the middle.
-Could also happen for the ruler. screen_puts() didn't clear the right char in
-ScreenLines[] for the bold trick.
-
-Win32: ":%!sort|uniq" didn't work, because the input file name touches the
-"|". Insert a space before the "|".
-
-OS/2: Expanding wildcards included non-existing files. Caused ":runtime" to
-fail, which caused syntax highlighting to fail.
-
-Pasting a register containing CTRL-R on the command line could cause an
-endless loop that can't be interrupted. Now it can be stopped with CTRL-C.
-
-When 'verbose' is set, a message for file read/write could overwrite the
-previous message.
-When 'verbose' is set, the header from ":select" was put after the last
-message. Now start a new line.
-
-The hit-enter prompt reacted to the response of the t_RV string, causing
-messages at startup to disappear.
-
-When t_Co was set to 1, colors were still used. Now only use color when t_Co
-> 1.
-
-Listing functions with ":function" didn't quit when 'q' or ':' was typed at
-the more prompt.
-
-Use mkstemp() instead of mktemp() when it's available, avoids a warning for
-linking on FreeBSD.
-
-When doing Insert mode completion it's possible that b_sfname is NULL. Don't
-give it to printf() for the "Scanning" message.
-
-":set runtimepath-=$VIMRUNTIME" didn't work, because expansion of wildcards
-was done after trying to remove the string. Now for ":set opt+=val" and ":set
-opt-=val" the expansion of wildcards is done before adding or removing "val".
-
-Using CTRL-V with the "r" command with a blockwise Visual selection inserted a
-CTRL-V instead of getting a special character.
-
-Unix: Changed the order of libraries: Put -lXdmcp after -lX11 and -lSM -lICE
-after -lXdmcp. Should fix link problem on HP-UX 10.20.
-
-Don't remove the last "-lm" from the link line. Vim may link but fail later
-when the GUI starts.
-
-When the shell returns with an error when trying to expand wildcards, do
-include the pattern when the "EW_NOTFOUND" flag was set.
-When expanding wildcards with the shell fails, give a clear error message
-instead of just "1 returned".
-
-Selecting a Visual block, with the start partly on a Tab, deleting it leaves
-the cursor too far to the left. Causes "s" to work in the wrong position.
-
-Pound sign in normal.c caused trouble on some compilers. Use 0xA3 instead.
-
-Warning for changing a read-only file wasn't given when 'insertmode' was set.
-
-Win32: When 'shellxquote' is set to a double quote (e.g., using csh), ":!start
-notepad file" doesn't work. Remove the double quotes added by 'shellxquote'
-when using ":!start". (Pavol Juhas)
-
-The "<f-args>" argument of ":command" didn't accept Tabs for white space.
-Also, don't add an empty argument when there are trailing blanks.
-
-":e test\\je" edited "test\je", but ":next test\\je" edited "testje".
-Backslashes were removed one time too many for ":next".
-
-VMS: "gf" didn't work properly. Use vms_fixfilename() to translate the file
-name. (Zoltan Arpadffy)
-
-After ":hi Normal ctermbg=black ctermfg=white" and suspending Vim not all
-characters are redrawn with the right background.
-
-When doing "make test" without +eval or +windows feature, many tests failed.
-Now have test1 generate a script to copy the correct output, so that a test
-that doesn't work is skipped.
-
-On FreeBSD the Perl interface added "-lc" to the link command and Python added
-"-pthread". These two don't work together, because the libc_r library should
-be used. Removed "-lc" from Perl, it should not be needed.
-Also: Add "-pthread" to $LIBS, so that the checks for functions is done with
-libc_r. Sigaltstack() appears to be missing from libc_r.
-
-The Syntax sub-menus were getting too long, reorganized them and added another
-level for some languages.
-
-Visual block "r"eplace didn't work well when a Tab is partly included.
-(Matthias Kramm)
-
-When yanking a Visual block, where some lines end halfway the block, putting
-the text somewhere else doesn't insert a block. Padd with spaces for missing
-characters. Added "y_width" to struct yankreg. (Matthias Kramm)
-
-If a substitute string has a multibyte character after a backslash only the
-first byte of it was skipped. (Muraoka Taro)
-
-Win32: Numeric keypad keys were missing from the builtin termcap entry.
-
-When a file was read-only ":wa!" didn't force it to be written. (Vince Negri)
-
-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.
-
-Don't let 'ttymouse' default to "dec" when compiled with dec mouse support.
-It breaks the gpm mouse (Linux console).
-
-The prototypes for the Perl interface didn't work for threaded Perl. Added a
-sed command to remove the prototypes from proto/if_perl.pro and added them
-manually to if_perl.xs.
-
-When ":w!" resets the 'readonly' option the title and status lines were not
-updated.
-
-":args" showed the current file when the argument list was empty. Made this
-work like Vi: display nothing.
-
-"99:<C-U>echo v:count" echoed "99" in Normal mode, but 0 in Visual mode.
-Don't set v:count when executing a stuffed command.
-
-Amiga: Got a requester for "home:" because it's in the default runtime path.
-Don't bring up a requester when searching for a file in 'path', sourcing the
-.vimrc file or using ":runtime".
-
-Win16 and Win32: Considered a file "\path\file" absolute. Can cause the same
-file to appear as two different buffers.
-
-Win32: Renaming a file to an empty string crashed Vim. Happened when using
-explorer.vim and hitting ESC at the rename prompt.
-
-Win32: strftime() crashed when called with a "-1" value for the time.
-
-Win32 with Borland compiler: mch_FullName() didn't work, caused tag file not
-to be found.
-
-Cscope sometimes jumped to the wrong tag. (David Bustos)
-
-OS/2: Could not find the tags file. mch_expand_wildcards() added another
-slash to a directory name.
-
-When using ">>" the `] mark was not in the last column.
-
-When Vim was compiled without menu support, filetype.vim was still trying to
-source the menu.vim script. (Rafael Garcia-Suarez)
-
-":ptag" added an item to the tag stack.
-
-Win32 IME: "gr" didn't use IME mode.
-
-In the "vim --help" message the term "options" was used for arguments. That's
-confusing, call them "arguments".
-
-When there are two windows, and a BufUnload autocommand for closing window #1
-closed window #2, Vim would crash.
-
-When there is a preview window and only one other window, ":q" wouldn't exit.
-
-In Insert mode, when cancelling a digraph with ESC, the '?' wasn't removed.
-
-On Unix glob(".*") returned "." and "..", on Windows it didn't. On Windows
-glob("*") also returned files starting with a dot. Made this work like Unix
-on all systems.
-
-Win32: Removed old code to open a console. Vimrun is now used and works fine.
-
-Compute the room needed by the intro message accurately, so that it also fits
-on a 25 line console. (Craig Barkhouse)
-
-":ptnext" was broken. Now remember the last tag used in the preview window
-separately from the tagstack.
-
-Didn't check for "-display" being the last argument. (Wichert Akkerman)
-
-GTK GUI: When starting "gvim" under some conditions there would be an X error.
-Don't replace the error handler when creating the xterm clipboard. (Wichert
-Akkerman)
-
-Adding a space after a help tag caused the tag not to be found. E.g., ":he
-autoindent ".
-
-Was trying to expand a URL into a full path name. On Windows this resulted in
-the current directory to be prepended to the URL. Added vim_isAbsName() and
-vim_FullName() to avoid that various machine specific functions do it
-differently.
-
-":n *.c" ":cd .." ":n" didn't use the original directory of the file. Vi only
-does it for the current file (looks like a bug). Now remember the buffer used
-for the entry in the argument list and use its name (adjusted when doing
-":cd"), unless it's deleted.
-
-When inserting a special key as its name ("<F8>" as four characters) after
-moving around in Insert mode, undo didn't work properly.
-
-Motif GUI: When using the right mouse button, for some people gvim froze for
-a couple of seconds (Motif 1.2?). This doesn't happen when there is no Popup
-menu. Solved by only creating a popup menu when 'mousemodel' is "popup" or
-"popup_setpos". (David Harrison)
-
-Motif: When adding many menu items, the "Help" menu disappeared but the
-menubar didn't wrap. Now manually set the menubar height.
-
-When using <BS> in Insert mode to remove a line break, or using "J" to join
-lines, the cursor could end up halfway a multi-byte character. (Muraoka Taro)
-
-Removed defining SVR4 in configure. It causes problems for some X header
-files and doesn't appear to be used anywhere.
-
-When 'wildignore' is used, 'ignorecase' for a tag match was not working.
-
-When 'wildignore' contains "*~" it was impossible to edit a file ending in a
-"~". Now don't recognize a file ending in "~" as containing wildcards.
-
-Disabled the mouse code for OS/2. It was not really used.
-
-":mksession" always used the full path name for a buffer, also when the short
-name could be used.
-":mkvimrc" and ":mksession" didn't save 'wildchar' and 'pastetoggle' in such a
-way that they would be restored. Now use the key name if possible, this is
-portable.
-
-After recovering a file and abandoning it, an ":edit" command didn't give the
-ATTENTION prompt again. Would be useful to be able to delete the file in an
-easy way. Reset the BF_RECOVERED flag when unloading the buffer.
-
-histdel() could match or ignore case, depending on what happened before it.
-Now always match case.
-
-When a window size was specified when splitting a window, it would still get
-the size from 'winheight' or 'winwidth' if it's larger.
-
-When using "append" or "insert" inside a function definition, a line starting
-with "function" or "endfunction" caused confusion. Now recognize the commands
-and skip lines until a ".".
-
-At the end of any function or sourced file need_wait_return could be reset,
-causing messages to disappear when redrawing.
-
-When in a while loop the line number for error messages stayed fixed. Now the
-line number is remembered in the while loop.
-
-"cd c:/" didn't work on MS-DOS. mch_isdir() removed a trailing slash.
-
-MS-Windows: getftime() didn't work when a directory had a trailing slash or
-backslash. Didn't show the time in the explorer because of this.
-
-When doing wildcard completion, a directory "a/" sorted after "a-b". Now
-recognize path separators when sorting files.
-
-Non-Unix systems: When editing "c:/dir/../file" and "c:/file" they were
-created as different buffers, although it's the same file. Expand to a full
-file name also when an absolute name contains "..".
-
-"g&" didn't repeat the last substitute properly.
-
-When 'clipboard' was set to "unnamed", a "Y" command would not write to "0.
-Now make a copy of register 0 to the clipboard register.
-
-When the search pattern matches in many ways, it could not always be
-interrupted with a CTRL-C. And CTRL-C would have to be hit once for every
-line when 'hlsearch' is on.
-When 'incsearch' is on and interrupting the search for a match, don't abandon
-the command line.
-
-When turning a directory name into a full path, e.g., with fnamemodify(),
-sometimes a slash was added. Make this consistent: Don't add a slash.
-
-When a file name contains a "!", using it in a shell command will cause
-trouble: ":!cat %". Escape the "!" to avoid that. Escape it another time
-when 'shell' contains "sh".
-
-Completing a file name that has a tail that starts with a "~" didn't work:
-":e view/~<Tab>".
-
-Using a ":command" argument that contains < and > but not for a special
-argument was not skipped properly.
-
-The DOS install program: On Win2000 the check for a vim.exe or gvim.exe in
-$PATH didn't work, it always found it in the current directory.
-Rename the vim.exe in the current dir to avoid this. (Walter Briscoe)
-
-In the MS-DOS/Windows install program, use %VIM% instead of an absolute path,
-so that moving Vim requires only one change in the batch file.
-
-Mac: mch_FullName() changed the "fname" argument and didn't always initialize
-the buffer.
-
-MS-DOS: mch_FullName() didn't fix forward/backward slashes in an absolute file
-name.
-
-"echo expand("%:p:h")" with an empty file name removed one directory name on
-MS-DOS. For Unix, when the file name is a directory, the directory name was
-removed. Now make it consistent: "%:p" adds a path separator for all systems,
-but no path separator is added in other situations.
-
-Unix: When checking for a CTRL-C (could happen any time) and there is an X
-event (e.g., clipboard updated) and there is typeahead, Vim would hang until a
-character was typed.
-
-MS-DOS, MS-Windows and Amiga: expanding "$ENV/foo" when $ENV ends in a colon,
-had the slash removed.
-
-":he \^=" gave an error for using \_. ":he ^=" didn't find tag :set^=. Even
-"he :set^=" didn't find it.
-
-A tags file name "D:/tags" was used as file "tags" in "D:". That doesn't work
-when the current path for D: isn't the root of the drive.
-
-Removed calls to XtInitializeWidgetClass(), they shouldn't be necessary.
-
-When using a dtterm or various other color terminals, and the Normal group has
-been set to use a different background color, the background wouldn't always
-be displayed with that color. Added check for "ut" termcap entry: If it's
-missing, clearing the screen won't give us the current background color. Need
-to draw each character instead. Vim now also works when the "cl" (clear
-screen) termcap entry is missing.
-
-When repeating a "/" search command with a line offset, the "n" did use the
-offset but didn't make the motion linewise. Made "d/pat/+2" and "dn" do the
-same.
-
-Win32: Trying to use ":tearoff" for a menu that doesn't exist caused a crash.
-
-OpenPTY() didn't work on Sequent. Add a configure check for getpseudotty().
-
-C-indenting: Indented a line starting with ")" with the matching "(", but not
-a line starting with "x)" looks strange. Also compute the indent for aligning
-with items inside the () and use the lowest indent.
-
-MS-DOS and Windows: ":n *.vim" also matched files ending in "~".
-Moved mch_expandpath() from os_win16.c and os_msdos.c to misc1.c, they are
-equal.
-
-Macintosh: (Dany St-Amant)
-- In Vi-compatible mode didn't read files with CR line separators.
-- Fixed a bug in the handling of Activate/Deactivate Event
-- Fixed a bug in gui_mch_dialog (using wrong pointer)
-
-Multibyte GDK XIM: While composing a multibyte-word, if user presses a
-mouse button, then the word is removed. It should remain and composing end.
-(Sung-Hyun Nam)
-
-MS-DOS, MS-Windows and OS/2: When reading from stdin, automatic CR-LF
-conversion by the C library got in the way of detecting a "dos" 'fileformat'.
-
-When 'smartcase' is set, patterns with "\S" would also make 'ignorecase'
-reset.
-
-When clicking the mouse in a column larger than 222, it moved to the first
-column. Can't encode a larger number in a character. Now limit the number to
-222, don't jump back to the first column.
-
-GUI: In some versions CSI would cause trouble, either when typed directly or
-when part of a multi-byte sequence.
-
-When using multibyte characters in a ":normal" command, a trailing byte that
-is CSI or K_SPECIAL caused problems.
-
-Wildmenu didn't handle multi-byte characters.
-
-":sleep 10" could not be interrupted on Windows, while "gs" could. Made them
-both work the same.
-
-Unix: When waiting for a character is interrupted by an X-windows event (e.g.,
-to obtain the contents of the selection), the wait time would not be honored.
-A message could be overwritten quickly. Now compute the remaining waiting
-time.
-
-Windows: Completing "\\share\c$\S" inserted a backslash before the $ and then
-the name is invalid. Don't insert the backslash.
-
-When doing an auto-write before ":make", IObuff was overwritten and the wrong
-text displayed later.
-
-On the Mac the directories "c:/tmp" and "c:/temp" were used in the defaults
-for 'backupdir' and 'directory', they don't exist.
-
-The check for a new file not to be on an MS-DOS filesystem created the file
-temporarily, which can be slow. Don't do this if there is another check for
-the swap file being on an MS-DOS filesystem.
-
-Don't give the "Changing a readonly file" warning when reading from stdin.
-
-When using the "Save As" menu entry and not entering a file name, would get an
-error message for the trailing ":edit #". Now only do that when the
-alternate file name was changed.
-
-When Vim owns the X11 selection and is being suspended, an application that
-tries to use the selection hangs. When Vim continues it could no longer
-obtain the selection. Now give up the selection when suspending.
-
-option.h and globals.h were included in some files, while they were already
-included in vim.h. Moved the definition of EXTERN to vim.h to avoid doing it
-twice.
-
-When repeating an operator that used a search pattern and the search pattern
-contained characters that have a special meaning on the cmdline (e.g., CTRL-U)
-it didn't work.
-
-Fixed various problems with using K_SPECIAL (0x80) and CSI (0x9b) as a byte in
-a (multibyte) character. For example, the "r" command could not be repeated.
-
-The DOS/Windows install program didn't always work from a directory with a
-long filename, because $VIM and the executable name would not have the same
-path.
-
-Multi-byte:
-- Using an any-but character range [^x] in a regexp didn't work for UTF-8.
- (Muraoka Taro)
-- When backspacing over inserted characters in Replace mode multi-byte
- characters were not handled correctly. (Muraoka Taro)
-- Search commands "#" and "*" didn't work with multibyte characters. (Muraoka
- Taro)
-- Word completion in Insert mode didn't work with multibyte characters.
- (Muraoka Taro)
-- Athena/Motif GUI: when 'linespace' is non-zero the cursor would be drawn too
- wide (number of bytes instead of cell width).
-- When changing 'encoding' to "euc-jp" and inserting a character Vim would
- crash.
-- For euc-jp characters positioning the cursor would sometimes be wrong.
- Also, with two characters with 0x8e leading byte only the first one would be
- displayed.
-- When using DYNAMIC_ICONV on Win32 conversion might fail because of using the
- wrong error number. (Muraoka Taro)
-- Using Alt-x in the GUI while 'encoding' was set to "utf-8" didn't produce
- the right character.
-- When using Visual block selection and only the left halve of a double-wide
- character is selected, the highlighting continued to the end of the line.
-- Visual-block delete didn't work properly when deleting the right halve of a
- double-wide character.
-- Overstrike mode for the cmdline replaced only the first byte of a multibyte
- character.
-- The cursor in Replace mode (also in the cmdline) was to small on a
- double-wide character.
-- When a multibyte character contained a 0x80 byte, it didn't work (was using
- a CSI byte instead). (Muraoka Taro)
-- Wordwise selection with the mouse didn't work.
-- Yanking a modeless selection of multi-byte characters didn't work.
-- When 'selection' is "exclusive", selecting a word that ends in a multi-byte
- character used wrong highlighting for the following character.
-
-Win32 with Make_mvc.mak: Didn't compile for debugging. (Craig Barkhouse)
-
-Win32 GUI: When "vimrun.exe" is used to execute an external command, don't
-give a message box with the return value, it was already printed by vimrun.
-Also avoid printing the return value of the shell when ":silent!" is used.
-
-Win32: selecting a lot of text and using the "find/replace" dialog caused a
-crash.
-
-X11 GUI: When typing a character with the 8th bit set and the Meta/Alt
-modifier, the modifier was removed without changing the character.
-
-Truncating a message to make it fit on the command line, using "..." for the
-middle, didn't always compute the space correctly.
-
-Could not imap <C-@>. Now it works like <Nul>.
-
-VMS:
-- Fixed a few things for VAXC. os_vms_fix.com had some strange CTRL-M
- characters. (Zoltan Arpadffy and John W. Hamill)
-- Added VMS-specific defaults for the 'isfname' and 'isprint' options.
- (Zoltan Arpadffy)
-- Removed os_vms_osdef.h, it's no longer used.
-
-The gzip plugin used a ":normal" command, this doesn't work when dropping a
-compressed file on Vim.
-
-In very rare situations a binary search for a tag would fail, because an
-uninitialized value happens to be half the size of the tag file. (Narendran)
-
-When using BufEnter and BufLeave autocommands to enable/disable a menu, it
-wasn't updated right away.
-
-When doing a replace with the "c"onfirm flag, the cursor was positioned after
-the ruler, instead of after the question. With a long replacement string the
-screen could scroll up and cause a "more" prompt. Now the message is
-truncated to make it fit.
-
-Motif: The autoconf check for the Xp library didn't work.
-
-When 'verbose' is set to list lines of a sourced file, defining a function
-would reset the counter used for the "more" prompt.
-
-In the Win32 find/replace dialog, a '/' character caused problems. Escape it
-with a backslash.
-
-Starting a shell with ":sh" was different from starting a shell for CTRL-Z
-when suspending doesn't work. They now work the same way.
-
-Jumping to a file mark while in a changed buffer gave a "mark not set" error.
-
-":execute histget("cmd")" causes an endless loop and crashed Vim. Now catch
-all commands that cause too much recursiveness.
-
-Removed "Failed to open input method" error message, too many people got this
-when they didn't want to use a XIM.
-
-GUI: When compiled without the +windows feature, the scrollbar would start
-below line one.
-
-Removed the trick with redefining character class functions from regexp.c.
-
-Win32 GUI: Find dialog gives focus back to main window, when typing a
-character mouse pointer is blanked, it didn't reappear when moving it in the
-dialog window. (Vince Negri)
-
-When recording and typing a CTRL-C, no character was recorded. When in Insert
-mode or cancelling half a command, playing back the recorded sequence wouldn't
-work. Now record the CTRL-C.
-
-When the GUI was started, mouse codes for DEC and netterm were still checked
-for.
-
-GUI: When scrolling and 'writedelay' is non-zero, the character under the
-cursor was displayed in the wrong position (one line above/below with
-CTRL-E/CTRL-Y).
-
-A ":normal" command would reset the 'scrollbind' info. Causes problems when
-using a ":normal" command in an autocommand for opening a file.
-
-Windows GUI: a point size with a dot, like "7.5", wasn't recognized. (Muraoka
-Taro)
-
-When 'scrollbind' wasn't set would still remember the current position,
-wasting time.
-
-GTK: Crash when 'shell' doesn't exist and doing":!ls". Use _exit() instead of
-exit() when the child couldn't execute the shell.
-
-Multi-byte:
-- GUI with double-byte encoding: a mouse click in left halve of double-wide
- character put the cursor in previous char.
-- Using double-byte encoding and 'selection' is "exclusive": "vey" and "^Vey"
- included the character after the word.
-- When using a double-byte encoding and there is a lead byte at the end of the
- line, the preceding line would be displayed. "ga" also showed wrong info.
-- "gf" didn't include multi-byte characters before the cursor properly.
- (Muraoka Taro)
-
-GUI: The cursor was sometimes not removed when scrolling. Changed the policy
-from redrawing the cursor after each call to gui_write() to only update it at
-the end of update_screen() or when setting the cursor position. Also only
-update the scrollbars at the end of update_screen(), that's the only place
-where the window text may have been scrolled.
-
-Formatting "/*<Tab>long text", produced "* <Tab>" in the next line. Now
-remove the space before the Tab.
-Formatting "/*<Tab> long text", produced "* <Tab> long text" in the next
-line. Now keep the space after the Tab.
-
-In some places non-ASCII alphabetical characters were accepted, which could
-cause problems. For example, ":X" (X being such a character).
-
-When a pattern matches the end of the line, the last character in the line was
-highlighted for 'hlsearch'. That looks wrong for "/\%3c". Now highlight the
-character just after the line.
-
-Motif: If a dialog was closed by clicking on the "X" of the window frame Vim
-would no longer respond.
-
-When using CTRL-X or CTRL-A on a number with many leading zeros, Vim would
-crash. (Matsumoto)
-
-When 'insertmode' is set, the mapping in mswin.vim for CTRL-V didn't work in
-Select mode. Insert mode wasn't restarted after overwriting the text.
-Now allow nesting Insert mode with insert and change commands. CTRL-O
-cwfoo<Esc> now also works.
-
-Clicking with the right mouse button in another window started Visual mode,
-but used the start position of the current window. Caused ml_get errors when
-the line number was invalid. Now stay in the same window.
-
-When 'selection' is "exclusive", "gv" sometimes selected one character fewer.
-
-When 'comments' contains more than one start/middle/end triplet, the optional
-flags could be mixed up. Also didn't align the end with the middle part.
-
-Double-right-click in Visual mode didn't update the shown mode.
-
-When the Normal group has a font name, it was never used when starting up.
-Now use it when 'guifont' and 'guifontset' are empty.
-Setting a font name to a highlight group before the GUI was started didn't
-work.
-
-"make test" didn't use the name of the generated Vim executable.
-
-'cindent' problems:
-- Aligned with an "else" inside a do-while loop for a line below that loop.
- (Meikel Brandmeyer)
-- A line before a function would be indented even when terminated with a
- semicolon. (Meikel Brandmeyer)
-- 'cindent' gave too much indent to a line after a "};" that ends an array
- init.
-- Support declaration lines ending in "," and "\". (Meikel Brandmeyer)
-- A case statement inside a do-while loop was used for indenting a line after
- the do-while loop. (Meikel Brandmeyer)
-- When skipping a string in a line with one double quote it could continue in
- the previous line. (Meikel Brandmeyer)
-
-When 'list' is set, 'hlsearch' didn't highlight a match at the end of the
-line. Now highlight the '$'.
-
-The Paste menu item in the menu bar, the popup menu and the toolbar were all
-different. Now made them all equal to how it was done in mswin.vim.
-
-st_dev can be smaller than "unsigned". The compiler may give an overflow
-warning. Added a configure check for dev_t.
-
-Athena: closing a confirm() dialog killed Vim.
-
-Various typos in the documentation. (Matt Dunford)
-
-Python interface: The definition of _DEBUG could cause trouble, undefine it.
-The error message for not being able to load the shared library wasn't
-translated. (Muraoka Taro)
-
-Mac: (Dany St-Amant and Axel Kielhorn)
-- Several fixes.
-- Vim was eating 80% of the CPU time.
-- The project os_mac.pbxproj didn't work, Moved it to a subdirectory.
-- Made the menu priority work for the menubar.
-- Fixed a problem with dragging the scrollbar.
-- Cleaned up the various #ifdefs.
-
-Unix: When catching a deadly signal and we keep getting one use _exit() to
-exit in a quick and dirty way.
-
-Athena menu ordering didn't work correctly. (David Harrison)
-
-A ":make" or ":grep" command with a long argument could cause a crash.
-
-Doing ":new file" and using "Quit" for the ATTENTION dialog still opened a new
-window.
-
-GTK: When starting the GUI and there is an error in the .vimrc file, don't
-present the wait-return prompt, since the message was given in the terminal.
-
-When there was an error in a .vimrc file the terminal where gvim was started
-could be cleared. Set msg_row in main.c before writing any messages.
-
-GTK and X11 GUI: When trying to read characters from the user (e.g. with
-input()) before the Vim window was opened caused Vim to hang when it was
-started from the desktop.
-
-OS/390 uses 31 bit pointers. That broke some computations with MAX_COL.
-Reduce MAX_COL by one bit for OS/390. (Ralf Schandl)
-
-When defining a function and it already exists, Vim didn't say it existed
-until after typing it. Now do this right away when typing it.
-
-The message remembered for displaying later (keep_msg) was sometimes pointing
-into a generic buffer, which might be changed by the time the message is
-displayed. Now make a copy of the message.
-
-When using multi-byte characters in a menu and a trailing byte is a backslash,
-the menu would not be created correctly. (Muraoka Taro)
-Using a multibyte character in the substitute string where a trail byte is a
-backslash didn't work. (Muraoka Taro)
-
-When setting "t_Co" in a vimrc file, then setting it automatically from an
-xterm termresponse and then setting it again manually caused a crash.
-
-When getting the value of a string option that is not supported, the number
-zero was returned. This breaks a check like "&enc == "asdf". Now an empty
-string is returned for string options.
-
-Crashed when starting the GTK GUI while using 'notitle' in the vimrc, setting
-'title' in the gvimrc and starting the GUI with ":gui". Closed the connection
-to the X server accidentally.
-
-Had to hit return after selecting an entry for ":ts".
-
-The message from ":cn" message was sometimes cleared. Now display it after
-redrawing if it doesn't cause a scroll (truncated when necessary).
-
-hangulin.c didn't compile when the GUI was disabled. Disable it when it won't
-work.
-
-When setting a termcap option like "t_CO", the value could be displayed as
-being for a normal key with a modifier, like "<M-=>".
-
-When expanding the argument list, entries which are a directory name did not
-get included. This stopped "vim c:/" from opening the file explorer.
-
-":syn match sd "^" nextgroup=asdf" skipped the first column and matched the
-nextgroup in the second column.
-
-GUI: When 'lazyredraw' is set, 'showmatch' didn't work. Required flushing
-the output.
-
-Don't define the <NetMouse> termcode in an xterm, reduces the problem when
-someone types <Esc> } in Insert mode.
-
-Made slash_adjust() work correctly for multi-byte characters. (Yasuhiro
-Matsumoto)
-Using a filename in Big5 encoding for autocommands didn't work (backslash in
-trailbyte). (Yasuhiro Matsumoto)
-
-DOS and Windows: Expanding *.vim also matched file.vimfoo. Expand path like
-Unix to avoid problems with Windows dir functions. Merged the DOS and Win32
-functions.
-
-Win32: Gvimext could not edit more than a few files at once, the length of the
-argument was fixed.
-
-"ls -1 * | xargs vim" worked, but the input was in cooked mode. Now switch to
-raw mode when needed. Use dup() to copy the stderr file descriptor to stdin
-to make shell commands work. No longer requires an external program to do
-this.
-
-When using ":filetype off", ftplugin and indent usage would be switched off at
-the same time. Don't do this, setting 'filetype' manually can still use them.
-
-GUI: When writing a double-byte character, it could be split up in two calls
-to gui_write(), which doesn't work. Now flush before the output buffer
-becomes full.
-
-When 'laststatus' is set and 'cmdheight' is two or bigger, the intro message
-would be written over the status line.
-The ":intro" command didn't work when there wasn't enough room.
-
-Configuring for Ruby failed with a recent version of Ruby. (Akinori Musha)
-
-Athena: When deleting the directory in which Vim was started, using the file
-browser made Vim exit. Removed the use of XtAppError().
-
-When using autoconf 2.50, UNIX was not defined. Moved the comment for "#undef
-UNIX" to a separate line.
-
-Win32: Disabled _OnWindowPosChanging() to make maximize work better.
-
-Win32: Compiling with VC 4.0 didn't work. (Walter Briscoe)
-
-Athena:
-- Finally fixed the problems with deleting a menu. (David Harrison)
-- Athena: When closing the confirm() dialog, worked like OK was pressed,
- instead of Cancel.
-
-The file explorer didn't work in compatible mode, because of line
-continuation.
-
-Didn't give an error message for ":digraph a".
-
-When using Ex mode in the GUI and typing a special key, <BS> didn't delete it
-correctly. Now display '?' for a special key.
-
-When an operator is pending, clicking in another window made it apply to that
-window, even though the line numbers could be beyond the end of the buffer.
-
-When a function call doesn't have a terminating ")" Vim could crash.
-
-Perl interface: could crash on exit with perl 5.6.1. (Anduin Withers)
-
-Using %P in 'errorformat' wasn't handled correctly. (Tomas Zellerin)
-
-Using a syntax cluster that includes itself made Vim crash.
-
-GUI: With 'ls' set to 2, dragging the status line all the way up, then making
-the Vim window smaller: Could not the drag status line anymore.
-
-"vim -c startinsert! file" placed cursor on last char of a line, instead of
-after it. A ":set" command in the buffer menu set w_set_curswant. Now don't
-do this when w_curswant is MAXCOL.
-
-Win32: When the gvim window was maximized and selecting another font, the
-window would no longer fill the screen.
-
-The line with 'pastetoggle' in ":options" didn't show the right value when it
-is a special key. Hitting <CR> didn't work either.
-
-Formatting text, resulting in a % landing in the first line, repeated the % in
-the following lines, like it's the start of a comment.
-
-GTK: When adding a toolbar item while gvim is already running, it wasn't
-possible to use the tooltip. Now it works by adding the tooltip first.
-
-The output of "g CTRL-G" mentioned "Char" but it's actually bytes.
-
-Searching for the end of a oneline region didn't work correctly when there is
-an offset for the highlighting.
-
-Syntax highlighting: When synchronizing on C-comments, //*/ was seen as the
-start of a comment.
-
-Win32: Without scrollbars present, the MS mouse scroll wheel didn't work.
-Also handle the scrollbars when they are not visible.
-
-Motif: When there is no right scrollbar, the bottom scrollbar would still
-leave room for it. (Marcin Dalecki)
-
-When changing 'guicursor' and the value is invalid, some of the effects would
-still take place. Now first check for errors and only make the new value
-effective when it's OK.
-
-Using "A" In Visual block mode, appending to lines that don't extend into the
-block, padding was wrong.
-
-When pasting a block of text, a character that occupies more than one screen
-column could be deleted and spaces inserted instead. Now only do that with a
-tab.
-
-Fixed conversion of documentation to HTML using Perl. (Dan Sharp)
-
-Give an error message when a menu name starts with a dot.
-
-Avoid a hang when executing a shell from the GUI on HP-UX by pushing "ptem"
-even when sys/ptem.h isn't present.
-
-When creating the temp directory, make sure umask is 077, otherwise the
-directory is not accessible when it was set to 0177.
-
-Unix: When resizing the window and a redraw is a bit slow, could get a window
-resize event while redrawing, resulting in a messed up window. Any input
-(e.g., a mouse click) would redraw.
-
-The "%B" item in the status line became zero in Insert mode (that's normal)
-for another than the current window.
-
-The menu entries to convert to xxd and back didn't work in Insert mode.
-
-When ":vglobal" didn't find a line where the pattern doesn't match, the error
-message would be the wrong way around.
-
-When ignoring a multi-line error message with "%-A", the continuation lines
-would be used anyway. (Servatius Brandt)
-
-"grx" on a double-wide character inserted "x", instead of replacing the
-character with "x ". "gR" on <xx> ('display' set the "uhex") didn't replace
-at all. When doing "gRxx" on a control character the first "x" would be
-inserted, breaking the alignment.
-
-Added "0)" to 'cinkeys', so that when typing a ) it is put in the same place
-as where "==" would put it.
-
-Win32: When maximized, adding/removing toolbar didn't resize the text area.
-
-When using <C-RightMouse> a count was discarded.
-
-When typing CTRL-V and <RightMouse> in the command line, would insert
-<LeftMouse>.
-
-Using "vis" or "vas" when 'selection' is exclusive didn't include the last
-character.
-
-When adding to an option like 'grepprg', leading space would be lost. Don't
-expand environment variables when there is no comma separating the items.
-
-GUI: When using a bold-italic font, would still use the bold trick and
-underlining.
-
-Motif: The default button didn't work in dialogs, the first one was always
-used. Had to give input focus to the default button.
-
-When using CTRL-T to jump within the same file, the '' mark wasn't set.
-
-Undo wasn't Vi compatible when using the 'c' flag for ":s". Now it undoes the
-whole ":s" command instead of each confirmed replacement.
-
-The Buffers menu, when torn-off, disappeared when being refreshed. Add a
-dummy item to avoid this.
-
-Removed calling msg_start() in main(), it should not be needed.
-
-vim_strpbrk() did not support multibyte characters. (Muraoka Taro)
-
-The Amiga version didn't compile, the code was too big for relative jumps.
-Moved a few files from ex_docmd.c to ex_cmds2.c
-
-When evaluating the "= register resulted in the "= register being changed, Vim
-would crash.
-
-When doing ":view file" and it fails, the current buffer was made read-only.
-
-Motif: For some people the separators in the toolbar disappeared when resizing
-the Vim window. (Marcin Dalecki)
-
-Win32 GUI: when setting 'lines' to a huge number, would not compute the
-available space correctly. Was counting the menu height twice.
-
-Conversion of the docs to HTML didn't handle the line with the +quickfix tag
-correctly. (Antonio Colombo)
-
-Win32: fname_case() didn't handle multi-byte characters correctly. (Yasuhiro
-Matsumoto)
-
-The Cygwin version had trouble with fchdir(). Don't use that function for
-Cygwin.
-
-The generic check in scripts.vim for "conf" syntax was done before some checks
-in filetype.vim, resulting in "conf" syntax too often.
-
-Dos32: Typing lagged behind. Would wait for one biostick when checking if a
-character is available.
-
-GTK: When setting 'columns' while starting up "gvim", would set the width of
-the terminal it was started in.
-
-When using ESC in Insert mode, an autoindent that wraps to the next line
-caused the cursor to move to the end of the line temporarily. When the
-character before the cursor was a double-wide multi-byte character the cursor
-would be on the right halve, which causes problems with some terminals.
-
-Didn't handle multi-byte characters correctly when expanding a file name.
-(Yasuhiro Matsumoto)
-
-Win32 GUI: Errors generated before the GUI is decided to start were not
-reported.
-
-globpath() didn't reserve enough room for concatenated results. (Anduin
-Withers)
-
-When expanding an option that is very long already, don't do the expansion, it
-would be truncated to MAXPATHL. (Anduin Withers)
-
-When 'selection' is "exclusive", using "Fx" in Visual mode only moved until
-just after the character.
-
-When using IME on the console to enter a file name, the screen may scroll up.
-Redraw the screen then. (Yasuhiro Matsumoto)
-
-Motif: In the find/replace dialog the "Replace" button didn't work first time,
-second time it replaced all matches. Removed the use of ":s///c".
-GTK: Similar problems with the find/replace dialog, moved the code to a common
-function.
-
-X11: Use shared GC's for text. (Marcin Dalecki)
-
-"]i" found the match under the cursor, instead of the first one below it.
-Same for "]I", "] CTRL-I", "]d", "]D" and "] CTRL-D".
-
-Win16: When maximized and the font is changed, don't change the window size.
-(Vince Negri)
-
-When 'lbr' is set, deleting a block of text could leave the cursor in the
-wrong position.
-
-Win32: When opening a file with the "Edit with Vim" popup menu entry,
-wildcards would cause trouble. Added the "--literal" argument to avoid
-expanding file names.
-
-When using "gv", it didn't restore that "$" was used in Visual block mode.
-
-Win32 GUI: While waiting for a shell command to finish, the window wasn't
-redrawn at all. (Yasuhiro Matsumoto)
-
-Syntax highlighting: A match that continues on a next line because of a
-contained region didn't end when that region ended.
-
-The ":s" command didn't allow flags like 'e' and 'i' right after it.
-
-When using ":s" to split a line, marks were moved to the next line. Vi keeps
-them in the first line.
-
-When using ":n" ":rew", the previous context mark was at the top of the file,
-while Vi puts it in the same place as the cursor. Made it Vi compatible.
-
-Fixed Vi incompatibility: Text was not put in register 1 when using "c" and
-"d" with a motion character, when deleting within one line with one of the
-commands: % ( ) `<character> / ? N n { }
-
-Win32 GUI: The tooltip for tear-off items remained when the tear-off item was
-no longer selected.
-
-GUI: When typing ":" at the more prompt, would return to Normal mode and not
-redraw the screen.
-
-When starting Vim with an argument "-c g/at/p" the printed lines would
-overwrite each other.
-
-BeOS: Didn't compile. Configure didn't add the os_beos files, the QNX check
-removed them. Various changes to os_beos.cc. (Joshua Haberman)
-Removed the check for the hardware platform, the BeBox has not been produced
-for a long time now.
-
-Win32 GUI: don't use a message box when the shell returns an error code,
-display the message in the Vim window.
-
-Make_mvc.mak always included "/debug" for linking. "GUI=no" argument didn't
-work. Use "DEBUG=yes" instead of "DEBUG=1" to make it consistent. (Dan Sharp)
-
-When a line in the tags file ended in ;" (no TAB following) the command would
-not be recognized as a search command.
-
-X11: The inputMethod resource never worked. Don't use the "none" input method
-for SGI, it apparently makes the first character in Input method dropped.
-
-Fixed incorrect tests in os_mac.h. (Axel Kielhorn)
-
-Win32 console: When the console where Vim runs in is closed, Vim could hang in
-trying to restore the window icon. (Yasuhiro Matsumoto)
-
-When using ":3call func()" or ":3,3call func() the line number was ignored.
-
-When 'showbreak' and 'linebreak' were both set, Visual highlighting sometimes
-continued until the end of the line.
-
-GTK GUI: Tearoff items were added even when 'guioptions' didn't contain 't'
-when starting up.
-
-MS-Windows: When the current directory includes a "~", searching files with
-"gf" or ":find" didn't work. A "$" in the directory had the same problem.
-Added mch_has_exp_wildcard() functions.
-
-When reducing the Vim window height while starting up, would get an
-out-of-memory error message.
-
-When editing a very long search pattern, 'incsearch' caused the redraw of the
-command line to fail.
-
-Motif GUI: On some systems the "Help" menu would not be on the far right, as
-it should be. On some other systems (esp. IRIX) the command line would not
-completely show. Solution is to only resize the menubar for Lesstif.
-
-Using "%" in a line that contains "\\" twice didn't take care of the quotes
-properly. Now make a difference between \" and \\".
-
-For non-Unix systems a dummy file is created when finding a swap name to
-detect a 8.3 filesystem. When there is an existing swap file, would get a
-warning for the file being created outside of Vim. Also, when closing the Vim
-window the file would remain.
-
-Motif: The menu height was always computed, using a "-menuheight" argument
-was setting the room for the command line. Now make clear the argument is not
-supported.
-
-For some (EBCDIC) systems, POUND was equal to '#'. Added an #if for that to
-avoid a duplicate case in a switch.
-
-The GUI may have problems when forking. Always call _exit() instead of exit()
-in the parent, the child will call exit().
-
-Win32 GUI: Accented characters were often wrong in dialogs and tearoff menus.
-Now use CP_ACP instead of CP_OEMCP. (Vince Negri)
-
-When displaying text with syntax highlighting causes an error (e.g., running
-out of stack) the syntax highlighting is disabled to avoid further messages.
-
-When a command in a .vimrc or .gvimrc causes an ATTENTION prompt, and Vim was
-started from the desktop (no place to display messages) it would hang. Now
-open the GUI window early to be able to display the messages and pop up the
-dialog.
-
-"r<CR>" on a multi-byte character deleted only the first byte of the
-character. "3r<CR>" deleted three bytes instead of three characters.
-
-When interrupting reading a file, Vi considers the buffer modified. Added the
-'i' flag in 'cpoptions' flag for this (we don't want it modified to be able to
-do ":q").
-
-When using an item in 'guicursor' that starts with a colon, Vim would get
-stuck or crash.
-
-When putting a file mark in a help file and later jumping back to it, the
-options would not be set. Extended the modeline in all help files to make
-this work better.
-
-When a modeline contained "::" the local option values would be printed. Now
-ignore it.
-
-Some help files did not use a 8.3 names, which causes problems when using
-MS-DOS unzip. Renamed "multibyte.txt" to "mbyte.txt", "rightleft.txt" to
-"rileft.txt", "tagsearch.txt" to "tagsrch.txt", "os_riscos.txt" to
-"os_risc.txt".
-
-When Visual mode is blockwise, using "iw" or "aw" made it characterwise. That
-doesn't seem right, only do this when in linewise mode. But then do it
-always, not only when start and end of Visual mode are equal.
-
-When using "viw" on a single-letter word and 'selection' is exclusive, would
-not include the word.
-
-When formatting text from Insert mode, using CTRL-O, could mess up undo
-information.
-
-While writing a file (also for the backup file) there was no check for an
-interrupt (hitting CTRL-C). Vim could hang when writing a large file over a
-slow network, and moving the mouse didn't make it appear (when 'mousehide' is
-set) and the screen wasn't updated in the GUI. Also allow interrupting when
-syncing the swap file, it can take a long time.
-
-When using ":mksession" while there is help window, it would later be restored
-to the right file but not marked as a help buffer. ":help" would then open
-another window. Now use the value "help" for 'buftype' to mark a help buffer.
-
-The session file contained absolute path names in option values, that doesn't
-work when the home directory depends on the situation. Replace the home
-directory with ~/ when possible.
-
-When using 'showbreak' a TAB just after the shown break would not be counted
-correctly, the cursor would be positioned wrong.
-
-With 'showbreak' set to "--->" or "------->" and 'sts' set to 4, inserting
-tabs did not work right. Could cause a crash. Backspacing was also wrong,
-could get stuck at a line break.
-
-Win32: crashed when tearing off a menu with over 300 items.
-
-GUI: A menu or toolbar item would appear when only a tooltip was defined for
-it.
-
-When 'scrolloff' is non-zero and "$" is in 'cpoptions', using "s" while the
-last line of the file is the first line on screen, the text wasn't displayed.
-
-When running "autoconf", delete the configure cache to force starting cleanly
-when configure is run again.
-
-When changing the Normal colors for cterm, the value of 'background' was
-changed even when the GUI was used.
-
-The warning for a missing vimrun.exe was always given on startup, but some
-people just editing a file don't need to be bothered by it. Only show it when
-vimrun would be used.
-
-When using "%" in a multibyte text it could get confused by trailbytes that
-match. (Muraoka Taro)
-
-Termcap entry for RiscOS was wrong, using 7 and 8 in octal codes.
-
-Athena: The title of a dialog window and the file selector window were not
-set. (David Harrison)
-
-The "htmlLink" highlight group specified colors, which gives problems when
-using a color scheme. Added the "Underlined" highlight group for this.
-
-After using ":insert" or ":change" the '[ mark would be one line too low.
-
-When looking for the file name after a match with 'include' one character was
-skipped. Same for 'define'.
-
-Win32 and DJGPP: When editing a file with a short name in a directory, and
-editing the same file but using the long name, would end up with two buffers
-on the same file.
-
-"gf" on a filename that starts with "../" only worked when the file being
-edited is in the current directory. An include file search didn't work
-properly for files starting with "../" or ".". Now search both relative to
-the file and to the current directory.
-
-When 'printheader', 'titlestring', 'iconstring', 'rulerformat' or 'statusline'
-contained "%{" but no following "}" memory was corrupted and a crash could
-happen.
-
-":0append" and then inserting two lines did not redraw the blank lines that
-were scrolled back down.
-
-When using insert mode completion in a narrow window, the message caused a
-scroll up. Now shorten the message if it doesn't fit and avoid writing the
-ruler over the message.
-
-XIM still didn't work correctly on some systems, especially SGI/IRIX. Added
-the 'imdisable' option, which is set by default for that system.
-
-Patch 6.0aw.008
-Problem: When the first character of a file name is over 127, the Buffers
- menu entry would get a negative priority and cause problems.
-Solution: Reduce the multiplier for the first character when computing
- the hash value for a Buffers menu entry.
-Files: runtime/menu.vim
-
-Patch 6.0aw.010
-Problem: Win32: ":browse edit dir/dir" didn't work. (Vikas)
-Solution: Change slashes to backslashes in the directory passed to the file
- browser.
-Files: src/gui_w48.c
-
-Athena file browser: On some systems wcstombs() can't be used to get the
-length of a multi-byte string. Use the maximum length then. (Yasuhiro
-Matsumoto)
-
-Patch 6.0ax.001
-Problem: When 'patchmode' is set, appending to a file gives an empty
- original file. (Ed Ralston)
-Solution: Also make a backup copy when appending and 'patchmode' is set.
-Files: src/fileio.c
-
-Patch 6.0ax.002
-Problem: When 'patchmode' is set, appending to a compressed file gives an
- uncompressed original file. (Ed Ralston)
-Solution: Create the original file before decompressing.
-Files: runtime/plugin/gzip.vim
-
-Patch 6.0ax.005
-Problem: Athena file selector keeps the title of the first invocation.
-Solution: Set the title each time the file selector is opened. (David
- Harrison)
-Files: src/gui_at_fs.c
-
-Patch 6.0ax.007
-Problem: When using GPM (mouse driver in a Linux console) a double click is
- interpreted as a scroll wheel click.
-Solution: Check if GPM is being used when deciding if a mouse event is for
- the scroll wheel.
-Files: src/term.c
-
-Patch 6.0ax.010
-Problem: The Edit.Save menu and the Save toolbar button didn't work when
- the buffer has no file name.
-Solution: Use a file browser to ask for a file name. Also fix the toolbar
- Find item in Visual mode.
-Files: runtime/menu.vim
-
-Patch 6.0ax.012
-Problem: When 'cpoptions' contains "$", breaking a line for 'textwidth'
- doesn't redraw properly. (Stefan Schulze)
-Solution: Remove the dollar before breaking the line.
-Files: src/edit.c
-
-Patch 6.0ax.014
-Problem: Win32: On Windows 98 ":make -f file" doesn't work when 'shell' is
- "command.com" and 'makeprg' is "nmake". The environment isn't
- passed on to "nmake".
-Solution: Also use vimrun.exe when redirecting the output of a command.
-Files: src/os_win32.c
-
-Patch 6.0ax.016
-Problem: The version number was reported wrong in the intro screen.
-Solution: Check for a version number with two additional letters.
-Files: src/version.c
-
-Patch 6.0ax.019
-Problem: When scrolling a window with folds upwards, switching to another
- vertically split window and back may not update the scrollbar.
-Solution: Limit w_botline to the number of lines in the buffer plus one.
-Files: src/move.c
-
-
-==============================================================================
-VERSION 6.1 *version-6.1*
-
-This section is about improvements made between version 6.0 and 6.1.
-
-This is a bug-fix release, there are not really any new features.
-
-
-Changed *changed-6.1*
--------
-
-'iminsert' and 'imsearch' are no longer set as a side effect of defining a
-language-mapping using ":lmap".
-
-
-Added *added-6.1*
------
-
-Syntax files:
-ampl AMPL (David Krief)
-ant Ant (Johannes Zellner)
-baan Baan (Her van de Vliert)
-cs C# (Johannes Zellner)
-lifelines Lifelines (Patrick Texier)
-lscript LotusScript (Taryn East)
-moo MOO (Timo Frenay)
-nsis NSIS (Alex Jakushev)
-ppd Postscript Printer Description (Bjoern Jacke)
-rpl RPL/2 (Joel Bertrand)
-scilab Scilab (Benoit Hamelin)
-splint Splint (Ralf Wildenhues)
-sqlj SQLJ (Andreas Fischbach)
-wvdial WvDial (Prahlad Vaidyanathan)
-xf86conf XFree86 config (Nikolai Weibull)
-xmodmap Xmodmap (Nikolai Weibull)
-xslt Xslt (Johannes Zellner)
-monk Monk (Mike Litherland)
-xsd Xsd (Johannes Zellner)
-cdl CDL (Raul Segura Acevedo)
-sendpr Send-pr (Hendrik Scholz)
-
-Added indent file for Scheme. (Dorai Sitaram)
-Added indent file for Prolog. (Kontra Gergely)
-Added indent file for Povray (David Necas)
-Added indent file for IDL (Aleksandar Jelenak)
-Added C# indent and ftplugin scripts.
-
-Added Ukrainian menu translations. (Bohdan Vlasyuk)
-Added ASCII version of the Czech menus. (Jiri Brezina)
-
-Added Simplified Chinese translation of the tutor. (Mendel L Chan)
-
-Added Russian keymap for yawerty keyboard.
-
-Added an explanation of using the vimrc file in the tutor.
-Changed tutor.vim to get the right encoding for the Taiwainese tutor.
-
-Added Russian tutor. (Andrey Kiselev)
-Added Polish tutor. (Mikolaj Machowski)
-
-Added darkblue color scheme. (Bohdan Vlasyuk)
-
-When packing the dos language archive automatically generate the .mo files
-that are required.
-
-Improved NSIS script to support NSIS 180. Added icons for the
-enabled/disabled status. (Mirek Pruchnik)
-
-cp1250 version of the Slovak message translations.
-
-Compiler plugins for IRIX compilers. (David Harrison)
-
-
-Fixed *fixed-6.1*
------
-
-The license text was updated to make the meaning clearer and make it
-compatible with the GNU GPL. Otherwise distributors have a problem when
-linking Vim with a GPL'ed library.
-
-When installing the "less.sh" script it was not made executable. (Chuck Berg)
-
-Win32: The "9" key on the numpad wasn't working. (Julian Kinraid)
-
-The NSIS install script didn't work with NSIS 1.80 or later. Also add
-Vim-specific icons. (Pruchnik)
-
-The script for conversion to HTML contained an "if" in the wrong place.
-(Michael Geddes)
-
-Allow using ":ascii" in the sandbox, it's harmless.
-
-Removed creat() from osdef2.h.in, it wasn't used and may cause a problem when
-it's redefined to creat64().
-
-The text files in the VisVim directory were in "dos" format. This caused
-problems when applying a patch. Now keep them in "unix" format and convert
-them to "dos" format only for the PC archives.
-
-Add ruby files to the dos source archive, they can be used by Make_mvc.mak.
-(Mirek Pruchnik)
-
-"cp -f" doesn't work on all systems. Change "cp -f" in the Makefile to "rm
--f" and "cp".
-
-Didn't compile on a Compaq Tandem Himalaya OSS. (Michael A. Benzinger)
-
-The GTK file selection dialog didn't include the "Create Dir", "Delete File"
-and "Rename File" buttons.
-
-When doing ":browse source" the dialog has the title "Run Macro". Better
-would be "Source Vim script". (Yegappan Lakshmanan)
-
-Win32: Don't use the printer font as default for the font dialog.
-
-"make doslang" didn't work when configure didn't run (yet). Set $MAKEMO to
-"yes". (Mirek Pruchnik)
-
-The ToolBar TagJump item used "g]", which prompts for a selection even when
-there is only one matching tag. Use "g<C-]>" instead.
-
-The ming makefile for message translations didn't have the right list of
-files.
-
-The MS-Windows 3.1 version complains about LIBINTL.DLL not found. Compile
-this version without message translations.
-
-The Borland 5 makefile contained a check for Ruby which is no longer needed.
-The URLs for the TCL library was outdated. (Dan Sharp)
-
-The eviso.ps file was missing from the DOS runtime archive, it's needed for
-printing PostScript in the 32bit DOS version.
-
-In menu files ":scriptencoding" was used in a wrong way after patch 6.1a.032
-Now use ":scriptencoding" in the file where the translations are given. Do
-the same for all menus in latin1 encoding.
-
-Included a lot of fixes for the Macintosh, mostly to make it work with Carbon.
-(Dany StAmant, Axel Kielhorn, Benji Fisher)
-
-Improved the vimtutor shell script to use $TMPDIR when it exists, and delete
-the copied file when exiting in an abnormal way. (Max Ischenko)
-
-When "iconv.dll" can't be found, try using "libiconv.dll".
-
-When encryption is used, filtering with a shell command wasn't possible.
-
-DJGPP: ":cd c:" always failed, can't get permissions for "c:".
-Win32: ":cd c:/" failed if the previous current directory on c: had become
-invalid.
-
-DJGPP: Shift-Del and Del both produce \316\123. Default mapping for Del is
-wrong. Disabled it.
-
-Dependencies on header files in MingW makefile was wrong.
-
-Win32: Don't use ACL stuff for MSVC 4.2, it's not supported. (Walter Briscoe)
-
-Win32 with Borland: bcc.cfg was caching the value for $(BOR), but providing a
-different argument to make didn't regenerate it.
-
-Win32 with MSVC: Make_ivc.mak generates a new if_ole.h in a different
-directory, the if_ole.h in the src directory may be used instead. Delete the
-distributed file.
-
-When a window is vertically split and then ":ball" is used, the window layout
-is messed up, can cause a crash. (Muraoka Taro)
-
-When 'insertmode' is set, using File/New menu and then double clicking, "i" is
-soon inserted. (Merlin Hansen)
-
-When Select mode is active and using the Buffers menu to switch to another
-buffer, an old selection comes back. Reset VIsual_reselect for a ":buffer"
-command.
-
-When Select mode is active and 'insertmode' is set, using the Buffers menu to
-switch to another buffer, did not return to Insert mode. Make sure
-"restart_edit" is set.
-
-When double clicking on the first character of a word while 'selection' is
-"exclusive" didn't select that word.
-
-
-Patch 6.0.001
-Problem: Loading the sh.vim syntax file causes error messages. (Corinna
- Vinschen)
-Solution: Add an "if". (Charles Campbell)
-Files: runtime/syntax/sh.vim
-
-Patch 6.0.002
-Problem: Using a '@' item in 'viminfo' doesn't work. (Marko Leipert)
-Solution: Add '@' to the list of accepted items.
-Files: src/option.c
-
-Patch 6.0.003
-Problem: The configure check for ACLs on AIX doesn't work.
-Solution: Fix the test program so that it compiles. (Tomas Ogren)
-Files: src/configure.in, src/auto/configure
-
-Patch 6.0.004
-Problem: The find/replace dialog doesn't reuse a previous argument
- properly.
-Solution: After removing a "\V" terminate the string. (Zwane Mwaikambo)
-Files: src/gui.c
-
-Patch 6.0.005
-Problem: In Insert mode, "CTRL-O :ls" has a delay before redrawing.
-Solution: Don't delay just after wait_return() was called. Added the
- did_wait_return flag.
-Files: src/globals.h, src/message.c, src/normal.c, src/screen.c
-
-Patch 6.0.006
-Problem: With a vertical split, 'number' set and 'scrolloff' non-zero,
- making the window width very small causes a crash. (Niklas
- Lindstrom)
-Solution: Check for a zero width.
-Files: src/move.c
-
-Patch 6.0.007
-Problem: When setting 'filetype' while there is no FileType autocommand, a
- following ":setfiletype" would set 'filetype' again. (Kobus
- Retief)
-Solution: Set did_filetype always when 'filetype' has been set.
-Files: src/option.c
-
-Patch 6.0.008
-Problem: 'imdisable' is missing from the options window. (Michael Naumann)
-Solution: Add an entry for it.
-Files: runtime/optwin.vim
-
-Patch 6.0.009
-Problem: Nextstep doesn't have S_ISBLK. (John Beppu)
-Solution: Define S_ISBLK using S_IFBLK.
-Files: src/os_unix.h
-
-Patch 6.0.010
-Problem: Using "gf" on a file name starting with "./" or "../" in a buffer
- without a name causes a crash. (Roy Lewis)
-Solution: Check for a NULL file name.
-Files: src/misc2.c
-
-Patch 6.0.011
-Problem: Python: After replacing or deleting lines get an ml_get error.
- (Leo Lipelis)
-Solution: Adjust the cursor position for deleted or added lines.
-Files: src/if_python.c
-
-Patch 6.0.012
-Problem: Polish translations contain printf format errors, this can result
- in a crash when using one of them.
-Solution: Fix for translated messages. (Michal Politowski)
-Files: src/po/pl.po
-
-Patch 6.0.013
-Problem: Using ":silent! cmd" still gives some error messages, like for an
- invalid range. (Salman Halim)
-Solution: Reset emsg_silent after calling emsg() in do_one_cmd().
-Files: src/ex_docmd.c
-
-Patch 6.0.014
-Problem: When 'modifiable' is off and 'virtualedit' is "all", "rx" on a TAB
- still changes the buffer. (Muraoka Taro)
-Solution: Check if saving the line for undo fails.
-Files: src/normal.c
-
-Patch 6.0.015
-Problem: When 'cpoptions' includes "S" and "filetype plugin on" has been
- used, can get an error for deleting the b:did_ftplugin variable.
- (Ralph Henderson)
-Solution: Only delete the variable when it exists.
-Files: runtime/ftplugin.vim
-
-Patch 6.0.016
-Problem: bufnr(), bufname() and bufwinnr() don't find unlisted buffers when
- the argument is a string. (Hari Krishna Dara)
- Also for setbufvar() and getbufvar().
-Solution: Also find unlisted buffers.
-Files: src/eval.c
-
-Patch 6.0.017
-Problem: When 'ttybuiltin' is set and a builtin termcap entry defines t_Co
- and the external one doesn't, it gets reset to empty. (David
- Harrison)
-Solution: Only set t_Co when it wasn't set yet.
-Files: src/term.c
-
-Patch 6.0.018
-Problem: Initializing 'encoding' may cause a crash when setlocale() is not
- used. (Dany St-Amant)
-Solution: Check for a NULL pointer.
-Files: src/mbyte.c
-
-Patch 6.0.019
-Problem: Converting a string with multi-byte characters to a printable
- string, e.g., with strtrans(), may cause a crash. (Tomas Zellerin)
-Solution: Correctly compute the length of the result in transstr().
-Files: src/charset.c
-
-Patch 6.0.020
-Problem: When obtaining the value of a global variable internally, could
- get the function-local value instead. Applies to using <Leader>
- and <LocalLeader> and resetting highlighting in a function.
-Solution: Prepend "g:" to the variable name. (Aric Blumer)
-Files: src/syntax.c, src/term.c
-
-Patch 6.0.021
-Problem: The 'cscopepathcomp' option didn't work.
-Solution: Change USE_CSCOPE to FEAT_CSCOPE. (Mark Feng)
-Files: src/option.c
-
-Patch 6.0.022
-Problem: When using the 'langmap' option, the second character of a command
- starting with "g" isn't adjusted.
-Solution: Apply 'langmap' to the second character. (Alex Kapranoff)
-Files: src/normal.c
-
-Patch 6.0.023
-Problem: Loading the lhaskell syntax doesn't work. (Thore B. Karlsen)
-Solution: Use ":runtime" instead of "source" to load haskell.vim.
-Files: runtime/syntax/lhaskell.vim
-
-Patch 6.0.024
-Problem: Using "CTRL-V u 9900" in Insert mode may cause a crash. (Noah
- Levitt)
-Solution: Don't insert a NUL byte in the text, use a newline.
-Files: src/misc1.c
-
-Patch 6.0.025
-Problem: The pattern "\vx(.|$)" doesn't match "x" at the end of a line.
- (Preben Peppe Guldberg)
-Solution: Always see a "$" as end-of-line after "\v". Do the same for "^".
-Files: src/regexp.c
-
-Patch 6.0.026
-Problem: GTK: When using arrow keys to navigate through the menus, the
- separators are selected.
-Solution: Set the separators "insensitive". (Pavel Kankovsky)
-Files: src/gui_gtk.c, src/gui_gtk_x11.c
-
-Patch 6.0.027
-Problem: VMS: Printing doesn't work, the file is deleted too quickly.
- No longer need the VMS specific printing menu.
- gethostname() is not available with VAXC.
- The makefile was lacking selection of the tiny-huge feature set.
-Solution: Adjust the 'printexpr' option default. Fix the other problems and
- update the documentation. (Zoltan Arpadffy)
-Files: runtime/doc/os_vms.txt, runtime/menu.vim, src/INSTALLvms.txt,
- src/Make_vms.mms, src/option.c, src/os_unix.c, src/os_vms_conf.h
-
-Patch 6.0.028
-Problem: Can't compile without +virtualedit and with +visualextra. (Geza
- Lakner)
-Solution: Add an #ifdef for +virtualedit.
-Files: src/ops.c
-
-Patch 6.0.029
-Problem: When making a change in line 1, then in line 2 and then deleting
- line 1, undo info could be wrong. Only when the changes are undone
- at once. (Gerhard Hochholzer)
-Solution: When not saving a line for undo because it was already done
- before, remember for which entry the last line must be computed.
- Added ue_getbot_entry pointer for this. When the number of lines
- changes, adjust the position of newer undo entries.
-Files: src/structs.h, src/undo.c
-
-Patch 6.0.030
-Problem: Using ":source! file" doesn't work inside a loop or after
- ":argdo". (Pavol Juhas)
-Solution: Execute the commands in the file right away, do not let the main
- loop do it.
-Files: src/ex_cmds2.c, src/ex_docmd.c, src/getchar.c, src/globals.h,
- src/proto/ex_docmd.pro, src/proto/getchar.pro
-
-Patch 6.0.031
-Problem: Nextstep doesn't have setenv() or putenv(). (John Beppu)
-Solution: Move putenv() from pty.c to misc2.c
-Files: src/misc2.c, src/pty.c
-
-Patch 6.0.032
-Problem: When changing a setting that affects all folds, they are not
- displayed immediately.
-Solution: Set the redraw flag in foldUpdateAll().
-Files: src/fold.c
-
-Patch 6.0.033
-Problem: Using 'wildmenu' on MS-Windows, file names that include a space
- are only displayed starting with that space. (Xie Yuheng)
-Solution: Don't recognize a backslash before a space as a path separator.
-Files: src/screen.c
-
-Patch 6.0.034
-Problem: Calling searchpair() with three arguments could result in a crash
- or strange error message. (Kalle Bjorklid)
-Solution: Don't use the fifth argument when there is no fourth argument.
-Files: src/eval.c
-
-Patch 6.0.035
-Problem: The menu item Edit/Global_Settings/Toggle_Toolbar doesn't work
- when 'ignorecase' is set. (Allen Castaban)
-Solution: Always match case when checking if a flag is already present in
- 'guioptions'.
-Files: runtime/menu.vim
-
-Patch 6.0.036
-Problem: OS/2, MS-DOS and MS-Windows: Using a path that starts with a
- slash in 'tags' doesn't work as expected. (Mathias Koehrer)
-Solution: Only use the drive, not the whole path to the current directory.
- Also make it work for "c:dir/file".
-Files: src/misc2.c
-
-Patch 6.0.037
-Problem: When the user has set "did_install_syntax_menu" to avoid the
- default Syntax menu it still appears. (Virgilio)
-Solution: Don't add the three default items when "did_install_syntax_menu"
- is set.
-Files: runtime/menu.vim
-
-Patch 6.0.038
-Problem: When 'selection' is "exclusive", deleting a block of text at the
- end of a line can leave the cursor beyond the end of the line.
-Solution: Correct the cursor position.
-Files: src/ops.c
-
-Patch 6.0.039
-Problem: "gP" leaves the cursor in the wrong position when 'virtualedit' is
- used. Using "c" in blockwise Visual mode leaves the cursor in a
- strange position.
-Solution: For "gP" reset the "coladd" field for the '] mark. For "c" leave
- the cursor on the last inserted character.
-Files: src/ops.c
-
-Patch 6.0.040
-Problem: When 'fileencoding' is invalid and writing fails because of
- this, the original file is gone. (Eric Carlier)
-Solution: Restore the original file from the backup.
-Files: src/fileio.c
-
-Patch 6.0.041
-Problem: Using ":language messages en" when LC_MESSAGES is undefined
- results in setting LC_CTYPE. (Eric Carlier)
-Solution: Set $LC_MESSAGES instead.
-Files: src/ex_cmds2.c
-
-Patch 6.0.042
-Problem: ":mksession" can't handle file names with a space.
-Solution: Escape special characters in file names with a backslash.
-Files: src/ex_docmd.c
-
-Patch 6.0.043
-Problem: Patch 6.0.041 was wrong.
-Solution: Use mch_getenv() instead of vim_getenv().
-Files: src/ex_cmds2.c
-
-Patch 6.0.044
-Problem: Using a "containedin" list for a syntax item doesn't work for an
- item that doesn't have a "contains" argument. Also, "containedin"
- doesn't ignore a transparent item. (Timo Frenay)
-Solution: When there is a "containedin" argument somewhere, always check for
- contained items. Don't check for the transparent item but the
- item it's contained in.
-Files: src/structs.h, src/syntax.c
-
-Patch 6.0.045
-Problem: After creating a fold with a Visual selection, another window
- with the same buffer still has inverted text. (Sami Salonen)
-Solution: Redraw the inverted text.
-Files: src/normal.c
-
-Patch 6.0.046
-Problem: When getrlimit() returns an 8 byte number the check for running
- out of stack may fail. (Anthony Meijer)
-Solution: Skip the stack check if the limit doesn't fit in a long.
-Files: src/auto/configure, src/config.h.in, src/configure.in,
- src/os_unix.c
-
-Patch 6.0.047
-Problem: Using a regexp with "\(\)" inside a "\%[]" item causes a crash.
- (Samuel Lacas)
-Solution: Don't allow nested atoms inside "\%[]".
-Files: src/regexp.c
-
-Patch 6.0.048
-Problem: Win32: In the console the mouse doesn't always work correctly.
- Sometimes after getting focus a mouse movement is interpreted like
- a button click.
-Solution: Use a different function to obtain the number of mouse buttons.
- Avoid recognizing a button press from undefined bits. (Vince Negri)
-Files: src/os_win32.c
-
-Patch 6.0.049
-Problem: When using evim the intro screen is misleading. (Adrian Nagle)
-Solution: Mention whether 'insertmode' is set and the menus to be used.
-Files: runtime/menu.vim, src/version.c
-
-Patch 6.0.050
-Problem: UTF-8: "viw" doesn't include non-ASCII characters before the
- cursor. (Bertilo Wennergren)
-Solution: Use dec_cursor() instead of decrementing the column number.
-Files: src/search.c
-
-Patch 6.0.051
-Problem: UTF-8: Using CTRL-R on the command line doesn't insert composing
- characters. (Ron Aaron)
-Solution: Also include the composing characters and fix redrawing them.
-Files: src/ex_getln.c, src/ops.c
-
-Patch 6.0.052
-Problem: The check for rlim_t in patch 6.0.046 does not work on some
- systems. (Zdenek Sekera)
-Solution: Also look in sys/resource.h for rlim_t.
-Files: src/auto/configure, src/configure.in
-
-Patch 6.0.053 (extra)
-Problem: Various problems with QNX.
-Solution: Minor fix for configure. Switch on terminal clipboard support in
- main.c. Fix "pterm" mouse support. os_qnx.c didn't build without
- photon. (Julian Kinraid)
-Files: src/auto/configure, src/configure.in, src/gui_photon.c,
- src/main.c, src/misc2.c, src/option.h, src/os_qnx.c, src/os_qnx.h,
- src/syntax.c
-
-Patch 6.0.054
-Problem: When using mswin.vim, CTRL-V pastes a block of text like it is
- normal text. Using CTRL-V in blockwise Visual mode leaves "x"
- characters behind.
-Solution: Make CTRL-V work as it should. Do the same for the Paste menu
- entries.
-Files: runtime/menu.vim, runtime/mswin.vim
-
-Patch 6.0.055
-Problem: GTK: The selection isn't copied the first time.
-Solution: Own the selection at the right moment.
-Files: src/gui_gtk_x11.c
-
-Patch 6.0.056
-Problem: Using "CTRL-O cw" in Insert mode results in a nested Insert mode.
- <Esc> doesn't leave Insert mode then.
-Solution: Only use nested Insert mode when 'insertmode' is set or when a
- mapping is used.
-Files: src/normal.c
-
-Patch 6.0.057
-Problem: Using ":wincmd g}" in a function doesn't work. (Gary Holloway)
-Solution: Execute the command directly, instead of putting it in the
- typeahead buffer.
-Files: src/normal.c, src/proto/normal.pro, src/window.c
-
-Patch 6.0.058
-Problem: When a Cursorhold autocommand moved the cursor, the ruler wasn't
- updated. (Bohdan Vlasyuk)
-Solution: Update the ruler after executing the autocommands.
-Files: src/gui.c
-
-Patch 6.0.059
-Problem: Highlighting for 'hlsearch' isn't visible in lines that are
- highlighted for diff highlighting. (Gary Holloway)
-Solution: Let 'hlsearch' highlighting overrule diff highlighting.
-Files: src/screen.c
-
-Patch 6.0.060
-Problem: Motif: When the tooltip is to be popped up, Vim crashes.
- (Gary Holloway)
-Solution: Check for a NULL return value from gui_motif_fontset2fontlist().
-Files: src/gui_beval.c
-
-Patch 6.0.061
-Problem: The toolbar buttons to load and save a session do not correctly
- use v:this_session.
-Solution: Check for v:this_session to be empty instead of existing.
-Files: runtime/menu.vim
-
-Patch 6.0.062
-Problem: Crash when 'verbose' is > 3 and using ":shell". (Yegappan
- Lakshmanan)
-Solution: Avoid giving a NULL pointer to printf(). Also output a newline
- and switch the cursor on.
-Files: src/misc2.c
-
-Patch 6.0.063
-Problem: When 'cpoptions' includes "$", using "cw" to type a ')' on top of
- the "$" doesn't update syntax highlighting after it.
-Solution: Stop displaying the "$" when typing a ')' in its position.
-Files: src/search.c
-
-Patch 6.0.064 (extra)
-Problem: The NSIS install script doesn't work with newer versions of NSIS.
- The diff feature doesn't work when there isn't a good diff.exe on
- the system.
-Solution: Replace the GetParentDir instruction by a user function.
- Fix a few cosmetic problems. Use defined constants for the
- version number, so that it's defined in one place only.
- Only accept the install directory when it ends in "vim".
- (Eduardo Fernandez)
- Add a diff.exe and use it from the default _vimrc.
-Files: nsis/gvim.nsi, nsis/README.txt, src/dosinst.c
-
-Patch 6.0.065
-Problem: When using ":normal" in 'indentexpr' it may use redo characters
- before its argument. (Neil Bird)
-Solution: Save and restore the stuff buffer in ex_normal().
-Files: src/ex_docmd.c, src/getchar.c, src/globals.h, src/structs.h
-
-Patch 6.0.066
-Problem: Sometimes undo for one command is split into two undo actions.
- (Halim Salman)
-Solution: Don't set the undo-synced flag when reusing a line that was
- already saved for undo.
-Files: src/undo.c
-
-Patch 6.0.067
-Problem: if_xcmdsrv.c doesn't compile on systems where fd_set isn't defined
- in the usual header file (e.g., AIX). (Mark Waggoner)
-Solution: Include sys/select.h in if_xcmdsrv.c for systems that have it.
-Files: src/if_xcmdsrv.c
-
-Patch 6.0.068
-Problem: When formatting a Visually selected area with "gq" and the number
- of lines increases the last line may not be redrawn correctly.
- (Yegappan Lakshmanan)
-Solution: Correct the area to be redrawn for inserted/deleted lines.
-Files: src/ops.c
-
-Patch 6.0.069
-Problem: Using "K" on a word that includes a "!" causes a "No previous
- command" error, because the "!" is expanded. (Craig Jeffries)
-Solution: Put a backslash before the "!".
-Files: src/normal.c
-
-Patch 6.0.070
-Problem: Win32: The error message for a failed dynamic linking of a Perl,
- Ruby, Tcl and Python library is unclear about what went wrong.
-Solution: Give the name of the library or function that could not be loaded.
- Also for the iconv and gettext libraries when 'verbose' is set.
-Files: src/eval.c, src/if_perl.xs, src/if_python.c, src/if_ruby.c,
- src/if_tcl.c, src/mbyte.c, src/os_win32.c, src/proto/if_perl.pro,
- src/proto/if_python.pro, src/proto/if_ruby.pro,
- src/proto/if_tcl.pro, src/proto/mbyte.pro
-
-Patch 6.0.071
-Problem: The "iris-ansi" builtin termcap isn't very good.
-Solution: Fix the wrong entries. (David Harrison)
-Files: src/term.c
-
-Patch 6.0.072
-Problem: When 'lazyredraw' is set, a mapping that stops Visual mode, moves
- the cursor and starts Visual mode again causes a redraw problem.
- (Brian Silverman)
-Solution: Redraw both the old and the new Visual area when necessary.
-Files: src/normal.c, src/screen.c
-
-Patch 6.0.073 (extra)
-Problem: DJGPP: When using CTRL-Z to start a shell, the prompt is halfway
- the text. (Volker Kiefel)
-Solution: Position the system cursor before starting the shell.
-Files: src/os_msdos.c
-
-Patch 6.0.074
-Problem: When using "&" in a substitute string a multi-byte character with
- a trailbyte 0x5c is not handled correctly.
-Solution: Recognize multi-byte characters inside the "&" part. (Muraoka Taro)
-Files: src/regexp.c
-
-Patch 6.0.075
-Problem: When closing a horizontally split window while 'eadirection' is
- "hor" another horizontally split window is still resized. (Aron
- Griffis)
-Solution: Only resize windows in the same top frame as the window that is
- split or closed.
-Files: src/main.c, src/proto/window.pro, src/window.c
-
-Patch 6.0.076
-Problem: Warning for wrong pointer type when compiling.
-Solution: Use char instead of char_u pointer.
-Files: src/version.c
-
-Patch 6.0.077
-Problem: Patch 6.0.075 was incomplete.
-Solution: Fix another call to win_equal().
-Files: src/option.c
-
-Patch 6.0.078
-Problem: Using "daw" at the end of a line on a single-character word didn't
- include the white space before it. At the end of the file it
- didn't work at all. (Gavin Sinclair)
-Solution: Include the white space before the word.
-Files: src/search.c
-
-Patch 6.0.079
-Problem: When "W" is in 'cpoptions' and 'backupcopy' is "no" or "auto", can
- still overwrite a read-only file, because it's renamed. (Gary
- Holloway)
-Solution: Add a check for a read-only file before renaming the file to
- become the backup.
-Files: src/fileio.c
-
-Patch 6.0.080
-Problem: When using a session file that has the same file in two windows,
- the fileinfo() call in do_ecmd() causes a scroll and a hit-enter
- prompt. (Robert Webb)
-Solution: Don't scroll this message when 'shortmess' contains 'O'.
-Files: src/ex_cmds.c
-
-Patch 6.0.081
-Problem: After using ":saveas" the new buffer name is added to the Buffers
- menu with a wrong number. (Chauk-Mean Proum)
-Solution: Trigger BufFilePre and BufFilePost events for the renamed buffer
- and BufAdd for the old name (which is with a new buffer).
-Files: src/ex_cmds.c
-
-Patch 6.0.082
-Problem: When swapping screens in an xterm and there is an (error) message
- from the vimrc script, the shell prompt is after the message.
-Solution: Output a newline when there was output on the alternate screen.
- Also when starting the GUI.
-Files: src/main.c
-
-Patch 6.0.083
-Problem: GTK: When compiled without menu support the buttons in a dialog
- don't have any text. (Erik Edelmann)
-Solution: Add the text also when GTK_USE_ACCEL isn't defined. And define
- GTK_USE_ACCEL also when not using menus.
-Files: src/gui_gtk.c
-
-Patch 6.0.084
-Problem: UTF-8: a "r" command with an argument that is a keymap for a
- character with a composing character can't be repeated with ".".
- (Raphael Finkel)
-Solution: Add the composing characters to the redo buffer.
-Files: src/normal.c
-
-Patch 6.0.085
-Problem: When 'mousefocus' is set, using "s" to go to Insert mode and then
- moving the mouse pointer to another window stops Insert mode,
- while this doesn't happen with "a" or "i". (Robert Webb)
-Solution: Reset finish_op before calling edit().
-Files: src/normal.c
-
-Patch 6.0.086
-Problem: When using "gu" the message says "~ed".
-Solution: Make the message say "changed".
-Files: src/ops.c
-
-Patch 6.0.087 (lang)
-Problem: Message translations are incorrect, which may cause a crash.
- (Peter Figura)
- The Turkish translations needed more work and the maintainer
- didn't have time.
-Solution: Fix order of printf arguments. Remove %2$d constructs.
- Add "-v" to msgfmt to get a warning for wrong translations.
- Don't install the Turkish translations for now.
- Update a few more translations.
-Files: src/po/Makefile, src/po/af.po, src/po/cs.po, src/po/cs.cp1250.po,
- src/po/de.po, src/po/es.po, src/po/fr.po, src/po/it.po,
- src/po/ja.po, src/po/ja.sjis.po, src/po/ko.po, src/po/pl.po,
- src/po/sk.po, src/po/uk.po, src/po/zh_CN.UTF-8.po,
- src/po/zh_CN.cp936.po, src/po/zh_CN.po, src/po/zh_TW.po
-
-Patch 6.0.088
-Problem: "." doesn't work after using "rx" in Visual mode. (Charles
- Campbell)
-Solution: Also store the replacement character in the redo buffer.
-Files: src/normal.c
-
-Patch 6.0.089
-Problem: In a C file, using "==" to align a line starting with "* " after
- a line with "* -" indents one space too few. (Piet Delport)
-Solution: Align with the previous line if the comment-start-string matches
- there.
-Files: src/misc1.c
-
-Patch 6.0.090
-Problem: When a wrapping line does not fit in a window and 'scrolloff' is
- bigger than half the window height, moving the cursor left or
- right causes the screen to flash badly. (Lubomir Host)
-Solution: When there is not enough room to show 'scrolloff' screen lines and
- near the end of the line, show the end of the line.
-Files: src/move.c
-
-Patch 6.0.091
-Problem: Using CTRL-O in Insert mode, while 'virtualedit' is "all" and the
- cursor is after the end-of-line, moves the cursor left. (Yegappan
- Lakshmanan)
-Solution: Keep the cursor in the same position.
-Files: src/edit.c
-
-Patch 6.0.092
-Problem: The explorer plugin doesn't ignore case of 'suffixes' on
- MS-Windows. (Mike Williams)
-Solution: Match or ignore case as appropriate for the OS.
-Files: runtime/plugin/explorer.vim
-
-Patch 6.0.093
-Problem: When the Tcl library couldn't be loaded dynamically, get an error
- message when closing a buffer or window. (Muraoka Taro)
-Solution: Only free structures if already using the Tcl interpreter.
-Files: src/if_tcl.c
-
-Patch 6.0.094
-Problem: Athena: When clicking in the horizontal scrollbar Vim crashes.
- (Paul Ackersviller)
-Solution: Use the thumb size instead of the window pointer of the scrollbar
- (which is NULL). (David Harrison)
- Also avoid that scrolling goes the wrong way in a narrow window.
-Files: src/gui_athena.c
-
-Patch 6.0.095
-Problem: Perl: Deleting lines may leave the cursor beyond the end of the
- file.
-Solution: Check the cursor position after deleting a line. (Serguei)
-Files: src/if_perl.xs
-
-Patch 6.0.096
-Problem: When ":saveas fname" fails because the file already exists, the
- file name is changed anyway and a following ":w" will overwrite
- the file. (Eric Carlier)
-Solution: Don't change the file name if the file already exists.
-Files: src/ex_cmds.c
-
-Patch 6.0.097
-Problem: Re-indenting in Insert mode with CTRL-F may cause a crash with a
- multi-byte encoding.
-Solution: Avoid using a character before the start of a line. (Sergey
- Vlasov)
-Files: src/edit.c
-
-Patch 6.0.098
-Problem: GTK: When using Gnome the "Search" and "Search and Replace" dialog
- boxes are not translated.
-Solution: Define ENABLE_NLS before including gnome.h. (Eduardo Fernandez)
-Files: src/gui_gtk.c, src/gui_gtk_x11.c
-
-Patch 6.0.099
-Problem: Cygwin: When running Vi compatible MS-DOS line endings cause
- trouble.
-Solution: Make the default for 'fileformats' "unix,dos" in Vi compatible
- mode. (Michael Schaap)
-Files: src/option.h
-
-Patch 6.0.100
-Problem: ":badd +0 test%file" causes a crash.
-Solution: Take into account that the "+0" is NUL terminated when allocating
- room for replacing the "%".
-Files: src/ex_docmd.c
-
-Patch 6.0.101
-Problem: ":mksession" doesn't restore editing a file that has a '#' or '%'
- in its name. (Wolfgang Blankenburg)
-Solution: Put a backslash before the '#' and '%'.
-Files: src/ex_docmd.c
-
-Patch 6.0.102
-Problem: When changing folds the cursor may appear halfway a closed fold.
- (Nam SungHyun)
-Solution: Set w_cline_folded correctly. (Yasuhiro Matsumoto)
-Files: src/move.c
-
-Patch 6.0.103
-Problem: When using 'scrollbind' a large value of 'scrolloff' will make the
- scroll binding stop near the end of the file. (Coen Engelbarts)
-Solution: Don't use 'scrolloff' when limiting the topline for scroll
- binding. (Dany StAmant)
-Files: src/normal.c
-
-Patch 6.0.104
-Problem: Multi-byte: When '$' is in 'cpoptions', typing a double-wide
- character that overwrites the left halve of an old double-wide
- character causes a redraw problem and the cursor stops blinking.
-Solution: Clear the right half of the old character. (Yasuhiro Matsumoto)
-Files: src/edit.c, src/screen.c
-
-Patch 6.0.105
-Problem: Multi-byte: In a window of one column wide, with syntax
- highlighting enabled a crash might happen.
-Solution: Skip getting the syntax attribute when the character doesn't fit
- anyway. (Yasuhiro Matsumoto)
-Files: src/screen.c
-
-Patch 6.0.106 (extra)
-Problem: Win32: When the printer font is wrong, there is no error message.
-Solution: Give an appropriate error message. (Yasuhiro Matsumoto)
-Files: src/os_mswin.c
-
-Patch 6.0.107 (extra)
-Problem: VisVim: When editing another file, a modified file may be written
- unexpectedly and without warning.
-Solution: Split the window if a file was modified.
-Files: VisVim/Commands.cpp
-
-Patch 6.0.108
-Problem: When using folding could try displaying line zero, resulting in an
- error for a NULL pointer.
-Solution: Stop decrementing w_topline when the first line of a window is in
- a closed fold.
-Files: src/window.c
-
-Patch 6.0.109
-Problem: XIM: When the input method is enabled, repeating an insertion with
- "." disables it. (Marcel Svitalsky)
-Solution: Don't store the input method status when a command comes from the
- stuff buffer.
-Files: src/ui.c
-
-Patch 6.0.110
-Problem: Using undo after executing "OxjAxkdd" from a register in
- an empty buffer gives an error message. (Gerhard Hochholzer)
-Solution: Don't adjust the bottom line number of an undo block when it's
- zero. Add a test for this problem.
-Files: src/undo.c, src/testdir/test20.in, src/testdir/test20.ok
-
-Patch 6.0.111
-Problem: The virtcol() function doesn't take care of 'virtualedit'.
-Solution: Add the column offset when needed. (Yegappan Lakshmanan)
-Files: src/eval.c
-
-Patch 6.0.112
-Problem: The explorer plugin doesn't sort directories with a space or
- special character after a directory with a shorter name.
-Solution: Ignore the trailing slash when comparing directory names. (Mike
- Williams)
-Files: runtime/plugin/explorer.vim
-
-Patch 6.0.113
-Problem: ":edit ~/fname" doesn't work if $HOME includes a space. Also,
- expanding wildcards with the shell may fail. (John Daniel)
-Solution: Escape spaces with a backslash when needed.
-Files: src/ex_docmd.c, src/misc1.c, src/proto/misc1.pro, src/os_unix.c
-
-Patch 6.0.114
-Problem: Using ":p" with fnamemodify() didn't expand "~/" or "~user/" to a
- full path. For Win32 the current directory was prepended.
- (Michael Geddes)
-Solution: Expand the home directory.
-Files: src/eval.c
-
-Patch 6.0.115 (extra)
-Problem: Win32: When using a dialog with a textfield it cannot scroll the
- text.
-Solution: Add ES_AUTOHSCROLL to the textfield style. (Pedro Gomes)
-Files: src/gui_w32.c
-
-Patch 6.0.116 (extra)
-Problem: MS-Windows NT/2000/XP: filewritable() doesn't work correctly for
- filesystems that use ACLs.
-Solution: Use ACL functions to check if a file is writable. (Mike Williams)
-Files: src/eval.c, src/macros.h, src/os_win32.c, src/proto/os_win32.pro
-
-Patch 6.0.117 (extra)
-Problem: Win32: when disabling the menu, "set lines=999" doesn't use all
- the available screen space.
-Solution: Don't subtract the fixed caption height but the real menu height
- from the available screen space. Also: Avoid recursion in
- gui_mswin_get_menu_height().
-Files: src/gui_w32.c, src/gui_w48.c
-
-Patch 6.0.118
-Problem: When $TMPDIR is a relative path, the temp directory is missing a
- trailing slash and isn't deleted when Vim exits. (Peter Holm)
-Solution: Add the slash after expanding the directory to an absolute path.
-Files: src/fileio.c
-
-Patch 6.0.119 (depends on patch 6.0.116)
-Problem: VMS: filewritable() doesn't work properly.
-Solution: Use the same method as for Unix. (Zoltan Arpadffy)
-Files: src/eval.c
-
-Patch 6.0.120
-Problem: The conversion to html isn't compatible with XHTML.
-Solution: Quote the values. (Jess Thrysoee)
-Files: runtime/syntax/2html.vim
-
-Patch 6.0.121 (extra) (depends on patch 6.0.116)
-Problem: Win32: After patch 6.0.116 Vim doesn't compile with mingw32.
-Solution: Add an #ifdef HAVE_ACL.
-Files: src/os_win32.c
-
-Patch 6.0.122 (extra)
-Problem: Win16: Same resize problems as patch 6.0.117 fixed for Win32. And
- dialog textfield problem from patch 6.0.115.
-Solution: Set old_menu_height only when used. Add ES_AUTOHSCROLL flag.
- (Vince Negri)
-Files: src/gui_w16.c
-
-Patch 6.0.123 (depends on patch 6.0.119)
-Problem: Win16: Compilation problems.
-Solution: Move "&&" to other lines. (Vince Negri)
-Files: src/eval.c
-
-Patch 6.0.124
-Problem: When using a ":substitute" command that starts with "\="
- (evaluated as an expression), "~" was still replaced with the
- previous substitute string.
-Solution: Skip the replacement when the substitute string starts with "\=".
- Also adjust the documentation about doubling backslashes.
-Files: src/ex_cmds.c, runtime/doc/change.txt
-
-Patch 6.0.125 (extra)
-Problem: Win32: When using the multi_byte_ime feature pressing the shift
- key would be handled as if a character was entered, thus mappings
- with a shifted key didn't work. (Charles Campbell)
-Solution: Ignore pressing the shift, control and alt keys.
-Files: src/os_win32.c
-
-Patch 6.0.126
-Problem: The python library was always statically linked.
-Solution: Link the python library dynamically. (Matthias Klose)
-Files: src/auto/configure, src/configure.in
-
-Patch 6.0.127
-Problem: When using a terminal that swaps screens and the Normal background
- color has a different background, using an external command may
- cause the color of the wrong screen to be changed. (Mark Waggoner)
-Solution: Don't call screen_stop_highlight() in stoptermcap().
-Files: src/term.c
-
-Patch 6.0.128
-Problem: When moving a vertically split window to the far left or right,
- the scrollbars are not adjusted. (Scott E Lee) When 'mousefocus'
- is set the mouse pointer wasn't adjusted.
-Solution: Adjust the scrollbars and the mouse pointer.
-Files: src/window.c
-
-Patch 6.0.129
-Problem: When using a very long file name, ":ls" (repeated a few times)
- causes a crash. Test with "vim `perl -e 'print "A"x1000'`".
- (Tejeda)
-Solution: Terminate a string before getting its length in buflist_list().
-Files: src/buffer.c
-
-Patch 6.0.130
-Problem: When using ":cprev" while the error window is open, and the new
- line at the top wraps, the window isn't correctly drawn.
- (Yegappan Lakshmanan)
-Solution: When redrawing the topline don't scroll twice.
-Files: src/screen.c
-
-Patch 6.0.131
-Problem: When using bufname() and there are two matches for listed buffers
- and one match for an unlisted buffer, the unlisted buffer is used.
- (Aric Blumer)
-Solution: When there is a match with a listed buffer, don't check for
- unlisted buffers.
-Files: src/buffer.c
-
-Patch 6.0.132
-Problem: When setting 'iminsert' in the vimrc and using an xterm with two
- screens the ruler is drawn in the wrong screen. (Igor Goldenberg)
-Solution: Only draw the ruler when using the right screen.
-Files: src/option.c
-
-Patch 6.0.133
-Problem: When opening another buffer while 'keymap' is set and 'iminsert'
- is zero, 'iminsert' is set to one unexpectedly. (Igor Goldenberg)
-Solution: Don't set 'iminsert' as a side effect of defining a ":lmap"
- mapping. Only do that when 'keymap' is set.
-Files: src/getchar.c, src/option.c
-
-Patch 6.0.134
-Problem: When completing ":set tags=" a path with an embedded space causes
- the completion to stop. (Sektor van Skijlen)
-Solution: Escape spaces with backslashes, like for ":set path=". Also take
- backslashes into account when searching for the start of the path
- to complete (e.g., for 'backupdir' and 'cscopeprg').
-Files: src/ex_docmd.c, src/ex_getln.c, src/option.c, src/structs.h
-
-Patch 6.0.135
-Problem: Menus that are not supposed to do anything used "<Nul>", which
- still produced an error beep.
- When CTRL-O is mapped for Insert mode, ":amenu" commands didn't
- work in Insert mode.
- Menu language falls back to English when $LANG ends in "@euro".
-Solution: Use "<Nop>" for a menu item that doesn't do anything, just like
- mappings.
- Use ":anoremenu" instead of ":amenu".
- Ignore "@euro" in the locale name.
-Files: runtime/makemenu.vim, runtime/menu.vim, src/menu.c
-
-Patch 6.0.136
-Problem: When completing in Insert mode, a mapping could be unexpectedly
- applied.
-Solution: Don't use mappings when checking for a typed character.
-Files: src/edit.c
-
-Patch 6.0.137
-Problem: GUI: When using the find or find/replace dialog from Insert mode,
- the input mode is stopped.
-Solution: Don't use the input method status when the main window doesn't
- have focus.
-Files: src/ui.c
-
-Patch 6.0.138
-Problem: GUI: When using the find or find/replace dialog from Insert mode,
- the text is inserted when CTRL-O is mapped. (Andre Pang)
- When opening the dialog again, a whole word search isn't
- recognized.
- When doing "replace all" a whole word search was never done.
-Solution: Don't put a search or replace command in the input buffer,
- execute it directly.
- Recognize "\<" and "\>" after removing "\V".
- Add "\<" and "\>" also for "replace all".
-Files: src/gui.c
-
-Patch 6.0.139
-Problem: When stopping 'wildmenu' completion, the statusline of the
- bottom-left vertically split window isn't redrawn. (Yegappan
- Lakshmanan)
-Solution: Redraw all the bottom statuslines.
-Files: src/ex_getln.c, src/proto/screen.pro, src/screen.c
-
-Patch 6.0.140
-Problem: Memory allocated for local mappings and abbreviations is leaked
- when the buffer is wiped out.
-Solution: Clear the local mappings when deleting a buffer.
-Files: src/buffer.c, src/getchar.c, src/proto/getchar.pro, src/vim.h
-
-Patch 6.0.141
-Problem: When using ":enew" in an empty buffer, some buffer-local things
- are not cleared. b:keymap_name is not set.
-Solution: Clear user commands and mappings local to the buffer when re-using
- the current buffer. Reload the keymap.
-Files: src/buffer.c
-
-Patch 6.0.142
-Problem: When Python is linked statically, loading dynamic extensions might
- fail.
-Solution: Add an extra linking flag when needed. (Andrew Rodionoff)
-Files: src/configure.in, src/auto/configure
-
-Patch 6.0.143
-Problem: When a syntax item includes a line break in a pattern, the syntax
- may not be updated properly when making a change.
-Solution: Add the "linebreaks" argument to ":syn sync".
-Files: runtime/doc/syntax.txt, src/screen.c, src/structs.h, src/syntax.c
-
-Patch 6.0.144
-Problem: After patch 6.0.088 redoing "veU" doesn't work.
-Solution: Don't add the "U" to the redo buffer, it will be used as an undo
- command.
-Files: src/normal.c
-
-Patch 6.0.145
-Problem: When Vim can't read any input it might get stuck. When
- redirecting stdin and stderr Vim would not read commands from a
- file. (Servatius Brandt)
-Solution: When repeatedly trying to read a character when it's not possible,
- exit Vim. When stdin and stderr are not a tty, still try reading
- from them, but don't do a blocking wait.
-Files: src/ui.c
-
-Patch 6.0.146
-Problem: When 'statusline' contains "%{'-'}" this results in a zero.
- (Milan Vancura)
-Solution: Don't handle numbers with a minus as a number, they were not
- displayed anyway.
-Files: src/buffer.c
-
-Patch 6.0.147
-Problem: It's not easy to mark a Vim version as being modified. The new
- license requires this.
-Solution: Add the --modified-by argument to configure and the MODIFIED_BY
- define. It's used in the intro screen and the ":version" output.
-Files: src/auto/configure, src/configure.in, src/config.h.in,
- src/feature.h, src/version.c
-
-Patch 6.0.148
-Problem: After "p" in an empty line, `[ goes to the second character.
- (Kontra Gergely)
-Solution: Don't increment the column number in an empty line.
-Files: src/ops.c
-
-Patch 6.0.149
-Problem: The pattern "\(.\{-}\)*" causes a hang. When using a search
- pattern that causes a stack overflow to be detected Vim could
- still hang.
-Solution: Correctly report "operand could be empty" when using "\{-}".
- Check for "out_of_stack" inside loops to avoid a hang.
-Files: src/regexp.c
-
-Patch 6.0.150
-Problem: When using a multi-byte encoding, patch 6.0.148 causes "p" to work
- like "P". (Sung-Hyun Nam)
-Solution: Compute the byte length of a multi-byte character.
-Files: src/ops.c
-
-Patch 6.0.151
-Problem: Redrawing the status line and ruler can be wrong when it contains
- multi-byte characters.
-Solution: Use character width and byte length correctly. (Yasuhiro Matsumoto)
-Files: src/screen.c
-
-Patch 6.0.152
-Problem: strtrans() could hang on an illegal UTF-8 byte sequence.
-Solution: Skip over illegal bytes. (Yasuhiro Matsumoto)
-Files: src/charset.c
-
-Patch 6.0.153
-Problem: When using (illegal) double-byte characters and Vim syntax
- highlighting Vim can crash. (Yasuhiro Matsumoto)
-Solution: Increase a pointer over a character instead of a byte.
-Files: src/regexp.c
-
-Patch 6.0.154
-Problem: MS-DOS and MS-Windows: The menu entries for xxd don't work when
- there is no xxd in the path.
- When converting back from Hex the filetype may remain "xxd" if it
- is not detected.
-Solution: When xxd is not in the path use the one in the runtime directory,
- where the install program has put it.
- Clear the 'filetype' option before detecting the new value.
-Files: runtime/menu.vim
-
-Patch 6.0.155
-Problem: Mac: compilation problems in ui.c after patch 6.0.145. (Axel
- Kielhorn)
-Solution: Don't call mch_inchar() when NO_CONSOLE is defined.
-Files: src/ui.c
-
-Patch 6.0.156
-Problem: Starting Vim with the -b argument and two files, ":next" doesn't
- set 'binary' in the second file, like Vim 5.7. (Norman Diamond)
-Solution: Set the global value for 'binary'.
-Files: src/option.c
-
-Patch 6.0.157
-Problem: When defining a user command with "-complete=dir" files will also
- be expanded. Also, "-complete=mapping" doesn't appear to work.
- (Michael Naumann)
-Solution: Use the expansion flags defined with the user command.
- Handle expanding mappings specifically.
-Files: src/ex_docmd.c
-
-Patch 6.0.158
-Problem: When getting the warning for a file being changed outside of Vim
- and reloading the file, the 'readonly' option is reset, even when
- the permissions didn't change. (Marcel Svitalsky)
-Solution: Keep 'readonly' set when reloading a file and the permissions
- didn't change.
-Files: src/fileio.c
-
-Patch 6.0.159
-Problem: Wildcard expansion for ":emenu" also shows separators.
-Solution: Skip menu separators for ":emenu", ":popup" and ":tearoff".
- Also, don't handle ":tmenu" as if it was ":tearoff". And leave
- out the alternatives with "&" included.
-Files: src/menu.c
-
-Patch 6.0.160
-Problem: When compiling with GCC 3.0.2 and using the "-O2" argument, the
- optimizer causes a problem that makes Vim crash.
-Solution: Add a configure check to avoid "-O2" for this version of gcc.
-Files: src/configure.in, src/auto/configure
-
-Patch 6.0.161 (extra)
-Problem: Win32: Bitmaps don't work with signs.
-Solution: Make it possible to use bitmaps with signs. (Muraoka Taro)
-Files: src/ex_cmds.c, src/feature.h, src/gui_w32.c, src/gui_x11.c,
- src/proto/gui_w32.pro, src/proto/gui_x11.pro
-
-Patch 6.0.162
-Problem: Client-server: An error message for a wrong expression appears in
- the server instead of the client.
-Solution: Pass the error message from the server to the client. Also
- adjust the example code. (Flemming Madsen)
-Files: src/globals.h, src/if_xcmdsrv.c, src/main.c, src/os_mswin.c,
- src/proto/if_xcmdsrv.pro, src/proto/os_mswin.pro,
- runtime/doc/eval.txt, runtime/tools/xcmdsrv_client.c
-
-Patch 6.0.163
-Problem: When using a GUI dialog, a file name is sometimes used like it was
- a directory.
-Solution: Separate path and file name properly.
- For GTK, Motif and Athena concatenate directory and file name for
- the default selection.
-Files: src/diff.c, src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c,
- src/gui_athena.c, src/gui_gtk.c, src/gui_motif.c, src/message.c
-
-Patch 6.0.164
-Problem: After patch 6.0.135 the menu entries for pasting don't work in
- Insert and Visual mode. (Muraoka Taro)
-Solution: Add <script> to allow script-local mappings.
-Files: runtime/menu.vim
-
-Patch 6.0.165
-Problem: Using --remote and executing locally gives unavoidable error
- messages.
-Solution: Add --remote-silent and --remote-wait-silent to silently execute
- locally.
- For Win32 there was no error message when a server didn't exist.
-Files: src/eval.c, src/if_xcmdsrv.c, src/main.c, src/os_mswin.c,
- src/proto/if_xcmdsrv.pro, src/proto/os_mswin.pro
-
-Patch 6.0.166
-Problem: GUI: There is no way to avoid dialogs to pop up.
-Solution: Add the 'c' flag to 'guioptions': Use console dialogs. (Yegappan
- Lakshmanan)
-Files: runtime/doc/options.txt, src/option.h, src/message.c
-
-Patch 6.0.167
-Problem: When 'fileencodings' is "latin2" some characters in the help files
- are displayed wrong.
-Solution: Force the 'fileencoding' for the help files to be "latin1".
-Files: src/fileio.c
-
-Patch 6.0.168
-Problem: ":%s/\n/#/" doesn't replace at an empty line. (Bruce DeVisser)
-Solution: Don't skip matches after joining two lines.
-Files: src/ex_cmds.c
-
-Patch 6.0.169
-Problem: When run as evim and the GUI can't be started we get stuck in a
- terminal without menus in Insert mode.
-Solution: Exit when using "evim" and "gvim -y" when the GUI can't be
- started.
-Files: src/main.c
-
-Patch 6.0.170
-Problem: When printing double-width characters the size of tabs after them
- is wrong. (Muraoka Taro)
-Solution: Correctly compute the column after a double-width character.
-Files: src/ex_cmds2.c
-
-Patch 6.0.171
-Problem: With 'keymodel' including "startsel", in Insert mode after the end
- of a line, shift-Left does not move the cursor. (Steve Hall)
-Solution: CTRL-O doesn't move the cursor left, need to do that explicitly.
-Files: src/edit.c
-
-Patch 6.0.172
-Problem: CTRL-Q doesn't replace CTRL-V after CTRL-X in Insert mode while it
- does in most other situations.
-Solution: Make CTRL-X CTRL-Q work like CTRL-X CTRL-V in Insert mode.
-Files: src/edit.c
-
-Patch 6.0.173
-Problem: When using "P" to insert a line break the cursor remains past the
- end of the line.
-Solution: Check for the cursor being beyond the end of the line.
-Files: src/ops.c
-
-Patch 6.0.174
-Problem: After using "gd" or "gD" the search direction for "n" may still be
- backwards. (Servatius Brandt)
-Solution: Reset the search direction to forward.
-Files: src/normal.c, src/search.c, src/proto/search.pro
-
-Patch 6.0.175
-Problem: ":help /\z(\)" doesn't work. (Thomas Koehler)
-Solution: Double the backslashes.
-Files: src/ex_cmds.c
-
-Patch 6.0.176
-Problem: When killed by a signal autocommands are still triggered as if
- nothing happened.
-Solution: Add the v:dying variable to allow autocommands to work differently
- when a deadly signal has been trapped.
-Files: src/eval.c, src/os_unix.c, src/vim.h
-
-Patch 6.0.177
-Problem: When 'commentstring' is empty and 'foldmethod' is "marker", "zf"
- doesn't work. (Thomas S. Urban)
-Solution: Add the marker even when 'commentstring' is empty.
-Files: src/fold.c, src/normal.c
-
-Patch 6.0.178
-Problem: Uninitialized memory read from xp_backslash field.
-Solution: Initialize xp_backslash field properly.
-Files: src/eval.c, src/ex_docmd.c, src/ex_getln.c, src/misc1.c, src/tag.c
-
-Patch 6.0.179
-Problem: Win32: When displaying UTF-8 characters may read uninitialized
- memory.
-Solution: Add utfc_ptr2len_check_len() to avoid reading past the end of a
- string.
-Files: src/mbyte.c, src/proto/mbyte.pro, src/gui_w32.c
-
-Patch 6.0.180
-Problem: Expanding environment variables in a string that ends in a
- backslash could go past the end of the string.
-Solution: Detect the trailing backslash.
-Files: src/misc1.c
-
-Patch 6.0.181
-Problem: When using ":cd dir" memory was leaked.
-Solution: Free the allocated memory. Also avoid an uninitialized memory
- read.
-Files: src/misc2.c
-
-Patch 6.0.182
-Problem: When using a regexp on multi-byte characters, could try to read a
- character before the start of the line.
-Solution: Don't decrement a pointer to before the start of the line.
-Files: src/regexp.c
-
-Patch 6.0.183
-Problem: Leaking memory when ":func!" redefines a function.
-Solution: Free the function name when it's not used.
-Files: src/eval.c
-
-Patch 6.0.184
-Problem: Leaking memory when expanding option values.
-Solution: Don't always copy the expanded option into allocated memory.
-Files: src/option.c
-
-Patch 6.0.185
-Problem: Crash in Vim when pasting a selection in another application, on a
- 64 bit machine.
-Solution: Fix the format for an Atom to 32 bits. (Peter Derr)
-Files: src/ui.c
-
-Patch 6.0.186
-Problem: X11: Three warnings when compiling the client-server code.
-Solution: Add a typecast to unsigned char.
-Files: src/if_xcmdsrv.c
-
-Patch 6.0.187
-Problem: "I" in Visual mode and then "u" reports too many changes. (Andrew
- Stryker)
- "I" in Visual linewise mode adjusts the indent for no apparent
- reason.
-Solution: Only save those lines for undo that are changed.
- Don't change the indent after inserting in Visual linewise mode.
-Files: src/ops.c
-
-Patch 6.0.188
-Problem: Win32: After patch 6.0.161 signs defined in the vimrc file don't
- work.
-Solution: Initialize the sign icons after initializing the GUI. (Vince
- Negri)
-Files: src/gui.c, src/gui_x11.c
-
-Patch 6.0.189
-Problem: The size of the Visual area isn't always displayed when scrolling
- ('ruler' off, 'showcmd' on). Also not when using a search
- command. (Sylvain Hitier)
-Solution: Redisplay the size of the selection after showing the mode.
-Files: src/screen.c
-
-Patch 6.0.190
-Problem: GUI: when 'mouse' is empty a click with the middle button still
- moves the cursor.
-Solution: Paste at the cursor position instead of the mouse position.
-Files: src/normal.c
-
-Patch 6.0.191
-Problem: When no servers are available serverlist() gives an error instead
- of returning an empty string. (Hari Krishna)
-Solution: Don't give an error message.
-Files: src/eval.c
-
-Patch 6.0.192
-Problem: When 'virtualedit' is set, "ylj" goes to the wrong column. (Andrew
- Nikitin)
-Solution: Reset the flag that w_virtcol is valid when moving the cursor back
- to the start of the operated area.
-Files: src/normal.c
-
-Patch 6.0.193
-Problem: When 'virtualedit' is set, col(".") after the end of the line
- should return one extra.
-Solution: Add one to the column.
-Files: src/eval.c
-
-Patch 6.0.194
-Problem: "--remote-silent" tries to send a reply to the client, like it was
- "--remote-wait".
-Solution: Properly check for the argument.
-Files: src/main.c
-
-Patch 6.0.195
-Problem: When 'virtualedit' is set and a search starts in virtual space
- ":call search('x')" goes to the wrong position. (Eric Long)
-Solution: Reset coladd when finding a match.
-Files: src/search.c
-
-Patch 6.0.196
-Problem: When 'virtualedit' is set, 'selection' is "exclusive" and visually
- selecting part of a tab at the start of a line, "x" joins it with
- the previous line. Also, when the selection spans more than one
- line the whole tab is deleted.
-Solution: Take coladd into account when adjusting for 'selection' being
- "exclusive". Also expand a tab into spaces when deleting more
- than one line.
-Files: src/normal.c, src/ops.c
-
-Patch 6.0.197
-Problem: When 'virtualedit' is set and 'selection' is "exclusive", "v$x"
- doesn't delete the last character in the line. (Eric Long)
-Solution: Don't reset the inclusive flag. (Helmut Stiegler)
-Files: src/normal.c
-
-Patch 6.0.198
-Problem: When 'virtualedit' is set and 'showbreak' is not empty, moving the
- cursor over the line break doesn't work properly. (Eric Long)
-Solution: Make getviscol() and getviscol2() use getvvcol() to obtain the
- virtual cursor position. Adjust coladvance() and oneleft() to
- skip over the 'showbreak' characters.
-Files: src/edit.c, src/misc2.c
-
-Patch 6.0.199
-Problem: Multi-byte: could use iconv() after calling iconv_end().
- (Yasuhiro Matsumoto)
-Solution: Stop converting input and output stream after calling iconv_end().
-Files: src/mbyte.c
-
-Patch 6.0.200
-Problem: A script that starts with "#!perl" isn't recognized as a Perl
- filetype.
-Solution: Ignore a missing path in a script header. Also, speed up
- recognizing scripts by simplifying the patterns used.
-Files: runtime/scripts.vim
-
-Patch 6.0.201
-Problem: When scrollbinding and doing a long jump, switching windows jumps
- to another position in the file. Scrolling a few lines at a time
- is OK. (Johannes Zellner)
-Solution: When setting w_topline reset the flag that indicates w_botline is
- valid.
-Files: src/diff.c
-
-Patch 6.0.202
-Problem: The "icon=" argument for the menu command to define a toolbar icon
- with a file didn't work for GTK. (Christian J. Robinson)
- For Motif and Athena a full path was required.
-Solution: Search the icon file using the specified path. Expand environment
- variables in the file name.
-Files: src/gui_gtk.c, src/gui_x11.c
-
-Patch 6.0.203
-Problem: Can change 'fileformat' even though 'modifiable' is off.
- (Servatius Brandt)
-Solution: Correct check for kind of set command.
-Files: src/option.c
-
-Patch 6.0.204
-Problem: ":unlet" doesn't work for variables with curly braces. (Thomas
- Scott Urban)
-Solution: Handle variable names with curly braces properly. (Vince Negri)
-Files: src/eval.c
-
-Patch 6.0.205 (extra)
-Problem: "gvim -f" still forks when using the batch script to start Vim.
-Solution: Add an argument to "start" to use a foreground session (Michael
- Geddes)
-Files: src/dosinst.c
-
-Patch 6.0.206
-Problem: Unix: if expanding a wildcard in a file name results in a
- wildcard character and there are more parts in the path with a
- wildcard, it is expanded again.
- Windows: ":edit \[abc]" could never edit the file "[abc]".
-Solution: Don't expand wildcards in already expanded parts.
- Don't remove backslashes used to escape the special meaning of a
- wildcard; can edit "[abc]" if '[' is removed from 'isfname'.
-Files: src/misc1.c, src/os_unix.c
-
-Patch 6.0.207 (extra)
-Problem: Win32: The shortcuts and start menu entries let Vim startup in the
- desktop directory, which is not very useful.
-Solution: Let shortcuts start Vim in $HOME or $HOMEDIR$HOMEPATH.
-Files: src/dosinst.c
-
-Patch 6.0.208
-Problem: GUI: When using a keymap and the cursor is not blinking, CTRL-^ in
- Insert mode doesn't directly change the cursor color. (Alex
- Solow)
-Solution: Force a redraw of the cursor after CTRL-^.
-Files: src/edit.c
-
-Patch 6.0.209
-Problem: GUI GTK: After selecting a 'guifont' with the font dialog there
- are redraw problems for multi-byte characters.
-Solution: Separate the font dialog from setting the new font name to avoid
- that "*" is used to find wide and bold fonts.
- When redrawing extra characters for the bold trick, take care of
- UTF-8 characters.
-Files: src/gui.c, src/gui_gtk_x11.c, src/option.c, src/proto/gui.pro,
- src/proto/gui_gtk_x11.pro
-
-Patch 6.0.210
-Problem: After patch 6.0.167 it's no longer possible to edit a help file in
- another encoding than latin1.
-Solution: Let the "++enc=" argument overrule the encoding.
-Files: src/fileio.c
-
-Patch 6.0.211
-Problem: When reading a file fails, the buffer is empty, but it might still
- be possible to write it with ":w" later. The original file is
- lost then. (Steve Amerige)
-Solution: Set the 'readonly' option for the buffer.
-Files: src/fileio.c
-
-Patch 6.0.212
-Problem: GUI GTK: confirm("foo", "") causes a crash.
-Solution: Don't make a non-existing button the default. Add a default "OK"
- button if none is specified.
-Files: src/eval.c, src/gui_gtk.c
-
-Patch 6.0.213
-Problem: When a file name contains unprintable characters, CTRL-G and other
- commands don't work well.
-Solution: Turn unprintable into printable characters. (Yasuhiro Matsumoto)
-Files: src/buffer.c, src/charset.c
-
-Patch 6.0.214
-Problem: When there is a buffer without a name, empty entries appear in the
- jumplist saved in the viminfo file.
-Solution: Don't write jumplist entries without a file name.
-Files: src/mark.c
-
-Patch 6.0.215
-Problem: After using "/" from Visual mode the Paste menu and Toolbar
- entries don't work. Pasting with the middle mouse doesn't work
- and modeless selection doesn't work.
-Solution: Use the command line mode menus and use the mouse like in the
- command line.
-Files: src/gui.c, src/menu.c, src/ui.c
-
-Patch 6.0.216
-Problem: After reloading a file, displayed in another window than the
- current one, which was changed outside of Vim the part of the file
- around the cursor set by autocommands may be displayed, but
- jumping back to the original cursor position when entering the
- window again.
-Solution: Restore the topline of the window.
-Files: src/fileio.c
-
-Patch 6.0.217
-Problem: When getting help from a help file that was used before, an empty
- unlisted buffer remains in the buffer list. (Eric Long)
-Solution: Wipe out the buffer used to do the tag jump from.
-Files: src/buffer.c, src/ex_cmds.c, src/proto/buffer.pro
-
-Patch 6.0.218
-Problem: With explorer plugin: "vim -o filename dirname" doesn't load the
- explorer window until entering the window.
-Solution: Call s:EditDir() for each window after starting up.
-Files: runtime/plugin/explorer.vim
-
-Patch 6.0.219
-Problem: ":setlocal" and ":setglobal", without arguments, display terminal
- options. (Zdenek Sekera)
-Solution: Skip terminal options for these two commands.
-Files: src/option.c
-
-Patch 6.0.220
-Problem: After patch 6.0.218 get a beep on startup. (Muraoka Taro)
-Solution: Don't try going to another window when there isn't one.
-Files: runtime/plugin/explorer.vim
-
-Patch 6.0.221
-Problem: When using ":bdel" and all other buffers are unloaded the lowest
- numbered buffer is jumped to instead of the most recent one. (Dave
- Cecil)
-Solution: Prefer an unloaded buffer from the jumplist.
-Files: src/buffer.c
-
-Patch 6.0.222
-Problem: When 'virtualedit' is set and using autoindent, pressing Esc after
- starting a new line leaves behind part of the autoindent. (Helmut
- Stiegler)
-Solution: After deleting the last char in the line adjust the cursor
- position in del_bytes().
-Files: src/misc1.c, src/ops.c
-
-Patch 6.0.223
-Problem: When splitting a window that contains the explorer, hitting CR on
- a file name gives error messages.
-Solution: Set the window variables after splitting the window.
-Files: runtime/plugin/explorer.vim
-
-Patch 6.0.224
-Problem: When 'sidescroll' and 'sidescrolloff' are set in a narrow window
- the text may jump left-right and the cursor is displayed in the
- wrong position. (Aric Blumer)
-Solution: When there is not enough room, compute the left column for the
- window to put the cursor in the middle.
-Files: src/move.c
-
-Patch 6.0.225
-Problem: In Visual mode "gk" gets stuck in a closed fold. (Srinath
- Avadhanula)
-Solution: Behave differently in a closed fold.
-Files: src/normal.c
-
-Patch 6.0.226
-Problem: When doing ":recover file" get the ATTENTION prompt.
- After recovering the same file five times get a read error or a
- crash. (Alex Davis)
-Solution: Set the recoverymode flag before setting the file name.
- Correct the amount of used memory for the size of block zero.
-Files: src/ex_docmd.c
-
-Patch 6.0.227 (extra)
-Problem: The RISC OS port has several problems.
-Solution: Update the makefile and fix some of the problems. (Andy Wingate)
-Files: src/Make_ro.mak, src/os_riscos.c, src/os_riscos.h,
- src/proto/os_riscos.pro, src/search.c
-
-Patch 6.0.228
-Problem: After putting text in Visual mode the '] mark is not at the end of
- the put text.
- Undo doesn't work properly when putting a word into a Visual
- selection that spans more than one line.
-Solution: Correct the '] mark for the deleting the Visually selected text.
- #ifdef code that depends on FEAT_VISUAL properly.
- Also fix that "d" crossing line boundary puts '[ just before
- deleted text.
- Fix undo by saving all deleted lines at once.
-Files: src/ex_docmd.c, src/globals.h, src/normal.c, src/ops.c,
- src/structs.h, src/vim.h
-
-Patch 6.0.229
-Problem: Multi-byte: With 'm' in 'formatoptions', formatting doesn't break
- at a multi-byte char followed by an ASCII char, and the other way
- around. (Muraoka Taro)
- When joining lines a space is inserted between multi-byte
- characters, which is not always wanted.
-Solution: Check for multi-byte character before and after the breakpoint.
- Don't insert a space before or after a multi-byte character when
- joining lines and the 'M' flag is in 'formatoptions'. Don't
- insert a space between multi-byte characters when the 'B' flag is
- in 'formatoptions'.
-Files: src/edit.c, src/ops.c, src/option.h
-
-Patch 6.0.230
-Problem: The ":" used as a motion after an operator is exclusive, but
- sometimes it should be inclusive.
-Solution: Make the "v" in between an operator and motion toggle
- inclusive/exclusive. (Servatius Brandt)
-Files: runtime/doc/motion.txt, src/normal.c
-
-Patch 6.0.231
-Problem: "gd" and "gD" don't work when the variable matches in a comment
- just above the match to be found. (Servatius Brandt)
-Solution: Continue searching in the first column below the comment.
-Files: src/normal.c
-
-Patch 6.0.232
-Problem: "vim --version" prints on stderr while "vim --help" prints on
- stdout.
-Solution: Make "vim --version" use stdout.
-Files: runtime/doc/starting.txt, src/globals.h, src/main.c, src/message.c
-
-Patch 6.0.233
-Problem: "\1\{,8}" in a regexp is not allowed, but it should work, because
- there is an upper limit. (Jim Battle)
-Solution: Allow using "\{min,max}" after an atom that can be empty if there
- is an upper limit.
-Files: src/regexp.c
-
-Patch 6.0.234
-Problem: It's not easy to set the cursor position without modifying marks.
-Solution: Add the cursor() function. (Yegappan Lakshmanan)
-Files: runtime/doc/eval.txt, src/eval.c
-
-Patch 6.0.235
-Problem: When writing a file and renaming the original file to make the
- backup, permissions could change when setting the owner.
-Solution: Only set the owner when it's needed and set the permissions again
- afterwards.
- When 'backupcopy' is "auto" check that the owner and permissions
- of a newly created file can be set properly.
-Files: src/fileio.c
-
-Patch 6.0.236
-Problem: ":edit" without argument should move cursor to line 1 in Vi
- compatible mode.
-Solution: Add 'g' flag to 'cpoptions'.
-Files: runtime/doc/options.txt, src/ex_docmd.c, src/option.h
-
-Patch 6.0.237
-Problem: In a C file, using the filetype plugin, re-indenting a comment
- with two spaces after the middle "*" doesn't align properly.
-Solution: Don't use a middle entry from a start/middle/end to line up with
- the start of the comment when the start part doesn't match with
- the actual comment start.
-Files: src/misc1.c
-
-Patch 6.0.238
-Problem: Using a ":substitute" command with a substitute() call in the
- substitution expression causes errors. (Srinath Avadhanula)
-Solution: Save and restore pointers when doing substitution recursively.
-Files: src/regexp.c
-
-Patch 6.0.239
-Problem: Using "A" to append after a Visually selected block which is after
- the end of the line, spaces are inserted in the wrong line and
- other unexpected effects. (Michael Naumann)
-Solution: Don't advance the cursor to the next line.
-Files: src/ops.c
-
-Patch 6.0.240
-Problem: Win32: building with Python 2.2 doesn't work.
-Solution: Add support for Python 2.2 with dynamic linking. (Paul Moore)
-Files: src/if_python.c
-
-Patch 6.0.241
-Problem: Win32: Expanding the old value of an option that is a path that
- starts with a backslash, an extra backslash is inserted.
-Solution: Only insert backslashes where needed.
- Also handle multi-byte characters properly when removing
- backslashes.
-Files: src/option.c
-
-Patch 6.0.242
-Problem: GUI: On a system with an Exceed X server sometimes get a "Bad
- Window" error. (Tommi Maekitalo)
-Solution: When forking, use a pipe to wait in the parent for the child to
- have done the setsid() call.
-Files: src/gui.c
-
-Patch 6.0.243
-Problem: Unix: "vim --version" outputs a NL before the last line instead of
- after it. (Charles Campbell)
-Solution: Send the NL to the same output stream as the text.
-Files: src/message.c, src/os_unix.c, src/proto/message.pro
-
-Patch 6.0.244
-Problem: Multi-byte: Problems with (illegal) UTF-8 characters in menu and
- file name (e.g., icon text, status line).
-Solution: Correctly handle unprintable characters. Catch illegal UTF-8
- characters and replace them with <xx>. Truncating the status line
- wasn't done correctly at a multi-byte character. (Yasuhiro
- Matsumoto)
- Added correct_cmdspos() and transchar_byte().
-Files: src/buffer.c, src/charset.c, src/ex_getln.c, src/gui.c,
- src/message.c, src/screen.c, src/vim.h
-
-Patch 6.0.245
-Problem: After using a color scheme, setting the 'background' option might
- not work. (Peter Horst)
-Solution: Disable the color scheme if it switches 'background' back to the
- wrong value.
-Files: src/option.c
-
-Patch 6.0.246
-Problem: ":echomsg" didn't use the highlighting set by ":echohl". (Gary
- Holloway)
-Solution: Use the specified attributes for the message. (Yegappan
- Lakshmanan)
-Files: src/eval.c
-
-Patch 6.0.247
-Problem: GTK GUI: Can't use gvim in a kpart widget.
-Solution: Add the "--echo-wid" argument to let Vim echo the window ID on
- stdout. (Philippe Fremy)
-Files: runtime/doc/starting.txt, src/globals.h, src/gui_gtk_x11.c,
- src/main.c
-
-Patch 6.0.248
-Problem: When using compressed help files and 'encoding' isn't "latin1",
- Vim converts the help file before decompressing. (David Reviejo)
-Solution: Don't convert a help file when 'binary' is set.
-Files: src/fileio.c
-
-Patch 6.0.249
-Problem: "vim -t edit -c 'sta ex_help'" doesn't move cursor to edit().
-Solution: Don't set the cursor on the first line for "-c" arguments when
- there also is a "-t" argument.
-Files: src/main.c
-
-Patch 6.0.250 (extra)
-Problem: Macintosh: Various problems when compiling.
-Solution: Various fixes, mostly #ifdefs. (Dany St. Amant)
-Files: src/gui_mac.c, src/main.c, src/misc2.c, src/os_mac.h,
- src/os_mac.pbproj/project.pbxproj, src/os_unix.c
-
-Patch 6.0.251 (extra)
-Problem: Macintosh: menu shortcuts are not very clear.
-Solution: Show the shortcut with the Mac clover symbol. (raindog)
-Files: src/gui_mac.c
-
-Patch 6.0.252
-Problem: When a user function was defined with "abort", an error that is
- not inside if/endif or while/endwhile doesn't abort the function.
- (Servatius Brandt)
-Solution: Don't reset did_emsg when the function is to be aborted.
-Files: src/ex_docmd.c
-
-Patch 6.0.253
-Problem: When 'insertmode' is set, after "<C-O>:edit file" the next <C-O>
- doesn't work. (Benji Fisher) <C-L> has the same problem.
-Solution: Reset need_start_insertmode once in edit().
-Files: src/edit.c
-
-Patch 6.0.254 (extra)
-Problem: Borland C++ 5.5: Checking for stack overflow doesn't work
- correctly. Matters when using a complicated regexp.
-Solution: Remove -N- from Make_bc5.mak. (Yasuhiro Matsumoto)
-Files: src/Make_bc5.mak
-
-Patch 6.0.255 (extra) (depends on patch 6.0.116 and 6.0.121)
-Problem: Win32: ACL support doesn't work well on Samba drives.
-Solution: Add a check for working ACL support. (Mike Williams)
-Files: src/os_win32.c
-
-Patch 6.0.256 (extra)
-Problem: Win32: ":highlight Comment guifg=asdf" does not give an error
- message. (Randall W. Morris) Also for other systems.
-Solution: Add gui_get_color() to give one error message for all systems.
-Files: src/gui.c, src/gui_amiga.c, src/gui_athena.c, src/gui_motif.c,
- src/gui_riscos.c, src/gui_x11.c, src/gui_gtk_x11.c,
- src/proto/gui.pro, src/syntax.c
-
-Patch 6.0.257
-Problem: Win32: When 'mousefocus' is set and there is a BufRead
- autocommand, after the dialog for permissions changed outside of
- Vim: 'mousefocus' stops working. (Robert Webb)
-Solution: Reset need_mouse_correct after checking timestamps.
-Files: src/fileio.c
-
-Patch 6.0.258
-Problem: When 'scrolloff' is 999 and there are folds, the text can jump up
- and down when moving the cursor down near the end of the file.
- (Lubomir Host)
-Solution: When putting the cursor halfway the window start counting lines at
- the end of a fold.
-Files: src/move.c
-
-Patch 6.0.259
-Problem: MS-DOS: after editing the command line the cursor shape may remain
- like in Insert mode. (Volker Kiefel)
-Solution: Reset the cursor shape after editing the command line.
-Files: src/ex_getln.c
-
-Patch 6.0.260
-Problem: GUI: May crash while starting up when giving an error message for
- missing color. (Servatius Brandt)
-Solution: Don't call gui_write() when still starting up. Don't give error
- message for empty color name. Don't use 't_vb' while the GUI is
- still starting up.
-Files: src/fileio.c, src/gui.c, src/misc1.c, src/ui.c
-
-Patch 6.0.261
-Problem: nr2char() and char2nr() don't work with multi-byte characters.
-Solution: Use 'encoding' for these functions. (Yasuhiro Matsumoto)
-Files: runtime/doc/eval.txt, src/eval.c
-
-Patch 6.0.262 (extra)
-Problem: Win32: IME doesn't work properly. OnImeComposition() isn't used
- at all.
-Solution: Adjust various things for IME.
-Files: src/globals.h, src/gui_w32.c, src/mbyte.c, src/proto/ui.pro,
- src/structs.h, src/ui.c
-
-Patch 6.0.263
-Problem: GTK: When a dialog is closed by the window manager, Vim hangs.
- (Christian J. Robinson)
-Solution: Use GTK_WIDGET_DRAWABLE() instead of GTK_WIDGET_VISIBLE().
-Files: src/gui_gtk.c, src/gui_gtk_x11.c
-
-Patch 6.0.264
-Problem: The amount of virtual memory is used to initialize 'maxmemtot',
- which may be much more than the amount of physical memory,
- resulting in a lot of swapping.
-Solution: Get the amount of physical memory with sysctl(), sysconf() or
- sysinfo() when possible.
-Files: src/auto/configure, src/configure.in, src/config.h.in,
- src/os_unix.c, src/os_unix.h
-
-Patch 6.0.265
-Problem: Win32: Using backspace while 'fkmap' is set causes a crash.
- (Jamshid Oasjmoha)
-Solution: Don't try mapping special keys.
-Files: src/farsi.c
-
-Patch 6.0.266
-Problem: The rename() function deletes the file if the old and the new name
- are the same. (Volker Kiefel)
-Solution: Don't do anything if the names are equal.
-Files: src/fileio.c
-
-Patch 6.0.267
-Problem: UTF-8: Although 'isprint' says a character is printable,
- utf_char2cells() still considers it unprintable.
-Solution: Use vim_isprintc() for characters upto 0x100. (Yasuhiro Matsumoto)
-Files: src/mbyte.c
-
-Patch 6.0.268 (extra) (depends on patch 6.0.255)
-Problem: Win32: ACL check crashes when using forward slash in file name.
-Solution: Improve the check for the path in the file name.
-Files: src/os_win32.c
-
-Patch 6.0.269
-Problem: Unprintable characters in a file name may cause problems when
- using the 'statusline' option or when 'buftype' is "nofile".
-Solution: call trans_characters() for the resulting statusline. (Yasuhiro
- Matsumoto)
-Files: src/buffer.c, src/screen.c, src/charset.c
-
-Patch 6.0.270 (depends on patch 6.0.267)
-Problem: A tab causes UTF-8 text to be displayed in the wrong position.
- (Ron Aaron)
-Solution: Correct utf_char2cells() again.
-Files: src/mbyte.c
-
-Patch 6.1a.001 (extra)
-Problem: 32bit DOS: copying text to the clipboard may cause a crash.
- (Jonathan D Johnston)
-Solution: Don't copy one byte too much in SetClipboardData().
-Files: src/os_msdos.c
-
-Patch 6.1a.002
-Problem: GTK: On some configurations, when closing a dialog from the window
- manager, Vim hangs.
-Solution: Catch the "destroy" signal. (Aric Blumer)
-Files: src/gui_gtk.c
-
-Patch 6.1a.003
-Problem: Multi-byte: With UTF-8 double-wide char and 'virtualedit' set:
- yanking in Visual mode doesn't include the last byte. (Eric Long)
-Solution: Don't add a space for a double-wide character.
-Files: src/ops.c
-
-Patch 6.1a.004 (extra)
-Problem: MINGW: undefined type. (Ron Aaron)
-Solution: Make GetCompositionString_inUCS2() static.
-Files: src/gui_w32.c, src/gui_w48.c, src/proto/gui_w32.pro
-
-Patch 6.1a.005 (extra)
-Problem: Win32: ":hardcopy" doesn't work after ":hardcopy!". (Jonathan
- Johnston)
-Solution: Don't keep the driver context when using ":hardcopy!". (Vince
- Negri)
-Files: src/os_mswin.c
-
-Patch 6.1a.006
-Problem: multi-byte: after setting 'encoding' the window title might be
- wrong.
-Solution: Force resetting the title. (Yasuhiro Matsumoto)
-Files: src/option.c
-
-Patch 6.1a.007
-Problem: Filetype detection for "*.inc" doesn't work.
-Solution: Use a ":let" command. (David Schweikert)
-Files: runtime/filetype.vim
-
-Patch 6.1a.008 (extra)
-Problem: Win32: ACL detection for network shares doesn't work.
-Solution: Include the trailing (back)slash in the root path. (Mike Williams)
-Files: src/os_win32.c
-
-Patch 6.1a.009
-Problem: When using "\@<=" or "\@<!" in a pattern, a "\1" may refer to a ()
- part that follows, but it generates an error message.
-Solution: Allow a forward reference when there is a following "\@<=" or
- "\@<!".
-Files: runtime/doc/pattern.txt, src/regexp.c
-
-Patch 6.1a.010
-Problem: When using ":help" and opening a new window, the alternate file
- isn't set.
-Solution: Set the alternate file to the previously edited file.
-Files: src/ex_cmds.c
-
-Patch 6.1a.011
-Problem: GTK: ":set co=77", change width with the mouse, ":set co=77"
- doesn't resize the window. (Darren Hiebert)
-Solution: Set the form size after handling a resize event.
-Files: src/gui_gtk_x11.c
-
-Patch 6.1a.012
-Problem: GTK: The file browser always returns a full path. (Lohner)
-Solution: Shorten the file name if possible.
-Files: src/gui_gtk.c
-
-Patch 6.1a.013
-Problem: When using "=~word" in 'cinkeys' or 'indentkeys', the case of the
- last character of the word isn't ignored. (Raul Segura Acevedo)
-Solution: Ignore case when checking the last typed character.
-Files: src/edit.c
-
-Patch 6.1a.014
-Problem: After patch 6.1a.006 can't compile without the title feature.
-Solution: Add an #ifdef.
-Files: src/option.c
-
-Patch 6.1a.015
-Problem: MS-Windows: When expanding a file name that contains a '[' or '{'
- an extra backslash is inserted. (Raul Segura Acevedo)
-Solution: Avoid adding the backslash.
-Files: src/ex_getln.c
-
-Patch 6.1a.016
-Problem: Completion after ":language" doesn't include "time". (Raul Segura
- Acevedo)
-Solution: Add the alternative to the completions.
-Files: src/ex_cmds2.c
-
-Patch 6.1a.017
-Problem: Clicking the mouse in the top row of a window where the first line
- doesn't fit moves the cursor to the wrong column.
-Solution: Add the skipcol also for the top row of a window.
-Files: src/ui.c
-
-Patch 6.1a.018
-Problem: When 'scrolloff' is one and the window height is one, "gj" can put
- the cursor above the window. (Raul Segura Acevedo)
-Solution: Don't let skipcol become bigger than the cursor column.
-Files: src/move.c
-
-Patch 6.1a.019
-Problem: When using a composing character on top of an ASCII character, the
- "l" command clears the composing character. Only when 'ruler' and
- 'showcmd' are off. (Raphael Finkel)
-Solution: Don't move the cursor by displaying characters when there are
- composing characters.
-Files: src/screen.c
-
-Patch 6.1a.020
-Problem: GTK: after patch 6.1a.011 resizing with the mouse doesn't always
- work well for small sizes. (Adrien Beau)
-Solution: Use another way to avoid the problem with ":set co=77".
-Files: src/gui_gtk_x11.c
-
-Patch 6.1a.021
-Problem: Several Syntax menu entries are wrong or confusing.
-Solution: Rephrase and correct the menu entries. (Adrien Beau)
-Files: runtime/makemenu.vim, runtime/menu.vim
-
-Patch 6.1a.022
-Problem: A tags file might be used twice on case insensitive systems.
- (Rick Swanton)
-Solution: Don't use the same file name twice in the default for the 'tags'
- option. Ignore case when comparing names of already visited
- files.
-Files: src/misc2.c, src/option.c
-
-Patch 6.1a.023
-Problem: When starting the GUI get "C" characters echoed in the terminal.
-Solution: Don't try sending a clear-screen command while the GUI is starting
- up.
-Files: src/screen.c
-
-Patch 6.1a.024
-Problem: In other editors CTRL-F is often used for a find dialog.
-Solution: In evim use CTRL-F for the find dialog.
-Files: runtime/evim.vim
-
-Patch 6.1a.025
-Problem: The choices for the fileformat dialog can't be translated.
-Solution: Add g:menutrans_fileformat_choices. (Adrien Beau)
-Files: runtime/menu.vim
-
-Patch 6.1a.026
-Problem: Indenting Java files is wrong with "throws", "extends" and
- "implements" clauses.
-Solution: Update the Java indent script.
-Files: runtime/indent/java.vim
-
-Patch 6.1a.027
-Problem: A few Syntax menu entries missing or incorrect.
-Solution: Add and correct the menu entries. (Adrien Beau)
- Shorten a few menus to avoid they become too long.
-Files: runtime/makemenu.vim, runtime/menu.vim
-
-Patch 6.1a.028
-Problem: XIM: problems with feedback and some input methods.
-Solution: Use iconv for calculating the cells. Remove the queue for
- key_press_event only when text was changed. (Yasuhiro Matsumoto)
-Files: src/globals.h, src/mbyte.c, src/screen.c
-
-Patch 6.1a.029
-Problem: After patch 6.1a.028 can't compile GTK version with XIM but
- without multi-byte chars.
-Solution: Add an #ifdef. (Aschwin Marsman)
-Files: src/mbyte.c
-
-Patch 6.1a.030
-Problem: With double-byte encodings toupper() and tolower() may have wrong
- results.
-Solution: Skip double-byte characters. (Eric Long)
-Files: src/eval.c
-
-Patch 6.1a.031
-Problem: Accessing the 'balloondelay' variable may cause a crash.
-Solution: Make the variable for 'balloondelay' a long. (Olaf Seibert)
-Files: src/option.h
-
-Patch 6.1a.032 (extra)
-Problem: Some menu files used a wrong encoding name for "scriptencoding".
-Solution: Move the translations to a separate file, which is sourced after
- setting "scriptencoding".
- Also add Czech menu translations in ASCII and update the other
- encodings.
-Files: runtime/lang/menu_cs_cz.iso_8859-1.vim,
- runtime/lang/menu_cs_cz.iso_8859-2.vim,
- runtime/lang/menu_czech_czech_republic.1250.vim,
- runtime/lang/menu_czech_czech_republic.1252.vim,
- runtime/lang/menu_czech_czech_republic.ascii.vim,
- runtime/lang/menu_de_de.iso_8859-1.vim,
- runtime/lang/menu_de_de.latin1.vim,
- runtime/lang/menu_fr_fr.iso_8859-1.vim,
- runtime/lang/menu_fr_fr.latin1.vim,
- runtime/lang/menu_french_france.1252.vim,
- runtime/lang/menu_german_germany.1252.vim,
- runtime/lang/menu_ja_jp.euc-jp.vim,
- runtime/lang/menu_ja_jp.utf-8.vim,
- runtime/lang/menu_japanese_japan.932.vim
-
-Patch 6.1a.033
-Problem: XIM: doesn't reset input context.
-Solution: call xim_reset() with im_set_active(FALSE). (Takuhiro Nishioka)
-Files: src/mbyte.c
-
-Patch 6.1a.034 (extra)
-Problem: Win32: The ACL checks for a readonly file still don't work well.
-Solution: Remove the ACL checks, go back to how it worked in Vim 6.0.
-Files: src/os_win32.c
-
-Patch 6.1a.035
-Problem: multi-byte: When using ":sh" in the GUI, typed and displayed
- multi-byte characters are not handled correctly.
-Solution: Deal with multi-byte characters to and from the shell. (Yasuhiro
- Matsumoto) Also handle UTF-8 composing characters.
-Files: src/os_unix.c
-
-Patch 6.1a.036
-Problem: GTK: the save-yourself event was not handled.
-Solution: Catch the save-yourself event and preserve swap files. (Neil Bird)
-Files: src/gui_gtk_x11.c
-
-Patch 6.1a.037
-Problem: The MS-Windows key mapping doesn't include CTRL-S for saving.
- (Vlad Sandrini)
-Solution: Map CTRL-S to ":update".
-Files: runtime/mswin.vim
-
-Patch 6.1a.038
-Problem: Solaris: Including both sys/sysctl.h and sys/sysinfo.h doesn't
- work. (Antonio Colombo)
-Solution: Don't include sys/sysinfo.h when not calling sysinfo().
-Files: src/os_unix.c
-
-Patch 6.1a.039
-Problem: Not all visual basic files are recognized.
-Solution: Add checks to catch *.ctl files. (Raul Segura Acevedo)
-Files: runtime/filetype.vim
-
-Patch 6.1a.040
-Problem: A *.pl file is recognized as Perl, but it could be a prolog file.
-Solution: Check the first non-empty line. (Kontra Gergely)
-Files: runtime/filetype.vim
-
-Patch 6.1a.041
-Problem: When pressing the left mouse button in the command line and them
- moving the mouse upwards, nearly all the text is selected.
-Solution: Don't try extending a modeless selection when there isn't one.
-Files: src/ui.c
-
-Patch 6.1a.042
-Problem: When merging files, ":diffput" and ":diffget" are used a lot, but
- they require a lot of typing.
-Solution: Add "dp" for ":diffput" and "do" for ":diffget".
-Files: runtime/doc/diff.txt, src/diff.c, src/normal.c, src/proto/diff.pro
-
-
-Patch 6.1b.001 (extra)
-Problem: Checking for wildcards in a path does not handle multi-byte
- characters with a trail byte which is a wildcard.
-Solution: Handle multi-byte characters correctly. (Muraoka Taro)
-Files: src/os_amiga.c, src/os_mac.c, src/os_msdos.c, src/os_mswin.c,
- src/os_unix.c
-
-Patch 6.1b.002
-Problem: A regexp that ends in "\{" is not flagged as an error. May cause
- a stack overflow when 'incsearch' is set. (Gerhard Hochholzer)
-Solution: Handle a missing "}" as an error.
-Files: src/regexp.c
-
-Patch 6.1b.003 (extra)
-Problem: The RISC OS GUI doesn't compile.
-Solution: Include changes since Vim 5.7. (Andy Wingate)
-Files: src/Make_ro.mak, src/gui_riscos.c, src/os_riscos.c,
- src/os_riscos.h, src/proto/gui_riscos.pro
-
-Patch 6.1b.004
-Problem: col("'>") returns a negative number for linewise selection. (Neil
- Bird)
-Solution: Don't add one to MAXCOL.
-Files: src/eval.c
-
-Patch 6.1b.005
-Problem: Using a search pattern that causes an out-of-stack error while
- 'hlsearch' is set keeps giving the hit-Enter prompt.
- A search pattern that takes a long time delays typing when
- 'incsearch' is set.
-Solution: Stop 'hlsearch' highlighting when the regexp causes an error.
- Stop searching for 'incsearch' when a character is typed.
-Files: src/globals.h, src/message.c, src/screen.c, src/search.c,
- src/vim.h
-
-Patch 6.1b.006
-Problem: When entering a composing character on the command line with
- CTRL-V, the text isn't redrawn correctly.
-Solution: Redraw the text under and after the cursor.
-Files: src/ex_getln.c
-
-Patch 6.1b.007
-Problem: When the cursor is in the white space between two sentences, "dis"
- deletes the first character of the following sentence, "das"
- deletes a space after the sentence.
-Solution: Backup the cursor one character in these situations.
-Files: src/search.c
-
-Patch 6.1b.008
-Problem: *.xsl files are not recognized as xslt but xml.
- Monk files are not recognized.
-Solution: Delete the duplicate line for *.xsl. (Johannes Zellner)
- Recognize monk files.
-Files: runtime/filetype.vim
-
-Patch 6.1b.009
-Problem: Can't always compile small features and then adding eval feature,
- "sandbox" is undefined. (Axel Kielhorn)
-Solution: Always define "sandbox" when the eval feature is used.
-Files: src/globals.h
-
-Patch 6.1b.010 (extra)
-Problem: When compiling gvimext.cpp with MSVC 4.2 get a number of warnings.
-Solution: Change "true" to "TRUE". (Walter Briscoe)
-Files: GvimExt/gvimext.cpp
-
-Patch 6.1b.011
-Problem: When using a very long string for confirm(), can't quit the
- displaying at the more prompt. (Hari Krishna Dara)
-Solution: Jump to the end of the message to show the choices.
-Files: src/message.c
-
-Patch 6.1b.012
-Problem: Multi-byte: When 'showbreak' is set and a double-wide character
- doesn't fit at the right window edge the cursor gets stuck there.
- Using cursor-left gets stuck when 'virtualedit' is set. (Eric
- Long)
-Solution: Fix the way the extra ">" character is counted when 'showbreak' is
- set. Don't correct cursor for virtual editing on a double-wide
- character.
-Files: src/charset.c, src/edit.c
-
-Patch 6.1b.013
-Problem: A user command that partly matches with a buffer-local user
- command and matches full with a global user command unnecessarily
- gives an 'ambiguous command' error.
-Solution: Find the full global match even after a partly local match.
-Files: src/ex_docmd.c
-
-Patch 6.1b.014
-Problem: EBCDIC: switching mouse events off causes garbage on screen.
- Positioning the cursor in the GUI causes garbage.
-Solution: Insert an ESC in the terminal code. (Ralf Schandl)
- Use "\b" instead of "\010" for KS_LE.
-Files: src/os_unix.c, src/term.c
-
-Patch 6.1b.015
-Problem: Vimtutor has a typo. Get a warning for "tempfile" if it
- doesn't exist.
-Solution: Move a quote to the end of a line. (Max Ischenko)
- Use "mktemp" first, more systems have it.
-Files: src/vimtutor
-
-Patch 6.1b.016
-Problem: GTK: loading a fontset that works partly, Vim might hang or crash.
-Solution: Avoid that char_width becomes zero. (Yasuhiro Matsumoto)
-Files: src/gui_gtk_x11.c
-
-Patch 6.1b.017
-Problem: GUI: When using ":shell" and there is a beep, nothing happens.
-Solution: Call vim_beep() to produce the beep from the shell. (Yasuhiro
- Matsumoto)
-Files: src/message.c
-
-Patch 6.1b.018 (depends on 6.1b.006)
-Problem: When entering the encryption key, special keys may still reveal
- the typed characters.
-Solution: Make sure stars are used or nothing is shown in all cases.
-Files: src/digraph.c, src/getchar.c, src/ex_getln.c
-
-Patch 6.1b.019 (depends on 6.1b.005)
-Problem: A search pattern that takes a long time slows down typing when
- 'incsearch' is set.
-Solution: Pass SEARCH_PEEK to dosearch().
-Files: src/ex_getln.c
-
-Patch 6.1b.020
-Problem: When using the matchit plugin, "%" finds a match on the "end" of a
- ":syntax region" command in Vim scripts.
-Solution: Skip over ":syntax region" commands by setting b:match_skip.
-Files: runtime/ftplugin/vim.vim
-
-Patch 6.1b.021
-Problem: when 'mousefocus' is set, CTRL-W CTRL-] sometimes doesn't warp the
- pointer to the new window. (Robert Webb)
-Solution: Don't reset need_mouse_correct when checking the timestamp of a
- file.
-Files: src/fileio.c
-
-Patch 6.1b.022
-Problem: With lots of folds "j" does not obey 'scrolloff' properly.
- (Srinath Avadhanula)
-Solution: Go to end of the fold before counting context lines.
-Files: src/move.c
-
-Patch 6.1b.023
-Problem: On MS-Windows system() may cause checking timestamps, because Vim
- loses and gains input focus, while this doesn't happen on Unix.
-Solution: Don't check timestamps while system() is busy.
-Files: src/ex_cmds2.c, src/fileio.c, src/globals.h, src/misc1.c
-
-Patch 6.1b.024 (extra)
-Problem: Gettext 0.11 complains that "sjis" is not a standard name.
-Solution: Use "cp932" instead.
-Files: src/po/sjiscorr.c
-
-Patch 6.1b.025 (extra)
-Problem: Win32: When closing gvim while it is minimized and has a changed
- file, the file-changed dialog pops up in a corner of the screen.
-Solution: Put the dialog in the middle of the screen.
-Files: src/gui_w48.c
-
-Patch 6.1b.026
-Problem: When 'diffopt' contains 'iwhite' but not 'icase': differences in
- case are not highlighted properly. (Gerhard Hochholzer)
-Solution: Don't ignore case when ignoring white space differences.
-Files: src/diff.c
-
-Patch 6.1b.027
-Problem: "vim --remote +" may cause a crash.
-Solution: Check for missing file name argument. (Martin Kahlert)
-Files: src/main.c
-
-Patch 6.1b.028 (extra)
-Problem: Win16: Can't compile after patch 6.1b.025.
-Solution: Add code specifically for Win16. (Vince Negri)
-Files: src/gui_w48.c
-
-Patch 6.1b.029
-Problem: Win32: When a directory on an NTFS partition is read/execute (no
- delete,modify,write) and the file has modify rights, trying to
- write the file deletes it. Making the file read/write/execute
- (not delete) solves it. (Mark Canup)
-Solution: Use the Unix code to check for a writable directory. If not, then
- make a backup copy and overwrite the file.
-Files: src/fileio.c
-
-Patch 6.1b.030 (extra)
-Problem: Mac: small mistake in the build script and prototypes.
-Solution: Fix the build script and add the prototypes. (Axel Kielhorn)
-Files: src/os_mac.build, src/gui_mac.c
-
-Patch 6.1b.031 (extra)
-Problem: Win32 GUI: ":set guifont=*" doesn't set 'guifont' to the resulting
- font name. (Vlad Sandrini)
-Solution: Put the code back in gui_mch_init_font() to form the font name out
- of the logfont.
-Files: src/gui_w48.c
-
-Patch 6.1b.032
-Problem: Athena: Setting a color scheme before the GUI has started causes a
- crash. (Todd Blumer)
-Solution: Don't try using color names that haven't been set yet.
-Files: src/gui_athena.c
-
-Patch 6.1b.033
-Problem: When using a count after a ":s" command may get ml_get errors.
- (Dietmar Lang)
-Solution: Check that the resulting range does not go past the end of the
- buffer.
-Files: src/ex_cmds.c
-
-Patch 6.1b.034
-Problem: After sourcing mswin.vim, when using <C-S-Right> after
- auto-indenting and then <Del>, get warning for allocating
- ridiculous amount of memory. (Dave Delgreco)
-Solution: Adjust the start of the Visual area when deleting the auto-indent.
-Files: src/edit.c
-
-Patch 6.1b.035
-Problem: When using evim, dropping a file on Vim and then double clicking
- on a word, it is changed to "i". (Merlin Hansen)
-Solution: Reset need_start_insertmode after editing the file.
-Files: src/ex_docmd.c
-
-
-==============================================================================
-VERSION 6.2 *version-6.2*
-
-This section is about improvements made between version 6.1 and 6.2.
-
-This is mainly a bug-fix release. There are also a few new features.
-
-Main new features:
-- Support for GTK 2. (Daniel Elstner)
-- Support for editing Arabic text. (Nadim Shaikli & Isam Bayazidi)
-- ":try" command and exception handling. (Servatius Brandt)
-- Support for the neXtaw GUI toolkit (mostly like Athena). (Alexey Froloff)
-- Cscope support for Win32. (Khorev Sergey)
-- Support for PostScript printing in various 8-bit encodings. (Mike Williams)
-
-
-Changed *changed-6.2*
--------
-
-Removed the scheme indent file, the internal Lisp indenting works well now.
-
-Moved the GvimEXt, OleVim and VisVim directories into the "src" directory.
-This is more consistent with how xxd is handled.
-
-The VisVim.dll file is installed in the top directory, next to gvimext.dll,
-instead of in a subdirectory "VisVim". Fixes that NSIS was uninstalling it
-from the wrong directory.
-
-Removed the art indent file, it didn't do anything.
-
-submatch() returned line breaks with CR instead of LF.
-
-Changed the Win32 Makefiles to become more uniform and compile gvimext.dll.
-(Dan Sharp)
-
-'cindent': Align a "//" comment with a "//" comment in a previous line.
-(Helmut Stiegler)
-
-Previously only for xterm-like terminals parent widgets were followed to find
-the title and icon label. Now do this for all terminal emulators.
-
-Made it possible to recognize backslashes for "%" matching. The 'M' flag in
-'cpoptions' disables it. (Haakon Riiser)
-
-Removed the Make_tcc.mak makefile for Turbo C. It didn't work and we probably
-can't make it work (the compiler runs out of memory).
-
-Even though the documentation refers to keywords, "[ CTRL-D" was using
-'isident' to find matches. Changed it to use 'iskeyword'. Also applies to
-other commands that search for defined words in included files such as
-":dsearch", "[D" and "[d".
-
-Made 'keywordprg' global-local. (Christian Robinson)
-
-Enabled the Netbeans interface by default. Reversed the configure argument
-from "--enable-netbeans" to "--disable-netbeans".
-
-
-Added *added-6.2*
------
-
-New options:
- 'arabic'
- 'arabicshape'
- 'ambiwidth'
- 'autochdir'
- 'casemap'
- 'copyindent'
- 'cscopequickfix'
- 'preserveindent'
- 'printencoding'
- 'rightleftcmd'
- 'termbidi'
- 'toolbariconsize'
- 'winfixheight'
-
-New keymaps:
- Serbian (Aleksandar Veselinovic)
- Chinese Pinyin (Fredrik Roubert)
- Esperanto (Antoine J. Mechelynck)
-
-New syntax files:
- Valgrind (Roger Luethi)
- Smarty template (Manfred Stienstra)
- MySQL (Kenneth Pronovici)
- RockLinux package description (Piotr Esden-Tempski)
- MMIX (Dirk Huesken)
- gkrellmrc (David Necas)
- Tilde (Tobias Rundtrom)
- Logtalk (Paulo Moura)
- PLP (Juerd Waalboer)
- fvwm2m4 (David Necas)
- IPfilter (Hendrik Scholz)
- fstab (Radu Dineiu)
- Quake (Nikolai Weibull)
- Occam (Mario Schweigler)
- lpc (Shizhu Pan)
- Exim conf (David Necas)
- EDIF (Artem Zankovich)
- .cvsrc (Nikolai Weibull)
- .fetchmailrc (Nikolai Weibull)
- GNU gpg (Nikolai Weibull)
- Grub (Nikolai Weibull)
- Modconf (Nikolai Weibull)
- RCS (Dmitry Vasiliev)
- Art (Dorai Sitaram)
- Renderman Interface Bytestream (Andrew J Bromage)
- Mailcap (Doug Kearns)
- Subversion commit file (Dmitry Vasiliev)
- Microsoft IDL (Vadim Zeitlin)
- WildPackets EtherPeek Decoder (Christopher Shinn)
- Spyce (Rimon Barr)
- Resolv.conf (Radu Dineiu)
- A65 (Clemens Kirchgatterer)
- sshconfig and sshdconfig (David Necas)
- Cheetah and HTMLCheetah (Max Ischenko)
- Packet filter (Camiel Dobbelaar)
-
-New indent files:
- Eiffel (David Clarke)
- Tilde (Tobias Rundtrom)
- Occam (Mario Schweigler)
- Art (Dorai Sitaram)
- PHP (Miles Lott)
- Dylan (Brent Fulgham)
-
-New tutor translations:
- Slovak (Lubos Celko)
- Greek (Christos Kontas)
- German (Joachim Hofmann)
- Norwegian (Øyvind Holm)
-
-New filetype plugins:
- Occam (Mario Schweigler)
- Art (Dorai Sitaram)
- ant.vim, aspvbs.vim, config.vim, csc.vim, csh.vim, dtd.vim, html.vim,
- jsp.vim, pascal.vim, php.vim, sgml.vim, sh.vim, svg.vim, tcsh.vim,
- xhtml.vim, xml.vim, xsd.vim. (Dan Sharp)
-
-New compiler plugins:
- Checkstyle (Doug Kearns)
- g77 (Ralf Wildenhues)
- fortran (Johann-Guenter Simon)
- Xmllint (Doug Kearns)
- Ruby (Tim Hammerquist)
- Modelsim vcom (Paul Baleme)
-
-New menu translations:
- Brazilian (José de Paula)
- British (Mike Williams)
- Korean in UTF-8. (Nam SungHyun)
- Norwegian (Øyvind Holm)
- Serbian (Aleksandar Jelenak)
-
-New message translation for Norwegian. (Øyvind Holm)
-
-New color scheme:
- desert (Hans Fugal)
-
-Arabic specific features. 'arabicshape', 'termbidi', 'arabic' and
-'rightleftcmd' options. (Nadim Shaikli & Isam Bayazidi)
-
-Support for neXtaw GUI toolkit, mostly like Athena. (Alexey Froloff)
-
-Win32: cscope support. (Khorev Sergey)
-
-VMS: various improvements to documentation and makefiles. (Zoltan Arpadffy)
-
-Added "x" key to the explorer plugin: execute the default action. (Yasuhiro
-Matsumoto)
-
-Compile gvimext.dll with MingW. (Rene de Zwart)
-
-Add the "tohtml.vim" plugin. It defines the ":TOhtml" user command, an easy
-way to convert text to HTML.
-
-Added ":try" / ":catch" / ":finally" / ":endtry" commands. Add E999 numbers
-to all error messages, so that they can be caught by the number.
-(Servatius Brandt)
-Moved part of ex_docmd.c to the new ex_eval.c source file.
-
-Include support for GTK+ 2.2.x (Daniel Elstner)
-Adds the "~" register: drag & drop text.
-Adds the 'toolbariconsize' option.
-Add -Dalloca when running lint to work around a problem with alloca()
-prototype.
-
-When selecting an item in the error window to jump to, take some effort to
-find an ordinary window to show the file in (not a preview window).
-
-Support for PostScript printing of various 8-bit encodings. (Mike Williams)
-
-inputdialog() accepts a third argument that is used when the dialog is
-cancelled. Makes it possible to see a difference between cancelling and
-entering nothing.
-
-Included Aap recipes. Can be used to update Vim to the latest version,
-building and installing.
-
-"/" option in 'cinoptions': extra indent for comment lines. (Helmut Stiegler)
-
-Vim variable "v:register" and functions setreg(), getreg() and getregtype().
-(Michael Geddes)
-
-"v" flag in 'cpoptions': Leave text on screen with backspace in Insert mode.
-(Phillip Vandry)
-
-Dosinst.exe also finds gvimext.dll in the "GvimExt" directory. Useful when
-running install in the "src" directory for testing.
-
-Support tag files that were sorted with case ignored. (Flemming Madsen)
-
-When completing a wildcard in a leading path element, as in "../*/Makefile",
-only the last part ("Makefile") was listed. Support custom defined
-command line completion. (Flemming Madsen)
-
-Also recognize "rxvt" as an xterm-like terminal. (Tomas Styblo)
-
-Proper X11 session management. Fixes that the WM_SAVE_YOURSELF event was not
-used by popular desktops. (Neil Bird)
-Not used for Gnome 2, it has its own handling.
-
-Support BOR, DEBUG and SPAWNO arguments for the Borland 3 Makefile. (Walter
-Briscoe)
-
-Support page breaks for printing. Adds the "formfeed" field in
-'printoptions'. (Mike Williams)
-
-Mac OSX: multi-language support: iconv and gettext. (Muraoka Taro, Axel
-Kielhorn)
-
-"\Z" flag in patterns: ignore differences in combining characters. (Ron Aaron)
-
-Added 'preserveindent' and 'copyindent' options. They use existing white
-space characters instead of using Tabs as much as possible. (Chris Leishman)
-
-Updated Unicode tables to Unicode 4.0. (Raphael Finkel)
-
-Support for the mouse wheel in rxvt. (AIDA Shinra)
-
-Win32: Added ":8" file modifier to get short filename. Test50 tests the ":8"
-expansion on Win32 systems. (Michael Geddes)
-
-'cscopequickfix' option: Open quickfix window for Cscope commands. Also
-cleanup the code for giving messages. (Khorev Sergey)
-
-GUI: Support more than 222 columns for mouse positions.
-
-":stopinsert" command: Don't return to Insert mode.
-
-"interrupt" command for debug mode. Useful for simulating CTRL-C. (Servatius
-Brandt)
-
-
-Fixed *fixed-6.2*
------
-
-Removed a few unused #defines from config.h.in, os_os2_cfg.h and os_vms_conf.h.
-
-The Vim icons in PNG format didn't have a transparent background. (Greg
-Roelofs)
-
-Fixed a large number of spelling mistakes in the docs. (Adri Verhoef)
-
-The #defines for prototype generation were causing trouble. Changed them to
-typedefs.
-
-A new version of libintl.h uses __asm__, which confuses cproto. Define a
-dummy __asm__ macro.
-
-When 'virtualedit' is set can't move to halfway an unprintable character.
-Cripples CTRL-V selection. (Taro Muraoka)
-Allow moving to halfway an unprintable character. Don't let getvvcol() change
-the pos->coladd argument.
-
-When a tab wraps to the next line, 'listchars' is set and 'foldcolumn' is
-non-zero, only one character of the foldcolumn is highlighted. (Muraoka Taro)
-
-When using ":catch" without an argument Vim crashes. (Yasuhiro Matsumoto)
-When no argument given use the ".*" pattern.
-
-Win32: When gvim.exe is started from a shortcut with the window style property
-set to maximize Vim doesn't start with a maximized window. (Yasuhiro
-Matsumoto) Open the window with the default size and don't call ShowWindow()
-again when it's already visible. (Helmut Stiegler)
-
-gui_gtk.c used MAX, but it's undefined to avoid a conflict with system header
-files.
-
-Win32: When closing a window from a mapping some pixels remain on the
-statusline. (Yasuhiro Matsumoto)
-
-A column number in an errorformat that goes beyond the end of the line may
-cause a crash.
-
-":throw 'test'" crashes Vim. (Yasuhiro Matsumoto)
-
-The file selector's scrollbar colors are not set after doing a ":hi Scrollbar
-guifg=color". And the file selector's colors are not changed by the
-colorscheme command. (David Harrison)
-
-Motif: When compiling with FEAT_FOOTER defined, the text area gets a few
-pixels extra space on the right. Remove the special case in
-gui_get_base_width(). (David Harrison)
-
-Using CTRL-R CTRL-P in Insert mode puts the '] mark in the wrong position.
-(Helmut Stiegler)
-
-When 'formatoptions' includes "awct" a non-comment wasn't auto-formatted.
-
-Using a "--cmd" argument more than 10 times caused a crash.
-
-DEC style mouse support didn't work if the page field is not empty.
-(Uribarri)
-
-"vim -l one two" did only set 'lisp' in the first file. Vi does it for every
-file.
-
-":set tw<" didn't work. Was checking for '^' instead of '<'.
-
-In ":hardcopy > %.ps" the "%" was not expanded to the current filename.
-
-Made ":redraw" also update the Visual area.
-
-When a not implemented command, such as ":perl", has wrong arguments the less
-important error was reported, giving the user the idea the command could work.
-
-On non-Unix systems autocommands for writing did not attempt a match with the
-short file name, causing a pattern like "a/b" to fail.
-
-VMS: e_screenmode was not defined and a few other fixes for VMS. (Zoltan
-Arpadffy)
-
-redraw_msg() depended on FEAT_ARABIC instead of FEAT_RIGHTLEFT. (Walter
-Briscoe)
-
-Various changes for the PC Makefiles. (Walter Briscoe)
-
-Use _truename() instead of our own code to expand a file name into a full
-path. (Walter Briscoe)
-
-Error in filetype check for /etc/modutils. (Lubomir Host)
-
-Cscope interface: allocated a buffer too small.
-
-Win16: remove a trailing backslash from a path when obtaining the permission
-flags. (Vince Negri)
-
-When searching for tags with case ignored Vim could hang.
-
-When searching directories with a stopdir could get a crash. Did not
-re-allocate enough memory. (Vince Negri)
-
-A user command may cause a crash. Don't use the command index when it's
-negative. (Vince Negri)
-
-putenv() didn't work for MingW and Cygwin. (Dan Sharp)
-
-Many functions were common between os_msdos.c and os_win16.c. Use os_msdos.c
-for compiling the Win16 version and remove the functions from os_win16.c.
-(Vince Negri)
-
-For terminals that behave like an xterm but didn't have a name that is
-recognized, the window title would not always be set.
-
-When syntax highlighting is off ":hardcopy" could still attempt printing
-colors.
-
-Crash when using ":catch" without an argument. (Servatius Brandt)
-
-Win32: ":n #" doubled the backslashes.
-
-Fixed Arabic shaping for the command line. (Nadim Shaikli)
-
-Avoid splitting up a string displayed on the command line into individual
-characters, it breaks Arabic shaping.
-
-Updated Cygwin and MingW makefiles to use more dependencies. (Dan Sharp)
-
-2html.vim didn't work with 'nomagic' set.
-
-When a local argument list is used and doing ":only" Vim could crash later.
-(Muraoka Taro)
-
-When using "%P" in 'statusline' and the fillchar is "-", a percentage of 3%
-could result in "-3%". Also avoid changing a space inside a filename to the
-fill character.
-
-MSwin: Handling of backslashes and double quotes for command line arguments
-was not like what other applications do. (Walter Briscoe)
-
-Test32 sometimes didn't work, because test11.out was written as TEST11.OUT.
-
-Avoid pointer conversions warnings for Borland C 5.5 in dosinst.c and
-uninstal.c.
-
-More improvements for Make_bc3.mak file. (Walter Briscoe)
-
-When ":syn sync linebreaks=1" is used, editing the first line caused a redraw
-of the whole screen.
-
-Making translated messages didn't work, if_perl.xs wasn't found. (Vlad
-Sandrini)
-
-Motif and Athena: moving Vim to the foreground didn't uniconify it. Use
-XMapRaised() instead of XRaiseWindow(). (Srikanth Sankaran)
-
-When using ":ptag" in a window where 'scrollbind' is set the preview window
-would also have 'scrollbind' set. Also reset 'foldcolumn' and 'diff'.
-
-Various commands that split a window took over 'scrollbind', which is hardly
-ever desired. Esp. for "q:" and ":copen". Mostly reset 'scrollbind' when
-splitting a window.
-
-When 'shellslash' is set in the vimrc file the first entry of ":scriptnames"
-would still have backslashes. Entries in the quickfix list could also have
-wrong (back)slashes.
-
-Win32: printer dialog texts were not translated. (Yasuhiro Matsumoto)
-
-When using a multi-byte character with a K_SPECIAL byte or a special key code
-with "--remote-send" the received byte sequence was mangled. Put it in the
-typeahead buffer instead of the input buffer.
-
-Win32: The cursor position was incorrect after changing cursor shape.
-(Yasuhiro Matsumoto).
-
-Win32: When 'encoding' is not the current codepage the title could not be set
-to non-ascii characters.
-
-"vim -d scp://machine/file1 scp://machine/file2" did not work, there was only
-one window. Fixed the netrw plugin not to wipe out the buffer if it is
-displayed in other windows.
-
-"/$" caused "e" in last column of screen to disappear, a highlighted blank was
-displayed instead.
-
-":s/ *\ze\n//e" removed the line break and introduced arbitrary text. Was
-using the line count including what matched after the "\ze".
-
-Using the "c" flag with ":s" changed the behavior when a line break is
-replaced and "\@<=" is used. Without "c" a following match was not found.
-
-":%s/\vA@<=\nB@=//gce" got stuck on "A\nB" when entering "n".
-
-VMS: add HAVE_STRFTIME in the config file. (Zoltan Arpadffy)
-
-When a delete prompts if a delete should continue when yanking is not
-possible, restore msg_silent afterwards.
-
-":sign" did not complain about a missing argument.
-
-When adding or deleting a sign 'hlsearch' highlighting could disappear.
-Use the generic functions for updating signs.
-
-On MS-Windows NT, 2K and XP don't use command.com but cmd.exe for testing.
-Makes the tests work on more systems.
-
-In the DOS tests don't create "/tmp" to avoid an error.
-
-Mac classic: Problems with reading files with CR vs CR/LF. Rely on the
-library version of fgets() to work correctly for Metrowerks 2.2. (Axel
-Kielhorn)
-
-When typing a password a "*" was shown for each byte instead of for each
-character. Added multi-byte handling to displaying the stars. (Yasuhiro
-Matsumoto)
-
-When using Perl 5.6 accessing $curbuf doesn't work. Add an #ifdef to use
-different code for 5.6 and 5.8. (Dan Sharp)
-
-MingW and Cygwin: Don't strip the debug executable. (Dan Sharp)
-
-An assignment to a variable with curlies that includes "==" doesn't work.
-Skip over the curlies before searching for an "=". (Vince Negri)
-
-When cancelling the selection of alternate matching tags the tag stack index
-could be advanced too far, resulting in an error message when using CTRL-T.
-
-
-Patch 6.1.001
-Problem: When formatting UTF-8 text it might be wrapped at a space that is
- followed by a composing character. (Raphael Finkel)
- Also correct a display error for removing a composing char on top
- of a space.
-Solution: Check for a composing character on a space.
-Files: src/edit.c, src/misc1.c, src/screen.c
-
-Patch 6.1.002 (extra)
-Problem: Win32: after a ":popup" command the mouse pointer stays hidden.
-Solution: Unhide the mouse pointer before showing the menu.
-Files: src/gui_w48.c
-
-Patch 6.1.003
-Problem: When 'laststatus' is zero and there is a vertical split, the
- vertical separator is drawn in the command line. (Srikant
- Sankaran)
-Solution: Don't draw the vertical separator where there is no statusline.
-Files: src/screen.c
-
-Patch 6.1.004
-Problem: Unicode 3.2 changes width and composing of a few characters.
- (Markus Kuhn)
-Solution: Adjust the Unicode functions for the character width and composing
- characters.
-Files: src/mbyte.c
-
-Patch 6.1.005
-Problem: When using more than 50 items in 'statusline' Vim might crash.
- (Steve Hall)
-Solution: Increment itemcnt in check_stl_option(). (Flemming Madsen)
-Files: src/option.c
-
-Patch 6.1.006
-Problem: When using "P" in Visual mode to put linewise selected text, the
- wrong text is deleted. (Jakub Turski)
-Solution: Put the text before the Visual area and correct the text to be
- deleted for the inserted lines.
- Also fix that "p" of linewise text in Visual block mode doesn't
- work correctly.
-Files: src/normal.c, src/ops.c
-
-Patch 6.1.007
-Problem: Using ":filetype plugin off" when filetype plugins were never
- enabled causes an error message. (Yiu Wing)
-Solution: Use ":silent!" to avoid the error message.
-Files: runtime/ftplugof.vim
-
-Patch 6.1.008
-Problem: The "%" command doesn't ignore \" inside a string, it's seen as
- the end of the string. (Ken Clark)
-Solution: Skip a double quote preceded by an odd number of backslashes.
-Files: src/search.c
-
-Patch 6.1.009
-Problem: Vim crashes when using a huge number for the maxwid value in a
- statusline. (Robert M. Nowotniak)
-Solution: Check for an overflow that makes maxwid negative.
-Files: src/buffer.c
-
-Patch 6.1.010
-Problem: Searching backwards for a question mark with "?\?" doesn't work.
- (Alan Isaac) Same problem in ":s?\??" and ":g?\??".
-Solution: Change the "\?" in a pattern to "?" when using "?" as delimiter.
-Files: src/ex_cmds.c, src/ex_docmd.c, src/proto/regexp.pro, src/regexp.c,
- src/search.c, src/syntax.c, src/tag.c
-
-Patch 6.1.011
-Problem: XIM: doesn't work correctly when 'number' is set. Also, a focus
- problem when selecting candidates.
-Solution: Fix the XIM problems. (Yasuhiro Matsumoto)
-Files: src/mbyte.c, src/screen.c
-
-Patch 6.1.012
-Problem: A system() call might fail if fread() does CR-LF to LF
- translation.
-Solution: Open the output file in binary mode. (Pavol Huhas)
-Files: src/misc1.c
-
-Patch 6.1.013
-Problem: Win32: The default for 'printexpr' doesn't work when there are
- special characters in 'printdevice'.
-Solution: Add double quotes around the device name. (Mike Williams)
-Files: runtime/doc/option.txt, src/option.c
-
-Patch 6.1.014
-Problem: An operator like "r" used in Visual block mode doesn't use
- 'virtualedit' when it's set to "block".
-Solution: Check for 'virtualedit' being active in Visual block mode when the
- operator was started.
-Files: src/ex_docmd.c, src/globals.h, src/misc2.c, src/normal.c,
- src/ops.c, src/undo.c
-
-Patch 6.1.015
-Problem: After patch 6.1.014 can't compile with tiny features. (Christian
- J. Robinson)
-Solution: Add the missing define of virtual_op.
-Files: src/vim.h
-
-Patch 6.1.016 (extra)
-Problem: Win32: Outputting Hebrew or Arabic text might have a problem with
- reversing.
-Solution: Replace the RevOut() function with ETO_IGNORELANGUAGE. (Ron Aaron)
-Files: src/gui_w32.c
-
-Patch 6.1.017
-Problem: Cygwin: After patch 6.1.012 Still doesn't do binary file I/O.
- (Pavol Juhas)
-Solution: Define BINARY_FILE_IO for Cygwin.
-Files: src/os_unix.h
-
-Patch 6.1.018
-Problem: Error message when using cterm highlighting. (Leonardo Di Lella)
-Solution: Remove a backslash before a question mark.
-Files: runtime/syntax/cterm.vim
-
-Patch 6.1.019 (extra)
-Problem: Win32: File name is messed up when editing just a drive name.
- (Walter Briscoe)
-Solution: Append a NUL after the drive name. (Vince Negri)
-Files: src/os_win32.c
-
-Patch 6.1.020
-Problem: col("'>") returns a huge number after using Visual line mode.
-Solution: Return the length of the line instead.
-Files: src/eval.c
-
-Patch 6.1.021 (depends on patch 6.1.009)
-Problem: Vim crashes when using a huge number for the minwid value in a
- statusline. (Robert M. Nowotniak)
-Solution: Check for an overflow that makes minwid negative.
-Files: src/buffer.c
-
-Patch 6.1.022
-Problem: Grabbing the status line above the command-line window works like
- the bottom status line was grabbed. (Jim Battle)
-Solution: Make it possible to grab the status line above the command-line
- window, so that it can be resized.
-Files: src/ui.c
-
-Patch 6.1.023 (extra)
-Problem: VMS: running tests doesn't work properly.
-Solution: Adjust the makefile. (Zoltan Arpadffy)
-Files: src/testdir/Make_vms.mms
-
-Patch 6.1.024
-Problem: When header files use a new syntax for declaring functions, Vim
- can't figure out missing prototypes properly.
-Solution: Accept braces around a function name. (M. Warner Losh)
-Files: src/osdef.sh
-
-Patch 6.1.025
-Problem: Five messages for "vim --help" don't start with a capital. (Vlad
- Sandrini)
-Solution: Make the messages consistent.
-Files: src/main.c
-
-Patch 6.1.026
-Problem: *.patch files are not recognized as diff files. In a script a
- "VAR=val" argument after "env" isn't ignored. PHP scripts are not
- recognized.
-Solution: Add *.patch for diff filetypes. Ignore "VAR=val". Recognize PHP
- scripts. (Roman Neuhauser)
-Files: runtime/filetype.vim, runtime/scripts.vim
-
-Patch 6.1.027
-Problem: When 'foldcolumn' is non-zero, a special character that wraps to
- the next line disturbs the foldcolumn highlighting. (Yasuhiro
- Matsumoto)
-Solution: Only use the special highlighting when drawing text characters.
-Files: src/screen.c
-
-Patch 6.1.028
-Problem: Client-server: When a --remote-expr fails, Vim still exits with
- status zero.
-Solution: Exit Vim with a non-zero status to indicate the --remote-expr
- failed. (Thomas Scott Urban)
-Files: src/main.c
-
-Patch 6.1.029
-Problem: When 'encoding' is an 8-bit encoding other than "latin1", editing
- a utf-8 or other Unicode file uses the wrong conversion. (Jan
- Fedak)
-Solution: Don't use Unicode to latin1 conversion for 8-bit encodings other
- than "latin1".
-Files: src/fileio.c
-
-Patch 6.1.030
-Problem: When CTRL-N is mapped in Insert mode, it is also mapped after
- CTRL-X CTRL-N, while it is not mapped after CTRL-X CTRL-F.
- (Kontra Gergely)
-Solution: Don't map CTRL-N after CTRL-X CTRL-N. Same for CTRL-P.
-Files: src/getchar.c
-
-Patch 6.1.031
-Problem: Cygwin: Xxd could read a file in text mode instead of binary mode.
-Solution: Use "rb" or "rt" when needed. (Pavol Juhas)
-Files: src/xxd/xxd.c
-
-Patch 6.1.032
-Problem: Can't specify a quickfix file without jumping to the first error.
-Solution: Add the ":cgetfile" command. (Yegappan Lakshmanan)
-Files: runtime/doc/index.txt, runtime/doc/quickfix.txt, src/ex_cmds.h,
- src/quickfix.c
-
-Patch 6.1.033
-Problem: GUI: When the selection is lost and the Visual highlighting is
- changed to underlining, the cursor is left in a different
- position. (Christian Michon)
-Solution: Update the cursor position after redrawing the selection.
-Files: src/ui.c
-
-Patch 6.1.034
-Problem: A CVS diff file isn't recognized as diff filetype.
-Solution: Skip lines starting with "? " before checking for an "Index:" line.
-Files: runtime/scripts.vim
-
-Patch 6.1.035 (extra, depends on 6.1.016)
-Problem: Win32: Outputting Hebrew or Arabic text might have a problem with
- reversing on MS-Windows 95/98/ME.
-Solution: Restore the RevOut() function and use it in specific situations
- only. (Ron Aaron)
-Files: src/gui_w32.c
-
-Patch 6.1.036
-Problem: This command may cause a crash: ":v/./,//-j". (Ralf Arens)
-Solution: Compute the right length of the regexp when it's empty.
-Files: src/search.c
-
-Patch 6.1.037
-Problem: When 'lazyredraw' is set, pressing "q" at the hit-enter prompt
- causes an incomplete redraw and the cursor isn't positioned.
- (Lubomir Host)
-Solution: Overrule 'lazyredraw' when do_redraw is set.
-Files: src/main.c, src/screen.c
-
-Patch 6.1.038
-Problem: Multi-byte: When a ":s" command contains a multi-byte character
- where the trail byte is '~' the text is messed up.
-Solution: Properly skip multi-byte characters in regtilde() (Muraoka Taro)
-Files: src/regexp.c
-
-Patch 6.1.039
-Problem: When folds are defined and the file is changed outside of Vim,
- reloading the file doesn't update the folds. (Anders
- Schack-Nielsen)
-Solution: Recompute the folds after reloading the file.
-Files: src/fileio.c
-
-Patch 6.1.040
-Problem: When changing directory for expanding a file name fails there is
- no error message.
-Solution: Give an error message for this situation. Don't change directory
- if we can't return to the original directory.
-Files: src/diff.c, src/ex_docmd.c, src/globals.h, src/misc1.c,
- src/os_unix.c
-
-Patch 6.1.041
-Problem: ":mkvimrc" doesn't handle a mapping that has a leading space in
- the rhs. (Davyd Ondrejko)
-Solution: Insert a CTRL-V before the leading space. Also display leading
- and trailing white space in <> form.
-Files: src/getchar.c, src/message.c
-
-Patch 6.1.042
-Problem: "vim -r" doesn't show all matches when 'wildignore' removes swap
- files. (Steve Talley)
-Solution: Keep all matching swap file names.
-Files: src/memline.c
-
-Patch 6.1.043
-Problem: After patch 6.1.040 a few warnings are produced.
-Solution: Add a type cast to "char *" for mch_chdir(). (Axel Kielhorn)
-Files: src/diff.c, src/ex_docmd.c.c, src/misc1.c, src/os_unix.c
-
-Patch 6.1.044 (extra)
-Problem: GUI: When using the find/replace dialog with text that contains a
- slash, an invalid substitute command is generated.
- On Win32 a find doesn't work when 'insertmode' is set.
-Solution: Escape slashes with a backslash.
- Make the Win32, Motif and GTK gui use common code for the
- find/replace dialog.
- Add the "match case" option for Motif and GTK.
-Files: src/feature.h, src/proto/gui.pro, src/gui.c, src/gui.h,
- src/gui_motif.c, src/gui_gtk.c, src/gui_w48.c
-
-Patch 6.1.045
-Problem: In Visual mode, with lots of folds and 'scrolloff' set to 999,
- moving the cursor down near the end of the file causes the text to
- jump up and down. (Lubomir Host)
-Solution: Take into account that the cursor may be on the last line of a
- closed fold.
-Files: src/move.c
-
-Patch 6.1.046
-Problem: X11 GUI: ":set lsp=2 gcr=n-v-i:hor1-blinkon0" draws a black
- rectangle. ":set lsp=2 gcr=n-v-i:hor10-blinkon0" makes the cursor
- disappear. (Nam SungHyun)
-Solution: Correctly compute the height of the horizontal cursor.
-Files: src/gui_gtk_x11.c, src/gui_x11.c
-
-Patch 6.1.047
-Problem: When skipping commands after an error was encountered, expressions
- for ":if", ";elseif" and ":while" are still evaluated.
-Solution: Skip the expression after an error. (Servatius Brandt)
-Files: src/ex_docmd.c
-
-Patch 6.1.048
-Problem: Unicode 3.2 changes were missing a few Hangul Jamo characters.
-Solution: Recognize more characters as composing characters. (Jungshik Shin)
-Files: src/mbyte.c
-
-Patch 6.1.049 (extra)
-Problem: On a 32 bit display a valid color may cause an error message,
- because its pixel value is negative. (Chris Paulson-Ellis)
-Solution: Check for -11111 instead of the color being negative.
- Don't add one to the pixel value, -1 may be used for white.
-Files: src/globals.h, src/gui.c, src/gui.h, src/gui_amiga.c,
- src/gui_athena.c, src/gui_beos.cc, src/gui_gtk_x11.c,
- src/gui_mac.c, src/gui_motif.c, src/gui_photon.c,
- src/gui_riscos.c, src/gui_w16.c, src/gui_w32.c, src/gui_w48.c,
- src/gui_x11.c, src/mbyte.c, src/syntax.c
-
-Patch 6.1.050 (depends on 6.1.049)
-Problem: After patch 6.1.049 the non-GUI version doesn't compile.
-Solution: Add an #ifdef FEAT_GUI. (Robert Stanton)
-Files: src/syntax.c
-
-Patch 6.1.051 (depends on 6.1.044)
-Problem: Doesn't compile with GUI and small features.
-Solution: Adjust the #if for ga_append().
-Files: src/misc2.c
-
-Patch 6.1.052
-Problem: Unix: The executable() function doesn't work when the "which"
- command isn't available.
-Solution: Go through $PATH manually. Also makes it work for VMS.
-Files: src/os_unix.c
-
-Patch 6.1.053
-Problem: When 'sessionoptions' contains "globals", or "localoptions" and an
- option value contains a line break, the resulting script is wrong.
-Solution: Use "\n" and "\r" for a line break. (Srinath Avadhanula)
-Files: src/eval.c
-
-Patch 6.1.054
-Problem: GUI: A mouse click is not recognized at the more prompt, even when
- 'mouse' includes 'r'.
-Solution: Recognize a mouse click at the more prompt.
- Also accept a mouse click in the last line in the GUI.
- Add "ml" entry in 'mouseshape'.
-Files: src/gui.c, src/message.c, src/misc1.c, src/misc2.c, src/option.c,
- src/structs.h
-
-Patch 6.1.055
-Problem: When editing a compressed file, Vim will inspect the contents to
- guess the filetype.
-Solution: Don't source scripts.vim for .Z, .gz, .bz2, .zip and .tgz files.
-Files: runtime/filetype.vim, runtime/plugin/gzip.vim
-
-Patch 6.1.056
-Problem: Loading the Syntax menu can take quite a bit of time.
-Solution: Add the "skip_syntax_sel_menu" variable. When it's defined the
- available syntax files are not in the Syntax menu.
-Files: runtime/doc/gui.txt, runtime/menu.vim
-
-Patch 6.1.057
-Problem: An ESC inside a mapping doesn't work as documented when
- 'insertmode' is set, it does go from Visual or Normal mode to
- Insert mode. (Benji Fisher)
-Solution: Make it work as documented.
-Files: src/normal.c
-
-Patch 6.1.058
-Problem: When there is a closed fold just above the first line in the
- window, using CTRL-X CTRL-Y in Insert mode will show only one line
- of the fold. (Alexey Marinichev)
-Solution: Correct the topline by putting it at the start of the fold.
-Files: src/move.c
-
-Patch 6.1.059
-Problem: ":redir > ~/file" doesn't work. (Stephen Rasku)
-Solution: Expand environment variables in the ":redir >" argument.
-Files: src/ex_docmd.c
-
-Patch 6.1.060
-Problem: When 'virtualedit' is set and 'selection' is "exclusive", deleting
- a character just before a tab changes the tab into spaces. Undo
- doesn't restore the tab. (Helmut Stiegler)
-Solution: Don't replace the tab by spaces when it's not needed. Correctly
- save the line before it's changed.
-Files: src/ops.c
-
-Patch 6.1.061
-Problem: When 'virtualedit' is set and 'selection' is "exclusive", a Visual
- selection that ends just after a tab doesn't include that tab in
- the highlighting. (Helmut Stiegler)
-Solution: Use a different way to exclude the character under the cursor.
-Files: src/screen.c
-
-Patch 6.1.062
-Problem: The "man" filetype plugin doesn't work properly on Solaris 5.
-Solution: Use a different way to detect that "man -s" should be used. (Hugh
- Sasse)
-Files: runtime/ftplugin/man.vim
-
-Patch 6.1.063
-Problem: Java indenting doesn't work properly.
-Solution: Ignore comments when checking if the indent doesn't increase after
- a "}".
-Files: runtime/indent/java.vim
-
-Patch 6.1.064
-Problem: The URLs that the netrw plugin recognized for ftp and rcp did not
- conform to the standard method://[user@]host[:port]/path.
-Solution: Use ftp://[user@]host[[:#]port]/path, which supports both the new
- and the previous style. Also added a bit of dav/cadaver support.
- (Charles Campbell)
-Files: runtime/plugin/netrw.vim
-
-Patch 6.1.065
-Problem: VMS: The colorscheme, keymap and compiler menus are not filled in.
-Solution: Ignore case when looking for ".vim" files. (Coen Engelbarts)
-Files: runtime/menu.vim
-
-Patch 6.1.066 (extra)
-Problem: When calling system() in a plugin reading stdin hangs.
-Solution: Don't set the terminal to RAW mode when it wasn't in RAW mode
- before the system() call.
-Files: src/os_amiga.c, src/os_msdos.c, src/os_riscos.c, src/os_unix.c,
- src/os_win16.c, src/os_win32.c
-
-Patch 6.1.067
-Problem: ":set viminfo+=f0" is not working. (Benji Fisher)
-Solution: Check the "f" flag instead of "'" in 'viminfo'.
-Files: src/mark.c
-
-Patch 6.1.068
-Problem: When a file is reloaded after it was changed outside of Vim, diff
- mode isn't updated. (Michael Naumann)
-Solution: Invalidate the diff info so that it's updated when needed.
-Files: src/fileio.c
-
-Patch 6.1.069
-Problem: When 'showmatch' is set and "$" is in 'cpoptions', using
- "C}<Esc>" may forget to remove the "$". (Preben Guldberg)
-Solution: Restore dollar_vcol after displaying the matching cursor position.
-Files: src/search.c
-
-Patch 6.1.070 (depends on 6.1.060)
-Problem: Compiler warning for signed/unsigned mismatch. (Mike Williams)
-Solution: Add a typecast to int.
-Files: src/ops.c
-
-Patch 6.1.071
-Problem: When 'selection' is exclusive, g CTRL-G in Visual mode counts one
- character too much. (David Necas)
-Solution: Subtract one from the end position.
-Files: src/ops.c
-
-Patch 6.1.072
-Problem: When a file name in a tags file starts with http:// or something
- else for which there is a BufReadCmd autocommand, the file isn't
- opened anyway.
-Solution: Check if there is a matching BufReadCmd autocommand and try to
- open the file.
-Files: src/fileio.c, src/proto/fileio.pro, src/tag.c
-
-Patch 6.1.073 (extra)
-Problem: BC5: Can't easily specify a tiny, small, normal, big or huge
- version.
-Solution: Allow selecting the version with the FEATURES variable. (Ajit
- Thakkar)
-Files: src/Make_bc5.mak
-
-Patch 6.1.074
-Problem: When 'cdpath' includes "../..", changing to a directory in which
- we currently already are doesn't work. ff_check_visited() adds
- the directory both when using it as the root for searching and for
- the actual matches. (Stephen Rasku)
-Solution: Use a separate list for the already searched directories.
-Files: src/misc2.c
-
-Patch 6.1.075 (depends on 6.1.072)
-Problem: Can't compile fileio.c on MS-Windows.
-Solution: Add a declaration for the "p" pointer. (Madoka Machitani)
-Files: src/fileio.c
-
-Patch 6.1.076 (extra)
-Problem: Macintosh: explorer plugin doesn't work on Mac Classic.
- IME doesn't work. Dialog boxes don't work on Mac OS X
-Solution: Fix explorer plugin and key modifiers. (Axel Kielhorn)
- Fix IME support. (Muraoka Taro)
- Disable dialog boxes. (Benji Fisher)
-Files: src/edit.c, src/feature.h, src/gui_mac.c, src/os_mac.c
-
-Patch 6.1.077
-Problem: On a Debian system with ACL linking fails. (Lubomir Host)
-Solution: When the "acl" library is used, check if the "attr" library is
- present and use it.
-Files: src/auto/configure, src/configure.in, src/link.sh
-
-Patch 6.1.078
-Problem: When using 'foldmethod' "marker" and the end marker appears before
- the start marker in the file, no fold is found. (Nazri Ramliy)
-Solution: Don't let the fold depth go negative.
-Files: src/fold.c
-
-Patch 6.1.079
-Problem: When using "s" in Visual block mode with 'virtualedit' set, when
- the selected block is after the end of some lines the wrong text
- is inserted and some lines are skipped. (Servatius Brandt)
-Solution: Insert the right text and extend short lines.
-Files: src/ops.c
-
-Patch 6.1.080
-Problem: When using gcc with /usr/local already in the search path, adding
- it again causes problems.
-Solution: Adjust configure.in to avoid adding /usr/local/include and
- /usr/local/lib when using GCC and they are already used. (Johannes
- Zellner)
-Files: src/auto/configure, src/configure.in
-
-Patch 6.1.081
-Problem: ":help CTRL-\_CTRL-N" doesn't work. (Christian J. Robinson)
-Solution: Double the backslash to avoid the special meaning of "\_".
-Files: src/ex_cmds.c
-
-Patch 6.1.082
-Problem: On MS-Windows the vimrc_example.vim script is sourced and then
- mswin.vim. This enables using select mode, but since "p" is
- mapped it doesn't replace the selection.
-Solution: Remove the mapping of "p" from vimrc_example.vim, it's obsolete.
- (Vlad Sandrini)
-Files: runtime/vimrc_example.vim
-
-Patch 6.1.083
-Problem: When $LANG is "sk" or "sk_sk", the Slovak menu file isn't found.
- (Martin Lacko)
-Solution: Guess the right menu file based on the system.
-Files: runtime/lang/menu_sk_sk.vim
-
-Patch 6.1.084 (depends on 6.1.080)
-Problem: "include" and "lib" are mixed up when checking the directories gcc
- already searches.
-Solution: Swap the variable names. (SunHo Kim)
-Files: src/auto/configure, src/configure.in
-
-Patch 6.1.085
-Problem: When using CTRL-O CTRL-\ CTRL-N from Insert mode, the displayed
- mode "(insert)" isn't removed. (Benji Fisher)
-Solution: Clear the command line.
-Files: src/normal.c
-
-Patch 6.1.086 (depends on 6.1.049)
-Problem: The guifg color for CursorIM doesn't take effect.
-Solution: Use the foreground color when it's defined. (Muraoka Taro)
-Files: src/gui.c
-
-Patch 6.1.087
-Problem: A thesaurus with Japanese characters has problems with characters
- in different word classes.
-Solution: Only separate words with single-byte non-word characters.
- (Muraoka Taro)
-Files: src/edit.c
-
-Patch 6.1.088 (extra)
-Problem: Win32: no debugging info is generated. Tags file excludes .cpp
- files.
-Solution: Add "/map" to compiler flags. Add "*.cpp" to ctags command.
- (Muraoka Taro)
-Files: src/Make_mvc.mak
-
-Patch 6.1.089
-Problem: On BSDI systems there is no ss_sp field in stack_t. (Robert Jan)
-Solution: Use ss_base instead.
-Files: src/auto/configure, src/configure.in, src/config.h.in,
- src/os_unix.c
-
-Patch 6.1.090
-Problem: CTRL-F gets stuck when 'scrolloff' is non-zero and there is a mix
- of long wrapping lines and a non-wrapping line.
-Solution: Check that CTRL-F scrolls at least one line.
-Files: src/move.c
-
-Patch 6.1.091
-Problem: GTK: Can't change preeditstate without setting 'imactivatekey'.
-Solution: Add some code to change preeditstate for OnTheSpot. (Yasuhiro
- Matsumoto)
-Files: src/mbyte.c
-
-Patch 6.1.092
-Problem: ":mapclear <buffer>" doesn't work. (Srikanth Adayapalam)
-Solution: Allow an argument for ":mapclear".
-Files: src/ex_cmds.h
-
-Patch 6.1.093 (extra)
-Problem: Mac and MS-Windows GUI: when scrolling while ":s" is working the
- results can be messed up, because the cursor is moved.
-Solution: Disallow direct scrolling when not waiting for a character.
-Files: src/gui_mac.c, src/gui_w16.c, src/gui_w32.c, src/gui_w48.c
-
-Patch 6.1.094
-Problem: Cygwin: Passing a file name that has backslashes isn't handled
- very well.
-Solution: Convert file name arguments to Posix. (Chris Metcalf)
-Files: src/main.c
-
-Patch 6.1.095
-Problem: When using signs can free an item on the stack.
- Overruling sign colors doesn't work. (Srikanth Sankaran)
-Solution: Don't free the item on the stack. Use NULL instead of "none" for
- the value of the color.
-Files: src/gui_x11.c
-
-Patch 6.1.096
-Problem: When erasing the right halve of a double-byte character, it may
- cause further characters to be erased. (Yasuhiro Matsumoto)
-Solution: Make sure only one character is erased.
-Files: src/screen.c
-
-Patch 6.1.097 (depends on 6.1.090)
-Problem: When 'scrolloff' is set to a huge value, CTRL-F at the end of the
- file scrolls one line. (Lubomir Host)
-Solution: Don't scroll when CTRL-F detects the end-of-file.
-Files: src/move.c
-
-Patch 6.1.098
-Problem: MS-Windows: When the xxd program is under "c:\program files" the
- "Convert to Hex" menu doesn't work. (Brian Mathis)
-Solution: Put the path to xxd in double quotes.
-Files: runtime/menu.vim
-
-Patch 6.1.099
-Problem: Memory corrupted when closing a fold with more than 99999 lines.
-Solution: Allocate more space for the fold text. (Walter Briscoe)
-Files: src/eval.c
-
-Patch 6.1.100 (extra, depends on 6.1.088)
-Problem: Win32: VC5 and earlier don't support the /mapinfo option.
-Solution: Add "/mapinfo" only when "MAP=lines" is specified. (Muraoka Taro)
-Files: src/Make_mvc.mak
-
-Patch 6.1.101
-Problem: After using ":options" the tabstop of a new window is 15. Entry
- in ":options" window for 'autowriteall' is wrong. (Antoine J
- Mechelynck) Can't insert a space in an option value.
-Solution: Use ":setlocal" instead of ":set". Change "aw" to "awa".
- Don't map space in Insert mode.
-Files: runtime/optwin.vim
-
-Patch 6.1.102
-Problem: Unprintable and multi-byte characters in a statusline item are not
- truncated correctly. (Yasuhiro Matsumoto)
-Solution: Count the width of characters instead of the number of bytes.
-Files: src/buffer.c
-
-Patch 6.1.103
-Problem: A function returning from a while loop, with 'verbose' set to 12
- or higher, doesn't mention the return value. A function with the
- 'abort' attribute may return -1 while the verbose message says
- something else.
-Solution: Move the verbose message about returning from a function to
- call_func(). (Servatius Brandt)
-Files: src/eval.c
-
-Patch 6.1.104
-Problem: GCC 3.1 appears to have an optimizer problem that makes test 3
- crash.
-Solution: For GCC 3.1 add -fno-strength-reduce to avoid the optimizer bug.
- Filter out extra info from "gcc --version".
-Files: src/auto/configure, src/configure.in
-
-Patch 6.1.105
-Problem: Win32: The default for 'shellpipe' doesn't redirect stderr. (Dion
- Nicolaas)
-Solution: Redirect stderr, depending on the shell (like for 'shellredir').
-Files: src/option.c
-
-Patch 6.1.106
-Problem: The maze program crashes.
-Solution: Change "11" to "27" and it works. (Greg Roelofs)
-Files: runtime/macros/maze/mazeansi.c
-
-Patch 6.1.107
-Problem: When 'list' is set the current line in the error window may be
- displayed wrong. (Muraoka Taro)
-Solution: Don't continue the line after the $ has been displayed and the
- rightmost column is reached.
-Files: src/screen.c
-
-Patch 6.1.108
-Problem: When interrupting a filter command such as "!!sleep 20" the file
- becomes read-only. (Mark Brader)
-Solution: Only set the read-only flag when opening a buffer is interrupted.
- When the shell command was interrupted, read the output that was
- produced so far.
-Files: src/ex_cmds.c, src/fileio.c
-
-Patch 6.1.109
-Problem: When 'eadirection' is "hor", using CTRL-W = doesn't equalize the
- window heights. (Roman Neuhauser)
-Solution: Ignore 'eadirection' for CTRL-W =
-Files: src/window.c
-
-Patch 6.1.110
-Problem: When using ":badd file" when "file" is already present but not
- listed, it stays unlisted. (David Frey)
-Solution: Set 'buflisted'.
-Files: src/buffer.c
-
-Patch 6.1.111
-Problem: It's not possible to detect using the Unix sources on Win32 or Mac.
-Solution: Add has("macunix") and has("win32unix").
-Files: runtime/doc/eval.txt, src/eval.c
-
-Patch 6.1.112
-Problem: When using ":argdo", ":bufdo" or ":windo", CTRL-O doesn't go to
- the cursor position from before this command but every position
- where the argument was executed.
-Solution: Only remember the cursor position from before the ":argdo",
- ":bufdo" and ":windo".
-Files: src/ex_cmds2.c, src/mark.c
-
-Patch 6.1.113
-Problem: ":bufdo bwipe" only wipes out half the buffers. (Roman Neuhauser)
-Solution: Decide what buffer to go to next before executing the command.
-Files: src/ex_cmds2.c
-
-Patch 6.1.114
-Problem: ":python import vim", ":python vim.current.buffer[0:0] = []" gives
- a lalloc(0) error. (Chris Southern)
-Solution: Don't allocate an array when it's size is zero.
-Files: src/if_python.c
-
-Patch 6.1.115
-Problem: "das" on the white space at the end of a paragraph does not delete
- the "." the sentence ends with.
-Solution: Don't exclude the last character when it is not white space.
-Files: src/search.c
-
-Patch 6.1.116
-Problem: When 'endofline' is changed while 'binary' is set a file should be
- considered modified. (Olaf Buddenhagen)
-Solution: Remember the 'eol' value when editing started and consider the
- file changed when the current value is different and 'binary' is
- set. Also fix that the window title isn't updated when 'ff' or
- 'bin' changes.
-Files: src/option.c, src/structs.h
-
-Patch 6.1.117
-Problem: Small problem with editing a file over ftp: and with Cygwin.
-Solution: Remove a dot from a ":normal" command. Use "cygdrive" where
- appropriate. (Charles Campbell)
-Files: runtime/plugin/netrw.vim
-
-Patch 6.1.118
-Problem: When a file in diff mode is reloaded because it changed outside
- of Vim, other windows in diff mode are not always updated.
- (Michael Naumann)
-Solution: After reloading a file in diff mode mark all windows in diff mode
- for redraw.
-Files: src/diff.c
-
-Patch 6.1.119 (extra)
-Problem: With the Sniff interface, using Sniff 4.0.X on HP-UX, there may be
- a crash when connecting to Sniff.
-Solution: Initialize sniff_rq_sep such that its value can be changed.
- (Martin Egloff)
-Files: src/if_sniff.c
-
-Patch 6.1.120 (depends on 6.1.097)
-Problem: When 'scrolloff' is non-zero and there are folds, CTRL-F at the
- end of the file scrolls part of a closed fold. (Lubomir Host)
-Solution: Adjust the first line to the start of a fold.
-Files: src/move.c
-
-Patch 6.1.121 (depends on 6.1.098)
-Problem: When starting Select mode from Insert mode, then using the Paste
- menu entry, the cursor is left before the last pasted character.
- (Mario Schweigler)
-Solution: Set the cursor for Insert mode one character to the right.
-Files: runtime/menu.vim
-
-Patch 6.1.122
-Problem: ":file name" creates a new buffer to hold the old buffer name,
- which becomes the alternate file. This buffer is unexpectedly
- listed.
-Solution: Create the buffer for the alternate name unlisted.
-Files: src/ex_cmds.c
-
-Patch 6.1.123
-Problem: A ":match" command with more than one argument doesn't report an
- error.
-Solution: Check for extra characters. (Servatius Brandt)
-Files: src/ex_docmd.c
-
-Patch 6.1.124
-Problem: When trying to exit and there is a hidden buffer that had 'eol'
- off and 'bin' set exiting isn't possible. (John McGowan)
-Solution: Set b_start_eol when clearing the buffer.
-Files: src/buffer.c
-
-Patch 6.1.125
-Problem: Explorer plugin asks for saving a modified buffer even when it's
- open in another window as well.
-Solution: Count the number of windows using the buffer.
-Files: runtime/plugin/explorer.vim
-
-Patch 6.1.126
-Problem: Adding the choices in the syntax menu is consuming much of the
- startup time of the GUI while it's not often used.
-Solution: Only add the choices when the user wants to use them.
-Files: Makefile, runtime/makemenu.vim, runtime/menu.vim,
- runtime/synmenu.vim, src/Makefile
-
-Patch 6.1.127
-Problem: When using "--remote file" and the server has 'insertmode' set,
- commands are inserted instead of being executed. (Niklas Volbers)
-Solution: Go to Normal mode again after the ":drop" command.
-Files: src/main.c
-
-Patch 6.1.128
-Problem: The expression "input('very long prompt')" puts the cursor in the
- wrong line (column is OK).
-Solution: Add the wrapped lines to the indent. (Yasuhiro Matsumoto)
-Files: src/ex_getln.c
-
-Patch 6.1.129
-Problem: On Solaris editing "file/" and then "file" results in using the
- same buffer. (Jim Battle)
-Solution: Before using stat(), check that there is no illegal trailing
- slash.
-Files: src/auto/configure, src/config.h.in, src/configure.in,
- src/macros.h src/misc2.c, src/proto/misc2.pro
-
-Patch 6.1.130
-Problem: The documentation for some of the 'errorformat' items is unclear.
-Solution: Add more examples and explain hard to understand items. (Stefan
- Roemer)
-Files: runtime/doc/quickfix.txt
-
-Patch 6.1.131
-Problem: X11 GUI: when expanding a CSI byte in the input stream to K_CSI,
- the CSI byte itself isn't copied.
-Solution: Copy the CSI byte.
-Files: src/gui_x11.c
-
-Patch 6.1.132
-Problem: Executing a register in Ex mode may cause commands to be skipped.
- (John McGowan)
-Solution: In Ex mode use an extra check if the register contents was
- consumed, to avoid input goes into the typeahead buffer.
-Files: src/ex_docmd.c
-
-Patch 6.1.133
-Problem: When drawing double-wide characters in the statusline, may clear
- half of a character. (Yasuhiro Matsumoto)
-Solution: Force redraw of the next character by setting the attributes
- instead of putting a NUL in ScreenLines[]. Do put a NUL in
- ScreenLines[] when overwriting half of a double-wide character.
-Files: src/screen.c
-
-Patch 6.1.134
-Problem: An error for a trailing argument of ":match" should not be given
- after ":if 0". (Servatius Brandt)
-Solution: Only do the check when executing commands.
-Files: src/ex_docmd.c
-
-Patch 6.1.135
-Problem: Passing a command to the shell that includes a newline always has
- a backslash before the newline.
-Solution: Remove one backslash before the newline. (Servatius Brandt)
-Files: src/ex_docmd.c
-
-Patch 6.1.136
-Problem: When $TERM is "linux" the default for 'background' is "dark", even
- though the GUI uses a light background. (Hugh Allen)
-Solution: Don't mark the option as set when defaulting to "dark" for the
- linux console. Also reset 'background' to "light" when the GUI
- has a light background.
-Files: src/option.c
-
-Patch 6.1.137
-Problem: Converting to HTML has a clumsy way of dealing with tabs which may
- change the highlighting.
-Solution: Replace tabs with spaces after converting a line to HTML. (Preben
- Guldberg)
-Files: runtime/syntax/2html.vim
-
-Patch 6.1.138 (depends on 6.1.126)
-Problem: Adding extra items to the Syntax menu can't be done when the "Show
- individual choices" menu is used.
-Solution: Use ":runtime!" instead of ":source", so that all synmenu.vim
- files in the runtime path are loaded. (Servatius Brandt)
- Also fix that a translated menu can't be removed.
-Files: runtime/menu.vim
-
-Patch 6.1.139
-Problem: Cygwin: PATH_MAX is not defined.
-Solution: Include limits.h. (Dan Sharp)
-Files: src/main.c
-
-Patch 6.1.140
-Problem: Cygwin: ":args `ls *.c`" does not work if the shell command
- produces CR NL line separators.
-Solution: Remove the CR characters ourselves. (Pavol Juhas)
-Files: src/os_unix.c
-
-Patch 6.1.141
-Problem: ":wincmd gx" may cause problems when mixed with other commands.
- ":wincmd c" doesn't close the window immediately. (Benji Fisher)
-Solution: Pass the extra command character directly instead of using the
- stuff buffer and call ex_close() directly.
-Files: src/ex_docmd.c, src/normal.c, src/proto/normal.pro,
- src/proto/window.pro, src/window.c
-
-Patch 6.1.142
-Problem: Defining paragraphs without a separating blank line isn't
- possible. Paragraphs can't be formatted automatically.
-Solution: Allow defining paragraphs with lines that end in white space.
- Added the 'w' and 'a' flags in 'formatoptions'.
-Files: runtime/doc/change.txt, src/edit.c, src/misc1.c, src/normal.c,
- src/option.h, src/ops.c, src/proto/edit.pro, src/proto/ops.pro,
- src/vim.h
-
-Patch 6.1.143 (depends on 6.1.142)
-Problem: Auto formatting near the end of the file moves the cursor to a
- wrong position. In Insert mode some lines are made one char too
- narrow. When deleting a line undo might not always work properly.
-Solution: Don't always move to the end of the line in the last line. Don't
- position the cursor past the end of the line in Insert mode.
- After deleting a line save the cursor line for undo.
-Files: src/edit.c, src/ops.c, src/normal.c
-
-Patch 6.1.144
-Problem: Obtaining the size of a line in screen characters can be wrong.
- A pointer may wrap around zero.
-Solution: In win_linetabsize() check for a MAXCOL length argument. (Jim
- Dunleavy)
-Files: src/charset.c
-
-Patch 6.1.145
-Problem: GTK: Drag&drop with more than 3 files may cause a crash. (Mickael
- Marchand)
-Solution: Rewrite the code that parses the received list of files to be more
- robust.
-Files: src/charset.c, src/gui_gtk_x11.c
-
-Patch 6.1.146
-Problem: MS-Windows: When $HOME is constructed from $HOMEDRIVE and
- $HOMEPATH, it is not used for storing the _viminfo file. (Normal
- Diamond)
-Solution: Set $HOME with the value obtained from $HOMEDRIVE and $HOMEPATH.
-Files: src/misc1.c
-
-Patch 6.1.147 (extra)
-Problem: MS-Windows: When a dialog has no default button, pressing Enter
- ends it anyway and all buttons are selected.
-Solution: Don't end a dialog when there is no default button. Don't select
- all button when there is no default. (Vince Negri)
-Files: src/gui_w32.c
-
-Patch 6.1.148 (extra)
-Problem: MS-Windows: ACL is not properly supported.
-Solution: Add an access() replacement that also works for ACL. (Mike
- Williams)
-Files: runtime/doc/editing.txt, src/os_win32.c
-
-Patch 6.1.149 (extra)
-Problem: MS-Windows: Can't use diff mode from the file explorer.
-Solution: Add a "diff with Vim" context menu entry. (Dan Sharp)
-Files: GvimExt/gvimext.cpp, GvimExt/gvimext.h
-
-Patch 6.1.150
-Problem: OS/2, MS-Windows and MS-DOS: When 'shellslash' is set getcwd()
- still uses backslash. (Yegappan Lakshmanan)
-Solution: Adjust slashes in getcwd().
-Files: src/eval.c
-
-Patch 6.1.151 (extra)
-Problem: Win32: The NTFS substream isn't copied.
-Solution: Copy the substream when making a backup copy. (Muraoka Taro)
-Files: src/fileio.c, src/os_win32.c, src/proto/os_win32.pro
-
-Patch 6.1.152
-Problem: When $LANG is iso8859-1 translated menus are not used.
-Solution: Change iso8859 to iso_8859.
-Files: runtime/menu.vim
-
-Patch 6.1.153
-Problem: Searching in included files may search recursively when the path
- starts with "../". (Sven Berkvens-Matthijsse)
-Solution: Compare full file names, use inode/device when possible.
-Files: src/search.c
-
-Patch 6.1.154 (extra)
-Problem: DJGPP: "vim -h" leaves the cursor in a wrong position.
-Solution: Don't position the cursor using uninitialized variables. (Jim
- Dunleavy)
-Files: src/os_msdos.c
-
-Patch 6.1.155
-Problem: Win32: Cursor may sometimes disappear in Insert mode.
-Solution: Change "hor10" in 'guicursor' to "hor15". (Walter Briscoe)
-Files: src/option.c
-
-Patch 6.1.156
-Problem: Conversion between DBCS and UCS-2 isn't implemented cleanly.
-Solution: Clean up a few things.
-Files: src/mbyte.c, src/structs.h
-
-Patch 6.1.157
-Problem: 'hlsearch' highlights only the second comma in ",,,,," with
- "/,\@<=[^,]*". (Preben Guldberg)
-Solution: Also check for an empty match to start just after a previous
- match.
-Files: src/screen.c
-
-Patch 6.1.158
-Problem: "zs" and "ze" don't work correctly with ":set nowrap siso=1".
- (Preben Guldberg)
-Solution: Take 'siso' into account when computing the horizontal scroll
- position for "zs" and "ze".
-Files: src/normal.c
-
-Patch 6.1.159
-Problem: When expanding an abbreviation that includes a multi-byte
- character too many characters are deleted. (Andrey Urazov)
-Solution: Delete the abbreviation counting characters instead of bytes.
-Files: src/getchar.c
-
-Patch 6.1.160
-Problem: ":$read file.gz" doesn't work. (Preben Guldberg)
-Solution: Don't use the '[ mark after it has become invalid.
-Files: runtime/plugin/gzip.vim
-
-Patch 6.1.161 (depends on 6.1.158)
-Problem: Warning for signed/unsigned compare. Can set 'siso' to a negative
- value. (Mike Williams)
-Solution: Add a typecast. Add a check for 'siso' being negative.
-Files: src/normal.c, src/option.c
-
-Patch 6.1.162
-Problem: Python interface: Didn't initialize threads properly.
-Solution: Call PyEval_InitThreads() when starting up.
-Files: src/if_python.c
-
-Patch 6.1.163
-Problem: Win32: Can't compile with Python after 6.1.162.
-Solution: Dynamically load PyEval_InitThreads(). (Dan Sharp)
-Files: src/if_python.c
-
-Patch 6.1.164
-Problem: If 'modifiable' is off, converting to xxd fails and 'filetype' is
- changed to "xxd" anyway.
-Solution: Don't change 'filetype' when conversion failed.
-Files: runtime/menu.vim
-
-Patch 6.1.165
-Problem: Making changes in several lines and then a change in one of these
- lines that splits it in two or more lines, undo information was
- corrupted. May cause a crash. (Dave Fishburn)
-Solution: When skipping to save a line for undo because it was already
- saved, move it to become the last saved line, so that when the
- command changes the line count other saved lines are not involved.
-Files: src/undo.c
-
-Patch 6.1.166
-Problem: When 'autoindent' is set and mswin.vim has been sourced, pasting
- with CTRL-V just after auto-indenting removes the indent. (Shlomi
- Fish)
-Solution: First insert an "x" and delete it again, so that the auto-indent
- remains.
-Files: runtime/mswin.vim
-
-Patch 6.1.167
-Problem: When giving a negative argument to ":retab" strange things start
- happening. (Hans Ginzel)
-Solution: Check for a negative value.
-Files: src/ex_cmds.c
-
-Patch 6.1.168
-Problem: Pressing CTRL-C at the hit-enter prompt doesn't end the prompt.
-Solution: Make CTRL-C stop the hit-enter prompt.
-Files: src/message.c
-
-Patch 6.1.169
-Problem: bufexists() finds a buffer by using the name of a symbolic link to
- it, but bufnr() doesn't. (Yegappan Lakshmanan)
-Solution: When bufnr() can't find a buffer, try using the same method as
- bufexists().
-Files: src/eval.c
-
-Patch 6.1.170
-Problem: Using ":mksession" uses the default session file name, but "vim
- -S" doesn't. (Hans Ginzel)
-Solution: Use the default session file name if "-S" is the last command
- line argument or another option follows.
-Files: runtime/doc/starting.txt, src/main.c
-
-Patch 6.1.171
-Problem: When opening a line just above a closed fold with "O" and the
- comment leader is automatically inserted, the cursor is displayed
- in the first column. (Sung-Hyun Nam)
-Solution: Update the flag that indicates the cursor is in a closed fold.
-Files: src/misc1.c
-
-Patch 6.1.172
-Problem: Command line completion of ":tag /pat" does not show the same
- results as the tags the command actually finds. (Gilles Roy)
-Solution: Don't modify the pattern to make it a regexp.
-Files: src/ex_getln.c, src/tag.c
-
-Patch 6.1.173
-Problem: When using remote control to edit a position in a file and this
- file is the current buffer and it's modified, the window is split
- and the ":drop" command fails.
-Solution: Don't split the window, keep editing the same buffer.
- Use the ":drop" command in VisVim to avoid the problem there.
-Files: src/ex_cmds.c, src/ex_cmds2.c, src/proto/ex_cmds2.pro,
- VisVim/Commands.cpp
-
-Patch 6.1.174
-Problem: It is difficult to know in a script whether an option not only
- exists but really works.
-Solution: Add "exists('+option')".
-Files: runtime/doc/eval.txt, src/eval.c
-
-Patch 6.1.175
-Problem: When reading commands from a pipe and a CTRL-C is pressed, Vim
- will hang. (Piet Delport)
-Solution: Don't keep reading characters to clear typeahead when an interrupt
- was detected, stop when a single CTRL-C is read.
-Files: src/getchar.c, src/ui.c
-
-Patch 6.1.176
-Problem: When the stack limit is very big a false out-of-stack error may
- be detected.
-Solution: Add a check for overflow of the stack limit computation. (Jim
- Dunleavy)
-Files: src/os_unix.c
-
-Patch 6.1.177 (depends on 6.1.141)
-Problem: ":wincmd" does not allow a following command. (Gary Johnson)
-Solution: Check for a following " | cmd". Also give an error for trailing
- characters.
-Files: src/ex_docmd.c
-
-Patch 6.1.178
-Problem: When 'expandtab' is set "r<C-V><Tab>" still expands the Tab.
- (Bruce deVisser)
-Solution: Replace with a literal Tab.
-Files: src/normal.c
-
-Patch 6.1.179 (depends on 6.1.091)
-Problem: When using X11R5 XIMPreserveState is undefined. (Albert Chin)
-Solution: Include the missing definitions.
-Files: src/mbyte.c
-
-Patch 6.1.180
-Problem: Use of the GUI code for forking is inconsistent.
-Solution: Define MAY_FORK and use it for later #ifdefs. (Ben Fowlwer)
-Files: src/gui.c
-
-Patch 6.1.181
-Problem: If the terminal doesn't wrap from the last char in a line to the
- next line, the last column is blanked out. (Peter Karp)
-Solution: Don't output a space to mark the wrap, but the same character
- again.
-Files: src/screen.c
-
-Patch 6.1.182 (depends on 6.1.142)
-Problem: It is not possible to auto-format comments only. (Moshe Kaminsky)
-Solution: When the 'a' and 'c' flags are in 'formatoptions' only auto-format
- comments.
-Files: runtime/doc/change.txt, src/edit.c
-
-Patch 6.1.183
-Problem: When 'fencs' is empty and 'enc' is utf-8, reading a file with
- illegal bytes gives "CONVERSION ERROR" even though no conversion
- is done. 'readonly' is set, even though writing the file results
- in an unmodified file.
-Solution: For this specific error use "ILLEGAL BYTE" and don't set
- 'readonly'.
-Files: src/fileio.c
-
-Patch 6.1.184 (extra)
-Problem: The extra mouse buttons found on some mice don't work.
-Solution: Support two extra buttons for MS-Windows. (Michael Geddes)
-Files: runtime/doc/term.txt, src/edit.c, src/ex_getln.c, src/gui.c,
- src/gui_w32.c, src/gui_w48.c, src/keymap.h, src/message.c,
- src/misc1.c, src/misc2.c, src/normal.c, src/vim.h
-
-Patch 6.1.185 (depends on 6.1.182)
-Problem: Can't compile without +comments feature.
-Solution: Add #ifdef FEAT_COMMENTS. (Christian J. Robinson)
-Files: src/edit.c
-
-Patch 6.1.186 (depends on 6.1.177)
-Problem: ":wincmd" does not allow a following comment. (Aric Blumer)
-Solution: Check for a following double quote.
-Files: src/ex_docmd.c
-
-Patch 6.1.187
-Problem: Using ":doarg" with 'hidden' set and the current file is the only
- argument and was modified gives an error message. (Preben
- Guldberg)
-Solution: Don't try re-editing the same file.
-Files: src/ex_cmds2.c
-
-Patch 6.1.188 (depends on 6.1.173)
-Problem: Unused variable in the small version.
-Solution: Move the declaration for "p" inside #ifdef FEAT_LISTCMDS.
-Files: src/ex_cmds2.c
-
-Patch 6.1.189
-Problem: inputdialog() doesn't work when 'c' is in 'guioptions'. (Aric
- Blumer)
-Solution: Fall back to the input() function in this situation.
-Files: src/eval.c
-
-Patch 6.1.190 (extra)
-Problem: VMS: doesn't build with GTK GUI. Various other problems.
-Solution: Fix building for GTK. Improved Perl, Python and TCL support.
- Improved VMS documentation. (Zoltan Arpadffy)
- Added Vimtutor for VMS (T. R. Wyant)
-Files: runtime/doc/os_vms.txt, src/INSTALLvms.txt, src/gui_gtk_f.h,
- src/if_tcl.c, src/main.c, src/gui_gtk_vms.h, src/Make_vms.mms,
- src/os_vms.opt, src/proto/if_tcl.pro, vimtutor.com,
- src/testdir/Make_vms.mms
-
-Patch 6.1.191
-Problem: When using "vim -s script" and redirecting the output, the delay
- for the "Output is not to a terminal" warning slows Vim down too
- much.
-Solution: Don't delay when reading commands from a script.
-Files: src/main.c
-
-Patch 6.1.192
-Problem: ":diffsplit" doesn't add "hor" to 'scrollopt'. (Gary Johnson)
-Solution: Add "hor" to 'scrollopt' each time ":diffsplit" is used.
-Files: src/diff.c, src/main.c
-
-Patch 6.1.193
-Problem: Crash in in_id_list() for an item with a "containedin" list. (Dave
- Fishburn)
-Solution: Check for a negative syntax id, used for keywords.
-Files: src/syntax.c
-
-Patch 6.1.194
-Problem: When "t_ti" is set but it doesn't cause swapping terminal pages,
- "ZZ" may cause the shell prompt to appear on top of the file-write
- message.
-Solution: Scroll the text up in the Vim page before swapping to the terminal
- page. (Michael Schroeder)
-Files: src/os_unix.c
-
-Patch 6.1.195
-Problem: The quickfix and preview windows always keep their height, while
- other windows can't fix their height.
-Solution: Add the 'winfixheight' option, so that a fixed height can be
- specified for any window. Also fix that the wildmenu may resize a
- one-line window to a two-line window if 'ls' is zero.
-Files: runtime/doc/options.txt, runtime/optwin.vim, src/ex_cmds.c,
- src/ex_getln.c, src/globals.h, src/option.c, src/quickfix.c,
- src/screen.c, src/structs.h, src/window.c
-
-Patch 6.1.196 (depends on 6.1.084)
-Problem: On Mac OS X 10.2 generating osdef.h fails.
-Solution: Add -no-cpp-precomp to avoid using precompiled header files, which
- disables printing the search path. (Ben Fowler)
-Files: src/auto/configure, src/configure.in
-
-Patch 6.1.197
-Problem: ":help <C-V><C-\><C-V><C-N>" (resulting in <1c><0e>) gives an
- error message. (Servatius Brandt)
-Solution: Double the backslash in "CTRL-\".
-Files: src/ex_cmds.c
-
-Patch 6.1.198 (extra) (depends on 6.1.076)
-Problem: Mac OS X: Dialogues don't work.
-Solution: Fix a crashing problem for some GUI dialogues. Fix a problem when
- saving to a new file from the GUI. (Peter Cucka)
-Files: src/feature.h, src/gui_mac.c
-
-Patch 6.1.199
-Problem: 'guifontwide' doesn't work on Win32.
-Solution: Output each wide character separately. (Michael Geddes)
-Files: src/gui.c
-
-Patch 6.1.200
-Problem: ":syn sync fromstart" is not skipped after ":if 0". This can make
- syntax highlighting very slow.
-Solution: Check "eap->skip" appropriately. (Rob West)
-Files: src/syntax.c
-
-Patch 6.1.201 (depends on 6.1.192)
-Problem: Warning for illegal pointer combination. (Zoltan Arpadffy)
-Solution: Add a typecast.
-Files: src/diff.c
-
-Patch 6.1.202 (extra)(depends on 6.1.148)
-Problem: Win32: filewritable() doesn't work properly on directories.
-Solution: fix filewritable(). (Mike Williams)
-Files: src/os_win32.c
-
-Patch 6.1.203
-Problem: ":%s/~//" causes a crash after ":%s/x//". (Gary Holloway)
-Solution: Avoid reading past the end of a line when "~" is empty.
-Files: src/regexp.c
-
-Patch 6.1.204 (depends on 6.1.129)
-Problem: Warning for an illegal pointer on Solaris.
-Solution: Add a typecast. (Derek Wyatt)
-Files: src/misc2.c
-
-Patch 6.1.205
-Problem: The gzip plugin changes the alternate file when editing a
- compressed file. (Oliver Fuchs)
-Solution: Temporarily remove the 'a' and 'A' flags from 'cpo'.
-Files: runtime/plugin/gzip.vim
-
-Patch 6.1.206
-Problem: The script generated with ":mksession" doesn't work properly when
- some commands are mapped.
-Solution: Use ":normal!" instead of ":normal". And use ":wincmd" where
- possible. (Muraoka Taro)
-Files: src/ex_docmd.c, src/fold.c
-
-Patch 6.1.207
-Problem: Indenting a Java file hangs below a line with a comment after a
- command.
-Solution: Break out of a loop. (Andre Pang)
- Also line up } with matching {.
-Files: runtime/indent/java.vim
-
-Patch 6.1.208
-Problem: Can't use the buffer number from the Python interface.
-Solution: Add buffer.number. (Michal Vitecek)
-Files: src/if_python.c
-
-Patch 6.1.209
-Problem: Printing doesn't work on Mac OS classic.
-Solution: Use a ":" for path separator when opening the resource file. (Axel
- Kielhorn)
-Files: src/ex_cmds2.c
-
-Patch 6.1.210
-Problem: When there is an iconv() conversion error when reading a file
- there can be an error the next time iconv() is used.
-Solution: Reset the state of the iconv() descriptor. (Yasuhiro Matsumoto)
-Files: src/fileio.c
-
-Patch 6.1.211
-Problem: The message "use ! to override" is confusing.
-Solution: Make it "add ! to override".
-Files: src/buffer.c, src/eval.c, src/ex_docmd.c, src/fileio.c,
- src/globals.h
-
-Patch 6.1.212
-Problem: When Vim was started with "-R" ":new" creates a buffer
- 'noreadonly' while ":enew" has 'readonly' set. (Preben Guldberg)
-Solution: Don't set 'readonly in a new empty buffer for ":enew".
-Files: src/ex_docmd.c
-
-Patch 6.1.213
-Problem: Using CTRL-W H may cause a big gap to appear below the last
- window. (Aric Blumer)
-Solution: Don't set the window height when there is a vertical split.
- (Yasuhiro Matsumoto)
-Files: src/window.c
-
-Patch 6.1.214
-Problem: When installing Vim and the runtime files were checked out from
- CVS the CVS directories will also be installed.
-Solution: Avoid installing the CVS dirs and their contents.
-Files: src/Makefile
-
-Patch 6.1.215
-Problem: Win32: ":pwd" uses backslashes even when 'shellslash' is set.
- (Xiangjiang Ma)
-Solution: Adjust backslashes before printing the message.
-Files: src/ex_docmd.c
-
-Patch 6.1.216
-Problem: When dynamically loading the iconv library, the error codes may be
- confused.
-Solution: Use specific error codes for iconv and redefine them for dynamic
- loading. (Yasuhiro Matsumoto)
-Files: src/fileio.c, src/mbyte.c, src/vim.h
-
-Patch 6.1.217
-Problem: When sourcing the same Vim script using a different name (symbolic
- link or MS-Windows 8.3 name) it is listed twice with
- ":scriptnames". (Tony Mechelynck)
-Solution: Turn the script name into a full path before using it. On Unix
- compare inode/device numbers.
-Files: src/ex_cmds2.c
-
-Patch 6.1.218
-Problem: No error message for using the function argument "5+". (Servatius
- Brandt)
-Solution: Give an error message if a function or variable is expected but is
- not found.
-Files: src/eval.c
-
-Patch 6.1.219
-Problem: When using ":amenu :b 1<CR>" with a Visual selection and
- 'insertmode' is set, Vim does not return to Insert mode. (Mickael
- Marchand)
-Solution: Add the command CTRL-\ CTRL-G that goes to Insert mode if
- 'insertmode' is set and to Normal mode otherwise. Append this to
- menus defined with ":amenu".
-Files: src/edit.c, src/ex_getln.c, src/normal.c
-
-Patch 6.1.220
-Problem: When using a BufReadPost autocommand that changes the line count,
- e.g., "$-1join", reloading a file that was changed outside Vim
- does not work properly. (Alan G Isaac)
-Solution: Make the buffer empty before reading the new version of the file.
- Save the lines in a dummy buffer, so that they can be put back
- when reading the file fails.
-Files: src/buffer.c, src/ex_cmds.c, src/fileio.c, src/globals.h,
- src/proto/buffer.pro
-
-Patch 6.1.221
-Problem: Changing case may not work properly, depending on the current
- locale.
-Solution: Add the 'casemap' option to let the user chose how changing case
- is to be done.
- Also fix lowering case when an UTF-8 character doesn't keep the
- same byte length.
-Files: runtime/doc/options.txt, src/ascii.h, src/auto/configure,
- src/buffer.c, src/charset.c, src/config.h.in, src/configure.in,
- src/diff.c, src/edit.c, src/eval.c, src/ex_cmds2.c,
- src/ex_docmd.c, src/ex_getln.c, src/fileio.c, src/gui_amiga.c
- src/gui_mac.c, src/gui_photon.c, src/gui_w48.c, src/gui_beos.cc,
- src/macros.h, src/main.c, src/mbyte.c, src/menu.c, src/message.c,
- src/misc1.c, src/misc2.c, src/option.c, src/os_msdos.c,
- src/os_mswin.c, src/proto/charset.pro, src/regexp.c, src/option.h,
- src/syntax.c
-
-Patch 6.1.222 (depends on 6.1.219)
-Problem: Patch 6.1.219 was incomplete.
-Solution: Add the changes for ":amenu".
-Files: src/menu.c
-
-Patch 6.1.223 (extra)
-Problem: Win32: When IME is activated 'iminsert' is set, but it might never
- be reset when IME is disabled. (Muraoka Taro)
- All systems: 'iminsert' is set to 2 when leaving Insert mode, even
- when langmap is being used. (Peter Valach)
-Solution: Don't set "b_p_iminsert" in _OnImeNotify(). (Muraoka Taro)
- Don't store the status of the input method in 'iminsert' when
- 'iminsert' is one. Also for editing the command line and for
- arguments to Normal mode commands.
-Files: src/edit.c, src/ex_getln.c, src/gui_w32.c, src/normal.c
-
-Patch 6.1.224
-Problem: "expand('$VAR')" returns an empty string when the expanded $VAR
- is not an existing file. (Aric Blumer)
-Solution: Included non-existing files, as documented.
-Files: src/eval.c
-
-Patch 6.1.225
-Problem: Using <C-O><C-^> in Insert mode has a delay when starting "vim -u
- NONE" and ":set nocp hidden". (Emmanuel) do_ecmd() uses
- fileinfo(), the redraw is done after a delay to give the user time
- to read the message.
-Solution: Put the message from fileio() in "keep_msg", so that the redraw is
- done before the delay (still needed to avoid the mode message
- overwrites the fileinfo() message).
-Files: src/buffer.c
-
-Patch 6.1.226
-Problem: Using ":debug" with a ":normal" command may cause a hang. (Colin
- Keith)
-Solution: Save the typeahead buffer when obtaining a debug command.
-Files: src/ex_cmds2.c, src/getchar.c, src/proto/getchar.pro
-
-Patch 6.1.227
-Problem: It is possible to use a variable name "asdf:asdf" and ":let j:asdf
- = 5" does not give an error message. (Mikolaj Machowski)
-Solution: Check for a ":" inside the variable name.
-Files: src/eval.c
-
-Patch 6.1.228 (extra)
-Problem: Win32: The special output function for Hangul is used too often,
- causing special handling for other situations to be skipped.
- bInComposition is always FALSE, causing ImeGetTempComposition()
- always to return NULL.
-Solution: Remove HanExtTextOut(). Delete the dead code around
- bInComposition and ImeGetTempComposition().
-Files: src/gui_w16.c, src/gui_w32.c, src/gui_w48.c
-
-Patch 6.1.229
-Problem: Win32: Conversion to/from often used codepages requires the iconv
- library, which is not always available.
-Solution: Use standard MS-Windows functions for the conversion when
- possible. (mostly by Glenn Maynard)
- Also fixes missing declaration for patch 6.1.220.
-Files: src/fileio.c
-
-Patch 6.1.230 (extra)
-Problem: Win16: building doesn't work.
-Solution: Exclude the XBUTTON handling. (Vince Negri)
-Files: src/gui_w48.c
-
-Patch 6.1.231
-Problem: Double clicking with the mouse to select a word does not work for
- multi-byte characters.
-Solution: Use vim_iswordc() instead of vim_isIDc(). This means 'iskeyword'
- is used instead of 'isident'. Also fix that mixing ASCII with
- multi-byte word characters doesn't work, the mouse class for
- punctuation and word characters was mixed up.
-Files: src/normal.c
-
-Patch 6.1.232 (depends on 6.1.226)
-Problem: Using ex_normal_busy while it might not be available. (Axel
- Kielhorn)
-Solution: Only use ex_normal_busy when FEAT_EX_EXTRA is defined.
-Files: src/ex_cmds2.c
-
-Patch 6.1.233
-Problem: ":help expr-||" does not work.
-Solution: Don't use the '|' as a command separator
-Files: src/ex_cmds.c
-
-Patch 6.1.234 (depends on 6.1.217)
-Problem: Get a warning for using a negative value for st_dev.
-Solution: Don't assign a negative value to st_dev.
-Files: src/ex_cmds2.c
-
-Patch 6.1.235 (depends on 6.1.223)
-Problem: 'iminsert' is changed from 1 to 2 when leaving Insert mode. (Peter
- Valach)
-Solution: Check "State" before resetting it to NORMAL.
-Files: src/edit.c
-
-Patch 6.1.236
-Problem: Memory leaks when appending lines for ":diffget" or ":diffput" and
- when reloading a changed buffer.
-Solution: Free a line after calling ml_append().
-Files: src/diff.c, src/fileio.c
-
-Patch 6.1.237
-Problem: Putting in Visual block mode does not work correctly when "$" was
- used or when the first line is short. (Christian Michon)
-Solution: First delete the selected text and then put the new text. Save
- and restore registers as necessary.
-Files: src/globals.h, src/normal.c, src/ops.c, src/proto/ops.pro,
- src/vim.h
-
-Patch 6.1.238 (extra)
-Problem: Win32: The "icon=" argument for the ":menu" command does not
- search for the bitmap file.
-Solution: Expand environment variables and search for the bitmap file.
- (Vince Negri)
- Make it consistent, use the same mechanism for X11 and GTK.
-Files: src/gui.c src/gui_gtk.c, src/gui_w32.c, src/gui_x11.c,
- src/proto/gui.pro
-
-Patch 6.1.239
-Problem: Giving an error for missing :endif or :endwhile when being
- interrupted.
-Solution: Don't give these messages when interrupted.
-Files: src/ex_docmd.c, src/os_unix.c
-
-Patch 6.1.240 (extra)
-Problem: Win32 with BCC 5: CPU may be defined in the environment, which
- causes a wrong argument for the compiler. (Walter Briscoe)
-Solution: Use CPUNR instead of CPU.
-Files: src/Make_bc5.mak
-
-Patch 6.1.241
-Problem: Something goes wrong when drawing or undrawing the cursor.
-Solution: Remember when the cursor invalid in a better way.
-Files: src/gui.c
-
-Patch 6.1.242
-Problem: When pasting a large number of lines on the command line it is not
- possible to interrupt. (Jean Jordaan)
-Solution: Check for an interrupt after each pasted line.
-Files: src/ops.c
-
-Patch 6.1.243 (extra)
-Problem: Win32: When the OLE version is started and wasn't registered, a
- message pops up to suggest registering, even when this isn't
- possible (when the registry is not writable).
-Solution: Check if registering is possible before asking whether it should
- be done. (Walter Briscoe)
- Also avoid restarting Vim after registering.
-Files: src/if_ole.cpp
-
-Patch 6.1.244
-Problem: Patch 6.1.237 was missing the diff for vim.h. (Igor Goldenberg)
-Solution: Include it here.
-Files: src/vim.h
-
-Patch 6.1.245
-Problem: Comparing with ignored case does not work properly for Unicode
- with a locale where case folding an ASCII character results in a
- multi-byte character. (Glenn Maynard)
-Solution: Handle ignore-case compare for Unicode differently.
-Files: src/mbyte.c
-
-Patch 6.1.246
-Problem: ":blast" goes to the first buffer if the last one is unlisted.
- (Andrew Stryker)
-Solution: From the last buffer search backwards for the first listed buffer
- instead of forwards.
-Files: src/ex_docmd.c
-
-Patch 6.1.247
-Problem: ACL support doesn't always work properly.
-Solution: Add a configure argument to disable ACL "--disable-acl". (Thierry
- Vignaud)
-Files: src/auto/configure, src/configure.in
-
-Patch 6.1.248
-Problem: Typing 'q' at the more-prompt for ":let" does not quit the
- listing. (Hari Krishna Dara)
-Solution: Quit the listing when got_int is set.
-Files: src/eval.c
-
-Patch 6.1.249
-Problem: Can't expand a path on the command line if it includes a "|" as a
- trail byte of a multi-byte character.
-Solution: Check for multi-byte characters. (Yasuhiro Matsumoto)
-Files: src/ex_docmd.c
-
-Patch 6.1.250
-Problem: When changing the value of 'lines' inside the expression set with
- 'diffexpr' Vim might crash. (Dave Fishburn)
-Solution: Don't allow changing the screen size while updating the screen.
-Files: src/globals.h, src/option.c, src/screen.c
-
-Patch 6.1.251
-Problem: Can't use completion for ":lcd" and ":lchdir" like ":cd".
-Solution: Expand directory names for these commands. (Servatius Brandt)
-Files: src/ex_docmd.c
-
-Patch 6.1.252
-Problem: "vi}" does not include a line break when the "}" is at the start
- of a following line. (Kamil Burzynski)
-Solution: Include the line break.
-Files: src/search.c
-
-Patch 6.1.253 (extra)
-Problem: Win32 with Cygwin: Changes the path of arguments in a wrong way.
- (Xiangjiang Ma)
-Solution: Don't use cygwin_conv_to_posix_path() for the Win32 version.
- Update the Cygwin makefile to support more features. (Dan Sharp)
-Files: src/Make_cyg.mak, src/if_ole.cpp, src/main.c
-
-Patch 6.1.254
-Problem: exists("foo{bar}") does not work. ':unlet v{"a"}r' does not work.
- ":let v{a}r1 v{a}r2" does not work. ":func F{(1)}" does not work.
- ":delfunc F{" does not give an error message. ':delfunc F{"F"}'
- does not work.
-Solution: Support magic braces for the exists() argument. (Vince Negri)
- Check for trailing comments explicitly for ":unlet". Add support
- for magic braces in further arguments of ":let". Look for a
- parenthesis only after the function name. (Servatius Brandt)
- Also expand magic braces for "exists('*expr')". Give an error
- message for an invalid ":delfunc" argument. Allow quotes in the
- ":delfunc" argument.
-Files: src/eval.c, src/ex_cmds.h, src/ex_docmd.c
-
-Patch 6.1.255 (depends on 6.1.254)
-Problem: Crash when loading menu.vim a second time. (Christian Robinson)
- ":unlet garbage foo" tries unletting "foo" after an error message.
- (Servatius Brandt)
- Very long function arguments cause very long messages when
- 'verbose' is 14 or higher.
-Solution: Avoid reading from uninitialized memory.
- Break out of a loop after an invalid argument for ":unlet".
- Truncate long function arguments to 80 characters.
-Files: src/eval.c
-
-Patch 6.1.256 (depends on 6.1.255)
-Problem: Defining a function after ":if 0" could still cause an error
- message for an existing function.
- Leaking memory when there are trailing characters for ":delfunc".
-Solution: Check the "skip" flag. Free the memory. (Servatius Brandt)
-Files: src/eval.c
-
-Patch 6.1.257
-Problem: ":cwindow" always sets the previous window to the last but one
- window. (Benji Fisher)
-Solution: Set the previous window properly.
-Files: src/globals.c, src/quickfix.c, src/window.c
-
-Patch 6.1.258
-Problem: Buffers menu doesn't work properly for multibyte buffer names.
-Solution: Use a pattern to get the left and right part of the name.
- (Yasuhiro Matsumoto)
-Files: runtime/menu.vim
-
-Patch 6.1.259 (extra)
-Problem: Mac: with 'patchmode' is used filenames are truncated.
-Solution: Increase the BASENAMELEN for Mac OS X. (Ed Ralston)
-Files: src/os_mac.h
-
-Patch 6.1.260 (depends on 6.1.104)
-Problem: GCC 3.2 still seems to have an optimizer problem. (Zvi Har'El)
-Solution: Use the same configure check as used for GCC 3.1.
-Files: src/auto/configure, src/configure.in
-
-Patch 6.1.261
-Problem: When deleting a line in a buffer which is not the current buffer,
- using the Perl interface Delete(), the cursor in the current
- window may move. (Chris Houser)
-Solution: Don't adjust the cursor position when changing another buffer.
-Files: src/if_perl.xs
-
-Patch 6.1.262
-Problem: When jumping over folds with "z[", "zj" and "zk" the previous
- position is not remembered. (Hari Krishna Dara)
-Solution: Set the previous context mark before jumping.
-Files: src/fold.c
-
-Patch 6.1.263
-Problem: When typing a multi-byte character that triggers an abbreviation
- it is not inserted properly.
-Solution: Handle adding the typed multi-byte character. (Yasuhiro Matsumoto)
-Files: src/getchar.c
-
-Patch 6.1.264 (depends on patch 6.1.254)
-Problem: exists() does not work for built-in functions. (Steve Wall)
-Solution: Don't check for the function name to start with a capital.
-Files: src/eval.c
-
-Patch 6.1.265
-Problem: libcall() can be used in 'foldexpr' to call any system function.
- rename(), delete() and remote_send() can also be used in
- 'foldexpr'. These are security problems. (Georgi Guninski)
-Solution: Don't allow using libcall(), rename(), delete(), remote_send() and
- similar functions in the sandbox.
-Files: src/eval.c
-
-Patch 6.1.266 (depends on 6.1.265)
-Problem: Win32: compile error in eval.c. (Bill McCarthy)
-Solution: Move a variable declaration.
-Files: src/eval.c
-
-Patch 6.1.267
-Problem: Using "p" to paste into a Visual selected area may cause a crash.
-Solution: Allocate enough memory for saving the register contents. (Muraoka
- Taro)
-Files: src/ops.c
-
-Patch 6.1.268
-Problem: When triggering an abbreviation with a multi-byte character, this
- character is not correctly inserted after expanding the
- abbreviation. (Taro Muraoka)
-Solution: Add ABBR_OFF to all characters above 0xff.
-Files: src/edit.c, src/ex_getln.c, src/getchar.c
-
-Patch 6.1.269
-Problem: After using input() text written with ":redir" gets extra indent.
- (David Fishburn)
-Solution: Restore msg_col after using input().
-Files: src/ex_getln.c
-
-Patch 6.1.270 (depends on 6.1.260)
-Problem: GCC 3.2.1 still seems to have an optimizer problem.
-Solution: Use the same configure check as used for GCC 3.1.
-Files: src/auto/configure, src/configure.in
-
-Patch 6.1.271
-Problem: When compiling without the +syntax feature there are errors.
-Solution: Don't use some code for syntax highlighting. (Roger Cornelius)
- Make test 45 work without syntax highlighting.
- Also fix an error in a pattern matching: "\%(" was not supported.
-Files: src/ex_cmds2.c, src/regexp.c, src/testdir/test45.in
-
-Patch 6.1.272
-Problem: After using ":set define<" a crash may happen. (Christian Robinson)
-Solution: Make a copy of the option value in allocated memory.
-Files: src/option.c
-
-Patch 6.1.273
-Problem: When the cursor doesn't blink, redrawing an exposed area may hide
- the cursor.
-Solution: Always draw the cursor, also when it didn't move. (Muraoka Taro)
-Files: src/gui.c
-
-Patch 6.1.274 (depends on 6.1.210)
-Problem: Resetting the iconv() state after each error is wrong for an
- incomplete sequence.
-Solution: Don't reset the iconv() state.
-Files: src/fileio.c
-
-Patch 6.1.275
-Problem: When using "v" in a startup script, get warning message that
- terminal cannot highlight. (Charles Campbell)
-Solution: Only give the message after the terminal has been initialized.
-Files: src/normal.c
-
-Patch 6.1.276
-Problem: "gvim --remote file" doesn't prompt for an encryption key.
-Solution: The further characters the client sends to the server are used.
- Added inputsave() and inputrestore() to allow prompting the
- user directly and not using typeahead.
- Also fix possible memory leak for ":normal".
-Files: src/eval.c, src/ex_cmds2.c, src/ex_docmd.c, src/getchar.c,
- src/main.c, src/proto/getchar.pro, src/proto/ui.pro,
- src/runtime/doc/eval.txt, src/structs.h, src/ui.c, src/vim.h
-
-Patch 6.1.277 (depends on 6.1.276)
-Problem: Compilation error when building with small features.
-Solution: Define trash_input_buf() when needed. (Kelvin Lee)
-Files: src/ui.c
-
-Patch 6.1.278
-Problem: When using signs the line number of a closed fold doesn't line up
- with the other line numbers. (Kamil Burzynski)
-Solution: Insert two spaces for the sign column.
-Files: src/screen.c
-
-Patch 6.1.279
-Problem: The prototype for smsg() and smsg_attr() do not match the function
- definition. This may cause trouble for some compilers. (Nix)
-Solution: Use va_list for systems that have stdarg.h. Use "int" instead of
- "void" for the return type.
-Files: src/auto/configure, src/config.h.in, src/configure.in,
- src/proto.h, src/message.c
-
-Patch 6.1.280
-Problem: It's possible to use an argument "firstline" or "lastline" for a
- function but using "a:firstline" or "a:lastline" in the function
- won't work. (Benji Fisher)
-Solution: Give an error message for these arguments.
- Also avoid that the following function body causes a whole row of
- errors, skip over it after an error in the first line.
-Files: src/eval.c
-
-Patch 6.1.281
-Problem: In Insert mode CTRL-X CTRL-G leaves the cursor after the ruler.
-Solution: Set the cursor position before waiting for the argument of CTRL-G.
- (Yasuhiro Matsumoto)
-Files: src/edit.c
-
-Patch 6.1.282
-Problem: Elvis uses "se" in a modeline, Vim doesn't recognize this.
-Solution: Also accept "se " where "set " is accepted in a modeline.
- (Yasuhiro Matsumoto)
-Files: src/buffer.c
-
-Patch 6.1.283
-Problem: For ":sign" the icon file name cannot contain a space.
-Solution: Handle backslashes in the file name. (Yasuhiro Matsumoto)
-Files: src/ex_cmds.c
-
-Patch 6.1.284
-Problem: On Solaris there is a warning for "struct utimbuf".
-Solution: Move including "utime.h" to outside the function. (Derek Wyatt)
-Files: src/fileio.c
-
-Patch 6.1.285
-Problem: Can't wipe out a buffer with 'bufhide' option.
-Solution: Add "wipe" value to 'bufhide'. (Yegappan Lakshmanan)
-Files: runtime/doc/options.txt, src/buffer.c, src/option.c,
- src/quickfix.c
-
-Patch 6.1.286
-Problem: 'showbreak' cannot contain multi-byte characters.
-Solution: Allow using all printable characters for 'showbreak'.
-Files: src/charset.c, src/move.c, src/option.c
-
-Patch 6.1.287 (depends on 6.1.285)
-Problem: Effect of "delete" and "wipe" in 'bufhide' were mixed up.
-Solution: Wipe out when wiping out is asked for.
-Files: src/buffer.c
-
-Patch 6.1.288
-Problem: ":silent function F" hangs. (Hari Krishna Dara)
-Solution: Don't use msg_col, it is not incremented when using ":silent".
- Also made the function output look a bit better. Don't translate
- "function".
-Files: src/eval.c
-
-Patch 6.1.289 (depends on 6.1.278)
-Problem: Compiler warning for pointer. (Axel Kielhorn)
-Solution: Add a typecast for " ".
-Files: src/screen.c
-
-Patch 6.1.290 (extra)
-Problem: Truncating long text for message box may break multi-byte
- character.
-Solution: Adjust to start of multi-byte character. (Yasuhiro Matsumoto)
-Files: src/os_mswin.c
-
-Patch 6.1.291 (extra)
-Problem: Win32: CTRL-@ doesn't work. Don't even get a message for it.
-Solution: Recognize the keycode for CTRL-@. (Yasuhiro Matsumoto)
-Files: src/gui_w48.c
-
-Patch 6.1.292 (extra, depends on 6.1.253)
-Problem: Win32: Can't compile with new MingW compiler.
- Borland 5 makefile doesn't generate pathdef.c.
-Solution: Remove -wwide-multiply argument. (Rene de Zwart)
- Various fixes for other problems in Win32 makefiles. (Dan Sharp)
-Files: src/Make_bc5.mak, src/Make_cyg.mak, src/Make_ming.mak,
- src/Make_mvc.mak
-
-Patch 6.1.293
-Problem: byte2line() returns a wrong result for some values.
-Solution: Change ">=" to ">" in ml_find_line_or_offset(). (Bradford C Smith)
- Add one to the line number when at the end of a block.
-Files: src/memline.c
-
-Patch 6.1.294
-Problem: Can't include a multi-byte character in a string by its hex value.
- (Benji Fisher)
-Solution: Add "\u....": a character specified with up to four hex numbers
- and stored according to the value of 'encoding'.
-Files: src/eval.c
-
-Patch 6.1.295 (extra)
-Problem: Processing the cs.po file generates an error. (Rahul Agrawal)
-Solution: Fix the printf format characters in the translation.
-Files: src/po/cs.po
-
-Patch 6.1.296
-Problem: Win32: When cancelling the font dialog 'guifont' remains set to
- "*".
-Solution: Restore the old value of 'guifont' (Yasuhiro Matsumoto)
-Files: src/option.c
-
-Patch 6.1.297
-Problem: "make test" fails in test6 in an UTF-8 environment. (Benji Fisher)
-Solution: Before executing the BufReadPost autocommands save the current
- fileencoding, so that the file isn't marked changed.
-Files: src/fileio.c
-
-Patch 6.1.298
-Problem: When using signs and the first line of a closed fold has a sign
- it can be redrawn as if the fold was open. (Kamil Burzynski)
-Solution: Don't redraw a sign inside a closed fold.
-Files: src/screen.c
-
-Patch 6.1.299
-Problem: ":edit +set\ ro file" doesn't work.
-Solution: Halve the number of backslashes in the "+cmd" argument.
-Files: src/ex_docmd.c
-
-Patch 6.1.300 (extra)
-Problem: Handling of ETO_IGNORELANGUAGE is confusing.
-Solution: Clean up the handling of ETO_IGNORELANGUAGE. (Glenn Maynard)
-Files: src/gui_w32.c
-
-Patch 6.1.301 (extra)
-Problem: French translation of file-save dialog doesn't show file name.
-Solution: Insert a star in the printf string. (Francois Terrot)
-Files: src/po/fr.po
-
-Patch 6.1.302
-Problem: Counting lines of the Visual area is incorrect for closed folds.
- (Mikolaj Machowski)
-Solution: Correct the start and end for the closed fold.
-Files: src/normal.c
-
-Patch 6.1.303 (extra)
-Problem: The Top/Bottom/All text does not always fit in the ruler when
- translated to Japanese. Problem with a character being wider when
- in a bold font.
-Solution: Use ETO_PDY to specify the width of each character. (Yasuhiro
- Matsumoto)
-Files: src/gui_w32.c
-
-Patch 6.1.304 (extra, depends on 6.1.292)
-Problem: Win32: Postscript is always enabled in the MingW Makefile.
- Pathdef.c isn't generated properly with Make_bc5.mak. (Yasuhiro
- Matsumoto)
-Solution: Change an ifdef to an ifeq. (Madoka Machitani)
- Use the Borland make redirection to generate pathdef.c. (Maurice
- Barnum)
-Files: src/Make_bc5.mak, src/Make_ming.mak
-
-Patch 6.1.305
-Problem: When 'verbose' is 14 or higher, a function call may cause reading
- uninitialized data. (Walter Briscoe)
-Solution: Check for end-of-string in trunc_string().
-Files: src/message.c
-
-Patch 6.1.306
-Problem: The AIX VisualAge cc compiler doesn't define __STDC__.
-Solution: Use __EXTENDED__ like __STDC__. (Jess Thrysoee)
-Files: src/os_unix.h
-
-Patch 6.1.307
-Problem: When a double-byte character has an illegal tail byte the display
- is messed up. (Yasuhiro Matsumoto)
-Solution: Draw "XX" instead of the wrong character.
-Files: src/screen.c
-
-Patch 6.1.308
-Problem: Can't reset the Visual mode returned by visualmode().
-Solution: Use an optional argument to visualmode(). (Charles Campbell)
-Files: runtime/doc/eval.txt, src/eval.c, src/normal.c,
- src/structs.h
-
-Patch 6.1.309
-Problem: The tutor doesn't select German if the locale name is
- "German_Germany.1252". (Joachim Hofmann)
-Solution: Check for "German" in the locale name. Also check for
- ".ge". And include the German and Greek tutors.
-Files: runtime/tutor/tutor.de, runtime/tutor/tutor.vim,
- runtime/tutor/tutor.gr, runtime/tutor/tutor.gr.cp737
-
-Patch 6.1.310 (depends on 6.1.307)
-Problem: All double-byte characters are displayed as "XX".
-Solution: Use ">= 32" instead of "< 32". (Yasuhiro Matsumoto)
-Files: src/screen.c
-
-Patch 6.1.311 (extra)
-Problem: VMS: path in window title doesn't include necessary separator.
- file version doesn't always work properly with Unix.
- Crashes because of memory overwrite in GUI.
- Didn't always handle files with lowercase and correct path.
-Solution: Fix the problems. Remove unnecessary file name translations.
- (Zoltan Arpadffy)
-Files: src/buffer.c, src/ex_cmds2.c, src/fileio.c, src/memline.c,
- src/misc1.c, src/misc2.c, src/os_unix.c, src/os_vms.c, src/tag.c
-
-Patch 6.1.312
-Problem: When using ":silent" debugging is also done silently.
-Solution: Disable silence while at the debug prompt.
-Files: src/ex_cmds2.c
-
-Patch 6.1.313
-Problem: When a ":drop fname" command is used and "fname" is open in
- another window, it is also opened in the current window.
-Solution: Change to the window with "fname" instead.
- Don't redefine the argument list when dropping only one file.
-Files: runtime/doc/windows.txt, src/ex_cmds2.c, src/ex_cmds.c,
- src/ex_docmd.c, src/proto/ex_cmds2.pro, src/proto/ex_docmd.pro
-
-Patch 6.1.314 (depends on 6.1.126)
-Problem: Missing backslash in "Generic Config file" syntax menu.
-Solution: Insert the backslash. (Zak Beck)
-Files: runtime/makemenu.vim, runtime/synmenu.vim
-
-Patch 6.1.315 (extra)
-Problem: A very long hostname may lead to an unterminated string. Failing
- to obtain a hostname may result in garbage. (Walter Briscoe)
-Solution: Add a NUL at the end of the hostname buffer.
-Files: src/os_mac.c, src/os_msdos.c, src/os_unix.c, src/os_win16.c,
- src/os_win32.c
-
-Patch 6.1.316
-Problem: When exiting with "wq" and there is a hidden buffer, after the
- "file changed" dialog there is a warning for a changed buffer.
- (Ajit Thakkar)
-Solution: Do update the buffer timestamps when exiting.
-Files: src/fileio.c
-
-Patch 6.1.317
-Problem: Closing a window may cause some of the remaining windows to be
- positioned wrong if there is a mix of horizontal and vertical
- splits. (Stefan Ingi Valdimarsson)
-Solution: Update the frame sizes before updating the window positions.
-Files: src/window.c
-
-Patch 6.1.318
-Problem: auto/pathdef.c can include wrong quotes when a compiler flag
- includes quotes.
-Solution: Put a backslash before the quotes in compiler flags. (Shinra Aida)
-Files: src/Makefile
-
-Patch 6.1.319 (depends on 6.1.276)
-Problem: Using "--remote +cmd file" does not execute "cmd".
-Solution: Call inputrestore() in the same command line as inputsave(),
- otherwise it will never get executed.
-Files: src/main.c
-
-Patch 6.1.320 (depends on 6.1.313)
-Problem: When a ":drop one\ file" command is used the file "one\ file" is
- opened, the backslash is not removed. (Taro Muraoka)
-Solution: Handle backslashes correctly. Always set the argument list to
- keep it simple.
-Files: runtime/doc/windows.txt, src/ex_cmds.c
-
-Patch 6.1.321
-Problem: When 'mouse' includes 'n' but not 'v', don't allow starting Visual
- mode with the mouse.
-Solution: Don't use MOUSE_MAY_VIS when there is no 'v' in 'mouse'. (Flemming
- Madsen)
-Files: src/normal.c
-
-Patch 6.1.322 (extra, depends on 6.1.315)
-Problem: Win32: The host name is always "PC " plus the real host name.
-Solution: Don't insert "PC " before the host name.
-Files: src/os_win32.c
-
-Patch 6.1.323
-Problem: ":registers" doesn't stop listing for a "q" at the more prompt.
- (Hari Krishna Dara)
-Solution: Check for interrupt and got_int.
-Files: src/ops.c, src/proto/ops.pro
-
-Patch 6.1.324
-Problem: Crash when dragging a vertical separator when <LeftMouse> is
- remapped to jump to another window.
-Solution: Pass the window pointer to the function doing the dragging instead
- of always using the current window. (Daniel Elstner)
- Also fix that starting a drag changes window focus.
-Files: src/normal.c, src/proto/window.pro, src/ui.c, src/vim.h,
- src/window.c
-
-Patch 6.1.325
-Problem: Shift-Tab is not automatically recognized in an xterm.
-Solution: Add <Esc>[Z as the termcap code. (Andrew Pimlott)
-Files: src/term.c
-
-Patch 6.1.326
-Problem: Using a search pattern may read from uninitialized data (Yasuhiro
- Matsumoto)
-Solution: Initialize pointers to NULL.
-Files: src/regexp.c
-
-Patch 6.1.327
-Problem: When opening the "mbyte.txt" help file the utf-8 characters are
- unreadable, because the fileencoding is forced to be latin1.
-Solution: Check for utf-8 encoding first in help files. (Daniel Elstner)
-Files: runtime/doc/mbyte.txt, src/fileio.c
-
-Patch 6.1.328
-Problem: Prototype for enc_canon_search() is missing.
-Solution: Add the prototype. (Walter Briscoe)
-Files: src/mbyte.c
-
-Patch 6.1.329
-Problem: When editing a file "a b c" replacing "%" in ":Cmd %" or ":next %"
- does not work properly. (Hari Krishna Dara)
-Solution: Always escape spaces when expanding "%". Don't split argument for
- <f-args> in a user command when only one argument is used.
-Files: src/ex_docmd.c
-
-Patch 6.1.330
-Problem: GTK, Motif and Athena: Keypad keys produce the same code as
- non-keypad keys, making it impossible to map them separately.
-Solution: Use different termcap codes for the keypad keys. (Neil Bird)
-Files: src/gui_gtk_x11.c, src/gui_x11.c
-
-Patch 6.1.331
-Problem: When translating the help files, "LOCAL ADDITIONS" no longer marks
- the spot where help files from plugins are to be listed.
-Solution: Add a "local-additions" tag and use that to find the right spot.
-Files: runtime/doc/help.txt, src/ex_cmds.c
-
-Patch 6.1.332 (extra)
-Problem: Win32: Loading Perl dynamically doesn't work with Perl 5.8.
- Perl 5.8 also does not work with Cygwin and Ming.
-Solution: Adjust the function calls. (Taro Muraoka)
- Adjust the cyg and ming makefiles. (Dan Sharp)
-Files: src/Make_cyg.mak, src/Make_ming.mak, src/Make_mvc.mak,
- src/if_perl.xs
-
-Patch 6.1.333 (extra)
-Problem: Win32: Can't handle Unicode text on the clipboard.
- Can't pass NUL byte, it becomes a line break. (Bruce DeVisser)
-Solution: Support Unicode for the clipboard (Ron Aaron and Glenn Maynard)
- Also support copy/paste of NUL bytes.
-Files: src/os_mswin.c, src/os_win16.c src/os_win32.c
-
-Patch 6.1.334 (extra, depends on 6.1.303)
-Problem: Problem with drawing Hebrew characters.
-Solution: Only use ETO_PDY for Windows NT and the like. (Yasuhiro Matsumoto)
-Files: src/gui_w32.c
-
-Patch 6.1.335 (extra)
-Problem: Failure of obtaining the cursor position and window size is
- ignored.
-Solution: Remove a semicolon after an "if". (Walter Briscoe)
-Files: src/gui_w32.c
-
-Patch 6.1.336 (extra)
-Problem: Warning for use of function prototypes of smsg().
-Solution: Define HAVE_STDARG_H. (Walter Briscoe)
-Files: src/os_win32.h
-
-Patch 6.1.337
-Problem: When using "finish" in debug mode in function B() for ":call
- A(B())" does not stop after B() is finished.
-Solution: Increase debug_level while evaluating a function.
-Files: src/ex_docmd.c
-
-Patch 6.1.338
-Problem: When using a menu that checks out the current file from Insert
- mode, there is no warning for the changed file until exiting
- Insert mode. (Srikanth Sankaran)
-Solution: Add a check for need_check_timestamps in the Insert mode loop.
-Files: src/edit.c
-
-Patch 6.1.339
-Problem: Completion doesn't allow "g:" in ":let g:did_<Tab>". (Benji
- Fisher)
-Solution: Return "g:var" for global variables when that is what is being
- expanded. (Flemming Madsen)
-Files: src/eval.c
-
-Patch 6.1.340 (extra, depends on 6.1.332)
-Problem: Win32: Can't compile the Perl interface with nmake.
-Solution: Don't compare the version number as a string but as a number.
- (Juergen Kraemer)
-Files: src/Make_mvc.mak
-
-Patch 6.1.341
-Problem: In Insert mode with 'rightleft' set the cursor is drawn halfway a
- double-wide character. For CTRL-R and CTRL-K in Insert mode the "
- or ? is not displayed.
-Solution: Draw the cursor in the next character cell. Display the " or ?
- over the right half of the double-wide character. (Yasuhiro
- Matsumoto) Also fix that cancelling a digraph doesn't redraw
- a double-byte character correctly.
-Files: src/edit.c, src/gui.c, src/mbyte.c
-
-Patch 6.1.342 (depends on 6.1.341)
-Problem: With 'rightleft' set typing "c" on a double-wide character causes
- the cursor to be displayed one cell to the left.
-Solution: Draw the cursor in the next character cell. (Yasuhiro Matsumoto)
-Files: src/gui.c
-
-Patch 6.1.343 (depends on 6.1.342)
-Problem: Cannot compile with the +multi_byte feature but without +rightleft.
- Cannot compile without the GUI.
-Solution: Fix the #ifdefs. (partly by Nam SungHyun)
-Files: src/gui.c, src/mbyte.c, src/ui.c
-
-Patch 6.1.344
-Problem: When using ":silent filetype" the output is still put in the
- message history. (Hari Krishna Dara)
-Solution: Don't add messages in the history when ":silent" is used.
-Files: src/message.c
-
-Patch 6.1.345 (extra)
-Problem: Win32: 'imdisable' doesn't work.
-Solution: Make 'imdisable' work. (Yasuhiro Matsumoto)
-Files: src/gui_w32.c
-
-Patch 6.1.346
-Problem: The scroll wheel can only scroll the current window.
-Solution: Make the scroll wheel scroll the window that the mouse points to.
- (Daniel Elstner)
-Files: src/edit.c, src/gui.c, src/normal.c, src/term.c
-
-Patch 6.1.347
-Problem: When using cscope to list matching tags, the listed number is
- sometimes not equal to what cscope uses. (Vihren Milev)
-Solution: For cscope tags use only one table, don't give tags in the current
- file a higher priority.
-Files: src/tag.c
-
-Patch 6.1.348
-Problem: Wildmode with wildmenu: ":set wildmode=list,full", ":colorscheme
- <tab>" results in "zellner" instead of the first entry. (Anand
- Hariharan)
-Solution: Don't call ExpandOne() from globpath(). (Flemming Madsen)
-Files: src/ex_getln.c
-
-Patch 6.1.349
-Problem: "vim --serverlist" when no server was ever started gives an error
- message without "\n".
- "vim --serverlist" doesn't exit when the X server can't be
- contacted, it starts Vim unexpectedly. (Ricardo Signes)
-Solution: Don't give an error when no Vim server was ever started.
- Treat failing of opening the display equal to errors inside the
- remote*() functions. (Flemming Madsen)
-Files: src/if_xcmdsrv.c, src/main.c
-
-Patch 6.1.350
-Problem: When entering a buffer with ":bnext" for the first time, using an
- autocommand to restore the last used cursor position doesn't work.
- (Paolo Giarusso)
-Solution: Don't use the last known cursor position of the current Vim
- invocation if an autocommand changed the position.
-Files: src/buffer.c
-
-Patch 6.1.351 (depends on 6.1.349)
-Problem: Crash when starting Vim the first time in an X server. (John
- McGowan)
-Solution: Don't call xFree() with a fixed string.
-Files: src/if_xcmdsrv.c
-
-Patch 6.1.352 (extra, depends on 6.1.345)
-Problem: Win32: Crash when setting "imdisable" in _vimrc.
-Solution: Don't call IME functions when imm32.dll was not loaded (yet).
- Also add typecasts to avoid Compiler warnings for
- ImmAssociateContext() argument.
-Files: src/gui_w32.c
-
-Patch 6.1.353 (extra, depends on 6.1.334)
-Problem: Problem with drawing Arabic characters.
-Solution: Don't use ETO_PDY, do use padding.
-Files: src/gui_w32.c
-
-Patch 6.1.354 (extra, depends on 6.1.333)
-Problem: MS-Windows 98: Notepad can't paste text copied from Vim when
- 'encoding' is "utf-8".
-Solution: Also make CF_TEXT available on the clipboard. (Ron Aaron)
-Files: src/os_mswin.c
-
-Patch 6.1.355
-Problem: In a regexp '\n' will never match anything in a string.
-Solution: Make '\n' match a newline character.
-Files: src/buffer.c, src/edit.c, src/eval.c, src/ex_cmds2.c,
- src/ex_docmd.c, src/ex_getln.c, src/fileio.c, src/misc1.c,
- src/option.c, src/os_mac.c, src/os_unix.c, src/quickfix.c,
- src/regexp.c, src/search.c, src/syntax.c, src/tag.c, src/vim.h
-
-Patch 6.1.356 (extra, depends on, well, eh, several others)
-Problem: Compiler warnings for using convert_setup() and a few other
- things.
-Solution: Add typecasts.
-Files: src/mbyte.c, src/os_mswin.c, src/proto/os_win32.pro, src/os_win32.c
-
-Patch 6.1.357
-Problem: CR in the quickfix window jumps to the error under the cursor, but
- this doesn't work in Insert mode. (Srikanth Sankaran)
-Solution: Handle CR in Insert mode in the quickfix window.
-Files: src/edit.c
-
-Patch 6.1.358
-Problem: The tutor doesn't select another locale version properly.
-Solution: Insert the "let" command. (Yasuhiro Matsumoto)
-Files: runtime/tutor/tutor.vim
-
-Patch 6.1.359 (extra)
-Problem: Mac Carbon: Vim doesn't get focus when started from the command
- line. Crash when using horizontal scroll bar.
-Solution: Set Vim as the frontprocess. Fix scrolling. (Peter Cucka)
-Files: src/gui_mac.c
-
-Patch 6.1.360 (depends on 6.1.341)
-Problem: In Insert mode CTRL-K ESC messes up a multi-byte character.
- (Anders Helmersson)
-Solution: Save all bytes of a character when displaying a character
- temporarily.
-Files: src/edit.c, src/proto/screen.pro, src/screen.c
-
-Patch 6.1.361
-Problem: Cannot jump to a file mark with ":'M".
-Solution: Allow jumping to another file for a mark in an Ex address when it
- is the only thing in the command line.
-Files: src/ex_docmd.c
-
-Patch 6.1.362
-Problem: tgetent() may return zero for success. tgetflag() may return -1
- for an error.
-Solution: Check tgetflag() for returning a positive value. Add an autoconf
- check for the value that tgetent() returns.
-Files: src/auto/configure, src/config.h.in, src/configure.in, src/term.c
-
-Patch 6.1.363
-Problem: byte2line() can return one more than the number of lines.
-Solution: Return -1 if the offset is one byte past the end.
-Files: src/memline.c
-
-Patch 6.1.364
-Problem: That the FileChangedShell autocommand event never nests makes it
- difficult to reload a file in a normal way.
-Solution: Allow nesting for the FileChangedShell event but do not allow
- triggering itself again.
- Also avoid autocommands for the cmdline window in rare cases.
-Files: src/ex_getln.c, src/fileio.c, src/window.c
-
-Patch 6.1.365 (depends on 6.1.217)
-Problem: Setting a breakpoint in a sourced file with a relative path name
- doesn't work. (Servatius Brandt)
-Solution: Expand the file name to a full path.
-Files: src/ex_cmds2.c
-
-Patch 6.1.366
-Problem: Can't use Vim with Netbeans.
-Solution: Add the Netbeans interface. Includes support for sign icons and
- "-fg" and "-bg" arguments for GTK. Add the 'autochdir'
- option. (Gordon Prieur, George Hernandez, Dave Weatherford)
- Make it possible to display both a sign with a text and one with
- line highlighting in the same line.
- Add support for Agide, interface version 2.1.
- Also fix that when 'iskeyword' includes '?' the "*" command
- doesn't work properly on a word that includes "?" (Bill McCarthy):
- Don't escape "?" to "\?" when searching forward.
-Files: runtime/doc/Makefile, runtime/doc/netbeans.txt,
- runtime/doc/options.txt, runtime/doc/various.txt,
- src/Makefile, src/auto/configure, src/buffer.c, src/config.h.in,
- src/config.mk.in, src/configure.in, src/edit.c, src/ex_cmds.c,
- src/ex_docmd.c, src/feature.h, src/fileio.c, src/globals.h,
- src/gui.c, src/gui_beval.c, src/gui_gtk_x11.c, src/gui_x11.c,
- src/main.c, src/memline.c, src/misc1.c, src/misc2.c, src/move.c,
- src/nbdebug.c, src/nbdebug.h, src/netbeans.c, src/normal.c,
- src/ops.c, src/option.c, src/option.h, src/proto/buffer.pro,
- src/proto/gui_beval.pro, src/proto/gui_gtk_x11.pro,
- src/proto/gui_x11.pro, src/proto/misc2.pro,
- src/proto/netbeans.pro, src/proto/normal.pro, src/proto/ui.pro,
- src/proto.h, src/screen.c, src/structs.h, src/ui.c, src/undo.c,
- src/vim.h, src/window.c, src/workshop.c
-
-Patch 6.1.367 (depends on 6.1.365)
-Problem: Setting a breakpoint in a function doesn't work. For a sourced
- file it doesn't work when symbolic links are involved. (Servatius
- Brandt)
-Solution: Expand the file name in the same way as do_source() does. Don't
- prepend the path to a function name.
-Files: src/ex_cmds2.c
-
-Patch 6.1.368
-Problem: Completion for ":map" does not include <silent> and <script>.
- ":mkexrc" do not save the <silent> attribute of mappings.
-Solution: Add "<silent>" to the generated map commands when appropriate.
- (David Elstner)
- Add <silent> and <script> to command line completion.
-Files: src/getchar.c
-
-Patch 6.1.369 (extra)
-Problem: VMS: Vim hangs when attempting to edit a read-only file in the
- terminal. Problem with VMS filenames for quickfix.
-Solution: Rewrite low level input. Remove version number from file name in
- a couple more places. Fix crash after patch 6.1.362. Correct
- return code for system(). (Zoltan Arpadffy, Tomas Stehlik)
-Files: src/misc1.c, src/os_unix.c, src/os_vms.c, src/proto/os_vms.pro,
- src/os_vms_conf.h, src/quickfix.c, src/ui.c
-
-Patch 6.1.370
-Problem: #ifdef nesting is unclear.
-Solution: Insert spaces to indicate the nesting.
-Files: src/os_unix.c
-
-Patch 6.1.371
-Problem: "%V" in 'statusline' doesn't show "0-1" in an empty line.
-Solution: Add one to the column when comparing with virtual column (Andrew
- Pimlott)
-Files: src/buffer.c
-
-Patch 6.1.372
-Problem: With 16 bit ints there are compiler warnings. (Walter Briscoe)
-Solution: Change int into long.
-Files: src/structs.h, src/syntax.c
-
-Patch 6.1.373
-Problem: The default page header for printing is not translated.
-Solution: Add _() around the two places where "Page" is used. (Mike
- Williams) Translate the default value of the 'titleold' and
- 'printheader' options.
-Files: src/ex_cmds2.c, src/option.c
-
-Patch 6.1.374 (extra)
-Problem: MS-Windows: Cannot build GvimExt with MingW or Cygwin.
-Solution: Add makefile and modified resource files. (Rene de Zwart)
- Also support Cygwin. (Alejandro Lopez_Valencia)
-Files: GvimExt/Make_cyg.mak, GvimExt/Make_ming.mak, GvimExt/Makefile,
- GvimExt/gvimext_ming.def, GvimExt/gvimext_ming.rc
-
-Patch 6.1.375
-Problem: MS-Windows: ':!dir "%"' does not work for a file name with spaces.
- (Xiangjiang Ma)
-Solution: Don't insert backslashes for spaces in a shell command.
-Files: src/ex_docmd.c
-
-Patch 6.1.376
-Problem: "vim --version" and "vim --help" have a non-zero exit code.
- That is unusual. (Petesea)
-Solution: Use a zero exit code.
-Files: src/main.c
-
-Patch 6.1.377
-Problem: Can't add words to 'lispwords' option.
-Solution: Add P_COMMA and P_NODUP flags. (Haakon Riiser)
-Files: src/option.c
-
-Patch 6.1.378
-Problem: When two buffer-local user commands are ambiguous, a full match
- with a global user command isn't found. (Hari Krishna Dara)
-Solution: Detect this situation and accept the global command.
-Files: src/ex_docmd.c
-
-Patch 6.1.379
-Problem: Linux with kernel 2.2 can't use the alternate stack in combination
- with threading, causes an infinite loop.
-Solution: Don't use the alternate stack in this situation.
-Files: src/os_unix.c
-
-Patch 6.1.380
-Problem: When 'winminheight' is zero and the quickfix window is zero lines,
- entering the window doesn't make it higher. (Christian J.
- Robinson)
-Solution: Make sure the current window is at least one line high.
-Files: src/window.c
-
-Patch 6.1.381
-Problem: When a BufWriteCmd is used and it leaves the buffer modified, the
- window may still be closed. (Hari Krishna Dara)
-Solution: Return FAIL from buf_write() when the buffer is still modified
- after a BufWriteCmd autocommand was used.
-Files: src/fileio.c
-
-Patch 6.1.382 (extra)
-Problem: Win32 GUI: When using two monitors, the code that checks/fixes the
- window size and position (e.g. when a font changes) doesn't work
- properly. (George Reilly)
-Solution: Handle a double monitor situation. (Helmut Stiegler)
-Files: src/gui_w32.c
-
-Patch 6.1.383
-Problem: The filling of the status line doesn't work properly for
- multi-byte characters. (Nam SungHyun)
- There is no check for going past the end of the buffer.
-Solution: Properly distinguish characters and bytes. Properly check for
- running out of buffer space.
-Files: src/buffer.c, src/ex_cmds2.c, src/proto/buffer.pro, src/screen.c
-
-Patch 6.1.384
-Problem: It is not possible to find if a certain patch has been included.
- (Lubomir Host)
-Solution: Support using has() to check if a patch was included.
-Files: runtime/doc/eval.txt, src/eval.c, src/proto/version.pro,
- src/version.c
-
-Patch 6.1.385 (depends on 6.1.383)
-Problem: Can't compile without the multi-byte feature.
-Solution: Move an #ifdef. (Christian J. Robinson)
-Files: src/buffer.c
-
-Patch 6.1.386
-Problem: Get duplicate tags when running ":helptags".
-Solution: Do the other halve of moving a section to another help file.
-Files: runtime/tagsrch.txt
-
-Patch 6.1.387 (depends on 6.1.373)
-Problem: Compiler warning for pointer cast.
-Solution: Add (char_u *).
-Files: src/option.c
-
-Patch 6.1.388 (depends on 6.1.384)
-Problem: Compiler warning for pointer cast.
-Solution: Add (char *). Only include has_patch() when used.
-Files: src/eval.c, src/version.c
-
-Patch 6.1.389 (depends on 6.1.366)
-Problem: Balloon evaluation doesn't work for GTK.
- has("balloon_eval") doesn't work.
-Solution: Add balloon evaluation for GTK. Also improve displaying of signs.
- (Daniel Elstner)
- Also make ":gui" start the netbeans connection and avoid using
- netbeans functions when the connection is not open.
-Files: src/Makefile, src/feature.h, src/gui.c, src/gui.h,
- src/gui_beval.c, src/gui_beval.h, src/gui_gtk.c,
- src/gui_gtk_x11.c, src/eval.c, src/memline.c, src/menu.c,
- src/netbeans.c, src/proto/gui_beval.pro, src/proto/gui_gtk.pro,
- src/structs.h, src/syntax.c, src/ui.c, src/workshop.c
-
-Patch 6.1.390 (depends on 6.1.389)
-Problem: It's not possible to tell Vim to save and exit through the
- Netbeans interface. Would still try to send balloon eval text
- after the connection is closed.
- Can't use Unicode characters for sign text.
-Solution: Add functions "saveAndExit" and "getModified". Check for a
- working connection before sending a balloonText event.
- various other cleanups.
- Support any character for sign text. (Daniel Elstner)
-Files: runtime/doc/netbeans.txt, runtime/doc/sign.txt, src/ex_cmds.c,
- src/netbeans.c, src/screen.c
-
-Patch 6.1.391
-Problem: ml_get() error when using virtualedit. (Charles Campbell)
-Solution: Get a line from a specific window, not the current one.
-Files: src/charset.c
-
-Patch 6.1.392 (depends on 6.1.383)
-Problem: Highlighting in the 'statusline' is in the wrong position when an
- item is truncated. (Zak Beck)
-Solution: Correct the start of 'statusline' items properly for a truncated
- item.
-Files: src/buffer.c
-
-Patch 6.1.393
-Problem: When compiled with Python and threads, detaching the terminal may
- cause Vim to loop forever.
-Solution: Add -pthread to $CFLAGS when using Python and gcc. (Daniel
- Elstner)
-Files: src/auto/configure,, src/configure.in
-
-Patch 6.1.394 (depends on 6.1.390)
-Problem: The netbeans interface doesn't recognize multibyte glyph names.
-Solution: Check the number of cells rather than bytes to decide
- whether a glyph name is not a filename. (Daniel Elstner)
-Files: src/netbeans.c
-
-Patch 6.1.395 (extra, depends on 6.1.369)
-Problem: VMS: OLD_VMS is never defined. Missing function prototype.
-Solution: Define OLD_VMS in Make_vms.mms. Add vms_sys_status() to
- os_vms.pro. (Zoltan Arpadffy)
-Files: src/Make_vms.mms, src/proto/os_vms.pro
-
-Patch 6.1.396 (depends on 6.1.330)
-Problem: Compiler warnings for using enum.
-Solution: Add typecast to char_u.
-Files: src/gui_gtk_x11.c, src/gui_x11.c
-
-Patch 6.1.397 (extra)
-Problem: The install program may use a wrong path for the diff command if
- there is a space in the install directory path.
-Solution: Use double quotes around the path if necessary. (Alejandro
- Lopez-Valencia) Also use double quotes around the file name
- arguments.
-Files: src/dosinst.c
-
-Patch 6.1.398
-Problem: Saving the typeahead for debug mode causes trouble for a test
- script. (Servatius Brandt)
-Solution: Add the ":debuggreedy" command to avoid saving the typeahead.
-Files: runtime/doc/repeat.txt, src/ex_cmds.h, src/ex_cmds2.c,
- src/ex_docmd.c, src/proto/ex_cmds2.pro
-
-Patch 6.1.399
-Problem: Warning for unused variable.
-Solution: Remove the variable two_or_more.
-Files: src/ex_cmds.c
-
-Patch 6.1.400 (depends on 6.1.381)
-Problem: When a BufWriteCmd wipes out the buffer it may still be accessed.
-Solution: Don't try accessing a buffer that has been wiped out.
-Files: src/fileio.c
-
-Patch 6.1.401 (extra)
-Problem: Building the Win16 version with Borland 5.01 doesn't work.
- "make test" doesn't work with Make_dos.mak. (Walter Briscoe)
-Solution: Various fixes to the w16 makefile. (Walter Briscoe)
- Don't use deltree. Use "mkdir \tmp" instead of "mkdir /tmp".
-Files: src/Make_w16.mak, src/testdir/Make_dos.mak
-
-Patch 6.1.402
-Problem: When evaluating a function name with curly braces, an error
- is not handled consistently.
-Solution: Accept the result of a curly braces expression when an
- error was encountered. Skip evaluating an expression in curly
- braces when skipping. (Servatius Brandt)
-Files: src/eval.c
-
-Patch 6.1.403 (extra)
-Problem: MS-Windows 16 bit: compiler warnings.
-Solution: Add typecasts. (Walter Briscoe)
-Files: src/ex_cmds2.c, src/gui_w48.c, src/os_mswin.c, src/os_win16.c,
- src/syntax.c
-
-Patch 6.1.404 (extra)
-Problem: Various small problems.
-Solution: Fix comments. Various small additions, changes in indent, removal
- of unused items and fixes.
-Files: Makefile, README.txt, runtime/menu.vim, runtime/vimrc_example.vim,
- src/INSTALL, src/INSTALLole.txt, src/Make_bc5.mak,
- src/Make_cyg.mak, src/Make_ming.mak, src/Makefile,
- src/config.h.in, src/edit.c, src/eval.c, src/ex_cmds2.c,
- src/ex_docmd.c, src/ex_getln.c, src/fileio.c, src/getchar.c,
- src/gui.c, src/gui_gtk.c, src/gui_photon.c, src/if_cscope.c,
- src/if_python.c, src/keymap.h, src/mark.c, src/mbyte.c,
- src/message.c, src/misc1.c, src/misc2.c, src/normal.c,
- src/option.c, src/os_os2_cfg.h, src/os_win32.c,
- src/proto/getchar.pro, src/proto/message.pro,
- src/proto/regexp.pro, src/screen.c, src/structs.h, src/syntax.c,
- src/term.c, src/testdir/test15.in, src/testdir/test15.ok,
- src/vim.rc, src/xxd/Make_cyg.mak, src/xxd/Makefile
-
-Patch 6.1.405
-Problem: A few files are missing from the toplevel Makefile.
-Solution: Add the missing files.
-Files: Makefile
-
-Patch 6.1.406 (depends on 6.1.392)
-Problem: When a statusline item doesn't fit arbitrary text appears.
- (Christian J. Robinson)
-Solution: When there is just enough room but not for the "<" truncate the
- statusline item like there is no room.
-Files: src/buffer.c
-
-Patch 6.1.407
-Problem: ":set scrollbind | help" scrollbinds the help window. (Andrew
- Pimlott)
-Solution: Reset 'scrollbind' when opening a help window.
-Files: src/ex_cmds.c
-
-Patch 6.1.408
-Problem: When 'rightleft' is set unprintable character 0x0c is displayed as
- ">c0<".
-Solution: Reverse the text of the hex character.
-Files: src/screen.c
-
-Patch 6.1.409
-Problem: Generating tags for the help doesn't work for some locales.
-Solution: Set LANG=C LC_ALL=C in the environment for "sort". (Daniel
- Elstner)
-Files: runtime/doc/Makefile
-
-Patch 6.1.410 (depends on 6.1.390)
-Problem: Linking error when compiling with Netbeans but without sign icons.
- (Malte Neumann)
-Solution: Don't define buf_signcount() when sign icons are unavailable.
-Files: src/buffer.c
-
-Patch 6.1.411
-Problem: When 'virtualedit' is set, highlighting a Visual block beyond the
- end of a line may be wrong.
-Solution: Correct the virtual column when the end of the line is before the
- displayed part of the line. (Muraoka Taro)
-Files: src/screen.c
-
-Patch 6.1.412
-Problem: When swapping terminal screens and using ":gui" to start the GUI,
- the shell prompt may be after a hit-enter prompt.
-Solution: Output a newline in the terminal when starting the GUI and there
- was a hit-enter prompt..
-Files: src/gui.c
-
-Patch 6.1.413
-Problem: When 'clipboard' contains "unnamed", "p" in Visual mode doesn't
- work correctly.
-Solution: Save the register before overwriting it and put the resulting text
- on the clipboard afterwards. (Muraoka Taro)
-Files: src/normal.c, src/ops.c
-
-Patch 6.1.414 (extra, depends on 6.1.369)
-Problem: VMS: Vim busy waits when waiting for input.
-Solution: Delay for a short while before getting another character. (Zoltan
- Arpadffy)
-Files: src/os_vms.c
-
-Patch 6.1.415
-Problem: When there is a vertical split and a quickfix window, reducing the
- size of the Vim window may result in a wrong window layout and a
- crash.
-Solution: When reducing the window size and there is not enough space for
- 'winfixheight' set the frame height to the larger height, so that
- there is a retry while ignoring 'winfixheight'. (Yasuhiro
- Matsumoto)
-Files: src/window.c
-
-Patch 6.1.416 (depends on 6.1.366)
-Problem: When using the Netbeans interface, a line with a sign cannot be
- changed.
-Solution: Respect the GUARDEDOFFSET for sign IDs when checking for a guarded
- area.
-Files: src/netbeans.c
-
-Patch 6.1.417
-Problem: Unprintable multi-byte characters are not handled correctly.
- Multi-byte characters above 0xffff are displayed as another
- character.
-Solution: Handle unprintable multi-byte characters. Display multi-byte
- characters above 0xffff with a marker. Recognize UTF-16 words and
- BOM words as unprintable. (Daniel Elstner)
-Files: src/charset.c, src/mbyte.c, src/screen.c
-
-Patch 6.1.418
-Problem: The result of strftime() is in the current locals. Need to
- convert it to 'encoding'.
-Solution: Obtain the current locale and convert the argument for strftime()
- to it and the result back to 'encoding'. (Daniel Elstner)
-Files: src/eval.c, src/ex_cmds.c, src/ex_cmds2.c, src/mbyte.c,
- src/proto/mbyte.pro, src/option.c, src/os_mswin.c
-
-Patch 6.1.419
-Problem: Vim doesn't compile on AIX 5.1.
-Solution: Don't define _NO_PROTO on this system. (Uribarri)
-Files: src/auto/configure, src/configure.in
-
-Patch 6.1.420 (extra)
-Problem: convert_input() has an unnecessary STRLEN().
- Conversion from UCS-2 to a codepage uses word count instead of
- byte count.
-Solution: Remove the STRLEN() call. (Daniel Elstner)
- Always use byte count for string_convert().
-Files: src/gui_w32.c, src/mbyte.c
-
-Patch 6.1.421 (extra, depends on 6.1.354)
-Problem: MS-Windows 9x: When putting text on the clipboard it can be in
- the wrong encoding.
-Solution: Convert text to the active codepage for CF_TEXT. (Glenn Maynard)
-Files: src/os_mswin.c
-
-Patch 6.1.422
-Problem: Error in .vimrc doesn't cause hit-enter prompt when swapping
- screens. (Neil Bird)
-Solution: Set msg_didany also when sending a message to the terminal
- directly.
-Files: src/message.c
-
-Patch 6.1.423
-Problem: Can't find arbitrary text in help files.
-Solution: Added the ":helpgrep" command.
-Files: runtime/doc/various.txt, src/ex_cmds.h, src/ex_docmd.c,
- src/proto/quickfix.pro, src/quickfix.c
-
-Patch 6.1.424 (extra)
-Problem: Win32: Gvim compiled with VC++ 7.0 run on Windows 95 does not show
- menu items.
-Solution: Define $WINVER to avoid an extra item is added to MENUITEMINFO.
- (Muraoka Taro)
-Files: src/Make_mvc.mak
-
-Patch 6.1.425
-Problem: ":helptags $VIMRUNTIME/doc" does not add the "help-tags" tag.
-Solution: Do add the "help-tags" tag for that specific directory.
-Files: src/ex_cmds.c
-
-Patch 6.1.426
-Problem: "--remote-wait +cmd file" waits forever. (Valery Kondakoff)
-Solution: Don't wait for the "+cmd" argument to have been edited.
-Files: src/main.c
-
-Patch 6.1.427
-Problem: Several error messages for regexp patterns are not translated.
-Solution: Use _() properly. (Muraoka Taro)
-Files: src/regexp.c
-
-Patch 6.1.428
-Problem: FreeBSD: wait() may hang when compiled with Python support and
- doing a system() call in a startup script.
-Solution: Use waitpid() instead of wait() and poll every 10 msec, just like
- what is done in the GUI.
-Files: src/os_unix.c
-
-Patch 6.1.429 (depends on 6.1.390)
-Problem: Crash when using showmarks.vim plugin. (Charles Campbell)
-Solution: Check for sign_get_text() returning a NULL pointer.
-Files: src/screen.c
-
-Patch 6.1.430
-Problem: In Lisp code backslashed parens should be ignored for "%". (Dorai)
-Solution: Skip over backslashed parens.
-Files: src/search.c
-
-Patch 6.1.431
-Problem: Debug commands end up in redirected text.
-Solution: Disable redirection while handling debug commands.
-Files: src/ex_cmds2.c
-
-Patch 6.1.432 (depends on 6.1.375)
-Problem: MS-Windows: ":make %:p" inserts extra backslashes. (David Rennalls)
-Solution: Don't add backslashes, handle it like ":!cmd".
-Files: src/ex_docmd.c
-
-Patch 6.1.433
-Problem: ":popup" only works for Win32.
-Solution: Add ":popup" support for GTK. (Daniel Elstner)
-Files: runtime/doc/gui.txt, src/ex_docmd.c, src/gui_gtk.c, src/menu.c,
- src/proto/gui_gtk.pro
-
-Patch 6.1.434 (extra)
-Problem: Win32: When there are more than 32767 lines, the scrollbar has a
- roundoff error.
-Solution: Make a click on an arrow move one line. Also move the code to
- gui_w48.c, there is hardly any difference between the 16 bit and
- 32 bit versions. (Walter Briscoe)
-Files: src/gui_w16.c, src/gui_w32.c, src/gui_w48.c
-
-Patch 6.1.435
-Problem: ":winsize x" resizes the Vim window to the minimal size. (Andrew
- Pimlott)
-Solution: Give an error message for wrong arguments of ":winsize" and
- ":winpos".
-Files: src/ex_docmd.c
-
-Patch 6.1.436
-Problem: When a long UTF-8 file contains an illegal byte it's hard to find
- out where it is. (Ron Aaron)
-Solution: Add the line number to the error message.
-Files: src/fileio.c
-
-Patch 6.1.437 (extra, depends on 6.1.421)
-Problem: Using multi-byte functions when they are not available.
-Solution: Put the clipboard conversion inside an #ifdef. (Vince Negri)
- Also fix a pointer type mistake. (Walter Briscoe)
-Files: src/os_mswin.c
-
-Patch 6.1.438
-Problem: When Perl has thread support Vim cannot use the Perl interface.
-Solution: Add a configure check and disable Perl when it will not work.
- (Aron Griffis)
-Files: src/auto/configure, src/configure.in
-
-Patch 6.1.439
-Problem: Netbeans: A "create" function doesn't actually create a buffer,
- following functions may fail.
-Solution: Create a Vim buffer without a name when "create" is called.
- (Gordon Prieur)
-Files: runtime/doc/netbeans.txt, src/netbeans.c
-
-Patch 6.1.440
-Problem: The "@*" command doesn't obtain the actual contents of the
- clipboard. (Hari Krishna Dara)
-Solution: Obtain the clipboard text before executing the command.
-Files: src/ops.c
-
-Patch 6.1.441
-Problem: "zj" and "zk" cannot be used as a motion command after an
- operator. (Ralf Hetzel)
-Solution: Accept these commands as motion commands.
-Files: src/normal.c
-
-Patch 6.1.442
-Problem: Unicode 3.2 defines more space and punctuation characters.
-Solution: Add the new characters to the Unicode tables. (Raphael Finkel)
-Files: src/mbyte.c
-
-Patch 6.1.443 (extra)
-Problem: Win32: The gvimext.dll build with Borland 5.5 requires another
- DLL.
-Solution: Build a statically linked version by default. (Dan Sharp)
-Files: GvimExt/Make_bc5.mak
-
-Patch 6.1.444 (extra)
-Problem: Win32: Enabling a build with gettext support is not consistent.
-Solution: Use "GETTEXT" for Borland and msvc makefiles. (Dan Sharp)
-Files: src/Make_bc5.mak, src/Make_mvc.mak
-
-Patch 6.1.445 (extra)
-Problem: DJGPP: get warning for argument of putenv()
-Solution: Define HAVE_PUTENV to use DJGPP's putenv(). (Walter Briscoe)
-Files: src/os_msdos.h
-
-Patch 6.1.446 (extra)
-Problem: Win32: The MingW makefile uses a different style of arguments than
- other makefiles.
- Dynamic IME is not supported for Cygwin.
-Solution: Use "no" and "yes" style arguments. Remove the use of the
- dyn-ming.h include file. (Dan Sharp)
- Do not include the ime.h file and adjust the makefile. (Alejandro
- Lopez-Valencia)
-Files: src/Make_cyg.mak, src/Make_ming.mak, src/gui_w32.c,
- src/if_perl.xs, src/if_python.c, src/if_ruby.c, src/os_win32.c
-
-Patch 6.1.447
-Problem: "make install" uses "make" directly for generating help tags.
-Solution: Use $(MAKE) instead of "make". (Tim Mooney)
-Files: src/Makefile
-
-Patch 6.1.448
-Problem: 'titlestring' has a default maximum width of 50 chars per item.
-Solution: Remove the default maximum (also for 'statusline').
-Files: src/buffer.c
-
-Patch 6.1.449
-Problem: When "1" and "a" are in 'formatoptions', auto-formatting always
- moves a newly added character to the next line. (Servatius Brandt)
-Solution: Don't move a single character to the next line when it was just
- typed.
-Files: src/edit.c
-
-Patch 6.1.450
-Problem: Termcap entry "kB" for back-tab is not recognized.
-Solution: Use back-tab as the shift-tab code.
-Files: src/keymap.h, src/misc2.c, src/term.c
-
-Patch 6.1.451
-Problem: GUI: When text in the find dialog contains a slash, a backslash is
- inserted the next time it is opened. (Mezz)
-Solution: Remove escaped backslashes and question marks. (Daniel Elstner)
-Files: src/gui.c
-
-Patch 6.1.452 (extra, after 6.1.446)
-Problem: Win32: IME support doesn't work for MSVC.
-Solution: Use _MSC_VER instead of __MSVC. (Alejandro Lopez-Valencia)
-Files: src/gui_w32.c
-
-Patch 6.1.453 (after 6.1.429)
-Problem: When compiled without sign icons but with sign support, adding a
- sign may cause a crash.
-Solution: Check for the text sign to exist before using it. (Kamil
- Burzynski)
-Files: src/screen.c
-
-Patch 6.1.454 (extra)
-Problem: Win32: pasting Russian text in Vim with 'enc' set to cp1251
- results in utf-8 bytes. (Perelyubskiy)
- Conversion from DBCS to UCS2 does not work when 'encoding' is not
- the active codepage.
-Solution: Introduce enc_codepage and use it for conversion to 'encoding'
- (Glenn Maynard)
- Use MultiByteToWideChar() and WideCharToMultiByte() instead of
- iconv(). Should do most needed conversions without iconv.dll.
-Files: src/globals.h, src/gui_w32.c, src/mbyte.c, src/os_mswin.c,
- src/proto/mbyte.pro, src/proto/os_mswin.pro, src/structs.h
-
-Patch 6.1.455
-Problem: Some Unicode characters can be one or two character cells wide.
-Solution: Add the 'ambiwidth' option to tell Vim how to display these
- characters. (Jungshik Shin)
- Also reset the script ID when setting an option to its default
- value, so that ":verbose set" won't give wrong info.
-Files: runtime/doc/options.txt, src/mbyte.c, src/option.c, src/option.h
-
-Patch 6.1.456 (extra, after 6.1.454)
-Problem: Win32: IME doesn't work.
-Solution: ImmGetCompositionStringW() returns the size in bytes, not words.
- (Yasuhiro Matsumoto) Also fix typecast problem.
-Files: src/gui_w32.c, src/os_mswin.c
-
-Patch 6.1.457
-Problem: An empty register in viminfo causes conversion to fail.
-Solution: Don't convert an empty string. (Yasuhiro Matsumoto)
-Files: src/ex_cmds.c, src/mbyte.c
-
-Patch 6.1.458
-Problem: Compiler warning for pointer.
-Solution: Add a typecast.
-Files: src/ex_cmds.c
-
-Patch 6.1.459 (extra)
-Problem: Win32: libcall() may return an invalid pointer and cause Vim to
- crash.
-Solution: Add a strict check for the returned pointer. (Bruce Mellows)
-Files: src/os_mswin.c
-
-Patch 6.1.460
-Problem: GTK: after scrolling the text one line with a key, clicking the
- arrow of the scrollbar does not always work. (Nam SungHyun)
-Solution: Always update the scrollbar thumb when the value changed, even
- when it would not move, like for RISCOS. (Daniel Elstner)
-Files: src/gui.c, src/gui.h
-
-Patch 6.1.461
-Problem: When a keymap is active, typing a character in Select mode does
- not use it. (Benji Fisher)
-Solution: Apply Insert mode mapping to the character typed in Select mode.
-Files: src/normal.c
-
-Patch 6.1.462
-Problem: When autocommands wipe out a buffer, a crash may happen. (Hari
- Krishna Dara)
-Solution: Don't decrement the window count of a buffer before calling the
- autocommands for it. When re-using the current buffer, watch out
- for autocommands changing the current buffer.
-Files: src/buffer.c, src/ex_cmds.c, src/proto/buffer.pro
-
-Patch 6.1.463
-Problem: When writing a compressed file, the file name that gzip stores in
- the file is the weird temporary file name. (David Rennalls)
-Solution: Use the real file name when possible.
-Files: runtime/plugin/gzip.vim
-
-Patch 6.1.464
-Problem: Crash when using C++ syntax highlighting. (Gerhard Hochholzer)
-Solution: Check for a negative index.
-Files: src/syntax.c
-
-Patch 6.1.465 (after 6.1.454)
-Problem: Compile error when using cygwin.
-Solution: Change #ifdef WIN32 to #ifdef WIN3264. (Alejandro Lopez-Valencia)
- Undefine WIN32 after including windows.h
-Files: src/mbyte.c
-
-Patch 6.1.466
-Problem: The "-f" argument is a bit obscure.
-Solution: Add the "--nofork" argument. Improve the help text a bit.
-Files: runtime/doc/starting.txt, src/main.c
-
-Patch 6.1.467
-Problem: Setting the window title doesn't work for Chinese.
-Solution: Use an X11 function to convert text to a text property. (Kentaro
- Nakazawa)
-Files: src/os_unix.c
-
-Patch 6.1.468
-Problem: ":mksession" also stores folds for buffers which will not be
- restored.
-Solution: Only store folds for a buffer with 'buftype' empty and help files.
-Files: src/ex_docmd.c
-
-Patch 6.1.469
-Problem: 'listchars' cannot contain multi-byte characters.
-Solution: Handle multi-byte UTF-8 list characters. (Matthew Samsonoff)
-Files: src/message.c, src/option.c, src/screen.c
-
-Patch 6.1.470 (lang)
-Problem: Polish messages don't show up correctly on MS-Windows.
-Solution: Convert messages to cp1250. (Mikolaj Machowski)
- Also add English message translations, because it got in the way
- of the patch.
-Files: Makefile, src/po/Makefile, src/po/en_gb.po, src/po/pl.po
-
-Patch 6.1.471
-Problem: ":jumps" output continues after pressing "q" at the more-prompt.
- (Hari Krishna Dara)
-Solution: Check for "got_int" being set.
-Files: src/mark.c
-
-Patch 6.1.472
-Problem: When there is an authentication error when connecting to the X
- server Vim exits.
-Solution: Use XSetIOErrorHandler() to catch the error and longjmp() to avoid
- the exit. Also do this in the main loop, so that when the X
- server exits a Vim running in a console isn't killed.
-Files: src/globals.h, src/main.c, src/os_unix.c
-
-Patch 6.1.473
-Problem: Referring to $curwin or $curbuf in Perl 5.6 causes a crash.
-Solution: Add "pTHX_" to cur_val(). (Yasuhiro Matsumoto)
-Files: src/if_perl.xs
-
-Patch 6.1.474
-Problem: When opening the command-line window in Ex mode it's impossible to
- go back. (Pavol Juhas)
-Solution: Reset "exmode_active" and restore it when the command-line window
- is closed.
-Files: src/ex_getln.c
-
-
-Patch 6.2f.001
-Problem: The configure check for Ruby didn't work properly for Ruby 1.8.0.
-Solution: Change the way the Ruby check is done. (Aron Griffis)
-Files: src/auto/configure, src/configure.in
-
-Patch 6.2f.002
-Problem: The output of ":ls" doesn't show whether a buffer had read errors.
-Solution: Add the "x" flag in the ":ls" output.
-Files: runtime/doc/windows.txt, src/buffer.c
-
-Patch 6.2f.003
-Problem: Test49 doesn't properly test the behavior of ":catch" without an
- argument.
-Solution: Update test49. (Servatius Brandt)
-Files: src/testdir/test49.ok, src/testdir/test49.vim
-
-Patch 6.2f.004
-Problem: "vim --version" always uses CR/LF in the output.
-Solution: Omit the CR.
-Files: src/message.c, src/os_unix.c
-
-Patch 6.2f.005
-Problem: Two error messages without a colon after the number.
-Solution: Add the colon. (Taro Muraoka)
-Files: src/if_cscope.c
-
-Patch 6.2f.006
-Problem: When saving a file takes a while and Vim regains focus this can
- result in a "file changed outside of Vim" warning and ml_get()
- errors. (Mike Williams)
-Solution: Add the "b_saving" flag to avoid checking the timestamp while the
- buffer is being saved. (Michael Schaap)
-Files: src/fileio.c, src/structs.h
-
-Patch 6.2f.007
-Problem: Irix compiler complains about multiple defined symbols.
- vsnprintf() is not available. (Charles Campbell)
-Solution: Insert EXTERN for variables in globals.h. Change the configure
- check for vsnprintf() from compiling to linking.
-Files: src/auto/configure, src/configure.in, src/globals.h
-
-Patch 6.2f.008
-Problem: The Aap recipe doesn't work with Aap 0.149.
-Solution: Change targetarg to TARGETARG. Update the mysign file.
-Files: src/main.aap, src/mysign
-
-Patch 6.2f.009 (extra)
-Problem: Small problem when building with Borland 5.01.
-Solution: Use mkdir() instead of _mkdir(). (Walter Briscoe)
-Files: src/dosinst.h
-
-Patch 6.2f.010
-Problem: Warning for missing prototypes.
-Solution: Add missing prototypes. (Walter Briscoe)
-Files: src/if_cscope.c
-
-Patch 6.2f.011
-Problem: The configure script doesn't work with autoconf 2.5x.
-Solution: Add square brackets around a header check. (Aron Griffis)
- Note: touch src/auto/configure after applying this patch.
-Files: src/configure.in
-
-Patch 6.2f.012
-Problem: ":echoerr" doesn't work correctly inside try/endtry.
-Solution: Don't reset did_emsg inside a try/endtry. (Servatius Brandt)
-Files: src/eval.c
-
-Patch 6.2f.013 (extra)
-Problem: Macintosh: Compiler warning for a trigraph.
-Solution: Insert a backslash before each question mark. (Peter Cucka)
-Files: src/os_mac.h
-
-Patch 6.2f.014 (extra)
-Problem: Macintosh: ex_eval is not included in the project file.
-Solution: Add ex_eval. (Dany St-Amant)
-Files: src/os_mac.pbproj/project.pbxproj
-
-Patch 6.2f.015 (extra)
-Problem: Win32: When changing header files not all source files involved
- are recompiled.
-Solution: Improve the dependency rules. (Dan Sharp)
-Files: src/Make_cyg.mak, src/Make_ming.mak
-
-Patch 6.2f.016
-Problem: "vim --version > ff" on non-Unix systems results in a file with a
- missing line break at the end. (Bill McCArthy)
-Solution: Add a line break.
-Files: src/main.c
-
-Patch 6.2f.017
-Problem: Unix: starting Vim in the background and then bringing it to the
- foreground may cause the terminal settings to be wrong.
-Solution: Check for tcsetattr() to return an error, retry when it does.
- (Paul Tapper)
-Files: src/os_unix.c
-
-Patch 6.2f.018
-Problem: Mac OS X 10.2: OK is defined to zero in cursus.h while Vim uses
- one. Redefining it causes a warning message.
-Solution: Undefine OK before defining it to one. (Taro Muraoka)
-Files: src/vim.h
-
-Patch 6.2f.019
-Problem: Mac OS X 10.2: COLOR_BLACK and COLOR_WHITE are defined in
- curses.h.
-Solution: Rename them to PRCOLOR_BLACK and PRCOLOR_WHITE.
-Files: src/ex_cmds2.c
-
-Patch 6.2f.020
-Problem: Win32: test50 produces beeps and fails with some versions of diff.
-Solution: Remove empty lines and convert the output to dos fileformat.
-Files: src/testdir/test50.in
-
-Patch 6.2f.021
-Problem: Running configure with "--enable-netbeans" disables Netbeans.
- (Gordon Prieur)
-Solution: Fix the tests in configure.in where the default is to enable a
- feature. Fix that "--enable-acl" reported "yes" confusingly.
-Files: src/auto/configure, src/configure.in, src/mysign
-
-Patch 6.2f.022
-Problem: A bogus value for 'foldmarker' is not rejected, possibly causing a
- hang. (Derek Wyatt)
-Solution: Check for a non-empty string before and after the comma.
-Files: src/option.c
-
-Patch 6.2f.023
-Problem: When the help files are not in $VIMRUNTIME but 'helpfile' is
- correct Vim still can't find the help files.
-Solution: Also look for a tags file in the directory of 'helpfile'.
-Files: src/tag.c
-
-Patch 6.2f.024
-Problem: When 'delcombine' is set and a character has more than two
- composing characters "x" deletes them all.
-Solution: Always delete only the last composing character.
-Files: src/misc1.c
-
-Patch 6.2f.025
-Problem: When reading a file from stdin that has DOS line endings but a
- missing end-of-line for the last line 'fileformat' becomes "unix".
- (Bill McCarthy)
-Solution: Don't add the missing line break when re-reading the text from the
- buffer.
-Files: src/fileio.c
-
-Patch 6.2f.026
-Problem: When typing new text at the command line, old composing characters
- may be displayed.
-Solution: Don't read composing characters from after the end of the
- text to be displayed.
-Files: src/ex_getln.c, src/mbyte.c, src/message.c, src/proto/mbyte.pro,
- src/screen.c
-
-Patch 6.2f.027
-Problem: Compiler warnings for unsigned char pointers. (Tony Leneis)
-Solution: Add typecasts to char pointer.
-Files: src/quickfix.c
-
-Patch 6.2f.028
-Problem: GTK: When 'imactivatekey' is empty and XIM is inactive it can't be
- made active again. Cursor isn't updated immediately when changing
- XIM activation. Japanese XIM may hang when using 'imactivatekey'.
- Can't activate XIM after typing fFtT command or ":sh".
-Solution: Properly set the flag that indicates the IM is active. Update the
- cursor right away. Do not send a key-release event. Handle
- Normal mode and running an external command differently.
- (Yasuhiro Matsumoto)
-Files: src/mbyte.c
-
-Patch 6.2f.029
-Problem: Mixing use of int and enum.
-Solution: Adjust argument type of cs_usage_msg(). Fix wrong typedef.
-Files: src/if_cscope.c, src/if_cscope.h
-
-Patch 6.2f.030 (after 6.2f.028)
-Problem: Cursor moves up when using XIM.
-Solution: Reset im_preedit_cursor. (Yasuhiro Matsumoto)
-Files: src/mbyte.c
-
-Patch 6.2f.031
-Problem: Crash when listing a function argument in the debugger. (Ron Aaron)
-Solution: Init the name field of an argument to NULL.
-Files: src/eval.c
-
-Patch 6.2f.032
-Problem: When a write fails for a ":silent!" while inside try/endtry the
- BufWritePost autocommands are not triggered.
-Solution: Check the emsg_silent flag in should_abort(). (Servatius Brandt)
-Files: src/ex_eval.c, src/testdir/test49.ok, src/testdir/test49.vim
-
-Patch 6.2f.033
-Problem: Cscope: re-entrance problem for ":cscope" command. Checking for
- duplicate database didn't work well for Win95. Didn't check for
- duplicate databases after an empty entry.
-Solution: Don't set postponed_split too early. Remember first empty
- database entry. (Sergey Khorev)
-Files: src/if_cscope.c
-
-Patch 6.2f.034
-Problem: The netbeans interface cannot be used on systems without
- vsnprintf(). (Tony Leneis)
-Solution: Use EMSG(), EMSGN() and EMSG2() instead.
-Files: src/auto/configure, src/configure.in, src/netbeans.c
-
-Patch 6.2f.035
-Problem: The configure check for the netbeans interface doesn't work if the
- socket and nsl libraries are required.
-Solution: Check for the socket and nsl libraries before the netbeans check.
-Files: src/auto/configure, src/configure.in
-
-Patch 6.2f.036
-Problem: Moving leftwards over text with an illegal UTF-8 byte moves one
- byte instead of one character.
-Solution: Ignore an illegal byte after the cursor position.
-Files: src/mbyte.c
-
-Patch 6.2f.037
-Problem: When receiving a Netbeans command at the hit-enter or more prompt
- the screen is redrawn but Vim is still waiting at the prompt.
-Solution: Quit the prompt like a CTRL-C was typed.
-Files: src/netbeans.c
-
-Patch 6.2f.038
-Problem: The dependency to run autoconf causes a patch for configure.in
- to run autoconf, even though the configure script was updated as
- well.
-Solution: Only run autoconf with "make autoconf".
-Files: src/Makefile
-
-Patch 6.2f.039
-Problem: CTRL-W K makes the new top window very high.
-Solution: When 'equalalways' is set equalize the window heights.
-Files: src/window.c
-
-
-==============================================================================
-VERSION 6.3 *version-6.3*
-
-This section is about improvements made between version 6.2 and 6.3.
-
-This is mainly a bug-fix release. There are also a few new features.
-The major number of new items is in the runtime files and translations.
-
-
-Changed *changed-6.3*
--------
-
-The intro message also displays a note about sponsoring Vim, mixed randomly
-with the message about helping children in Uganda.
-
-Included the translated menus, keymaps and tutors with the normal runtime
-files. The separate "lang" archive now only contains translated messages.
-
-Made the translated menu file names a bit more consistent. Use "latin1" for
-"iso_8859-1" and "iso_8859-15".
-
-Removed the "file_select.vim" script from the distribution. It's not more
-useful than other scripts that can be downloaded from www.vim.org.
-
-The "runtime/doc/tags" file is now always in unix fileformat. On MS-Windows
-it used to be dos fileformat, but ":helptags" generates a unix format file.
-
-
-Added *added-6.3*
------
-
-New commands:
- :cNfile go to last error in previous file
- :cpfile idem
- :changes print the change list
- :keepmarks following command keeps marks where they are
- :keepjumps following command keeps jumplist and marks
- :lockmarks following command keeps marks where they are
- :redrawstatus force a redraw of the status line(s)
-
-New options:
- 'antialias' Mac OS X: use smooth, antialiased fonts
- 'helplang' preferred help languages
-
-Syntax files:
- Arch inventory (Nikolai Weibull)
- Calendar (Nikolai Weibull)
- Ch (Wayne Cheng)
- Controllable Regex Mutilator (Nikolai Weibull)
- D (Jason Mills)
- Desktop (Mikolaj Machowski)
- Dircolors (Nikolai Weibull)
- Elinks configuration (Nikolai Weibull)
- FASM (Ron Aaron)
- GrADS scripts (Stefan Fronzek)
- Icewm menu (James Mahler)
- LDIF (Zak Johnson)
- Locale input, fdcc. (Dwayne Bailey)
- Pinfo config (Nikolai Weibull)
- Pyrex (Marco Barisione)
- Relax NG Compact (Nikolai Weibull)
- Slice (Morel Bodin)
- VAX Macro Assembly (Tom Uijldert)
- grads (Stefan Fronzek)
- libao (Nikolai Weibull)
- mplayer (Nikolai Weibull)
- rst (Nikolai Weibull)
- tcsh (Gautam Iyer)
- yaml (Nikolai Weibull)
-
-Compiler plugins:
- ATT dot (Marcos Macedo)
- Apple Project Builder (Alexander von Below)
- Intel (David Harrison)
- bdf (Nikolai Weibull)
- icc (Peter Puck)
- javac (Doug Kearns)
- neato (Marcos Macedo)
- onsgmls (Robert B. Rowsome)
- perl (Christian J. Robinson)
- rst (Nikolai Weibull)
- se (SmartEiffel) (Doug Kearns)
- tcl (Doug Kearns)
- xmlwf (Robert B. Rowsome)
-
-Filetype plugins:
- Aap (Bram Moolenaar)
- Ch (Wayne Cheng)
- Css (Nikolai Weibull)
- Pyrex (Marco Barisione)
- Rst (Nikolai Weibull)
-
-Indent scripts:
- Aap (Bram Moolenaar)
- Ch (Wayne Cheng)
- DocBook (Nikolai Weibull)
- MetaPost (Eugene Minkovskii)
- Objective-C (Kazunobu Kuriyama)
- Pyrex (Marco Barisione)
- Rst (Nikolai Weibull)
- Tcsh (Gautam Iyer)
- XFree86 configuration file (Nikolai Weibull)
- Zsh (Nikolai Weibull)
-
-Keymaps:
- Greek for cp1253 (Panagiotis Louridas)
- Hungarian (Magyar) (Laszlo Zavaleta)
- Persian-Iranian (Behnam Esfahbod)
-
-Message translations:
- Catalan (Ernest Adrogue)
- Russian (Vassily Ragosin)
- Swedish (Johan Svedberg)
-
-Menu translations:
- Catalan (Ernest Adrogue)
- Russian (Tim Alexeevsky)
- Swedish (Johan Svedberg)
-
-Tutor translations:
- Catalan (Ernest Adrogue)
- Russian in cp1251 (Alexey Froloff)
- Slovak in cp1250 and iso8859-2 (Lubos Celko)
- Swedish (Johan Svedberg)
- Korean (Kee-Won Seo)
- UTF-8 version of the Japanese tutor (Yasuhiro Matsumoto) Use this as
- the original, create the other Japanese tutor by conversion.
-
-Included "russian.txt" help file. (Vassily Ragosin)
-
-Include Encapsulated PostScript and PDF versions of the Vim logo in the extra
-archive.
-
-The help highlighting finds the highlight groups and shows them in the color
-that is actually being used. (idea from Yakov Lerner)
-
-The big Win32 version is now compiled with Ruby interface, version 1.8. For
-Python version 2.3 is used. For Perl version 5.8 is used.
-
-The "ftdetect" directory is mentioned in the documentation. The DOS install
-program creates it.
-
-
-Fixed *fixed-6.3*
------
-
-Test 42 failed on MS-Windows. Set and reset 'fileformat' and 'binary' options
-here and there. (Walter Briscoe)
-
-The explorer plugin didn't work for double-byte 'encoding's.
-
-Use "copy /y" in Make_bc5.mak to avoid a prompt for overwriting.
-
-Patch 6.2.001
-Problem: The ":stopinsert" command doesn't have a help tag.
-Solution: Add the tag. (Antoine J. Mechelynck)
-Files: runtime/doc/insert.txt, runtime/doc/tags
-
-Patch 6.2.002
-Problem: When compiled with the +multi_byte feature but without +eval,
- displaying UTF-8 characters may cause a crash. (Karsten Hopp)
-Solution: Also set the default for 'ambiwidth' when compiled without the
- +eval feature.
-Files: src/option.c
-
-Patch 6.2.003
-Problem: GTK 2: double-wide characters below 256 are not displayed
- correctly.
-Solution: Check the cell width for characters above 127. (Yasuhiro
- Matsumoto)
-Files: src/gui_gtk_x11.c
-
-Patch 6.2.004
-Problem: With a line-Visual selection at the end of the file a "p" command
- puts the text one line upwards.
-Solution: Detect that the last line was deleted and put forward. (Taro
- Muraoka)
-Files: src/normal.c
-
-Patch 6.2.005
-Problem: GTK: the "Find" and "Find and Replace" tools don't work. (Aschwin
- Marsman)
-Solution: Show the dialog after creating it. (David Necas)
-Files: src/gui_gtk.c
-
-Patch 6.2.006
-Problem: The Netbeans code contains an obsolete function that uses "vim61"
- and sets the fall-back value for $VIMRUNTIME.
-Solution: Delete the obsolete function.
-Files: src/main.c, src/netbeans.c, src/proto/netbeans.pro
-
-Patch 6.2.007
-Problem: Listing tags for Cscope doesn't always work.
-Solution: Avoid using smgs_attr(). (Sergey Khorev)
-Files: src/if_cscope.c
-
-Patch 6.2.008
-Problem: XIM with GTK 2: After backspacing preedit characters are wrong.
-Solution: Reset the cursor position. (Yasuhiro Matsumoto)
-Files: src/mbyte.c
-
-Patch 6.2.009
-Problem: Win32: The self-installing executable "Full" selection only
- selects some of the items to install. (Salman Mohsin)
-Solution: Change commas to spaces in between section numbers.
-Files: nsis/gvim.nsi
-
-Patch 6.2.010
-Problem: When 'virtualedit' is effective and a line starts with a
- multi-byte character, moving the cursor right doesn't work.
-Solution: Obtain the right character to compute the column offset. (Taro
- Muraoka)
-Files: src/charset.c
-
-Patch 6.2.011
-Problem: Alpha OSF1: stat() is a macro and doesn't allow an #ifdef halfway.
- (Moshe Kaminsky)
-Solution: Move the #ifdef outside of stat().
-Files: src/os_unix.c
-
-Patch 6.2.012
-Problem: May hang when polling for a character.
-Solution: Break the wait loop when not waiting for a character.
-Files: src/os_unix.c
-
-Patch 6.2.013 (extra)
-Problem: Win32: The registry key for uninstalling GvimExt still uses "6.1".
-Solution: Change the version number to "6.2". (Ajit Thakkar)
-Files: src/GvimExt/GvimExt.reg
-
-Patch 6.2.014 (after 6.2.012)
-Problem: XSMP doesn't work when using poll().
-Solution: Use xsmp_idx instead of gpm_idx. (Neil Bird)
-Files: src/os_unix.c
-
-Patch 6.2.015
-Problem: The +xsmp feature is never enabled.
-Solution: Move the #define for USE_XSMP to below where WANT_X11 is defined.
- (Alexey Froloff)
-Files: src/feature.h
-
-Patch 6.2.016
-Problem: Using ":scscope find" with 'cscopequickfix' does not always split
- the window. (Gary Johnson)
- Win32: ":cscope add" could make the script that contains it
- read-only until the corresponding ":cscope kill".
- Errors during ":cscope add" may not be handled properly.
-Solution: When using the quickfix window may need to split the window.
- Avoid file handle inheritance for the script.
- Check for a failed connection and/or process. (Sergey Khorev)
-Files: src/ex_cmds2.c, src/if_cscope.c
-
-Patch 6.2.017
-Problem: Test11 sometimes prompts the user, because a file would have been
- changed outside of Vim. (Antonio Colombo)
-Solution: Add a FileChangedShell autocommand to avoid the prompt.
-Files: src/testdir/test11.in
-
-Patch 6.2.018
-Problem: When using the XSMP protocol and reading from stdin Vim may wait
- for a key to be pressed.
-Solution: Avoid that RealWaitForChar() is used recursively.
-Files: src/os_unix.c
-
-Patch 6.2.019 (lang)
-Problem: Loading the Portuguese menu causes an error message.
-Solution: Join two lines. (Jose Pedro Oliveira, José de Paula)
-Files: runtime/lang/menu_pt_br.vim
-
-Patch 6.2.020
-Problem: The "Syntax/Set syntax only" menu item causes an error message.
- (Oyvind Holm)
-Solution: Set the script-local variable in a function. (Benji Fisher)
-Files: runtime/synmenu.vim
-
-Patch 6.2.021
-Problem: The user manual section on exceptions contains small mistakes.
-Solution: Give a good example of an error that could be missed and other
- improvements. (Servatius Brandt)
-Files: runtime/doc/usr_41.txt
-
-Patch 6.2.022 (extra)
-Problem: Win32: After deleting a menu item it still appears in a tear-off
- window.
-Solution: Set the mode to zero for the deleted item. (Yasuhiro Matsumoto)
-Files: src/gui_w32.c
-
-Patch 6.2.023 (extra)
-Problem: Win32: Make_ivc.mak does not clean everything.
-Solution: Delete more files in the clean rule. (Walter Briscoe)
-Files: src/Make_ivc.mak
-
-Patch 6.2.024 (extra)
-Problem: Win32: Compiler warnings for typecasts.
-Solution: Use DWORD instead of WORD. (Walter Briscoe)
-Files: src/gui_w32.c
-
-Patch 6.2.025
-Problem: Missing prototype for sigaltstack().
-Solution: Add the prototype when it is not found in a header file.
-Files: src/os_unix.c
-
-Patch 6.2.026
-Problem: Warning for utimes() argument.
-Solution: Add a typecast.
-Files: src/fileio.c
-
-Patch 6.2.027
-Problem: Warning for uninitialized variable.
-Solution: Set mb_l to one when not using multi-byte characters.
-Files: src/message.c
-
-Patch 6.2.028
-Problem: Cscope connection may kill Vim process and others.
-Solution: Check for pid being larger than one. (Khorev Sergey)
-Files: src/if_cscope.c
-
-Patch 6.2.029
-Problem: When using the remote server functionality Vim may leak memory.
- (Srikanth Sankaran)
-Solution: Free the result of XListProperties().
-Files: src/if_xcmdsrv.c
-
-Patch 6.2.030
-Problem: Mac: Warning for not being able to use precompiled header files.
-Solution: Don't redefine select. Use -no-cpp-precomp for compiling, so that
- function prototypes are still found.
-Files: src/os_unix.c, src/osdef.sh
-
-Patch 6.2.031
-Problem: The langmenu entry in the options window doesn't work. (Rodolfo
- Lima)
- With GTK 1 the ":options" command causes an error message.
- (Michael Naumann)
-Solution: Change "lmenu" to "langmenu". Only display the 'tbis' option for
- GTK 2.
-Files: runtime/optwin.vim
-
-Patch 6.2.032
-Problem: The lpc filetype is never recognized. (Shizhu Pan)
-Solution: Check for g:lpc_syntax_for_c instead of the local variable
- lpc_syntax_for_c. (Benji Fisher)
-Files: runtime/filetype.vim
-
-Patch 6.2.033 (extra)
-Problem: Mac: Various compiler warnings.
-Solution: Don't include Classic-only headers in Unix version.
- Remove references to several unused variables. (Ben Fowler)
- Fix double definition of DEFAULT_TERM.
- Use int instead of unsigned short for pixel values, so that the
- negative error values are recognized.
-Files: src/gui_mac.c, src/term.c
-
-Patch 6.2.034
-Problem: Mac: Compiler warning for redefining DEFAULT_TERM.
-Solution: Fix double definition of DEFAULT_TERM.
-Files: src/term.c
-
-Patch 6.2.035
-Problem: Mac: Compiler warnings in Python interface.
-Solution: Make a difference between pure Mac and Unix-Mac. (Peter Cucka)
-Files: src/if_python.c
-
-Patch 6.2.036 (extra)
-Problem: Mac Unix version: If foo is a directory, then ":e f<Tab>" should
- expand to ":e foo/" instead of ":e foo" . (Vadim Zeitlin)
-Solution: Define DONT_ADD_PATHSEP_TO_DIR only for pure Mac. (Benji Fisher)
-Files: src/os_mac.h
-
-Patch 6.2.037
-Problem: Win32: converting an encoding name to a codepage could result in
- an arbitrary number.
-Solution: make encname2codepage() return zero if the encoding name doesn't
- contain a codepage number.
-Files: src/mbyte.c
-
-Patch 6.2.038 (extra)
-Problem: Warning messages when using the MingW compiler. (Bill McCarthy)
- Can't compile console version without +mouse feature.
-Solution: Initialize variables, add parenthesis.
- Add an #ifdef around g_nMouseClick. (Ajit Thakkar)
-Files: src/eval.c, src/os_win32.c, src/gui_w32.c, src/dosinst.c
-
-Patch 6.2.039 (extra)
-Problem: More warning messages when using the MingW compiler.
-Solution: Initialize variables. (Bill McCarthy)
-Files: src/os_mswin.c
-
-Patch 6.2.040
-Problem: FreeBSD: Crash while starting up when compiled with +xsmp feature.
-Solution: Pass a non-NULL argument to IceAddConnectionWatch().
-Files: src/os_unix.c
-
-Patch 6.2.041 (extra, after 6.2.033)
-Problem: Mac: Compiler warnings for conversion types, missing prototype,
- missing return type.
-Solution: Change sscanf "%hd" to "%d", the argument is an int now. Add
- gui_mch_init_check() prototype. Add "int" to termlib functions.
-Files: src/gui_mac.c, src/proto/gui_mac.pro, src/termlib.c.
-
-Patch 6.2.042 (extra)
-Problem: Cygwin: gcc 3.2 has an optimizer problem, sometimes causing a
- crash.
-Solution: Add -fno-strength-reduce to the compiler arguments. (Dan Sharp)
-Files: src/Make_cyg.mak
-
-Patch 6.2.043
-Problem: Compiling with both netbeans and workshop doesn't work.
-Solution: Move the shellRectangle() function to gui_x11.c. (Gordon Prieur)
-Files: src/gui_x11.c, src/integration.c, src/netbeans.c,
- src/proto/netbeans.pro
-
-Patch 6.2.044
-Problem: ":au filetypedetect" gives an error for a non-existing event name,
- but it's actually a non-existing group name. (Antoine Mechelynck)
-Solution: Make the error message clearer.
-Files: src/fileio.c
-
-Patch 6.2.045
-Problem: Obtaining the '( mark changes the '' mark. (Gary Holloway)
-Solution: Don't set the '' mark when searching for the start/end of the
- current sentence/paragraph.
-Files: src/mark.c
-
-Patch 6.2.046
-Problem: When evaluating an argument of a function throws an exception the
- function is still called. (Hari Krishna Dara)
-Solution: Don't call the function when an exception was thrown.
-Files: src/eval.c
-
-Patch 6.2.047 (extra)
-Problem: Compiler warnings when using MingW. (Bill McCarthy)
-Solution: Give the s_dwLastClickTime variable a type. Initialize dwEndTime.
-Files: src/os_win32.c
-
-Patch 6.2.048
-Problem: The Python interface doesn't compile with Python 2.3 when
- dynamically loaded.
-Solution: Use dll_PyObject_Malloc and dll_PyObject_Free. (Paul Moore)
-Files: src/if_python.c
-
-Patch 6.2.049
-Problem: Using a "-range=" argument with ":command" doesn't work and
- doesn't generate an error message.
-Solution: Generate an error message.
-Files: src/ex_docmd.c
-
-Patch 6.2.050
-Problem: Test 32 didn't work on MS-Windows.
-Solution: Write the temp file in Unix fileformat. (Walter Briscoe)
-Files: src/testdir/test32.in
-
-Patch 6.2.051
-Problem: When using "\=submatch(0)" in a ":s" command, line breaks become
- NUL characters.
-Solution: Change NL to CR characters, so that they become line breaks.
-Files: src/regexp.c
-
-Patch 6.2.052
-Problem: A few messages are not translated.
-Solution: Add _() to the messages. (Muraoka Taro)
-Files: src/ex_cmds.c
-
-Patch 6.2.053
-Problem: Prototype for bzero() doesn't match most systems.
-Solution: Use "void *" instead of "char *" and "size_t" instead of "int".
-Files: src/osdef1.h.in
-
-Patch 6.2.054
-Problem: A double-byte character with a second byte that is a backslash
- causes problems inside a string.
-Solution: Skip over multi-byte characters in a string properly. (Yasuhiro
- Matsumoto)
-Files: src/eval.c
-
-Patch 6.2.055
-Problem: Using col('.') from CTRL-O in Insert mode does not return the
- correct value for multi-byte characters.
-Solution: Correct the cursor position when it is necessary, move to the
- first byte of a multi-byte character. (Yasuhiro Matsumoto)
-Files: src/edit.c
-
-Patch 6.2.056 (extra)
-Problem: Building with Sniff++ doesn't work.
-Solution: Use the multi-threaded libc when needed. (Holger Ditting)
-Files: src/Make_mvc.mak
-
-Patch 6.2.057 (extra)
-Problem: Mac: With -DMACOS_X putenv() is defined twice, it is in a system
- library. Get a warning for redefining OK. Unused variables in
- os_mac.c
-Solution: Define HAVE_PUTENV. Undefine OK after including curses.h.
- Remove declarations for unused variables.
-Files: src/os_mac.c, src/os_mac.h, src/vim.h
-
-Patch 6.2.058
-Problem: When 'autochdir' is set ":bnext" to a buffer without a name causes
- a crash.
-Solution: Don't call vim_chdirfile() when the file name is NULL. (Taro
- Muraoka)
-Files: src/buffer.c
-
-Patch 6.2.059
-Problem: When 'scrolloff' is a large number and listing completion results
- on the command line, then executing a command that jumps close to
- where the cursor was before, part of the screen is not updated.
- (Yakov Lerner)
-Solution: Don't skip redrawing part of the window when it was scrolled.
-Files: src/screen.c
-
-Patch 6.2.060 (extra)
-Problem: Win32: When 'encoding' is set to "iso-8859-7" copy/paste to/from
- the clipboard gives a lalloc(0) error. (Kriton Kyrimis)
-Solution: When the string length is zero allocate one byte. Also fix that
- when the length of the Unicode text is zero (conversion from
- 'encoding' to UCS-2 was not possible) the normal text is used.
-Files: src/os_mswin.c
-
-Patch 6.2.061
-Problem: GUI: Using the left mouse button with the shift key should work
- like "*" but it scrolls instead. (Martin Beller)
-Solution: Don't recognize an rxvt scroll wheel event when using the GUI.
-Files: src/term.c
-
-Patch 6.2.062
-Problem: When one buffer uses a syntax with "containedin" and another
- buffer does not, redrawing depends on what the current buffer is.
- (Brett Pershing Stahlman)
-Solution: Use "syn_buf" instead of "curbuf" to get the b_syn_containedin
- flag.
-Files: src/syntax.c
-
-Patch 6.2.063
-Problem: When using custom completion end up with no matches.
-Solution: Make cmd_numfiles and cmd_files local to completion to avoid that
- they are overwritten when ExpandOne() is called recursively by
- f_glob().
-Files: src/eval.c, src/ex_docmd.c, src/ex_getln.c, src/proto/ex_getln.pro,
- src/misc1.c, src/structs.h, src/tag.c
-
-Patch 6.2.064
-Problem: resolve() only handles one symbolic link, need to repeat it to
- resolve all of them. Then need to simplify the file name.
-Solution: Make resolve() resolve all symbolic links and simplify the result.
- Add simplify() to just simplify a file name. Fix that test49
- doesn't work if /tmp is a symbolic link. (Servatius Brandt)
-Files: runtime/doc/eval.txt, src/eval.c, src/tag.c,
- src/testdir/test49.vim
-
-Patch 6.2.065
-Problem: ":windo 123" only updates other windows when entering them.
- (Walter Briscoe)
-Solution: Update the topline before going to the next window.
-Files: src/ex_cmds2.c
-
-Patch 6.2.066 (extra)
-Problem: Ruby interface doesn't work with Ruby 1.8.0.
-Solution: Change "defout" to "stdout". (Aron Griffis)
- Change dynamic loading. (Taro Muraoka)
-Files: src/if_ruby.c, src/Make_mvc.mak
-
-Patch 6.2.067
-Problem: When searching for a string that starts with a composing character
- the command line isn't drawn properly.
-Solution: Don't count the space to draw the composing character on and
- adjust the cursor column after drawing the string.
-Files: src/message.c
-
-Patch 6.2.068
-Problem: Events for the netbeans interface that include a file name with
- special characters don't work properly.
-Solution: Use nb_quote() on the file name. (Sergey Khorev)
-Files: src/netbeans.c
-
-Patch 6.2.069 (after 6.2.064)
-Problem: Unused variables "limit" and "new_st" and unused label "fail" in
- some situation. (Bill McCarthy)
-Solution: Put the declarations inside an #ifdef. (Servatius Brandt)
-Files: src/eval.c, src/tag.c
-
-Patch 6.2.070 (after 6.2.069)
-Problem: Still unused variable "new_st". (Bill McCarthy)
-Solution: Move the declaration to the right block this time.
-Files: src/tag.c
-
-Patch 6.2.071
-Problem: 'statusline' can only contain 50 % items. (Antony Scriven)
-Solution: Allow 80 items and mention it in the docs.
-Files: runtime/doc/option.txt, src/vim.h
-
-Patch 6.2.072
-Problem: When using expression folding, foldexpr() mostly returns -1 for
- the previous line, which makes it difficult to write a fold
- expression.
-Solution: Make the level of the previous line available while still looking
- for the end of a fold.
-Files: src/fold.c
-
-Patch 6.2.073
-Problem: When adding detection of a specific filetype for a plugin you need
- to edit "filetype.vim".
-Solution: Source files from the "ftdetect" directory, so that a filetype
- detection plugin only needs to be dropped in a directory.
-Files: runtime/doc/filetype.txt, runtime/doc/usr_05.txt,
- runtime/doc/usr_41.txt, runtime/filetype.vim
-
-Patch 6.2.074
-Problem: Warnings when compiling the Python interface. (Ajit Thakkar)
-Solution: Use ANSI function declarations.
-Files: src/if_python.c
-
-Patch 6.2.075
-Problem: When the temp file for writing viminfo can't be used "NULL"
- appears in the error message. (Ben Lavender)
-Solution: Print the original file name when there is no temp file name.
-Files: src/ex_cmds.c
-
-Patch 6.2.076
-Problem: The tags listed for cscope are in the wrong order. (Johannes
- Stezenbach)
-Solution: Remove the reordering of tags for the current file. (Sergey
- Khorev)
-Files: src/if_cscope.c
-
-Patch 6.2.077
-Problem: When a user function specifies custom completion, the function
- gets a zero argument instead of an empty string when there is no
- word before the cursor. (Preben Guldberg)
-Solution: Don't convert an empty string to a zero.
-Files: src/eval.c
-
-Patch 6.2.078
-Problem: "make test" doesn't work if Vim wasn't compiled yet. (Ed Avis)
-Solution: Build Vim before running the tests.
-Files: src/Makefile
-
-Patch 6.2.079
-Problem: ":w ++enc=utf-8 !cmd" doesn't work.
-Solution: Check for the "++" argument before the "!".
-Files: src/ex_docmd.c
-
-Patch 6.2.080
-Problem: When 't_ti' is not empty but doesn't swap screens, using "ZZ" in
- an unmodified file doesn't clear the last line.
-Solution: Call msg_clr_eos() when needed. (Michael Schroeder)
-Files: src/os_unix.c
-
-Patch 6.2.081
-Problem: Problem when using a long multibyte string for the statusline.
-Solution: Use the right pointer to get the cell size. (Taro Muraoka)
-Files: src/buffer.c
-
-Patch 6.2.082
-Problem: Can't compile with Perl 5.8.1.
-Solution: Rename "e_number" to "e_number_exp". (Sascha Blank)
-Files: src/digraph.c, src/globals.h
-
-Patch 6.2.083
-Problem: When a compiler uses ^^^^ to mark a word the information is not
- visible in the quickfix window. (Srikanth Sankaran)
-Solution: Don't remove the indent for a line that is not recognized as an
- error message.
-Files: src/quickfix.c
-
-Patch 6.2.084
-Problem: "g_" in Visual mode always goes to the character after the line.
- (Jean-Rene David)
-Solution: Ignore the NUL at the end of the line.
-Files: src/normal.c
-
-Patch 6.2.085
-Problem: ":verbose set ts" doesn't say an option was set with a "-c" or
- "--cmd" argument.
-Solution: Remember the option was set from a Vim argument.
-Files: src/main.c, src/ex_cmds2.c, src/vim.h
-
-Patch 6.2.086
-Problem: "{" and "}" stop inside a closed fold.
-Solution: Only stop once inside a closed fold. (Stephen Riehm)
-Files: src/search.c
-
-Patch 6.2.087
-Problem: CTRL-^ doesn't use the 'confirm' option. Same problem with
- ":bnext". (Yakov Lerner)
-Solution: Put up a dialog for a changed file when 'confirm' is set in more
- situations.
-Files: src/buffer.c, src/ex_cmds.c
-
-Patch 6.2.088
-Problem: When 'sidescrolloff' is set 'showmatch' doesn't work correctly if
- the match is less than 'sidescrolloff' off from the side of the
- window. (Roland Stahn)
-Solution: Set 'sidescrolloff' to zero while displaying the match.
-Files: src/search.c
-
-Patch 6.2.089
-Problem: ":set isk+=" adds a comma. (Mark Waggoner)
-Solution: Don't add a comma when the added value is empty.
-Files: src/option.c
-
-Patch 6.2.090 (extra)
-Problem: Win32: MingW compiler complains about #pragmas. (Bill McCarthy)
-Solution: Put an #ifdef around the #pragmas.
-Files: src/os_win32.c
-
-Patch 6.2.091
-Problem: When an autocommand is triggered when a file is dropped on Vim and
- it produces output, messages from a following command may be
- scrolled unexpectedly. (David Rennalls)
-Solution: Save and restore msg_scroll in handle_drop().
-Files: src/ex_docmd.c
-
-Patch 6.2.092
-Problem: Invalid items appear in the help file tags. (Antonio Colombo)
-Solution: Only accept tags with white space before the first "*".
-Files: runtime/doc/doctags.c, src/ex_cmds.c
-
-Patch 6.2.093
-Problem: ":nnoremenu" also defines menu for Visual mode. (Klaus Bosau)
-Solution: Check the second command character for an "o", not the third.
-Files: src/menu.c
-
-Patch 6.2.094
-Problem: Can't compile with GTK and tiny features.
-Solution: Include handle_drop() and vim_chdirfile() when FEAT_DND is defined.
- Do not try to split the window.
-Files: src/ex_docmd.c, src/misc2.c
-
-Patch 6.2.095
-Problem: The message "Cannot go to buffer x" is confusing for ":buf 6".
- (Frans Englich)
-Solution: Make it "Buffer x does not exist".
-Files: src/buffer.c
-
-Patch 6.2.096
-Problem: Win32: ":let @* = ''" put a newline on the clipboard. (Klaus
- Bosau)
-Solution: Put zero bytes on the clipboard for an empty string.
-Files: src/ops.c
-
-Patch 6.2.097
-Problem: Setting or resetting 'insertmode' in a BufEnter autocommand
- doesn't always have immediate effect. (Nagger)
-Solution: When 'insertmode' is set, set need_start_insertmode, when it's
- reset set stop_insert_mode.
-Files: src/option.c
-
-Patch 6.2.098 (after 6.2.097)
-Problem: Can't build Vim with tiny features. (Christian J. Robinson)
-Solution: Declare stop_insert_mode always.
-Files: src/edit.c, src/globals.h
-
-Patch 6.2.099 (extra)
-Problem: Test 49 fails. (Mikolaj Machowski)
-Solution: The Polish translation must not change "E116" to "R116".
-Files: src/po/pl.po
-
-Patch 6.2.100
-Problem: "make proto" fails when compiled with the Perl interface.
-Solution: Remove "-fno.*" from PERL_CFLAGS, cproto sees it as its option.
-Files: src/auto/configure, src/configure.in
-
-Patch 6.2.101
-Problem: When using syntax folding, opening a file slows down a lot when
- it's size increases by only 20%. (Gary Johnson)
-Solution: The array with cached syntax states is leaking entries. After
- cleaning up the list obtain the current entry again.
-Files: src/syntax.c
-
-Patch 6.2.102
-Problem: The macros equal() and CR conflict with a Carbon header file.
-Solution: Rename equal() to equalpos(). Rename CR to CAR.
- Do this in the non-extra files only.
-Files: src/ascii.h, src/buffer.c, src/charset.c, src/edit.c, src/eval.c,
- src/ex_cmds.c, src/ex_cmds2.c, src/ex_getln.c, src/fileio.c,
- src/getchar.c, src/gui.c, src/gui_athena.c, src/gui_gtk_x11.c,
- src/gui_motif.c, src/macros.h, src/mark.c, src/message.c,
- src/misc1.c, src/misc2.c, src/normal.c, src/ops.c, src/os_unix.c,
- src/regexp.c, src/search.c, src/ui.c, src/workshop.c
-
-Patch 6.2.103 (extra)
-Problem: The macros equal() and CR conflict with a Carbon header file.
-Solution: Rename equal() to equalpos(). Rename CR to CAR.
- Do this in the extra files only.
-Files: src/gui_photon.c, src/gui_w48.c
-
-Patch 6.2.104
-Problem: Unmatched braces in the table with options.
-Solution: Move the "}," outside of the #ifdef. (Yakov Lerner)
-Files: src/option.c
-
-Patch 6.2.105
-Problem: When the cursor is past the end of the line when calling
- get_c_indent() a crash might occur.
-Solution: Don't look past the end of the line. (NJ Verenini)
-Files: src/misc1.c
-
-Patch 6.2.106
-Problem: Tag searching gets stuck on a very long line in the tags file.
-Solution: When skipping back to search the first matching tag remember the
- offset where searching started looking for a line break.
-Files: src/tag.c
-
-Patch 6.2.107 (extra)
-Problem: The NetBeans interface cannot be used on Win32.
-Solution: Add support for the NetBeans for Win32. Add support for reading
- XPM files on Win32. Also fixes that a sign icon with a space in
- the file name did not work through the NetBeans interface.
- (Sergey Khorev)
- Also: avoid repeating error messages when the connection is lost.
-Files: Makefile, runtime/doc/netbeans.txt, src/Make_bc5.mak,
- src/Make_cyg.mak, src/Make_ming.mak, src/Make_mvc.mak,
- src/bigvim.bat, src/feature.h, src/gui_beval.c, src/gui_beval.h,
- src/gui_w32.c, src/gui_w48.c, src/menu.c, src/nbdebug.c,
- src/nbdebug.h, src/netbeans.c, src/os_mswin.c, src/os_win32.h,
- src/proto/gui_beval.pro, src/proto/gui_w32.pro,
- src/proto/netbeans.pro, src/proto.h, src/version.c, src/vim.h,
- src/xpm_w32.c, src/xpm_w32.h
-
-Patch 6.2.108
-Problem: Crash when giving a message about ignoring case in a tag. (Manfred
- Kuehn)
-Solution: Use a longer buffer for the message.
-Files: src/tag.c
-
-Patch 6.2.109
-Problem: Compiler warnings with various Amiga compilers.
-Solution: Add typecast, prototypes, et al. that are also useful for other
- systems. (Flavio Stanchina)
-Files: src/eval.c, src/ops.c
-
-Patch 6.2.110
-Problem: When $LANG includes the encoding, a menu without an encoding name
- is not found.
-Solution: Also look for a menu file without any encoding.
-Files: runtime/menu.vim
-
-Patch 6.2.111
-Problem: Encoding "cp1251" is not recognized.
-Solution: Add "cp1251" to the table of encodings. (Alexey Froloff)
-Files: src/mbyte.c
-
-Patch 6.2.112
-Problem: After applying patches test32 fails. (Antonio Colombo)
-Solution: Have "make clean" in the testdir delete *.rej and *.orig files.
- Use this when doing "make clean" in the src directory.
-Files: src/Makefile, src/testdir/Makefile
-
-Patch 6.2.113
-Problem: Using ":startinsert" after "$" works like "a" instead of "i".
- (Ajit Thakkar)
-Solution: Reset "w_curswant" for ":startinsert" and reset o_eol in edit().
-Files: src/edit.c, src/ex_docmd.c
-
-Patch 6.2.114
-Problem: When stdout is piped through "tee", the size of the screen may not
- be correct.
-Solution: Use stdin instead of stdout for ioctl() when stdin is a tty and
- stdout isn't.
-Files: src/os_unix.c
-
-Patch 6.2.115 (extra)
-Problem: Compiler warnings with various Amiga compilers.
-Solution: Add typecast, prototypes, et al. Those changes that are
- Amiga-specific. (Flavio Stanchina)
-Files: src/fileio.c, src/memfile.c, src/os_amiga.c, src/os_amiga.h,
- src/vim.h
-
-Patch 6.2.116 (extra)
-Problem: German keyboard with Numlock set different from system startup
- causes problems.
-Solution: Ignore keys with code 0xff. (Helmut Stiegler)
-Files: src/gui_w48.c
-
-Patch 6.2.117
-Problem: Breakpoints in loops of sourced files and functions are not
- detected. (Hari Krishna Dara)
-Solution: Check for breakpoints when using lines that were previously read.
- (Servatius Brandt)
-Files: src/eval.c, src/ex_cmds2.c, src/ex_docmd.c, src/proto/eval.pro,
- src/proto/ex_cmds2.pro
-
-Patch 6.2.118 (extra)
-Problem: Mac: Compiling is done in a non-standard way.
-Solution: Use the Unix method for Mac OS X, with autoconf. Add "CARBONGUI"
- to Makefile and configure. (Eric Kow)
- Move a few prototypes from os_mac.pro to gui_mac.pro.
-Files: src/Makefile, src/auto/configure, src/configure.in,
- src/config.mk.in, src/gui_mac.c, src/os_mac.h, src/os_macosx.c,
- src/proto/gui_mac.pro, src/proto/os_mac.pro,
- src/infplist.xml, src/vim.h
-
-Patch 6.2.119 (after 6.2.107)
-Problem: When packing the MS-Windows archives a few files are missing.
- (Guopeng Wen)
-Solution: Add gui_beval.* to the list of generic source files.
-Files: Makefile
-
-Patch 6.2.120
-Problem: Win32 GUI: The console dialogs are not supported on MS-Windows,
- disabling the 'c' flag of 'guioptions'. (Servatius Brandt)
-Solution: Define FEAT_CON_DIALOG also for GUI-only builds.
-Files: src/feature.h
-
-Patch 6.2.121 (after 6.2.118)
-Problem: Not all make programs support "+=". (Charles Campbell)
-Solution: Use a normal assignment.
-Files: src/Makefile
-
-Patch 6.2.122 (after 6.2.119)
-Problem: Not all shells can expand [^~]. File missing. (Guopeng Wen)
-Solution: Use a simpler pattern. Add the Aap recipe for the maze program
- and a clean version of the source code.
-Files: Makefile, runtime/macros/maze/Makefile,
- runtime/macros/maze/README.txt, runtime/macros/maze/main.aap,
- runtime/macros/maze/mazeclean.c
-
-Patch 6.2.123 (after 6.2.118)
-Problem: Running configure fails. (Tony Leneis)
-Solution: Change "==" to "=" for a test.
-Files: src/auto/configure, src/configure.in
-
-Patch 6.2.124 (after 6.2.121)(extra)
-Problem: Mac: Recursive use of M4FLAGS causes problems. When running Vim
- directly it can't find the runtime files. (Emily Jackson)
- Using GNU constructs causes warnings with other make programs.
- (Ronald Schild)
-Solution: Use another name for the M4FLAGS variable.
- Don't remove "Vim.app" from the path.
- Update the explanation for compiling on the Mac. (Eric Kow)
- Don't use $(shell ) and $(addprefix ).
-Files: src/INSTALLmac.txt, src/Makefile, src/misc1.c
-
-Patch 6.2.125 (after 6.2.107)
-Problem: The "winsock2.h" file isn't always available.
-Solution: Don't include this header file.
-Files: src/netbeans.c
-
-Patch 6.2.126
-Problem: Typing CTRL-C at a confirm() prompt doesn't throw an exception.
-Solution: Reset "mapped_ctrl_c" in get_keystroke(), so that "got_int" is set
- in _OnChar().
-Files: src/misc1.c
-
-Patch 6.2.127 (extra)
-Problem: Win32 console: Typing CTRL-C doesn't throw an exception.
-Solution: Set got_int immediately when CTRL-C is typed, don't wait for
- mch_breakcheck() being called.
-Files: src/os_win32.c
-
-Patch 6.2.128 (after 6.2.118)
-Problem: src/auto/configure is not consistent with src/configure.in.
-Solution: Use the newly generated configure script.
-Files: src/auto/configure
-
-Patch 6.2.129
-Problem: When 'number' is set 'wrapmargin' does not work Vi-compatible.
- (Yasuhiro Matsumoto)
-Solution: Reduce the textwidth when 'number' is set. Also for 'foldcolumn'
- and similar things.
-Files: src/edit.c
-
-Patch 6.2.130 (extra)
-Problem: Win32 console: When 'restorescreen' is not set exiting Vim causes
- the screen to be cleared. (Michael A. Mangino)
-Solution: Don't clear the screen when exiting and 'restorescreen' isn't set.
-Files: src/os_win32.c
-
-Patch 6.2.131 (extra)
-Problem: Win32: Font handles are leaked.
-Solution: Free italic, bold and bold-italic handles before overwriting them.
- (Michael Wookey)
-Files: src/gui_w48.c
-
-Patch 6.2.132 (extra)
-Problem: Win32: console version doesn't work on latest Windows Server 2003.
-Solution: Copy 12000 instead of 15000 cells at a time to avoid running out
- of memory.
-Files: src/os_win32.c
-
-Patch 6.2.133
-Problem: When starting the GUI a bogus error message about 'imactivatekey'
- may be given.
-Solution: Only check the value of 'imactivatekey' when the GUI is running.
-Files: src/gui.c, src/option.c
-
-Patch 6.2.134 (extra)
-Problem: Win32: When scrolling parts of the window are redrawn when this
- isn't necessary.
-Solution: Only invalidate parts of the window when they are obscured by
- other windows. (Michael Wookey)
-Files: src/gui_w48.c
-
-Patch 6.2.135
-Problem: An item <> in the ":command" argument is interpreted as <args>.
-Solution: Avoid that <> is recognized as <args>.
-Files: src/ex_docmd.c
-
-Patch 6.2.136
-Problem: ":e ++enc=latin1 newfile" doesn't set 'fenc' when the file doesn't
- exist. (Miroslaw Dobrzanski-Neumann)
-Solution: Set 'fileencoding' to the specified encoding when editing a file
- that does not exist.
-Files: src/fileio.c
-
-Patch 6.2.137
-Problem: "d:cmd<CR>" cannot be repeated with ".". Breaks repeating "d%"
- when using the matchit plugin.
-Solution: Store the command to be repeated. This is restricted to
- single-line commands.
-Files: src/ex_docmd.c, src/globals.h, src/normal.c, src/vim.h
-
-Patch 6.2.138 (extra)
-Problem: Compilation problem on VMS with dynamic buffer on the stack.
-Solution: Read one byte less than the size of the buffer, so that we can
- check for the string length without an extra buffer.
-Files: src/os_vms.c
-
-Patch 6.2.139
-Problem: Code is repeated in the two Perl files.
-Solution: Move common code from if_perl.xs and if_perlsfio.c to vim.h.
- Also fix a problem with generating prototypes.
-Files: src/if_perl.xs, src/if_perlsfio.c, src/vim.h
-
-Patch 6.2.140 (after 6.2.121)
-Problem: Mac: Compiling with Python and Perl doesn't work.
-Solution: Adjust the configure check for Python to use "-framework Python"
- for Python 2.3 on Mac OS/X.
- Move "-ldl" after "DynaLoader.a" in the link command.
- Change "perllibs" to "PERL_LIBS".
-Files: src/auto/configure, src/configure.in, src/config.mk.in
-
-Patch 6.2.141 (extra)
-Problem: Mac: The b_FSSpec field is sometimes unused.
-Solution: Change the #ifdef to FEAT_CW_EDITOR and defined it in feature.h
-Files: src/fileio.c, src/gui_mac.c, src/structs.h, src/feature.h
-
-Patch 6.2.142 (after 6.2.124)
-Problem: Mac: building without GUI through configure doesn't work.
- When the system is slow, unpacking the resource file takes too
- long.
-Solution: Don't always define FEAT_GUI_MAC when MACOS is defined, define it
- in the Makefile.
- Add a configure option to skip Darwin detection.
- Use a Python script to unpack the resources to avoid a race
- condition. (Taro Muraoka)
-Files: Makefile, src/Makefile, src/auto/configure, src/configure.in,
- src/dehqx.py, src/vim.h
-
-Patch 6.2.143
-Problem: Using "K" on Visually selected text doesn't work if it ends in
- a multi-byte character.
-Solution: Include all the bytes of the last character. (Taro Muraoka)
-Files: src/normal.c
-
-Patch 6.2.144
-Problem: When "g:html_use_css" is set the HTML header generated by the
- 2html script is wrong.
-Solution: Add the header after adding HREF for links.
- Also use ":normal!" instead of ":normal" to avoid mappings
- getting in the way.
-Files: runtime/syntax/2html.vim
-
-Patch 6.2.145 (after 6.2.139)
-Problem: Undefining "bool" doesn't work for older systems. (Wojtek Pilorz)
-Solution: Only undefine "bool" on Mac OS.
-Files: src/vim.h
-
-Patch 6.2.146
-Problem: On some systems the prototype for iconv() is wrong, causing a
- warning message.
-Solution: Use a cast (void *) to avoid the warning. (Charles Campbell)
-Files: src/fileio.c, src/mbyte.c
-
-Patch 6.2.147
-Problem: ":s/pat/\=col('.')" always replaces with "1".
-Solution: Set the cursor to the start of the match before substituting.
- (Helmut Stiegler)
-Files: src/ex_cmds.c
-
-Patch 6.2.148
-Problem: Can't break an Insert into several undoable parts.
-Solution: Add the CTRL-G u command.
-Files: runtime/doc/insert.txt, src/edit.c
-
-Patch 6.2.149
-Problem: When the cursor is on a line past 21,474,748 the indicated
- percentage of the position is invalid. With that many lines
- "100%" causes a negative cursor line number, resulting in a crash.
- (Daniel Goujot)
-Solution: Divide by 100 instead of multiplying. Avoid overflow when
- computing the line number for "100%".
-Files: src/buffer.c, src/ex_cmds2.c, src/normal.c
-
-Patch 6.2.150
-Problem: When doing "vim - < file" lines are broken at NUL chars.
- (Daniel Goujot)
-Solution: Change NL characters back to NUL when reading from the temp
- buffer.
-Files: src/fileio.c
-
-Patch 6.2.151
-Problem: When doing "vim --remote +startinsert file" some commands are
- inserted as text. (Klaus Bosau)
-Solution: Put all the init commands in one Ex line, not using a <CR>, so
- that Insert mode isn't started too early.
-Files: src/main.c
-
-Patch 6.2.152
-Problem: The cursor() function doesn't reset the column offset for
- 'virtualedit'.
-Solution: Reset the offset to zero. (Helmut Stiegler)
-Files: src/eval.c
-
-Patch 6.2.153
-Problem: Win32: ":lang german" doesn't use German messages.
-Solution: Add a table to translate the Win32 language names to two-letter
- language codes.
-Files: src/ex_cmds2.c
-
-Patch 6.2.154
-Problem: Python bails out when giving a warning message. (Eugene
- Minkovskii)
-Solution: Set sys.argv[] to an empty string.
-Files: src/if_python.c
-
-Patch 6.2.155
-Problem: Win32: Using ":tjump www" in a help file gives two results.
- (Dave Roberts)
-Solution: Ignore differences between slashes and backslashes when checking
- for identical tag matches.
-Files: src/tag.c
-
-Patch 6.2.156 (after 6.2.125)
-Problem: Win32: Netbeans fails to build, EINTR is not defined.
-Solution: Redefine EINTR to WSAEINTR. (Mike Williams)
-Files: src/netbeans.c
-
-Patch 6.2.157
-Problem: Using "%p" in 'errorformat' gives a column number that is too
- high.
-Solution: Set the flag to use the number as a virtual column. (Lefteris
- Koutsoloukas)
-Files: src/quickfix.c
-
-Patch 6.2.158
-Problem: The sed command on Solaris and HPUX doesn't work for a line that
- doesn't end in a newline.
-Solution: Add a newline when feeding text to sed. (Mark Waggoner)
-Files: src/configure.in, src/auto/configure
-
-Patch 6.2.159
-Problem: When using expression folding and 'foldopen' is "undo" an undo
- command doesn't always open the fold.
-Solution: Save and restore the KeyTyped variable when evaluating 'foldexpr'.
- (Taro Muraoka)
-Files: src/fold.c
-
-Patch 6.2.160
-Problem: When 'virtualedit' is "all" and 'selection' is "exclusive",
- selecting a double-width character below a single-width character
- may cause a crash.
-Solution: Avoid overflow on unsigned integer decrement. (Taro Muraoka)
-Files: src/normal.c
-
-Patch 6.2.161 (extra)
-Problem: VMS: Missing header file. Reading input busy loops.
-Solution: Include termdef.h. Avoid the use of a wait function in
- vms_read(). (Frank Ries)
-Files: src/os_unix.h, src/os_vms.c
-
-Patch 6.2.162
-Problem: ":redraw" doesn't always display the text that includes the cursor
- position, e.g. after ":call cursor(1, 0)". (Eugene Minkovskii)
-Solution: Call update_topline() before redrawing.
-Files: src/ex_docmd.c
-
-Patch 6.2.163
-Problem: "make install" may also copy AAPDIR directories.
-Solution: Delete AAPDIR directories, just like CVS directories.
-Files: src/Makefile
-
-Patch 6.2.164 (after 6.2.144)
-Problem: When "g:html_use_css" is set the HTML header generated by the
- 2html script is still wrong.
-Solution: Search for a string instead of jumping to a fixed line number.
- Go to the start of the line before inserting the header.
- (Jess Thrysoee)
-Files: runtime/syntax/2html.vim
-
-Patch 6.2.165
-Problem: The configure checks hang when using autoconf 2.57.
-Solution: Invoke AC_PROGRAM_EGREP to set $EGREP. (Aron Griffis)
-Files: src/auto/configure, src/configure.in
-
-Patch 6.2.166
-Problem: When $GZIP contains "-N" editing compressed files doesn't work
- properly.
-Solution: Add "-n" to "gzip -d" to avoid restoring the file name. (Oyvind
- Holm)
-Files: runtime/plugin/gzip.vim
-
-Patch 6.2.167
-Problem: The Python interface leaks memory when assigning lines to a
- buffer. (Sergey Khorev)
-Solution: Do not copy the line when calling ml_replace().
-Files: src/if_python.c
-
-Patch 6.2.168
-Problem: Python interface: There is no way to get the indices from a range
- object.
-Solution: Add the "start" and "end" attributes. (Maurice S. Barnum)
-Files: src/if_python.c, runtime/doc/if_pyth.txt
-
-Patch 6.2.169
-Problem: The prototype for _Xmblen() appears in a recent XFree86 header
- file, causing a warning for our prototype. (Hisashi T Fujinaka)
-Solution: Move the prototype to an osdef file, so that it's filtered out.
-Files: src/mbyte.c, src/osdef2.h.in
-
-Patch 6.2.170
-Problem: When using Sun WorkShop the current directory isn't changed to
- where the file is.
-Solution: Set the 'autochdir' option when using WorkShop. And avoid using
- the basename when 'autochdir' is not set.
-Files: src/gui_x11.c, src/ex_cmds.c
-
-Patch 6.2.171 (after 6.2.163)
-Problem: The "-or" argument of "find" doesn't work for SysV systems.
-Solution: Use "-o" instead. (Gordon Prieur)
-Files: src/Makefile
-
-Patch 6.2.172 (after 6.2.169)
-Problem: The prototype for _Xmblen() still causes trouble.
-Solution: Include the X11 header file that defines the prototype.
-Files: src/osdef2.h.in, src/osdef.sh
-
-Patch 6.2.173 (extra)
-Problem: Win32: Ruby interface doesn't work with Ruby 1.8.0 for other
- compilers than MSVC.
-Solution: Fix the BC5, Cygwin and Mingw makefiles. (Dan Sharp)
-Files: src/Make_bc5.mak, src/Make_cyg.mak, src/Make_ming.mak
-
-Patch 6.2.174
-Problem: After the ":intro" message only a mouse click in the last line
- gets past the hit-return prompt.
-Solution: Accept a click at or below the hit-return prompt.
-Files: src/gui.c, src/message.c
-
-Patch 6.2.175
-Problem: Changing 'backupext' in a *WritePre autocommand doesn't work.
- (William Natter)
-Solution: Move the use of p_bex to after executing the *WritePre
- autocommands. Also avoids reading allocated memory after freeing.
-Files: src/fileio.c
-
-Patch 6.2.176
-Problem: Accented characters in translated help files are not handled
- correctly. (Fabien Vayssiere)
-Solution: Include "192-255" in 'iskeyword' for the help window.
-Files: src/ex_cmds.c
-
-Patch 6.2.177 (extra)
-Problem: VisVim: Opening a file with a space in the name doesn't work. (Rob
- Retter) Arbitrary commands are being executed. (Neil Bird)
-Solution: Put a backslash in front of every space in the file name.
- (Gerard Blais) Terminate the CTRL-\ CTRL-N command with a NUL.
-Files: src/VisVim/Commands.cpp, src/VisVim/VisVim.rc
-
-Patch 6.2.178
-Problem: People who don't know how to exit Vim try pressing CTRL-C.
-Solution: Give a message how to exit Vim when CTRL-C is pressed and it
- doesn't cancel anything.
-Files: src/normal.c
-
-Patch 6.2.179 (extra)
-Problem: The en_gb messages file isn't found on case sensitive systems.
-Solution: Rename en_gb to en_GB. (Mike Williams)
-Files: src/po/en_gb.po, src/po/en_GB.po, src/po/Make_ming.mak,
- src/po/Make_mvc.mak, src/po/Makefile, src/po/README_mvc.txt
-
-Patch 6.2.180
-Problem: Compiling with GTK2 on Win32 doesn't work.
-Solution: Include gdkwin32.h instead of gdkx.h. (Srinath Avadhanula)
-Files: src/gui_gtk.c, src/gui_gtk_f.c, src/gui_gtk_x11.c, src/mbyte.c
-
-Patch 6.2.181 (after 6.2.171)
-Problem: The "-o" argument of "find" has lower priority than the implied
- "and" with "-print".
-Solution: Add parenthesis around the "-o" expression. (Gordon Prieur)
-Files: src/Makefile
-
-Patch 6.2.182 (after 6.2.094)
-Problem: Compilation with tiny features fails because of missing
- get_past_head() function.
-Solution: Adjust the #ifdef for get_past_head().
-Files: src/misc1.c
-
-Patch 6.2.183 (after 6.2.178)
-Problem: Warning for char/unsigned char mixup.
-Solution: Use MSG() instead of msg(). (Tony Leneis)
-Files: src/normal.c
-
-Patch 6.2.184
-Problem: With 'formatoptions' set to "1aw" inserting text may cause the
- paragraph to be ended. (Alan Schmitt)
-Solution: Temporarily add an extra space to make the paragraph continue
- after moving the word after the cursor to the next line.
- Also format when pressing Esc.
-Files: src/edit.c, src/normal.c, src/proto/edit.pro
-
-Patch 6.2.185
-Problem: Restoring a session with zero-height windows does not work
- properly. (Charles Campbell)
-Solution: Accept a zero argument to ":resize" as intended. Add a window
- number argument to ":resize" to be able to set the size of other
- windows, because the current window cannot be zero-height.
- Fix the explorer plugin to avoid changing the window sizes. Add
- the winrestcmd() function for this.
-Files: runtime/doc/eval.txt, runtime/plugin/explorer.vim, src/eval.c,
- src/ex_cmds.h, src/ex_docmd.c, src/proto/window.pro, src/window.c
-
-Patch 6.2.186 (after 6.2.185)
-Problem: Documentation file eval.txt contains examples without indent.
-Solution: Insert the indent. Also fix other mistakes.
-Files: runtime/doc/eval.txt
-
-Patch 6.2.187
-Problem: Using Insure++ reveals a number of bugs. (Dominique Pelle)
-Solution: Initialize variables where needed. Free allocated memory to avoid
- leaks. Fix comparing tags to avoid reading past allocated memory.
-Files: src/buffer.c, src/diff.c, src/fileio.c, src/mark.c, src/misc1.c,
- src/misc2.c, src/ops.c, src/option.c, src/tag.c, src/ui.c
-
-Patch 6.2.188 (extra)
-Problem: MS-Windows: Multi-byte characters in a filename cause trouble for
- the window title.
-Solution: Return when the wide function for setting the title did its work.
-Files: src/gui_w48.c
-
-Patch 6.2.189
-Problem: When setting 'viminfo' after editing a new buffer its marks are
- not stored. (Keith Roberts)
-Solution: Set the "b_marks_read" flag when skipping to read marks from the
- viminfo file.
-Files: src/fileio.c
-
-Patch 6.2.190
-Problem: When editing a compressed files, marks are lost.
-Solution: Add the ":lockmarks" modifier and use it in the gzip plugin.
- Make exists() also check for command modifiers, so that the
- existence of ":lockmarks" can be checked for.
- Also add ":keepmarks" to avoid that marks are deleted when
- filtering text.
- When deleting lines put marks 'A - 'Z and '0 - '9 at the first
- deleted line instead of clearing the mark. They were kept in the
- viminfo file anyway.
- Avoid that the gzip plugin puts deleted text in registers.
-Files: runtime/doc/motion.txt, runtime/plugin/gzip.vim, src/ex_cmds.c,
- src/ex_docmd.c, src/mark.c, src/structs.h
-
-Patch 6.2.191
-Problem: The intro message is outdated. Information about sponsoring and
- registering is missing.
-Solution: Show info about sponsoring and registering Vim in the intro
- message now and then. Add help file about sponsoring.
-Files: runtime/doc/help.txt, runtime/doc/sponsor.txt, runtime/doc/tags,
- runtime/menu.vim, src/version.c
-
-Patch 6.2.192
-Problem: Using CTRL-T and CTRL-D with "gR" messes up the text. (Jonathan
- Hankins)
-Solution: Avoid calling change_indent() recursively.
-Files: src/edit.c
-
-Patch 6.2.193
-Problem: When recalling a search pattern from the history from a ":s,a/c,"
- command the '/' ends the search string. (JC van Winkel)
-Solution: Store the separator character with the history entries. Escape
- characters when needed, replace the old separator with the new one.
- Also fixes that recalling a "/" search for a "?" command messes up
- trailing flags.
-Files: src/eval.c, src/ex_getln.c, src/normal.c, src/proto/ex_getln.pro,
- src/search.c, src/tag.c
-
-Patch 6.2.194 (after 6.2.068)
-Problem: For NetBeans, instead of writing the file and sending an event
- about it, tell NetBeans to write the file.
-Solution: Add the "save" command, "netbeansBuffer" command and
- "buttonRelease" event to the netbeans protocol. Updated the
- interface to version 2.2. (Gordon Prieur)
- Also: open a fold when the cursor has been positioned.
- Also: fix memory leak, free result of nb_quote().
-Files: runtime/doc/netbeans.txt, src/fileio.c, src/netbeans.c,
- src/normal.c, src/proto/netbeans.pro, src/structs.h
-
-Patch 6.2.195 (after 6.2.190)
-Problem: Compiling fails for missing CPO_REMMARK symbol.
-Solution: Add the patch I forgot to include...
-Files: src/option.h
-
-Patch 6.2.196 (after 6.2.191)
-Problem: Rebuilding the documentation doesn't use the sponsor.txt file.
-Solution: Add sponsor.txt to the Makefile. (Christian J. Robinson)
-Files: runtime/doc/Makefile
-
-Patch 6.2.197
-Problem: It is not possible to force a redraw of status lines. (Gary
- Johnson)
-Solution: Add the ":redrawstatus" command.
-Files: runtime/doc/various.txt, src/ex_cmds.h, src/ex_docmd.c,
- src/screen.c
-
-Patch 6.2.198
-Problem: A few messages are not translated. (Ernest Adrogue)
-Solution: Mark the messages to be translated.
-Files: src/ex_cmds.c
-
-Patch 6.2.199 (after 6.2.194)
-Problem: Vim doesn't work perfectly well with NetBeans.
-Solution: When NetBeans saves the file, reset the timestamp to avoid "file
- changed" warnings. Close a buffer in a proper way. Don't try
- giving a debug message with an invalid pointer. Send a
- newDotAndMark message when needed. Report a change by the "r"
- command to NetBeans. (Gordon Prieur)
-Files: src/netbeans.c, src/normal.c
-
-Patch 6.2.200
-Problem: When recovering a file, 'fileformat' is always the default, thus
- writing the file may result in differences. (Penelope Fudd)
-Solution: Before recovering the file try reading the original file to obtain
- the values of 'fileformat', 'fileencoding', etc.
-Files: src/memline.c
-
-Patch 6.2.201
-Problem: When 'autowriteall' is set ":qall" still refuses to exit if there
- is a modified buffer. (Antoine Mechelynck)
-Solution: Attempt writing modified buffers as intended.
-Files: src/ex_cmds2.c
-
-Patch 6.2.202
-Problem: Filetype names of CHILL and ch script are confusing.
-Solution: Rename "ch" to "chill" and "chscript" to "ch".
-Files: runtime/filetype.vim, runtime/makemenu.vim, runtime/synmenu.vim
- runtime/syntax/ch.vim, runtime/syntax/chill.vim
-
-Patch 6.2.203
-Problem: With characterwise text that has more than one line, "3P" works
- wrong. "3p" has the same problem. There also is a display
- problem. (Daniel Goujot)
-Solution: Perform characterwise puts with a count in the right position.
-Files: src/ops.c
-
-Patch 6.2.204 (after 6.2.086)
-Problem: "]]" in a file with closed folds moves to the end of the file.
- (Nam SungHyun)
-Solution: Find one position in each closed fold, then move to after the fold.
-Files: src/search.c
-
-Patch 6.2.205 (extra)
-Problem: MS-Windows: When the taskbar is at the left or top of the screen,
- the Vim window placement is wrong.
-Solution: Compute the size and position of the window correctly. (Taro
- Muraoka)
-Files: src/gui_w32.c, src/gui_w48.c
-
-Patch 6.2.206
-Problem: Multi-byte characters cannot be used as hotkeys in a console
- dialog. (Mattias Erkisson)
-Solution: Handle multi-byte characters properly. Also put () or [] around
- default hotkeys.
-Files: src/message.c, src/macros.h
-
-Patch 6.2.207
-Problem: When 'encoding' is a multi-byte encoding, expanding an
- abbreviation that starts where insertion started results in
- characters before the insertion to be deleted. (Xiangjiang Ma)
-Solution: Stop searching leftwards for the start of the word at the position
- where insertion started.
-Files: src/getchar.c
-
-Patch 6.2.208
-Problem: When using fold markers, three lines in a row have the start
- marker and deleting the first one with "dd", a nested fold is not
- deleted. (Kamil Burzynski)
- Using marker folding, a level 1 fold doesn't stop when it is
- followed by "{{{2", starting a level 2 fold.
-Solution: Don't stop updating folds at the end of a change when the nesting
- level of folds is larger than the fold level.
- Correctly compute the number of folds that start at "{{{2".
- Also avoid a crash for a NULL pointer.
-Files: src/fold.c
-
-Patch 6.2.209
-Problem: A bogus fold is created when using "P" while the cursor is in the
- middle of a closed fold. (Kamil Burzynski)
-Solution: Correct the line number where marks are modified for closed folds.
-Files: src/ops.c
-
-Patch 6.2.210 (extra)
-Problem: Mac OSX: antialiased fonts are not supported.
-Solution: Add the 'antialias' option to switch on antialiasing on Mac OSX
- 10.2 and later. (Peter Cucka)
-Files: runtime/doc/options.txt, src/gui_mac.c, src/option.h, src/option.c
-
-Patch 6.2.211 (extra)
-Problem: Code for handling file dropped on Vim is duplicated.
-Solution: Move the common code to gui_handle_drop().
- Add code to drop the files in the window under the cursor.
- Support drag&drop on the Macintosh. (Taro Muraoka)
- When dropping a directory name edit that directory (using the
- explorer plugin)
- Fix that changing directory with Shift pressed didn't work for
- relative path names.
-Files: src/fileio.c, src/gui.c, src/gui_gtk_x11.c, src/gui_mac.c,
- src/gui_w48.c, src/proto/fileio.pro, src/proto/gui.pro
-
-Patch 6.2.212 (after 6.2.199)
-Problem: NetBeans: Replacing with a count is not handled correctly.
-Solution: Move reporting the change outside of the loop for the count.
- (Gordon Prieur)
-Files: src/normal.c
-
-Patch 6.2.213 (after 6.2.208)
-Problem: Using marker folding, "{{{1" doesn't start a new fold when already
- at fold level 1. (Servatius Brandt)
-Solution: Correctly compute the number of folds that start at "{{{1".
-Files: src/fold.c
-
-Patch 6.2.214 (after 6.2.211) (extra)
-Problem: Warning for an unused variable.
-Solution: Delete the declaration. (Bill McCarthy)
-Files: src/gui_w48.c
-
-Patch 6.2.215
-Problem: NetBeans: problems saving an unmodified file.
-Solution: Add isNetbeansModified() function. Disable netbeans_unmodified().
- (Gordon Prieur)
-Files: src/fileio.c, src/netbeans.c, src/proto/netbeans.pro,
- runtime/doc/netbeans.txt, runtime/doc/tags
-
-Patch 6.2.216 (after 6.2.206)
-Problem: Multi-byte characters still cannot be used as hotkeys in a console
- dialog. (Mattias Erkisson)
-Solution: Make get_keystroke() handle multi-byte characters.
-Files: src/misc1.c
-
-Patch 6.2.217
-Problem: GTK: setting the title doesn't always work correctly.
-Solution: Invoke gui_mch_settitle(). (Tomas Stehlik)
-Files: src/os_unix.c
-
-Patch 6.2.218
-Problem: Warning for function without prototype.
-Solution: Add argument types to the msgCB field of the BalloonEval struct.
-Files: src/gui_beval.h
-
-Patch 6.2.219
-Problem: Syntax highlighting hangs on an empty match of an item with a
- nextgroup. (Charles Campbell)
-Solution: Remember that the item has already matched and don't match it
- again at the same position.
-Files: src/syntax.c
-
-Patch 6.2.220
-Problem: When a Vim server runs in a console a remote command isn't handled
- before a key is typed. (Joshua Neuheisel)
-Solution: Don't try reading more input when a client-server command has been
- received.
-Files: src/os_unix.c
-
-Patch 6.2.221
-Problem: No file name completion for ":cscope add".
-Solution: Add the XFILE flag to ":cscope". (Gary Johnson)
-Files: src/ex_cmds.h
-
-Patch 6.2.222
-Problem: Using "--remote" several times on a row only opens some of the
- files. (Dany St-Amant)
-Solution: Don't delete all typeahead when the server receives a command from
- a client, only delete typed characters.
-Files: src/main.c
-
-Patch 6.2.223
-Problem: Cscope: Avoid a hang when cscope waits for a response while Vim
- waits for a prompt.
- Error messages from Cscope mess up the display.
-Solution: Detect the hit-enter message and respond by sending a return
- character to cscope. (Gary Johnson)
- Use EMSG() and strerror() when possible. Replace perror() with
- PERROR() everywhere, add emsg3().
-Files: src/diff.c, src/if_cscope.c, src/integration.c, src/message.c,
- src/proto/message.pro, src/misc2.c, src/netbeans.c, src/vim.h
-
-Patch 6.2.224
-Problem: Mac: Can't compile with small features. (Axel Kielhorn)
-Solution: Also include vim_chdirfile() when compiling for the Mac.
-Files: src/misc2.c
-
-Patch 6.2.225
-Problem: NetBeans: Reported modified state isn't exactly right.
-Solution: Report a file being modified in the NetBeans way.
-Files: src/netbeans.c
-
-Patch 6.2.226 (after 6.2.107) (extra)
-Problem: The "ws2-32.lib" file isn't always available.
-Solution: Use "WSock32.lib" instead. (Taro Muraoka, Dan Sharp)
-Files: src/Make_cyg.mak, src/Make_ming.mak, src/Make_mvc.mak
-
-Patch 6.2.227 (extra)
-Problem: The "PC" symbol is defined but not used anywhere.
-Solution: Remove "-DPC" from the makefiles.
-Files: src/Make_bc3.mak, src/Make_bc5.mak, src/Make_cyg.mak,
- src/Make_ming.mak
-
-Patch 6.2.228
-Problem: Receiving CTRL-\ CTRL-N after typing "f" or "m" doesn't switch Vim
- back to Normal mode. Same for CTRL-\ CTRL-G.
-Solution: Check if the character typed after a command is CTRL-\ and obtain
- another character to check for CTRL-N or CTRL-G, waiting up to
- 'ttimeoutlen' msec.
-Files: src/normal.c
-
-Patch 6.2.229
-Problem: ":function" with a name that uses magic curlies does not work
- inside a function. (Servatius Brandt)
-Solution: Skip over the function name properly.
-Files: src/eval.c
-
-Patch 6.2.230 (extra)
-Problem: Win32: a complex pattern may cause a crash.
-Solution: Use __try and __except to catch the exception and handle it
- gracefully, when possible. Add myresetstkoflw() to reset the
- stack overflow. (Benjamin Peterson)
-Files: src/Make_bc5.mak, src/os_mswin.c src/os_win32.c, src/os_win32.h,
- src/proto/os_win32.pro, src/regexp.c
-
-Patch 6.2.231 (after 6.2.046)
-Problem: Various problems when an error exception is raised from within a
- builtin function. When it is invoked while evaluating arguments
- to a function following arguments are still evaluated. When
- invoked with a line range it will be called for remaining lines.
-Solution: Update "force_abort" also after calling a builtin function, so
- that aborting() always returns the correct value. (Servatius
- Brandt)
-Files: src/eval.c, src/ex_eval.c, src/proto/ex_eval.pro,
- src/testdir/test49.ok, src/testdir/test49.vim
-
-Patch 6.2.232
-Problem: ":python vim.command('python print 2*2')" crashes Vim. (Eugene
- Minkovskii)
-Solution: Disallow executing a Python command recursively and give an error
- message.
-Files: src/if_python.c
-
-Patch 6.2.233
-Problem: On Mac OSX adding -pthread for Python only generates a warning.
- The test for Perl threads rejects Perl while it's OK.
- Tcl doesn't work at all.
- The test for Ruby fails if ruby exists but there are no header
- files. The Ruby library isn't detected properly
-Solution: Avoid adding -pthread on Mac OSX. Accept Perl threads when it's
- not the 5.5 threads.
- Use the Tcl framework for header files. For Ruby rename cWindow
- to cVimWindow to avoid a name clash. (Ken Scott)
- Only enable Ruby when the header files can be found. Use "-lruby"
- instead of "libruby.a" when it can't be found.
-Files: src/auto/configure, src/configure.in, src/if_ruby.c
-
-Patch 6.2.234
-Problem: GTK 2 GUI: ":sp" and the ":q" leaves the cursor on the command
- line.
-Solution: Flush output before removing scrollbars. Also do this in other
- places where gui_mch_*() functions are invoked.
-Files: src/ex_cmds.c, src/option.c, src/window.c
-
-Patch 6.2.235 (extra)
-Problem: Win32: Cursor isn't removed with a 25x80 window and doing:
- "1830ia<Esc>400a-<Esc>0w0". (Yasuhiro Matsumoto)
-Solution: Remove the call to gui_undraw_cursor() from gui_mch_insert_lines().
-Files: src/gui_w48.c
-
-Patch 6.2.236
-Problem: Using gvim with Agide gives "connection lost" error messages.
-Solution: Only give the "connection lost" message when the buffer was once
- owned by NetBeans.
-Files: src/netbeans.c, src/structs.h
-
-Patch 6.2.237
-Problem: GTK 2: Thai text is drawn wrong. It changes when moving the
- cursor over it.
-Solution: Disable the shaping engine, it moves combining characters to a
- wrong position and combines characters, while drawing the cursor
- doesn't combine characters.
-Files: src/gui_gtk_x11.c
-
-Patch 6.2.238 (after 6.2.231)
-Problem: ":function" does not work inside a while loop. (Servatius Brandt)
-Solution: Add get_while_line() and pass it to do_one_cmd() when in a while
- loop, so that all lines are stored and can be used again when
- repeating the loop.
- Adjust test 49 so that it checks for the fixed problems.
- (Servatius Brandt)
-Files: src/digraph.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_eval.c,
- src/proto/ex_cmds2.pro, src/proto/ex_docmd.pro,
- src/testdir/test49.in, src/testdir/test49.ok,
- src/testdir/test49.vim
-
-Patch 6.2.239
-Problem: GTK 2: With closed folds the arrow buttons of a vertical scrollbar
- often doesn't scroll. (Moshe Kaminsky)
-Solution: Hackish solution: Detect that the button was pressed from the
- mouse pointer position.
-Files: src/gui_gtk.c, src/gui.c
-
-Patch 6.2.240
-Problem: GTK 2: Searching for bitmaps for the toolbar doesn't work as with
- other systems. Need to explicitly use "icon=name". (Ned Konz,
- Christian J. Robinson)
-Solution: Search for icons like done for Motif.
-Files: src/gui_gtk.c
-
-Patch 6.2.241
-Problem: GTK 2: Search and Search/Replace dialogs are synced, that makes no
- sense. Buttons are sometimes greyed-out. (Jeremy Messenger)
-Solution: Remove the code to sync the two dialogs. Adjust the code to react
- to an empty search string to also work for GTK2. (David Necas)
-Files: src/gui_gtk.c
-
-Patch 6.2.242
-Problem: Gnome: "vim --help" only shows the Gnome arguments, not the Vim
- arguments.
-Solution: Don't let the Gnome code remove the "--help" argument and don't
- exit at the end of usage().
-Files: src/gui_gtk_x11.c, src/main.c
-
-Patch 6.2.243 (extra)
-Problem: Mac: Dropping a file on a Vim icon causes a hit-enter prompt.
-Solution: Move the dropped files to the global argument list, instead of the
- usual drop handling. (Eckehard Berns)
-Files: src/main.c, src/gui_mac.c
-
-Patch 6.2.244
-Problem: ':echo "\xf7"' displays the illegal byte as if it was a character
- and leaves "cho" after it.
-Solution: When checking the length of a UTF-8 byte sequence and it's shorter
- than the number of bytes available, assume it's an illegal byte.
-Files: src/mbyte.c
-
-Patch 6.2.245
-Problem: Completion doesn't work for ":keepmarks" and ":lockmarks".
-Solution: Add the command modifiers to the table of commands. (Madoka
- Machitani)
-Files: src/ex_cmds.h, src/ex_docmd.c
-
-Patch 6.2.246
-Problem: Mac: Starting Vim from Finder doesn't show error messages.
-Solution: Recognize that output is being displayed by stderr being
- "/dev/console". (Eckehard Berns)
-Files: src/main.c, src/message.c
-
-Patch 6.2.247 (after 6.2.193)
-Problem: When using a search pattern from the viminfo file the last
- character is replaced with a '/'.
-Solution: Store the separator character in the right place. (Kelvin Lee)
-Files: src/ex_getln.c
-
-Patch 6.2.248
-Problem: GTK: When XIM is enabled normal "2" and keypad "2" cannot be
- distinguished.
-Solution: Detect that XIM changes the keypad key to the expected ASCII
- character and fall back to the non-XIM code. (Neil Bird)
-Files: src/gui_gtk_x11.c, src/mbyte.c, src/proto/mbyte.pro
-
-Patch 6.2.249
-Problem: ":cnext" moves to the error in the next file, but there is no
- method to go back.
-Solution: Add ":cpfile" and ":cNfile".
-Files: src/ex_cmds.h, src/quickfix.c, src/vim.h, runtime/doc/quickfix.txt
-
-Patch 6.2.250
-Problem: Memory leaks when using signs. (Xavier de Gaye)
-Solution: Delete the list of signs when unloading a buffer.
-Files: src/buffer.c
-
-Patch 6.2.251
-Problem: GTK: The 'v' flag in 'guioptions' doesn't work. (Steve Hall)
- Order of buttons is reversed for GTK 2.2.4. Don't always get
- focus back after handling a dialog.
-Solution: Make buttons appear vertically when desired. Reverse the order in
- which buttons are added to a dialog. Move mouse pointer around
- when the dialog is done and we don't have focus.
-Files: src/gui_gtk.c
-
-Patch 6.2.252 (extra, after 6.2.243)
-Problem: Mac: Dropping a file on a Vim icon causes a hit-enter prompt for
- Mac OS classic.
-Solution: Remove the #ifdef from the code that fixes it for Mac OSX.
-Files: src/gui_mac.c
-
-Patch 6.2.253
-Problem: When 'tagstack' is not set a ":tag id" command does not work after
- a ":tjump" command.
-Solution: Set "new_tag" when 'tagstack' isn't set. (G. Narendran)
-Files: src/tag.c
-
-Patch 6.2.254
-Problem: May run out of space for error messages.
-Solution: Keep room for two more bytes.
-Files: src/quickfix.c
-
-Patch 6.2.255
-Problem: GTK: A new item in the popup menu is put just after instead of
- just before the right item. (Gabriel Zachmann)
-Solution: Don't increment the menu item index.
-Files: src/gui_gtk.c
-
-Patch 6.2.256
-Problem: Mac: "macroman" encoding isn't recognized, need to use
- "8bit-macroman".
-Solution: Recognize "macroman" with an alias "mac". (Eckehard Berns)
-Files: src/mbyte.c
-
-Patch 6.2.257 (after 6.2.250)
-Problem: Signs are deleted for ":bdel", but they could still be useful.
-Solution: Delete signs only for ":bwipe".
-Files: src/buffer.c
-
-Patch 6.2.258
-Problem: GUI: can't disable (grey-out) a popup menu item. (Ajit Thakkar)
-Solution: Loop over the popup menus for all modes.
-Files: src/menu.c
-
-Patch 6.2.259
-Problem: If there are messages when exiting, on the console there is a
- hit-enter prompt while the message can be read; in the GUI the
- message may not be visible.
-Solution: Use the hit-enter prompt when there is an error message from
- writing the viminfo file or autocommands, or when there is any
- output in the GUI and 'verbose' is set. Don't use a hit-enter
- prompt for the non-GUI version unless there is an error message.
-Files: src/main.c
-
-Patch 6.2.260
-Problem: GTK 2: Can't quit a dialog with <Esc>.
- GTK 1 and 2: <Enter> always gives a result, even when the default
- button has been disabled.
-Solution: Handle these keys explicitly. When no default button is specified
- use the first one (works mostly like it was before).
-Files: src/gui_gtk.c
-
-Patch 6.2.261
-Problem: When 'autoindent' and 'cindent' are set and a line is recognized
- as a comment, starting a new line won't do 'cindent' formatting.
-Solution: Also use 'cindent' formatting for lines that are used as a
- comment. (Servatius Brandt)
-Files: src/misc1.c
-
-Patch 6.2.262
-Problem: 1 CTRL-W w beeps, even though going to the first window is
- possible. (Charles Campbell)
-Solution: Don't beep.
-Files: src/window.c
-
-Patch 6.2.263
-Problem: Lint warnings: Duplicate function prototypes, duplicate macros,
- use of a zero character instead of a zero pointer, unused
- variable. Clearing allocated memory in a complicated way.
-Solution: Remove the function prototypes from farsi.h. Remove the
- duplicated lines in keymap.h. Change getvcol() argument from NUL
- to NULL. Remove the "col" variable in regmatch(). Use
- lalloc_clear() instead of lalloc(). (Walter Briscoe)
-Files: src/farsi.h, src/keymap.h, src/ops.c, src/regexp.c, src/search.c
-
-Patch 6.2.264 (after 6.2.247)
-Problem: Writing past allocated memory when using a command line from the
- viminfo file.
-Solution: Store the NUL in the right place.
-Files: src/ex_getln.c
-
-Patch 6.2.265
-Problem: Although ":set" is not allowed in the sandbox, ":let &opt = val"
- works.
-Solution: Do allow changing options in the sandbox, but not the ones that
- can't be changed from a modeline.
-Files: src/ex_cmds.h, src/options.c
-
-Patch 6.2.266
-Problem: When redirecting output and using ":silent", line breaks are
- missing from output of ":map" and ":tselect". Alignment of
- columns is wrong.
-Solution: Insert a line break where "msg_didout" was tested. Update msg_col
- when redirecting and using ":silent".
-Files: src/getchar.c, src/message.c
-
-Patch 6.2.267 (extra)
-Problem: Win32: "&&" in a tearoff menu is not shown. (Luc Hermitte)
-Solution: Use the "name" item from the menu instead of the "dname" item.
-Files: src/gui_w32.c, src/menu.c
-
-Patch 6.2.268
-Problem: GUI: When changing 'guioptions' part of the window may be off
- screen. (Randall Morris)
-Solution: Adjust the size of the window when changing 'guioptions', but only
- when adding something.
-Files: src/gui.c
-
-Patch 6.2.269
-Problem: Diff mode does not highlight a change in a combining character.
- (Raphael Finkel)
-Solution: Make diff_find_change() multi-byte aware: find the start byte of
- a character that contains a change.
-Files: src/diff.c
-
-Patch 6.2.270
-Problem: Completion in Insert mode, then repeating with ".", doesn't handle
- composing characters in the completed text. (Raphael Finkel)
-Solution: Don't skip over composing chars when adding completed text to the
- redo buffer.
-Files: src/getchar.c
-
-Patch 6.2.271
-Problem: NetBeans: Can't do "tail -f" on the log. Passing socket info with
- an argument or environment variable is not secure.
-Solution: Wait after initializing the log. Allow passing the socket info
- through a file. (Gordon Prieur)
-Files: runtime/doc/netbeans.txt, src/main.c, src/netbeans.c
-
-Patch 6.2.272
-Problem: When the "po" directory exists, but "po/Makefile" doesn't,
- building fails. Make loops when the "po" directory has been
- deleted after running configure.
-Solution: Check for the "po/Makefile" instead of just the "po" directory.
- Check this again before trying to run make with that Makefile.
-Files: src/auto/configure, src/configure.in, src/Makefile
-
-Patch 6.2.273
-Problem: Changing the sort order in an explorer window for an empty
- directory produces error messages. (Doug Kearns)
-Solution: When an invalid range is used for a function that is not going to
- be executed, skip over the arguments anyway.
-Files: src/eval.c
-
-Patch 6.2.274
-Problem: ":print" skips empty lines when 'list' is set and there is no
- "eol" in 'listchars'. (Yakov Lerner)
-Solution: Skip outputting a space for an empty line only when 'list' is set
- and the end-of-line character is not empty.
-Files: src/message.c
-
-Patch 6.2.275 (extra, after 6.2.267)
-Problem: Warning for uninitialized variable when using gcc.
-Solution: Initialize "acLen" to zero. (Bill McCarthy)
-Files: src/gui_w32.c
-
-Patch 6.2.276
-Problem: ":echo X()" does not put a line break between the message that X()
- displays and the text that X() returns. (Yakov Lerner)
-Solution: Invoke msg_start() after evaluating the argument.
-Files: src/eval.c
-
-Patch 6.2.277
-Problem: Vim crashes when a ":runtime ftplugin/ada.vim" causes a recursive
- loop. (Robert Nowotniak)
-Solution: Restore "msg_list" before returning from do_cmdline().
-Files: src/ex_docmd.c
-
-Patch 6.2.278
-Problem: Using "much" instead of "many".
-Solution: Correct the error message.
-Files: src/eval.c
-
-Patch 6.2.279
-Problem: There is no default choice for a confirm() dialog, now that it is
- possible not to have a default choice.
-Solution: Make the first choice the default choice.
-Files: runtime/doc/eval.txt, src/eval.c
-
-Patch 6.2.280
-Problem: "do" and ":diffget" don't work in the first line and the last line
- of a buffer. (Aron Griffis)
-Solution: Find a difference above the first line and below the last line.
- Also fix a few display updating bugs.
-Files: src/diff.c, src/fold.c, src/move.c
-
-Patch 6.2.281
-Problem: PostScript printing doesn't work on Mac OS X 10.3.2.
-Solution: Adjust the header file. (Mike Williams)
-Files: runtime/print/prolog.ps
-
-Patch 6.2.282
-Problem: When using CTRL-O to go back to a help file, it becomes listed.
- (Andrew Nesbit)
- Using ":tag" or ":tjump" in a help file doesn't keep the help file
- settings (e.g. for 'iskeyword').
-Solution: Don't mark a buffer as listed when its help flag is set. Put all
- the option settings for a help buffer together in do_ecmd().
-Files: src/ex_cmds.c
-
-Patch 6.2.283
-Problem: The "local additions" in help.txt are used without conversion,
- causing latin1 characters showing up wrong when 'enc' is utf-8.
- (Antoine J. Mechelynck)
-Solution: Convert the text to 'encoding'.
-Files: src/ex_cmds.c
-
-Patch 6.2.284
-Problem: Listing a function puts "endfunction" in the message history.
- Typing "q" at the more prompt isn't handled correctly when listing
- variables and functions. (Hara Krishna Dara)
-Solution: Don't use msg() for "endfunction". Check "got_int" regularly.
-Files: src/eval.c
-
-Patch 6.2.285
-Problem: GUI: In a single wrapped line that fills the window, "gj" in the
- last screen line leaves the cursor behind. (Ivan Tarasov)
-Solution: Undraw the cursor before scrolling the text up.
-Files: src/gui.c
-
-Patch 6.2.286
-Problem: When trying to rename a file and it doesn't exist, the destination
- file is deleted anyway. (Luc Deux)
-Solution: Don't delete the destination when the source doesn't exist. (Taro
- Muraoka)
-Files: src/fileio.c
-
-Patch 6.2.287 (after 6.2.264)
-Problem: Duplicate lines are added to the viminfo file.
-Solution: Compare with existing entries without an offset. Also fixes
- reading very long history lines from viminfo.
-Files: src/ex_getln.c
-
-Patch 6.2.288 (extra)
-Problem: Mac: An external program can't be interrupted.
-Solution: Don't use the 'c' key for backspace. (Eckehard Berns)
-Files: src/gui_mac.c
-
-Patch 6.2.289
-Problem: Compiling the Tcl interface with thread support causes ":make" to
- fail. (Juergen Salk)
-Solution: Use $TCL_DEFS from the Tcl config script to obtain the required
- compile flags for using the thread library.
-Files: src/auto/configure, src/configure.in
-
-Patch 6.2.290 (extra)
-Problem: Mac: The mousewheel doesn't work.
-Solution: Add mousewheel support. Also fix updating the thumb after a drag
- and then using another way to scroll. (Eckehard Berns)
-Files: src/gui_mac.c
-
-Patch 6.2.291 (extra)
-Problem: Mac: the plus button and close button don't do anything.
-Solution: Make the plus button maximize the window and the close button
- close Vim. (Eckehard Berns)
-Files: src/gui.c, src/gui_mac.c
-
-Patch 6.2.292
-Problem: Motif: When removing GUI arguments from argv[] a "ps -ef" shows
- the last argument repeated.
-Solution: Set argv[argc] to NULL. (Michael Jarvis)
-Files: src/gui_x11.c
-
-Patch 6.2.293 (after 6.2.255)
-Problem: GTK: A new item in a menu is put before the tearoff item.
-Solution: Do increment the menu item index for non-popup menu items.
-Files: src/gui_gtk.c
-
-Patch 6.2.294 (extra)
-Problem: Mac: Cannot use modifiers with Space, Tab, Enter and Escape.
-Solution: Handle all modifiers for these keys. (Eckehard Berns)
-Files: src/gui_mac.c
-
-Patch 6.2.295
-Problem: When in debug mode, receiving a message from a remote client
- causes a crash. Evaluating an expression causes Vim to wait for
- "cont" to be typed, without a prompt. (Hari Krishna Dara)
-Solution: Disable debugging when evaluating an expression for a client.
- (Michael Geddes) Don't try reading into the typeahead buffer when
- it may have been filled in another way.
-Files: src/ex_getln.c, src/getchar.c, src/if_xcmdsrv.c, src/main.c,
- src/misc1.c, src/proto/getchar.pro, src/proto/main.pro,
- src/proto/os_unix.pro, src/proto/ui.pro, src/structs.h,
- src/os_unix.c, src/ui.c
-
-Patch 6.2.296 (extra)
-Problem: Same as 6.2.295.
-Solution: Extra files for patch 6.2.295.
-Files: src/os_amiga.c, src/os_msdos.c, src/os_riscos.c, src/os_win32.c,
- src/proto/os_amiga.pro, src/proto/os_msdos.pro,
- src/proto/os_riscos.pro, src/proto/os_win32.pro
-
-Patch 6.2.297 (after 6.2.232)
-Problem: Cannot invoke Python commands recursively.
-Solution: With Python 2.3 and later use the available mechanisms to invoke
- Python recursively. (Matthew Mueller)
-Files: src/if_python.c
-
-Patch 6.2.298
-Problem: A change always sets the '. mark and an insert always sets the '^
- mark, even when this is not wanted.
- Cannot go back to the position of older changes without undoing
- those changes.
-Solution: Add the ":keepjumps" command modifier.
- Add the "g," and "g;" commands.
-Files: runtime/doc/motion.txt, src/ex_cmds.h, src/ex_docmd.c, src/edit.c,
- src/mark.c, src/misc1.c, src/normal.c, src/proto/mark.pro,
- src/structs.h, src/undo.c
-
-Patch 6.2.299
-Problem: Can only use one language for help files.
-Solution: Add the 'helplang' option to select the preferred language(s).
- Make ":helptags" generate tags files for all languages.
-Files: runtime/doc/options.txt, runtime/doc/various.txt, src/Makefile,
- src/ex_cmds.c, src/ex_cmds2.c, src/ex_cmds.h, src/ex_getln.c,
- src/normal.c, src/option.c, src/option.h, src/proto/ex_cmds.pro,
- src/proto/ex_cmds2.pro, src/proto/option.pro, src/structs.h,
- src/tag.c, src/vim.h
-
-Patch 6.2.300 (after 6.2.297)
-Problem: Cannot build Python interface with Python 2.2 or earlier.
-Solution: Add a semicolon.
-Files: src/if_python.c
-
-Patch 6.2.301
-Problem: The "select all" item from the popup menu doesn't work for Select
- mode.
-Solution: Use the same commands as for the "Edit.select all" menu.
- (Benji Fisher)
-Files: runtime/menu.vim
-
-Patch 6.2.302
-Problem: Using "CTRL-O ." in Insert mode doesn't work properly. (Benji
- Fisher)
-Solution: Restore "restart_edit" after an insert command that was not typed.
- Avoid waiting with displaying the mode when there is no text to be
- overwritten.
- Fix that "CTRL-O ." sometimes doesn't put the cursor back after
- the end-of-line. Only reset the flag that CTRL-O was used past
- the end of the line when restarting editing. Update "o_lnum"
- number when inserting text and "o_eol" is set.
-Files: src/edit.c, src/normal.c
-
-Patch 6.2.303
-Problem: Cannot use Unicode digraphs while 'encoding' is not Unicode.
-Solution: Convert the character from Unicode to 'encoding' when needed.
- Use the Unicode digraphs for the Macintosh. (Eckehard Berns)
-Files: src/digraph.c
-
-Patch 6.2.304 (extra, after 6.2.256)
-Problem: Mac: No proper support for 'encoding'. Conversion without iconv()
- is not possible.
-Solution: Convert input from 'termencoding' to 'encoding'. Add
- mac_string_convert(). Convert text for the clipboard when needed.
- (Eckehard Berns)
-Files: src/gui_mac.c, src/mbyte.c, src/structs.h, src/vim.h
-
-Patch 6.2.305 (after 6.2.300)
-Problem: Win32: Cannot build Python interface with Python 2.3. (Ajit
- Thakkar)
-Solution: Add two functions to the dynamic loading feature.
-Files: src/if_python.c
-
-Patch 6.2.306 (extra)
-Problem: Win32: Building console version with BCC 5.5 gives a warning for
- get_cmd_args() prototype missing. (Ajit Thakkar)
-Solution: Don't build os_w32exe.c for the console version.
-Files: src/Make_bc5.mak
-
-Patch 6.2.307 (after 6.2.299)
-Problem: Installing help files fails.
-Solution: Expand wildcards for translated help files separately.
-Files: src/Makefile
-
-Patch 6.2.308
-Problem: Not all systems have "whoami", resulting in an empty user name.
-Solution: Use "logname" when possible, "whoami" otherwise. (David Boyce)
-Files: src/Makefile
-
-Patch 6.2.309
-Problem: "3grx" waits for two ESC to be typed. (Jens Paulus)
-Solution: Append the ESC to the stuff buffer when redoing the "gr" insert.
-Files: src/edit.c
-
-Patch 6.2.310
-Problem: When setting 'undolevels' to -1, making a change and setting
- 'undolevels' to a positive value an "undo list corrupt" error
- occurs. (Madoka Machitani)
-Solution: Sync undo before changing 'undolevels'.
-Files: src/option.c
-
-Patch 6.2.311 (after 6.2.298)
-Problem: When making several changes in one line the changelist grows
- quickly. There is no error message for reaching the end of the
- changelist. Reading changelist marks from viminfo doesn't work
- properly.
-Solution: Only make a new entry in the changelist when making a change in
- another line or 'textwidth' columns away. Add E662, E663 and E664
- error messages. Put a changelist mark from viminfo one position
- before the end.
-Files: runtime/doc/motion.txt, src/mark.c, src/misc1.c, src/normal.c
-
-Patch 6.2.312 (after 6.2.299)
-Problem: "make install" clears the screen when installing the docs.
-Solution: Execute ":helptags" in silent mode.
-Files: runtime/doc/Makefile
-
-Patch 6.2.313
-Problem: When opening folds in a diff window, other diff windows no longer
- show the same text.
-Solution: Sync the folds in diff windows.
-Files: src/diff.c, src/fold.c, src/move.c, src/proto/diff.pro,
- src/proto/move.pro
-
-Patch 6.2.314
-Problem: When 'virtualedit' is set "rx" may cause a crash with a blockwise
- selection and using "$". (Moritz Orbach)
-Solution: Don't try replacing chars in a line that has no characters in the
- block.
-Files: src/ops.c
-
-Patch 6.2.315
-Problem: Using CTRL-C in a Visual mode mapping while 'insertmode' is set
- stops Vim from returning to Insert mode.
-Solution: Don't reset "restart_edit" when a CTRL-C is found and 'insertmode'
- is set.
-Files: src/normal.c
-
-Patch 6.2.316 (after 6.2.312)
-Problem: "make install" tries connecting to the X server when installing
- the docs. (Stephen Thomas)
-Solution: Add the "-X" argument.
-Files: runtime/doc/Makefile
-
-Patch 6.2.317 (after 6.2.313)
-Problem: When using "zi" in a diff window, other diff windows are not
- adjusted. (Richard Curnow)
-Solution: Distribute a change in 'foldenable' to other diff windows.
-Files: src/normal.c
-
-Patch 6.2.318
-Problem: When compiling with _THREAD_SAFE external commands don't echo
- typed characters.
-Solution: Don't set the terminal mode to TMODE_SLEEP when it's already at
- TMODE_COOK.
-Files: src/os_unix.c
-
-Patch 6.2.319 (extra)
-Problem: Building gvimext.dll with Mingw doesn't work properly.
-Solution: Use gcc instead of dllwrap. Use long option names. (Alejandro
- Lopez-Valencia)
-Files: src/GvimExt/Make_ming.mak
-
-Patch 6.2.320
-Problem: Win32: Adding and removing the menubar resizes the Vim window.
- (Jonathon Merz)
-Solution: Don't let a resize event change 'lines' unexpectedly.
-Files: src/gui.c
-
-Patch 6.2.321
-Problem: When using modeless selection, wrapping lines are not recognized,
- a line break is always inserted.
-Solution: Add LineWraps[] to remember whether a line wrapped or not.
-Files: src/globals.h, src/screen.c, src/ui.c
-
-Patch 6.2.322
-Problem: With 'showcmd' set, after typing "dd" the next "d" may not be
- displayed. (Jens Paulus)
-Solution: Redraw the command line after updating the screen, scrolling may
- have set "clear_cmdline".
-Files: src/screen.c
-
-Patch 6.2.323
-Problem: Win32: expanding "~/file" in an autocommand pattern results in
- backslashes, while this pattern should only have forward slashes.
-Solution: Make expanding environment variables respect 'shellslash' and set
- p_ssl when expanding the autocommand pattern.
-Files: src/fileio.c, src/misc1.c, src/proto/fileio.pro
-
-Patch 6.2.324 (extra)
-Problem: Win32: when "vimrun.exe" has a path with white space, such as
- "Program Files", executing external commands may fail.
-Solution: Put double quotes around the path to "vimrun".
-Files: src/os_win32.c
-
-Patch 6.2.325
-Problem: When $HOME includes a space, doing ":set tags=~/tags" doesn't
- work, the space is used to separate file names. (Brett Stahlman)
-Solution: Escape the space with a backslash.
-Files: src/option.c
-
-Patch 6.2.326
-Problem: ":windo set syntax=foo" doesn't work. (Tim Chase)
-Solution: Don't change 'eventignore' for ":windo".
-Files: src/ex_cmds2.c
-
-Patch 6.2.327
-Problem: When formatting text all marks in the formatted lines are lost.
- A word is not joined to a previous line when this would be
- possible. (Mikolaj Machowski)
-Solution: Try to keep marks in the same position as much as possible.
- Also keep mark positions when joining lines.
- Start auto-formatting in the previous line when appropriate.
- Add the "gw" operator: Like "gq" but keep the cursor where it is.
-Files: runtime/doc/change.txt, src/edit.c, src/globals.h, src/mark.c,
- src/misc1.c, src/normal.c, src/ops.c, src/proto/edit.pro,
- src/proto/mark.pro, src/proto/ops.pro, src/structs.h, src/vim.h
-
-Patch 6.2.328
-Problem: XIM with GTK: It is hard to understand what XIM is doing.
-Solution: Add xim_log() to log XIM events and help with debugging.
-Files: src/mbyte.c
-
-Patch 6.2.329
-Problem: ":=" does not work Vi compatible. (Antony Scriven)
-Solution: Print the last line number instead of the current line. Don't
- print "line".
-Files: src/ex_cmds.h, src/ex_docmd.c
-
-Patch 6.2.330 (extra, after 6.2.267)
-Problem: Win32: Crash when tearing off a menu.
-Solution: Terminate a string with a NUL. (Yasuhiro Matsumoto)
-Files: src/gui_w32.c
-
-Patch 6.2.331 (after 6.2.327)
-Problem: "gwap" leaves cursor in the wrong line.
-Solution: Remember the cursor position before finding the ends of the
- paragraph.
-Files: src/normal.c, src/ops.c, src/structs.h
-
-Patch 6.2.332 (extra)
-Problem: Amiga: Compile error for string array. Compiling the Amiga GUI
- doesn't work.
-Solution: Use a char pointer instead. Move including "gui_amiga.h" to after
- including "vim.h". Add a semicolon. (Ali Akcaagac)
-Files: src/gui_amiga.c, src/os_amiga.c
-
-Patch 6.2.333 (extra)
-Problem: Win32: printing doesn't work with specified font charset.
-Solution: Use the specified font charset. (Mike Williams)
-Files: src/os_mswin.c
-
-Patch 6.2.334 (extra, after 6.2.296)
-Problem: Win32: evaluating client expression in debug mode requires typing
- "cont".
-Solution: Use eval_client_expr_to_string().
-Files: src/os_mswin.c
-
-Patch 6.2.335
-Problem: The ":sign" command cannot be followed by another command.
-Solution: Add TRLBAR to the command flags.
-Files: src/ex_cmds.h
-
-Patch 6.2.336 (after 6.2.327)
-Problem: Mixup of items in an expression.
-Solution: Move "== NUL" to the right spot.
-Files: src/edit.c
-
-Patch 6.2.337 (extra, after 6.2.319)
-Problem: Building gvimext.dll with Mingw doesn't work properly.
-Solution: Fix white space and other details. (Alejandro Lopez-Valencia)
-Files: src/GvimExt/Make_ming.mak
-
-Patch 6.2.338 (after 6.2.331)
-Problem: When undoing "gwap" the cursor is always put at the start of the
- paragraph. When undoing auto-formatting the cursor may be above
- the change.
-Solution: Try to move the cursor back to where it was or to the first line
- that actually changed.
-Files: src/normal.c, src/ops.c, src/undo.c
-
-Patch 6.2.339
-Problem: Crash when using many different highlight groups and a User
- highlight group. (Juergen Kraemer)
-Solution: Do not use the sg_name_u pointer when it is NULL. Also simplify
- use of the highlight group table.
-Files: src/syntax.c
-
-Patch 6.2.340
-Problem: ":reg" doesn't show the actual contents of the clipboard if it was
- filled outside of Vim. (Stuart MacDonald)
-Solution: Obtain the clipboard contents before displaying it.
-Files: src/ops.c
-
-Patch 6.2.341 (extra)
-Problem: Win32: When the path to diff.exe contains a space and using the
- vimrc generated by the install program, diff mode does not work.
-Solution: Put the first double quote just before the space instead of before
- the path.
-Files: src/dosinst.c
-
-Patch 6.2.342 (extra)
-Problem: Win32: macros are not always used as expected.
-Solution: Define WINVER to 0x0400 instead of 0x400. (Alejandro
- Lopez-Valencia)
-Files: src/Make_bc5.mak, src/Make_cyg.mak, src/Make_mvc.mak
-
-Patch 6.2.343
-Problem: Title doesn't work with some window managers. X11: Setting the
- text property for the window title is hard coded.
-Solution: Use STRING format when possible. Use the UTF-8 function when
- it's available and 'encoding' is utf-8. Use
- XStringListToTextProperty(). Do the same for the icon name.
- (David Harrison)
-Files: src/os_unix.c
-
-Patch 6.2.344 (extra, after 6.2.337)
-Problem: Cannot build gvimext.dll with MingW on Linux.
-Solution: Add support for cross compiling. (Ronald Hoellwarth)
-Files: src/GvimExt/Make_ming.mak
-
-Patch 6.2.345 (extra)
-Problem: Win32: Copy/paste between two Vims fails if 'encoding' is not set
- properly or there are illegal bytes.
-Solution: Use a raw byte format. Always set it when copying. When pasting
- use the raw format if 'encoding' is the same.
-Files: src/os_mswin.c, src/os_win16.c, src/os_win32.c, src/vim.h
-
-Patch 6.2.346
-Problem: Win32 console: After using "chcp" Vim does not detect the
- different codepage.
-Solution: Use GetConsoleCP() and when it is different from GetACP() set
- 'termencoding'.
-Files: src/option.c
-
-Patch 6.2.347 (extra)
-Problem: Win32: XP theme support is missing.
-Solution: Add a manifest and refer to it from the resource file. (Michael
- Wookey)
-Files: Makefile, src/gvim.exe.mnf, src/vim.rc
-
-Patch 6.2.348
-Problem: Win32: "vim c:\dir\(test)" doesn't work, because the 'isfname'
- default value doesn't contain parenthesis.
-Solution: Temporarily add '(' and ')' to 'isfname' when expanding file name
- arguments.
-Files: src/main.c
-
-Patch 6.2.349
-Problem: Finding a match using 'matchpairs' may cause a crash.
- 'matchpairs' is not used for 'showmatch'.
-Solution: Don't look past the NUL in 'matchpairs'. Use 'matchpairs' for
- 'showmatch'. (Dave Olszewkski)
-Files: src/misc1.c, src/normal.c, src/proto/search.pro, src/search.c
-
-Patch 6.2.350
-Problem: Not enough info about startup timing.
-Solution: Add a few more TIME_MSG() calls.
-Files: src/main.c
-
-Patch 6.2.351
-Problem: Win32: $HOME may be set to %USERPROFILE%.
-Solution: Expand %VAR% at the start of $HOME.
-Files: src/misc1.c
-
-Patch 6.2.352 (after 6.2.335)
-Problem: ":sign texthl=||" does not work.
-Solution: Remove the check for a following command. Give an error for extra
- arguments after "buff=1".
-Files: src/ex_cmds.c, src/ex_cmds.h
-
-Patch 6.2.353 (extra)
-Problem: Win32: Supported server name length is limited. (Paul Bossi)
-Solution: Use MAX_PATH instead of 25.
-Files: src/os_mswin.c
-
-Patch 6.2.354 (extra)
-Problem: Win32: When the mouse pointer is on a tear-off menu it is hidden
- when typing but is not redisplayed when moved. (Markx Hackmann)
-Solution: Handle the pointer move event for the tear-off menu window.
-Files: src/gui_w32.c
-
-Patch 6.2.355 (after 6.2.303)
-Problem: When 'encoding' is a double-byte encoding different from the
- current locale, the width of characters is not correct.
- Possible failure and memory leak when using iconv, Unicode
- digraphs and 'encoding' is not "utf-8".
-Solution: Use iconv() to discover the actual width of characters.
- Add the "vc_fail" field to vimconv_T.
- When converting a digraph, init the conversion type to NONE and
- cleanup afterwards.
-Files: src/digraph.c, src/mbyte.c, src/structs.h
-
-Patch 6.2.356
-Problem: When using a double-byte 'encoding' and 'selection' is
- "exclusive", "vy" only yanks the first byte of a double-byte
- character. (Xiangjiang Ma)
-Solution: Correct the column in unadjust_for_sel() to position on the first
- byte, always include the trailing byte of the selected text.
-Files: src/normal.c
-
-Patch 6.2.357 (after 6.2.321)
-Problem: Memory leak when resizing the Vim window.
-Solution: Free the LineWraps array.
-Files: src/screen.c
-
-Patch 6.2.358 (after 6.2.299)
-Problem: Memory leak when using ":help" and the language doesn't match.
-Solution: Free the array with matching tags.
-Files: src/ex_cmds.c
-
-Patch 6.2.359 (after 6.2.352)
-Problem: Compiler warning for long to int type cast.
-Solution: Add explicit type cast.
-Files: src/ex_cmds.c
-
-Patch 6.2.360
-Problem: "100|" in an empty line results in a ruler "1,0-100". (Pavol
- Juhas)
-Solution: Recompute w_virtcol if the target column was not reached.
-Files: src/misc2.c
-
-Patch 6.2.361 (extra)
-Problem: Win32: Run gvim, ":set go-=m", use Alt-Tab, keep Alt pressed while
- pressing Esc, then release Alt: Cursor disappears and typing a key
- causes a beep. (Hari Krishna Dara)
-Solution: Don't ignore the WM_SYSKEYUP event when the menu is disabled.
-Files: src/gui_w32.c
-
-Patch 6.2.362 (extra, after 6.2.347)
-Problem: Win32: The manifest causes Gvim not to work. (Dave Roberts)
-Solution: Change "x86" to "X86". (Serge Pirotte)
-Files: src/gvim.exe.mnf
-
-Patch 6.2.363
-Problem: In an empty file with 'showmode' off, "i" doesn't change the ruler
- from "0-1" to "1". Typing "x<BS>" does show "1", but then <Esc>
- doesn't make it "0-1" again. Same problem for ruler in
- statusline. (Andrew Pimlott)
-Solution: Remember the "empty line" flag with Insert mode and'ed to it.
-Files: src/screen.c
-
-Patch 6.2.364
-Problem: HTML version of the documentation doesn't mention the encoding,
- which is a problem for mbyte.txt.
-Solution: Adjust the awk script. (Ilya Sher)
-Files: runtime/doc/makehtml.awk
-
-Patch 6.2.365
-Problem: The configure checks for Perl and Python may add compile and link
- arguments that break building Vim.
-Solution: Do a sanity check: try building with the arguments.
-Files: src/auto/configure, src/configure.in
-
-Patch 6.2.366
-Problem: When the GUI can't start because no valid font is found, there is
- no error message. (Ugen)
-Solution: Add an error message.
-Files: src/gui.c
-
-Patch 6.2.367
-Problem: Building the help tags file while installing may fail if there is
- another Vim in $PATH.
-Solution: Specify the just installed Vim executable. (Gordon Prieur)
-Files: src/Makefile
-
-Patch 6.2.368
-Problem: When 'autochdir' is set, closing a window doesn't change to the
- directory of the new current window. (Salman Halim)
-Solution: Handle 'autochdir' always when a window becomes the current one.
-Files: src/window.c
-
-Patch 6.2.369
-Problem: Various memory leaks: when using globpath(), when searching for
- help tags files, when defining a function inside a function, when
- giving an error message through an exception, for the final "."
- line in ":append", in expression "cond ? a : b" that fails and for
- missing ")" in an expression. Using NULL pointer when adding
- first user command and for pointer computations with regexp.
- (tests by Dominique Pelle)
-Solution: Fix the leaks by freeing the allocated memory. Don't use the
- array of user commands when there are no entries. Use a macro
- instead of a function call for saving and restoring regexp states.
-Files: src/eval.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c,
- src/misc2.c, src/regexp.c, src/screen.c, src/tag.c
-
-Patch 6.2.370 (extra, after6.2.341)
-Problem: Win32: When the path to diff.exe contains a space and using the
- vimrc generated by the install program, diff mode may not work.
- (Alejandro Lopez-Valencia)
-Solution: Do not use double quotes for arguments that do not have a space.
-Files: src/dosinst.c
-
-Patch 6.2.371
-Problem: When 'virtualedit' is set and there is a Tab before the next "x",
- "dtx" does not delete the whole Tab. (Ken Hashishi)
-Solution: Move the cursor to the last position of the Tab. Also for
- "df<Tab>".
-Files: src/normal.c
-
-Patch 6.2.372
-Problem: When using balloon evaluation, no value is displayed for members
- of structures and items of an array.
-Solution: Include "->", "." and "[*]" in the expression.
-Files: src/gui_beval.c, src/normal.c, src/vim.h
-
-Patch 6.2.373
-Problem: When 'winminheight' is zero and a window is reduced to zero
- height, the ruler always says "Top" instead of the cursor
- position. (Antoine J. Mechelynck)
-Solution: Don't recompute w_topline for a zero-height window.
-Files: src/window.c
-
-Patch 6.2.374
-Problem: ":echo "hello" | silent normal n" removes the "hello" message.
- (Servatius Brandt)
-Solution: Don't echo the search string when ":silent" was used. Also don't
- show the mode. In general: don't clear to the end of the screen.
-Files: src/gui.c, src/message.c, src/os_unix.c, src/proto/message.pro,
- src/screen.c, src/search.c, src/window.c
-
-Patch 6.2.375
-Problem: When changing 'guioptions' the hit-enter prompt may be below the
- end of the Vim window.
-Solution: Call screen_alloc() before showing the prompt.
-Files: src/message.c
-
-Patch 6.2.376
-Problem: Win32: Ruby interface cannot be dynamically linked with Ruby 1.6.
-Solution: Add #ifdefs around use of rb_w32_snprintf(). (Benoît Cerrina)
-Files: src/if_ruby.c
-
-Patch 6.2.377 (after 6.2.372)
-Problem: Compiler warnings for signed/unsigned compare. (Michael Wookey)
-Solution: Add type cast.
-Files: src/normal.c
-
-Patch 6.2.378 (extra, after 6.2.118)
-Problem: Mac: cannot build with Project Builder.
-Solution: Add remove_tail_with_ext() to locate and remove the "build"
- directory from the runtime path. Include os_unix.c when needed.
- (Dany St Amant)
-Files: src/misc1.c, src/os_macosx.c, src/vim.h
-
-Patch 6.2.379
-Problem: Using ":mkvimrc" in the ":options" window sets 'bufhidden' to
- "delete". (Michael Naumann)
-Solution: Do not add buffer-specific option values to a global vimrc file.
-Files: src/option.c
-
-Patch 6.2.380 (extra)
-Problem: DOS: "make test" fails when running it again. Can't "make test"
- with Borland C.
-Solution: Make sure ".out" files are deleted when they get in the way. Add
- a "test" target to the Borland C Makefile.
-Files: src/Make_bc5.mak, src/testdir/Make_dos.mak
-
-Patch 6.2.381
-Problem: Setting 'fileencoding' to a comma separated list (confusing it
- with 'fileencodings') does not result in an error message.
- Setting 'fileencoding' in an empty file marks it as modified.
- There is no "+" in the title after setting 'fileencoding'.
-Solution: Check for a comma in 'fileencoding'. Only consider a non-empty
- file modified by changing 'fileencoding'. Update the title after
- changing 'fileencoding'.
-Files: src/option.c
-
-Patch 6.2.382
-Problem: Running "make test" puts marks from test files in viminfo.
-Solution: Specify a different viminfo file to use.
-Files: src/testdir/test15.in, src/testdir/test49.in
-
-Patch 6.2.383
-Problem: ":hi foo term='bla" crashes Vim. (Antony Scriven)
-Solution: Check that the closing ' is there.
-Files: src/syntax.c
-
-Patch 6.2.384
-Problem: ":menu a.&b" ":unmenu a.b" only works if "&b" isn't translated.
-Solution: Also compare the names without '&' characters.
-Files: src/menu.c
-
-Patch 6.2.385 (extra)
-Problem: Win32: forward_slash() and trash_input_buf() are undefined when
- compiling with small features. (Ajit Thakkar)
-Solution: Change the #ifdefs for forward_slash(). Don't call
- trash_input_buf() if the input buffer isn't used.
-Files: src/fileio.c, src/os_win32.c
-
-Patch 6.2.386
-Problem: Wasting time trying to read marks from the viminfo file for a
- buffer without a name.
-Solution: Skip reading marks when the buffer has no name.
-Files: src/fileio.c
-
-Patch 6.2.387
-Problem: There is no highlighting of translated items in help files.
-Solution: Search for a "help_ab.vim" syntax file when the help file is
- called "*.abx". Also improve the help highlighting a bit.
-Files: runtime/syntax/help.vim
-
-Patch 6.2.388
-Problem: GTK: When displaying some double-width characters they are drawn
- as single-width, because of conversion to UTF-8.
-Solution: Check the width that GTK uses and add a space if it's one instead
- of two.
-Files: src/gui_gtk_x11.c
-
-Patch 6.2.389
-Problem: When working over a slow connection, it's very annoying that the
- last line is partly drawn and then cleared for every change.
-Solution: Don't redraw the bottom line if no rows were inserted or deleted.
- Don't draw the line if we know "@" lines will be used.
-Files: src/screen.c
-
-Patch 6.2.390
-Problem: Using "r*" in Visual mode on multi-byte characters only replaces
- every other character. (Tyson Roberts)
-Solution: Correct the cursor position after replacing each character.
-Files: src/ops.c
-
-Patch 6.2.391 (extra)
-Problem: The ":highlight" command is not tested.
-Solution: Add a test script for ":highlight".
-Files: src/testdir/Makefile, src/testdir/Make_amiga.mak,
- src/testdir/Make_dos.mak, src/testdir/Make_os2.mak,
- src/testdir/Make_vms.mms, src/testdir/test51.in,
- src/testdir/test51.ok
-
-Patch 6.2.392 (after 6.2.384)
-Problem: Unused variable.
-Solution: Remove "dlen".
-Files: src/menu.c
-
-Patch 6.2.393
-Problem: When using very long lines the viminfo file can become very big.
-Solution: Add the "s" flag to 'viminfo': skip registers with more than the
- specified Kbyte of text.
-Files: runtime/doc/options.txt, src/ops.c, src/option.c
-
-Patch 6.2.394 (after 6.2.391)
-Problem: Test 51 fails on a terminal with 8 colors. (Tony Leneis)
-Solution: Use "DarkBlue" instead of "Blue" to avoid the "bold" attribute.
-Files: src/testdir/test51.in
-
-Patch 6.2.395
-Problem: When using ":tag" or ":pop" the previous matching tag is used.
- But since the current file is different, the ordering of the tags
- may change.
-Solution: Remember what the current buffer was for when re-using cur_match.
-Files: src/edit.c, src/ex_cmds.c, src/proto/tag.pro, src/structs.h,
- src/tag.c
-
-Patch 6.2.396
-Problem: When CTRL-T jumps to another file and an autocommand moves the
- cursor to the '" mark, don't end up on the right line. (Michal
- Malecki)
-Solution: Set the line number after loading the file.
-Files: src/tag.c
-
-Patch 6.2.397
-Problem: When using a double-byte 'encoding' mapping <M-x> doesn't work.
- (Yasuhiro Matsumoto)
-Solution: Do not set the 8th bit of the character but use a modifier.
-Files: src/gui_gtk_x11.c, src/gui_x11.c, src/misc2.c
-
-Patch 6.2.398 (extra)
-Problem: Win32 console: no extra key modifiers are supported.
-Solution: Encode the modifiers into the input stream. Also fix that special
- keys are converted and stop working when 'tenc' is set. Also fix
- that when 'tenc' is initialized the input and output conversion is
- not setup properly until 'enc' or 'tenc' is set.
-Files: src/getchar.c, src/option.c, src/os_win32.c
-
-Patch 6.2.399
-Problem: A ":set" command that fails still writes a message when it is
- inside a try/catch block.
-Solution: Include all the text of the message in the error message.
-Files: src/charset.c, src/option.c
-
-Patch 6.2.400
-Problem: Can't compile if_xcmdsrv.c on HP-UX 11.0.
-Solution: Include header file poll.h. (Malte Neumann)
-Files: src/if_xcmdsrv.c
-
-Patch 6.2.401
-Problem: When opening a buffer that was previously opened, Vim does not
- restore the cursor position if the first line starts with white
- space. (Gregory Margo)
-Solution: Don't skip restoring the cursor position if it is past the blanks
- in the first line.
-Files: src/buffer.c
-
-Patch 6.2.402
-Problem: Mac: "make install" doesn't generate help tags. (Benji Fisher)
-Solution: Generate help tags before copying the runtime files.
-Files: src/Makefile
-
-Patch 6.2.403
-Problem: ":@y" checks stdin if there are more commands to execute. This
- fails if stdin is not connected, e.g., when starting the GUI from
- KDE. (Ned Konz)
-Solution: Only check for a next command if there still is typeahead.
-Files: src/ex_docmd.c
-
-Patch 6.2.404
-Problem: Our own function to determine width of Unicode characters may get
- outdated. (Markus Kuhn)
-Solution: Use wcwidth() when it is available. Also use iswprint().
-Files: src/auto/configure, src/configure.in, src/config.h.in, src/mbyte.c
-
-Patch 6.2.405
-Problem: Cannot map zero without breaking the count before a command.
- (Benji Fisher)
-Solution: Disable mapping zero when entering a count.
-Files: src/getchar.c, src/globals.h, src/normal.c
-
-Patch 6.2.406
-Problem: ":help \zs", ":help \@=" and similar don't find useful help.
-Solution: Prepend "/\" to the arguments to find the desired help tag.
-Files: src/ex_cmds.c
-
-Patch 6.2.407 (after 6.2.299)
-Problem: ":help \@<=" doesn't find help.
-Solution: Avoid that ":help \@<=" searches for the "<=" language.
-Files: src/tag.c
-
-Patch 6.2.408
-Problem: ":compiler" is not consistent: Sets local options and a global
- variable. (Douglas Potts) There is no error message when a
- compiler is not supported.
-Solution: Use ":compiler!" to set a compiler globally, otherwise it's local
- to the buffer and "b:current_compiler" is used. Give an error
- when no compiler script could be found.
- Note: updated compiler plugins can be found at
- ftp://ftp.vim.org/pub/vim/runtime/compiler/
-Files: runtime/compiler/msvc.vim, runtime/doc/quickfix.txt, src/eval.c,
- src/ex_cmds2.c
-
-Patch 6.2.409
-Problem: The cursor ends up in the last column instead of after the line
- when doing "i//<Esc>o" with 'indentexpr' set to "cindent(v:lnum)".
- (Toby Allsopp)
-Solution: Adjust the cursor as if in Insert mode.
-Files: src/misc1.c
-
-Patch 6.2.410 (after 6.2.389)
-Problem: In diff mode, when there are more filler lines than fit in the
- window, they are not drawn.
-Solution: Check for filler lines when skipping to draw a line that doesn't
- fit.
-Files: src/screen.c
-
-Patch 6.2.411
-Problem: A "\n" inside a string is not seen as a line break by the regular
- expression matching. (Hari Krishna Dara)
-Solution: Add the vim_regexec_nl() function for strings where "\n" is to be
- matched with a line break.
-Files: src/eval.c, src/ex_eval.c, src/proto/regexp.c, src/regexp.c
-
-Patch 6.2.412
-Problem: Ruby: "ruby << EOF" inside a function doesn't always work. Also
- for ":python", ":tcl" and ":perl".
-Solution: Check for "<< marker" and skip until "marker" before checking for
- "endfunction".
-Files: src/eval.c
-
-Patch 6.2.413 (after 6.2.411)
-Problem: Missing prototype for vim_regexec_nl(). (Marcel Svitalsky)
-Solution: Now really include the prototype.
-Files: src/proto/regexp.pro
-
-Patch 6.2.414
-Problem: The function used for custom completion of user commands cannot
- have <SID> to make it local. (Hari Krishna Dara)
-Solution: Pass the SID of the script where the user command was defined on
- to the completion. Also clean up #ifdefs.
-Files: src/ex_docmd.c, src/eval.c, src/ex_getln.c, src/structs.h
-
-Patch 6.2.415
-Problem: Vim may crash after a sequence of events that change the window
- size. The window layout assumes a larger window than is actually
- available. (Servatius Brandt)
-Solution: Invoke win_new_shellsize() from screenalloc() instead of from
- set_shellsize().
-Files: src/screen.c, src/term.c
-
-Patch 6.2.416
-Problem: Compiler warning for incompatible pointer.
-Solution: Remove the "&" in the call to poll(). (Xavier de Gaye)
-Files: src/os_unix.c
-
-Patch 6.2.417 (after 6.2.393)
-Problem: Many people forget that the '"' item in 'viminfo' needs to be
- preceded with a backslash,
-Solution: Add '<' as an alias for the '"' item.
-Files: runtime/doc/options.txt, src/ops.c, src/option.c
-
-Patch 6.2.418
-Problem: Using ":nnoremap <F12> :echo "cheese" and ":cabbr cheese xxx":
- when pressing <F12> still uses the abbreviation. (Hari Krishna)
-Solution: Also apply "noremap" to abbreviations.
-Files: src/getchar.c
-
-Patch 6.2.419 (extra)
-Problem: Win32: Cannot open the Vim window inside another application.
-Solution: Add the "-P" argument to specify the window title of the
- application to run inside. (Zibo Zhao)
-Files: runtime/doc/starting.txt, src/main.c, src/gui_w32.c,
- src/gui_w48.c, src/if_ole.cpp, src/os_mswin.c,
- src/proto/gui_w32.pro
-
-Patch 6.2.420
-Problem: Cannot specify a file to be edited in binary mode without setting
- the global value of the 'binary' option.
-Solution: Support ":edit ++bin file".
-Files: runtime/doc/editing.txt, src/buffer.c, src/eval.c, src/ex_cmds.h,
- src/ex_docmd.c, src/fileio.c, src/misc2.c
-
-Patch 6.2.421
-Problem: Cannot set the '[ and '] mark, which may be necessary when an
- autocommand simulates reading a file.
-Solution: Allow using "m[" and "m]".
-Files: runtime/doc/motion.txt, src/mark.c
-
-Patch 6.2.422
-Problem: In CTRL-X completion messages the "/" makes them less readable.
-Solution: Remove the slashes. (Antony Scriven)
-Files: src/edit.c
-
-Patch 6.2.423
-Problem: ":vertical wincmd ]" does not split vertically.
-Solution: Add "postponed_split_flags".
-Files: src/ex_docmd.c, src/globals.h, src/if_cscope.c, src/tag.c
-
-Patch 6.2.424
-Problem: A BufEnter autocommand that sets an option stops 'mousefocus' from
- working in Insert mode (Normal mode is OK). (Gregory Seidman)
-Solution: In the Insert mode loop invoke gui_mouse_correct() when needed.
-Files: src/edit.c
-
-Patch 6.2.425
-Problem: Vertical split and command line window: can only drag status line
- above the cmdline window on the righthand side, not lefthand side.
-Solution: Check the status line row instead of the window pointer.
-Files: src/ui.c
-
-Patch 6.2.426
-Problem: A syntax region end match with a matchgroup that includes a line
- break only highlights the last line with matchgroup. (Gary
- Holloway)
-Solution: Also use the line number of the position where the region
- highlighting ends.
-Files: src/syntax.c
-
-Patch 6.2.427 (extra)
-Problem: When pasting a lot of text in a multi-byte encoding, conversion
- from 'termencoding' to 'encoding' may fail for some characters.
- (Kuang-che Wu)
-Solution: When there is an incomplete byte sequence at the end of the read
- text keep it for the next time.
-Files: src/mbyte.c, src/os_amiga.c, src/os_mswin.c, src/proto/mbyte.pro,
- src/proto/os_mswin.pro, src/ui.c
-
-Patch 6.2.428
-Problem: The X11 clipboard supports the Vim selection for char/line/block
- mode, but since the encoding is not included can't copy/paste
- between two Vims with a different 'encoding'.
-Solution: Add a new selection format that includes the 'encoding'. Perform
- conversion when necessary.
-Files: src/gui_gtk_x11.c, src/ui.c, src/vim.h
-
-Patch 6.2.429
-Problem: Unix: glob() doesn't work for a directory with a single quote in
- the name. (Nazri Ramliy)
-Solution: When using the shell to expand, only put double quotes around
- spaces and single quotes, not the whole thing.
-Files: src/os_unix.c
-
-Patch 6.2.430
-Problem: BOM at start of a vim script file is not recognized and causes an
- error message.
-Solution: Detect the BOM and skip over it. Also fix that after using
- ":scriptencoding" the iconv() file descriptor was not closed
- (memory leak).
-Files: src/ex_cmds2.c
-
-Patch 6.2.431
-Problem: When using the horizontal scrollbar, the scrolling is limited to
- the length of the cursor line.
-Solution: Make the scroll limit depend on the longest visible line. The
- cursor is moved when necessary. Including the 'h' flag in
- 'guioptions' disables this.
-Files: runtime/doc/gui.txt, runtime/doc/options.txt, src/gui.c,
- src/misc2.c, src/option.h
-
-Patch 6.2.432 (after 6.2.430 and 6.2.431)
-Problem: Lint warnings.
-Solution: Add type casts.
-Files: src/ex_cmds2.c, src/gui.c
-
-Patch 6.2.433
-Problem: Translating "VISUAL" and "BLOCK" separately doesn't give a good
- result. (Alejandro Lopez Valencia)
-Solution: Use a string for each combination.
-Files: src/screen.c
-
-Patch 6.2.434 (after 6.2.431)
-Problem: Compiler warning. (Salman Halim)
-Solution: Add type casts.
-Files: src/gui.c
-
-Patch 6.2.435
-Problem: When there are vertically split windows the minimal Vim window
- height is computed wrong.
-Solution: Use frame_minheight() to correctly compute the minimal height.
-Files: src/window.c
-
-Patch 6.2.436
-Problem: Running the tests changes the user's viminfo file.
-Solution: In test 49 tell the extra Vim to use the test viminfo file.
-Files: src/testdir/test49.vim
-
-Patch 6.2.437
-Problem: ":mksession" always puts "set nocompatible" in the session file.
- This changes option settings. (Ron Aaron)
-Solution: Add an "if" to only change 'compatible' when needed.
-Files: src/ex_docmd.c
-
-Patch 6.2.438
-Problem: When the 'v' flag is present in 'cpoptions', backspacing and then
- typing text again: one character too much is overtyped before
- inserting is done again.
-Solution: Set "dollar_vcol" to the right column.
-Files: src/edit.c
-
-Patch 6.2.439
-Problem: GTK 2: Changing 'lines' may cause a mismatch between the window
- layout and the size of the window.
-Solution: Disable the hack with force_shell_resize_idle().
-Files: src/gui_gtk_x11.c
-
-Patch 6.2.440
-Problem: When 'lazyredraw' is set the window title is still updated.
- The size of the Visual area and the ruler are displayed too often.
-Solution: Postpone redrawing the window title. Only show the Visual area
- size when waiting for a character. Don't draw the ruler
- unnecessary.
-Files: src/buffer.c, src/normal.c, src/screen.c
-
-Patch 6.2.441
-Problem: ":unabbreviate foo " doesn't work, because of the trailing space,
- while an abbreviation with a trailing space is not possible. (Paul
- Jolly)
-Solution: Accept a match with the lhs of an abbreviation without the
- trailing space.
-Files: src/getchar.c
-
-Patch 6.2.442
-Problem: Cannot manipulate the command line from a function.
-Solution: Add getcmdline(), getcmdpos() and setcmdpos() functions and the
- CTRL-\ e command.
-Files: runtime/doc/cmdline.txt, runtime/doc/eval.txt, src/eval.c
- src/ex_getln.c, src/ops.c, src/proto/ex_getln.pro,
- src/proto/ops.pro
-
-Patch 6.2.443
-Problem: With ":silent! echoerr something" you don't get the position of
- the error. emsg() only writes the message itself and returns.
-Solution: Also redirect the position of the error.
-Files: src/message.c
-
-Patch 6.2.444
-Problem: When adding the 'c' flag to a ":substitute" command it may replace
- more times than without the 'c' flag. Happens for a match that
- starts with "\ze" (Marcel Svitalsk) and when using "\@<=" (Klaus
- Bosau).
-Solution: Correct "prev_matchcol" when replacing the line. Don't replace
- the line when the pattern uses look-behind matching.
-Files: src/ex_cmds.c, src/proto/regexp.pro, src/regexp.c
-
-Patch 6.2.445
-Problem: Copying vimtutor to /tmp/something is not secure, a symlink may
- cause trouble.
-Solution: Create a directory and create the file in it. Use "umask" to
- create the directory with mode 700. (Stefan Nordhausen)
-Files: src/vimtutor
-
-Patch 6.2.446 (after 6.2.404)
-Problem: Using library functions wcwidth() and iswprint() results in
- display problems for Hebrew characters. (Ron Aaron)
-Solution: Disable the code to use the library functions, use our own.
-Files: src/mbyte.c
-
-Patch 6.2.447 (after 6.2.440)
-Problem: Now that the title is only updated when redrawing, it is no longer
- possible to show it while executing a function. (Madoka Machitani)
-Solution: Make ":redraw" also update the title.
-Files: src/ex_docmd.c
-
-Patch 6.2.448 (after 6.2.427)
-Problem: Mac: conversion done when 'termencoding' differs from 'encoding'
- fails when pasting a longer text.
-Solution: Check for an incomplete sequence at the end of the chunk to be
- converted. (Eckehard Berns)
-Files: src/mbyte.c
-
-Patch 6.2.449 (after 6.2.431)
-Problem: Get error messages when switching files.
-Solution: Check for a valid line number when calculating the width of the
- horizontal scrollbar. (Helmut Stiegler)
-Files: src/gui.c
-
-Patch 6.2.450
-Problem: " #include" and " #define" are not recognized with the default
- option values for 'include' and 'defined'. (RG Kiran)
-Solution: Adjust the default values to allow white space before the #.
-Files: runtime/doc/options.txt, src/option.c
-
-Patch 6.2.451
-Problem: GTK: when using XIM there are various problems, including setting
- 'modified' and breaking undo at the wrong moment.
-Solution: Add "xim_changed_while_preediting", "preedit_end_col" and
- im_is_preediting(). (Yasuhiro Matsumoto)
-Files: src/ex_getln.c, src/globals.h, src/gui_gtk.c, src/gui_gtk_x11.c,
- src/mbyte.c, src/misc1.c, src/proto/mbyte.pro, src/screen.c,
- src/undo.c
-
-Patch 6.2.452
-Problem: In diff mode, when DiffAdd and DiffText highlight settings are
- equal, an added line is highlighted with DiffChange. (Tom Schumm)
-Solution: Remember the diff highlight type instead of the attributes.
-Files: src/screen.c
-
-Patch 6.2.453
-Problem: ":s/foo\|\nbar/x/g" does not replace two times in "foo\nbar".
- (Pavel Papushev)
-Solution: When the pattern can match a line break also try matching at the
- NUL at the end of a line.
-Files: src/ex_cmds.c, src/regexp.c
-
-Patch 6.2.454
-Problem: ":let b:changedtick" doesn't work. (Alan Schmitt) ":let
- b:changedtick = 99" does not give an error message.
-Solution: Add code to recognize ":let b:changedtick".
-Files: src/eval.c
-
-Patch 6.2.455 (after 6.2.297)
-Problem: In Python commands the current locale changes how certain Python
- functions work. (Eugene M. Minkovskii)
-Solution: Set the LC_NUMERIC locale to "C" while executing a Python command.
-Files: src/if_python.c
-
-Patch 6.2.456 (extra)
-Problem: Win32: Editing a file by its Unicode name (dropping it on Vim or
- using the file selection dialog) doesn't work. (Yakov Lerner, Alex
- Jakushev)
-Solution: Use wide character functions when file names are involved and
- convert from/to 'encoding' where needed.
-Files: src/gui_w48.c, src/macros.h, src/memfile.c, src/memline.c,
- src/os_mswin.c, src/os_win32.c
-
-Patch 6.2.457 (after 6.2.244)
-Problem: When 'encoding' is "utf-8" and writing text with chars above 0x80
- in latin1, conversion is wrong every 8200 bytes. (Oyvind Holm)
-Solution: Correct the utf_ptr2len_check_len() function and fix the problem
- of displaying 0xf7 in utfc_ptr2len_check_len().
-Files: src/mbyte.c
-
-Patch 6.2.458
-Problem: When 'virtualedit' is set "$" doesn't move to the end of an
- unprintable character, causing "y$" not to include that character.
- (Fred Ma)
-Solution: Set "coladd" to move the cursor to the end of the character.
-Files: src/misc2.c
-
-Patch 6.2.459 (after 6.2.454)
-Problem: Variable "b" cannot be written. (Salman Halim)
-Solution: Compare strings properly.
-Files: src/eval.c
-
-Patch 6.2.460 (extra, after 6.2.456)
-Problem: Compiler warnings for missing prototypes.
-Solution: Include the missing prototypes.
-Files: src/proto/os_win32.pro
-
-Patch 6.2.461
-Problem: After using a search command "x" starts putting single characters
- in the numbered registers.
-Solution: Reset "use_reg_one" at the right moment.
-Files: src/normal.c
-
-Patch 6.2.462
-Problem: Finding a matching parenthesis does not correctly handle a
- backslash in a trailing byte.
-Solution: Handle multi-byte characters correctly. (Taro Muraoka)
-Files: src/search.c
-
-Patch 6.2.463 (extra)
-Problem: Win32: An NTFS file system may contain files with extra info
- streams. The current method to copy them creates one and then
- deletes it again. (Peter Toennies) Also, only three streams with
- hard coded names are copied.
-Solution: Use BackupRead() to check which info streams the original file
- contains and only copy these streams.
-Files: src/os_win32.c
-
-Patch 6.2.464 (extra, after 6.2.427)
-Problem: Amiga: Compilation error with gcc. (Ali Akcaagac)
-Solution: Move the #ifdef outside of Read().
-Files: src/os_amiga.c
-
-Patch 6.2.465
-Problem: When resizing the GUI window the window manager sometimes moves it
- left of or above the screen. (Michael McCarty)
-Solution: Check the window position after resizing it and move it onto the
- screen when it isn't.
-Files: src/gui.c
-
-Patch 6.2.466 (extra, after 6.2.456)
-Problem: Win32: Compiling with Borland C fails, and an un/signed warning.
-Solution: Redefine wcsicmp() to wcscmpi() and add type casts. (Yasuhiro
- Matsumoto)
-Files: src/os_win32.c
-
-Patch 6.2.467 (extra, after 6.2.463)
-Problem: Win32: can't compile without multi-byte feature. (Ajit Thakkar)
-Solution: Add #ifdefs around the info stream code.
-Files: src/os_win32.c
-
-Patch 6.2.468
-Problem: Compiler warnings for shadowed variables. (Matthias Mohr)
-Solution: Delete superfluous variables and rename others.
-Files: src/eval.c, src/ex_docmd.c, src/ex_eval.c, src/if_cscope.c,
- src/fold.c, src/option.c, src/os_unix.c, src/quickfix.c,
- src/regexp.c
-
-Patch 6.2.469 (extra, after 6.2.456)
-Problem: Win32: Can't create swap file when 'encoding' differs from the
- active code page. (Kriton Kyrimis)
-Solution: In enc_to_ucs2() terminate the converted string with a NUL
-Files: src/os_mswin.c
-
-Patch 6.2.470
-Problem: The name returned by tempname() may be equal to the file used for
- shell output when ignoring case.
-Solution: Skip 'O' and 'I' in tempname().
-Files: src/eval.c
-
-Patch 6.2.471
-Problem: "-L/usr/lib" is used in the link command, even though it's
- supposed to be filtered out. "-lw" and "-ldl" are not
- automatically added when needed for "-lXmu". (Antonio Colombo)
-Solution: Check for a space after the argument instead of before. Also
- remove "-R/usr/lib" if it's there. Check for "-lw" and "-ldl"
- before trying "-lXmu".
-Files: src/auto/configure, src/configure.in, src/link.sh
-
-Patch 6.2.472
-Problem: When using a FileChangedShell autocommand that changes the current
- buffer, a buffer exists that can't be wiped out.
- Also, Vim sometimes crashes when executing an external command
- that changes the buffer and a FileChangedShell autocommand is
- used. (Hari Krishna Dara)
- Users are confused by the warning for a file being changed outside
- of Vim.
-Solution: Avoid that the window counter for a buffer is incremented twice.
- Avoid that buf_check_timestamp() is used recursively.
- Add a hint to look in the help for more info.
-Files: src/ex_cmds.c, src/fileio.c
-
-Patch 6.2.473
-Problem: Using CTRL-] in a help buffer without a name causes a crash.
-Solution: Check for name to be present before using it. (Taro Muraoka)
-Files: src/tag.c
-
-Patch 6.2.474 (extra, after 6.2.456)
-Problem: When Vim is starting up conversion is done unnecessarily. Failure
- to find the runtime files on Windows 98. (Randall W. Morris)
-Solution: Init enc_codepage negative, only use it when not negative.
- Don't use GetFileAttributesW() on Windows 98 or earlier.
-Files: src/globals.h, src/gui_w32.c, src/gui_w48.c, src/os_mswin.c,
- src/os_win32.c
-
-Patch 6.2.475
-Problem: Commands after "perl <<EOF" are parsed as Vim commands when they
- are not executed.
-Solution: Properly skip over the perl commands.
-Files: src/ex_docmd.c, src/ex_getln.c, src/if_perl.xs, src/if_python.c,
- src/if_ruby.c, src/if_tcl.c, src/misc2.c
-
-Patch 6.2.476
-Problem: When reloading a hidden buffer changed outside of Vim and the
- current buffer is read-only, the reloaded buffer becomes
- read-only. (Hari Krishna Dara)
-Solution: Save the 'readonly' flag of the reloaded buffer instead of the
- current buffer.
-Files: src/fileio.c
-
-Patch 6.2.477
-Problem: Using remote_send(v:servername, "\<C-V>") causes Vim to hang.
- (Yakov Lerner)
-Solution: When the resulting string is empty don't set received_from_client.
-Files: src/main.c
-
-Patch 6.2.478
-Problem: Win32: "--remote file" fails changing directory if the current
- directory name starts with a single quote. (Iestyn Walters)
-Solution: Add a backslash where it will be removed later.
-Files: src/main.c, src/misc2.c, src/proto/misc2.pro
-
-Patch 6.2.479
-Problem: The error message for errors during recovery goes unnoticed.
-Solution: Avoid that the hit-enter prompt overwrites the message. Add a few
- lines to make the error stand out.
-Files: src/main.c, src/message.c, src/memline.c
-
-Patch 6.2.480
-Problem: NetBeans: Using negative index in array. backslash at end of
- message may cause Vim to crash. (Xavier de Gaye)
-Solution: Initialize buf_list_used to zero. Check for trailing backslash.
-Files: src/netbeans.c
-
-Patch 6.2.481
-Problem: When writing a file it is not possible to specify that hard and/or
- symlinks are to be broken instead of preserved.
-Solution: Add the "breaksymlink" and "breakhardlink" values to 'backupcopy'.
- (Simon Ekstrand)
-Files: runtime/doc/options.txt, src/fileio.c, src/option.c, src/option.h
-
-Patch 6.2.482
-Problem: Repeating insert of CTRL-K 1 S doesn't work. The superscript 1 is
- considered to be a digit. (Juergen Kraemer)
-Solution: In vim_isdigit() only accept '0' to '9'. Use VIM_ISDIGIT() for
- speed where possible. Also add vim_isxdigit().
-Files: src/buffer.c, src/charset.c, src/diff.c, src/digraph.c,
- src/edit.c, src/eval.c,, src/ex_cmds.c, src/ex_cmds2.c,
- src/ex_docmd.c, src/ex_eval.c, src/ex_getln.c,
- src/if_xcmdsrv.c, src/farsi.c, src/fileio.c, src/fold.c,
- src/getchar.c, src/gui.c, src/if_cscope.c, src/macros.h,
- src/main.c, src/mark.c, src/mbyte.c, src/menu.c, src/misc1.c,
- src/misc2.c, src/normal.c, src/ops.c, src/option.c,
- src/proto/charset.pro, src/regexp.c, src/screen.c, src/search.c,
- src/syntax.c, src/tag.c, src/term.c, src/termlib.c
-
-Patch 6.2.483 (extra, after 6.2.482)
-Problem: See 6.2.482.
-Solution: Extra part of patch 6.2.482.
-Files: src/gui_photon.c, src/gui_w48.c, src/os_msdos.c, src/os_mswin.c
-
-Patch 6.2.484
-Problem: MS-Windows: With the included diff.exe, differences after a CTRL-Z
- are not recognized. (Peter Keresztes)
-Solution: Write the files with unix fileformat and invoke diff with --binary
- if possible.
-Files: src/diff.c
-
-Patch 6.2.485
-Problem: A BufWriteCmd autocommand cannot know if "!" was used or not.
- (Hari Krishna Dara)
-Solution: Add the v:cmdbang variable.
-Files: runtime/doc/eval.txt, src/eval.c, src/proto/eval.pro,
- src/fileio.c, src/vim.h
-
-Patch 6.2.486 (6.2.482)
-Problem: Diff for eval.c is missing.
-Solution: Addition to patch 6.2.482.
-Files: src/eval.c
-
-Patch 6.2.487 (extra, after 6.2.456)
-Problem: Compiler warnings for wrong prototype. (Alejandro Lopez Valencia)
-Solution: Delete the prototype for Handle_WM_Notify().
-Files: src/proto/gui_w32.pro
-
-Patch 6.2.488
-Problem: Missing ")" in *.ch filetype detection.
-Solution: Add the ")". (Ciaran McCreesh)
-Files: runtime/filetype.vim
-
-Patch 6.2.489
-Problem: When accidentally opening a session in Vim which has already been
- opened in another Vim there is a long row of ATTENTION prompts.
- Need to quit each of them to get out. (Robert Webb)
-Solution: Add the "Abort" alternative to the dialog.
-Files: src/memline.c
-
-Patch 6.2.490
-Problem: With 'paragraph' it is not possible to use a single dot as a
- paragraph boundary. (Dorai Sitaram)
-Solution: Allow using " " (two spaces) in 'paragraph' to match ".$" or
- ". $"
-Files: src/search.c
-
-Patch 6.2.491
-Problem: Decrementing a position doesn't take care of multi-byte chars.
-Solution: Adjust the column for multi-byte characters. Remove mb_dec().
- (Yasuhiro Matsumoto)
-Files: src/mbyte.c, src/misc2.c, src/proto/mbyte.pro
-
-Patch 6.2.492
-Problem: When using ":redraw" while there is a message, the next ":echo"
- still causes text to scroll. (Yasuhiro Matsumoto)
-Solution: Reset msg_didout and msg_col, so that after ":redraw" the next
- message overwrites an existing one.
-Files: src/ex_docmd.c
-
-Patch 6.2.493
-Problem: "@x" doesn't work when 'insertmode' is set. (Benji Fisher)
-Solution: Put "restart_edit" in the typeahead buffer, so that it's used
- after executing the register contents.
-Files: src/ops.c
-
-Patch 6.2.494
-Problem: Using diff mode with two windows, when moving horizontally in
- inserted lines, a fold in the other window may open.
-Solution: Compute the line number in the other window correctly.
-Files: src/diff.c
-
-Patch 6.2.495 (extra, after 6.2.456)
-Problem: Win32: The file dialog doesn't work on Windows 95.
-Solution: Put the wide code of gui_mch_browse() in gui_mch_browseW() and use
- it only on Windows NT/2000/XP.
-Files: src/gui_w32.c, src/gui_w48.c
-
-Patch 6.2.496
-Problem: FreeBSD 4.x: When compiled with the pthread library (Python) a
- complicated pattern may cause Vim to crash. Catching the signal
- doesn't work.
-Solution: When compiled with threads, instead of using the normal stacksize
- limit, use the size of the initial stack.
-Files: src/auto/configure, src/config.h.in, src/configure.in,
- src/os_unix.c
-
-Patch 6.2.497 (extra)
-Problem: Russian messages are only available in one encoding.
-Solution: Convert the messages to MS-Windows codepages. (Vassily Ragosin)
-Files: src/po/Makefile
-
-Patch 6.2.498
-Problem: Non-latin1 help files are not properly supported.
-Solution: Support utf-8 help files and convert them to 'encoding' when
- needed.
-Files: src/fileio.c
-
-Patch 6.2.499
-Problem: When writing a file and halting the system, the file might be lost
- when using a journaling file system.
-Solution: Use fsync() to flush the file data to disk after writing a file.
- (Radim Kolar)
-Files: src/fileio.c
-
-Patch 6.2.500 (extra)
-Problem: The DOS/MS-Windows the installer doesn't use the --binary flag for
- diff.
-Solution: Add --binary to the diff argument in MyDiff(). (Alejandro Lopez-
- Valencia)
-Files: src/dosinst.c
-
-Patch 6.2.501
-Problem: Vim does not compile with MorphOS.
-Solution: Add a Makefile and a few changes to make Vim work with MorphOS.
- (Ali Akcaagac)
-Files: runtime/doc/os_amiga.txt, src/INSTALLami.txt,
- src/Make_morphos.mak, src/memfile.c, src/term.c
-
-Patch 6.2.502
-Problem: Building fails for generating message files.
-Solution: Add dummy message files.
-Files: src/po/ca.po, src/po/ru.po, src/po/sv.po
-
-Patch 6.2.503
-Problem: Mac: Can't compile MacRoman conversions without the GUI.
-Solution: Also link with the Carbon framework for the terminal version, for
- the MacRoman conversion functions. (Eckehard Berns)
- Remove -ltermcap from the GUI link command, it is not needed.
-Files: src/auto/configure, src/Makefile, src/configure.in
-
-Patch 6.2.504
-Problem: Various problems with 'cindent', among which that a
- list of variable declarations is not indented properly.
-Solution: Fix the wrong indenting. Improve indenting of C++ methods.
- Add the 'i', 'b' and 'W' options to 'cinoptions'. (mostly by
- Helmut Stiegler)
- Improve indenting of preprocessor-continuation lines.
-Files: runtime/doc/indent.txt, src/misc1.c, src/testdir/test3.in,
- src/testdir/test3.ok
-
-Patch 6.2.505
-Problem: Help for -P argument is missing. (Ronald Hoellwarth)
-Solution: Add the patch that was missing in 6.2.419.
-Files: runtime/doc/starting.txt
-
-Patch 6.2.506 (extra)
-Problem: Win32: When 'encoding' is a codepage then reading a utf-8 file
- only works when iconv is available. Writing a file in another
- codepage uses the wrong kind of conversion.
-Solution: Use internal conversion functions. Enable reading and writing
- files with 'fileencoding' different from 'encoding' for all valid
- codepages and utf-8 without the need for iconv.
-Files: src/fileio.c, src/testdir/Make_dos.mak, src/testdir/test52.in,
- src/testdir/test52.ok
-
-Patch 6.2.507
-Problem: The ownership of the file with the password for the NetBeans
- connection is not checked. "-nb={file}" doesn't work for GTK.
-Solution: Only accept the file when owned by the user and not accessible by
- others. Detect "-nb=" for GTK.
-Files: src/netbeans.c, src/gui_gtk_x11.c
-
-Patch 6.2.508
-Problem: Win32: "v:lang" does not show the current language for messages if
- it differs from the other locale settings.
-Solution: Use the value of the $LC_MESSAGES environment variable.
-Files: src/ex_cmds2.c
-
-Patch 6.2.509 (after 6.2.508)
-Problem: Crash when $LANG is not set.
-Solution: Add check for NULL pointer. (Ron Aaron)
-Files: src/ex_cmds2.c
-
-Patch 6.2.510 (after 6.2.507)
-Problem: Warning for pointer conversion.
-Solution: Add a type cast.
-Files: src/gui_gtk_x11.c
-
-Patch 6.2.511
-Problem: Tags in Russian help files are in utf-8 encoding, which may be
- different from 'encoding'.
-Solution: Use the "TAG_FILE_ENCODING" field in the tags file to specify the
- encoding of the tags. Convert help tags from 'encoding' to the
- tag file encoding when searching for matches, do the reverse when
- listing help tags.
-Files: runtime/doc/tagsrch.txt, src/ex_cmds.c, src/tag.c
-
-Patch 6.2.512
-Problem: Translating "\"\n" is useless. (Gerfried Fuchs)
-Solution: Remove the _() around it.
-Files: src/main.c, src/memline.c
-
-Patch 6.2.513 (after 6.2.507)
-Problem: NetBeans: the check for owning the connection info file can be
- simplified. (Nikolay Molchanov)
-Solution: Only check if the access mode is right.
-Files: src/netbeans.c
-
-Patch 6.2.514
-Problem: When a highlight/syntax group name contains invalid characters
- there is no warning.
-Solution: Add an error for unprintable characters and a warning for other
- invalid characters.
-Files: src/syntax.c
-
-Patch 6.2.515
-Problem: When using the options window 'swapfile' is reset.
-Solution: Use ":setlocal" instead of ":set".
-Files: runtime/optwin.vim
-
-Patch 6.2.516
-Problem: The sign column cannot be seen, looks like there are two spaces
- before the text. (Rob Retter)
-Solution: Add the SignColumn highlight group.
-Files: runtime/doc/options.txt, runtime/doc/sign.txt, src/option.c,
- src/screen.c, src/syntax.c, src/vim.h
-
-Patch 6.2.517
-Problem: Using "r*" in Visual mode on multi-byte characters replaces
- too many characters. In Visual Block mode replacing with a
- multi-byte character doesn't work.
-Solution: Adjust the operator end for the difference in byte length of the
- original and the replaced character. Insert all bytes of a
- multi-byte character, take care of double-wide characters.
-Files: src/ops.c
-
-Patch 6.2.518
-Problem: Last line of a window is not updated after using "J" and then "D".
- (Adri Verhoef)
-Solution: When no line is found below a change that doesn't need updating,
- update all lines below the change.
-Files: src/screen.c
-
-Patch 6.2.519
-Problem: Mac: cannot read/write files in MacRoman format.
-Solution: Do internal conversion from/to MacRoman to/from utf-8 and latin1.
- (Eckehard Berns)
-Files: src/fileio.c
-
-Patch 6.2.520 (extra)
-Problem: The NSIS installer is outdated.
-Solution: Make it work with NSIS 2.0. Also include console executables for
- Win 95/98/ME and Win NT/2000/XP. Use LZWA compression. Use
- "/oname" to avoid having to rename files before running NSIS.
-Files: Makefile, nsis/gvim.nsi
-
-Patch 6.2.521
-Problem: When using silent Ex mode the "changing a readonly file" warning
- is omitted but the one second wait isn't. (Yakov Lerner)
-Solution: Skip the delay when "silent_mode" is set.
-Files: src/misc1.c
-
-Patch 6.2.522
-Problem: GUI: when changing 'cmdheight' in the gvimrc file the window
- layout is messed up. (Keith Dart)
-Solution: Skip updating the window layout when changing 'cmdheight' while
- still starting up.
-Files: src/option.c
-
-Patch 6.2.523
-Problem: When loading a session and aborting when a swap file already
- exists, the user is left with useless windows. (Robert Webb)
-Solution: Load one file before creating the windows.
-Files: src/ex_docmd.c
-
-Patch 6.2.524 (extra, after 6.2.520)
-Problem: Win32: (un)installing gvimext.dll may fail if it was used.
- The desktop and start menu links are created for the current user
- instead of all users.
- Using the home directory as working directory for the links is a
- bad idea for multi-user systems.
- Cannot use Vim from the "Open With..." menu.
-Solution: Force a reboot if necessary. (Alejandro Lopez-Valencia) Also use
- macros for the directory of the source and runtime files. Use
- "CSIDL_COMMON_*" instead of "CSIDL_*" when possible.
- Do not specify a working directory in the links.
- Add Vim to the "Open With..." menu. (Giuseppe Bilotta)
-Files: nsis/gvim.nsi, src/dosinst.c, src/dosinst.h, src/uninstal.c
-
-Patch 6.2.525
-Problem: When the history contains a very long line ":history" causes a
- crash. (Volker Kiefel)
-Solution: Shorten the history entry to fit it in one line.
-Files: src/ex_getln.c
-
-Patch 6.2.526
-Problem: When s:lang is "ja" the Japanese menus are not used.
-Solution: Add 'encoding' to the language when there is no charset.
-Files: runtime/menu.vim
-
-Patch 6.2.527
-Problem: The 2html script uses ":wincmd p", which breaks when using some
- autocommands.
-Solution: Remember the window numbers and jump to them with ":wincmd w".
- Also add XHTML support. (Panagiotis Issaris)
-Files: runtime/syntax/2html.vim
-
-Patch 6.2.528
-Problem: NetBeans: Changes of the "~" command are not reported.
-Solution: Call netbeans_inserted() after performing "~". (Gordon Prieur)
- Also change NetBeans debugging to append to the log file.
- Also fix that "~" in Visual block mode changes too much if there
- are multi-byte characters.
-Files: src/nbdebug.c, src/normal.c, src/ops.c
-
-Patch 6.2.529 (extra)
-Problem: VisVim only works for Admin. Doing it for one user doesn't work.
- (Alexandre Gouraud)
-Solution: When registering the module fails, simply continue.
-Files: src/VisVim/VisVim.cpp
-
-Patch 6.2.530
-Problem: Warning for missing prototype on the Amiga.
-Solution: Include time.h
-Files: src/version.c
-
-Patch 6.2.531
-Problem: In silent ex mode no messages are given, which makes debugging
- very difficult.
-Solution: Do output messages when 'verbose' is set.
-Files: src/message.c, src/ui.c
-
-Patch 6.2.532 (extra)
-Problem: Compiling for Win32s with VC 4.1 doesn't work.
-Solution: Don't use CP_UTF8 if it's not defined. Don't use CSIDL_COMMON*
- when not defined.
-Files: src/dosinst.h, src/fileio.c
-
-Win32 console: After patch 6.2.398 Ex mode did not work. (Yasuhiro Matsumoto)
-
-Patch 6.3a.001
-Problem: Win32: if testing for the "--binary" option fails, diff isn't used
- at all.
-Solution: Handle the "ok" flag properly. (Yasuhiro Matsumoto)
-Files: src/diff.c
-
-Patch 6.3a.002
-Problem: NetBeans: An insert command from NetBeans beyond the end of a
- buffer crashes Vim. (Xavier de Gaye)
-Solution: Use a local pos_T structure for the position.
-Files: src/netbeans.c
-
-Patch 6.3a.003
-Problem: E315 error with auto-formatting comments. (Henry Van Roessel)
-Solution: Pass the line number to same_leader().
-Files: src/ops.c
-
-Patch 6.3a.004
-Problem: Test32 fails on Windows XP for the DJGPP version. Renaming
- test11.out fails.
-Solution: Don't try renaming, create new files to use for the test.
-Files: src/testdir/test32.in, src/testdir/test32.ok
-
-Patch 6.3a.005
-Problem: ":checkpath!" does not use 'includeexpr'.
-Solution: Use a file name that was found directly. When a file was not
- found and the located name is empty, use the rest of the line.
-Files: src/search.c
-
-Patch 6.3a.006
-Problem: "yip" moves the cursor to the first yanked line, but not to the
- first column. Looks like not all text was yanked. (Jens Paulus)
-Solution: Move the cursor to the first column.
-Files: src/search.c
-
-Patch 6.3a.007
-Problem: 'cindent' recognizes "enum" but not "typedef enum".
-Solution: Skip over "typedef" before checking for "enum". (Helmut Stiegler)
- Also avoid that searching for this item goes too far back.
-Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
-
-Patch 6.3a.008 (extra)
-Problem: Windows 98: Some of the wide functions are not implemented,
- resulting in file I/O to fail. This depends on what Unicode
- support is installed.
-Solution: Handle the failure and fall back to non-wide functions.
-Files: src/os_win32.c
-
-Patch 6.3a.009
-Problem: Win32: Completion of filenames does not work properly when
- 'encoding' differs from the active code page.
-Solution: Use wide functions for expanding wildcards when appropriate.
-Files: src/misc1.c
-
-Patch 6.3a.010 (extra)
-Problem: Win32: Characters in the window title that do not appear in the
- active codepage are replaced by a question mark.
-Solution: Use DefWindowProcW() instead of DefWindowProc() when possible.
-Files: src/glbl_ime.cpp, src/globals.h, src/proto/gui_w16.pro,
- src/proto/gui_w32.pro, src/gui_w16.c, src/gui_w32.c, src/gui_w48.c
-
-Patch 6.3a.011
-Problem: Using the explorer plugin changes a local directory to the global
- directory.
-Solution: Don't use ":chdir" to restore the current directory. Make
- "expand('%:p')" remove "/../" and "/./" items from the path.
-Files: runtime/plugin/explorer.vim, src/eval.c, src/os_unix.c
-
-Patch 6.3a.012 (extra)
-Problem: On Windows 98 the installer doesn't work, don't even get the "I
- agree" button. The check for the path ending in "vim" makes the
- browse dialog hard to use. The default path when no previous Vim
- is installed is "c:\vim" instead of "c:\Program Files\Vim".
-Solution: Remove the background gradient command. Change the
- .onVerifyInstDir function to a leave function for the directory
- page. Don't let the install program default to c:\vim when no
- path could be found.
-Files: nsis/gvim.nsi, src/dosinst.c
-
-Patch 6.3a.013 (extra)
-Problem: Win32: Characters in the menu that are not in the active codepage
- are garbled.
-Solution: Convert menu strings from 'encoding' to the active codepage.
-Files: src/gui_w32.c, src/gui_w48.c
-
-Patch 6.3a.014
-Problem: Using multi-byte text and highlighting in a statusline causes gaps
- to appear. (Helmut Stiegler)
-Solution: Advance the column by text width instead of number of bytes. Add
- the vim_strnsize() function.
-Files: src/charset.c, src/proto/charset.pro, src/screen.c
-
-Patch 6.3a.015
-Problem: Using the "select all" menu item when 'insertmode' is set and
- clicking the mouse button doesn't return to Insert mode. The
- Buffers/Delete menu doesn't offer a choice to abandon a changed
- buffer. (Jens Paulus)
-Solution: Don't use CTRL-\ CTRL-N. Add ":confirm" for the Buffers menu
- items.
-Files: runtime/menu.vim
-
-Patch 6.3a.016
-Problem: After cancelling the ":confirm" dialog the error message and
- hit-enter prompt may not be displayed properly.
-Solution: Flush output after showing the dialog.
-Files: src/message.c
-
-Patch 6.3a.017
-Problem: servername() doesn't work when Vim was started with the "-X"
- argument or when the "exclude" in 'clipboard' matches the terminal
- name. (Robert Nowotniak)
-Solution: Force connecting to the X server when using client-server
- commands.
-Files: src/eval.c, src/globals.h, src/os_unix.c
-
-Patch 6.3a.018 (after 6.3a.017)
-Problem: Compiler warning for return value of make_connection().
-Solution: Use void return type.
-Files: src/eval.c
-
-Patch 6.3a.019 (extra)
-Problem: Win32: typing non-latin1 characters doesn't work.
-Solution: Invoke _OnChar() directly to avoid that the argument is truncated
- to a byte. Convert the UTF-16 character to bytes according to
- 'encoding' and ignore 'termencoding'. Same for _OnSysChar().
-Files: src/gui_w32.c, src/gui_w48.c
-
-Patch 6.3a.020 (extra)
-Problem: Missing support for AROS (AmigaOS reimplementation). Amiga GUI
- doesn't work.
-Solution: Add AROS support. (Adam Chodorowski)
- Fix Amiga GUI problems. (Georg Steger, Ali Akcaagac)
-Files: Makefile, src/Make_aros.mak, src/gui_amiga.c, src/gui_amiga.h,
- src/memfile.c, src/os_amiga.c, src/term.c
-
-Patch 6.3a.021 (after 6.3a.017)
-Problem: Can't compile with X11 but without GUI.
-Solution: Put use of "gui.in_use" inside an #ifdef.
-Files: src/eval.c
-
-Patch 6.3a.022
-Problem: When typing Tabs when 'softtabstop' is used and 'list' is set a
- tab is counted for two spaces.
-Solution: Use the "L" flag in 'cpoptions' to tell whether a tab is counted
- as two spaces or as 'tabstop'. (Antony Scriven)
-Files: runtime/doc/options.txt, src/edit.c
-
-Patch 6.3a.023
-Problem: Completion on the command line doesn't handle backslashes
- properly. Only the tail of matches is shown, even when not
- completing filenames.
-Solution: When turning the string into a pattern double backslashes. Don't
- omit the path when not expanding files or directories.
-Files: src/ex_getln.c
-
-Patch 6.3a.024
-Problem: The "save all" toolbar item fails for buffers that don't have a
- name. When using ":wa" or closing the Vim window and there are
- nameless buffers, browsing for a name may cause the name being
- given to the wrong buffer or not stored properly. ":browse" only
- worked for one file.
-Solution: Use ":confirm browse" for "save all".
- Pass buffer argument to setfname(). Restore "browse" flag and
- "forceit" after doing the work for one file.
-Files: runtime/menu.vim, src/buffer.c, src/ex_cmds.c, src/ex_cmds2.c,
- src/ex_docmd.c, src/ex_getln.c, src/fileio.c, src/memline.c,
- src/message.c, src/window.c, src/proto/buffer.pro,
- src/proto/ex_cmds2.pro, src/proto/memline.pro
-
-Patch 6.3a.025
-Problem: Setting 'virtualedit' moves the cursor. (Benji Fisher)
-Solution: Update the virtual column before using it.
-Files: src/option.c
-
-Patch 6.3a.026 (extra, after 6.3a.008)
-Problem: Editing files on Windows 98 doesn't work when 'encoding' is
- "utf-8" (Antoine Mechelynck)
- Warning for missing function prototype.
-Solution: For all wide functions check if it failed because it is not
- implemented. Use ANSI function declaration for char_to_string().
-Files: src/gui_w48.c, src/os_mswin.c, src/os_win32.c
-
-Patch 6.3a.027 (extra, after 6.3a.026)
-Problem: Compiler warning for function argument.
-Solution: Declare both char and WCHAR arrays.
-Files: src/gui_w48.c
-
-Patch 6.3a.028
-Problem: ":normal ." doesn't work inside a function, because redo is saved
- and restored. (Benji Fisher)
-Solution: Make a copy of the redo buffer when executing a function.
-Files: src/getchar.c
-
-Patch 6.3b.001 (extra)
-Problem: Bcc 5: The generated auto/pathdef can't be compiled.
-Solution: Fix the way quotes and backslashes are escaped.
-Files: src/Make_bc5.mak
-
-Patch 6.3b.002
-Problem: Win32: conversion during file write fails when a double-byte
- character is split over two writes.
-Solution: Fix the conversion retry without a trailing byte. (Taro Muraoka)
-Files: src/fileio.c
-
-Patch 6.3b.003 (extra)
-Problem: Win32: When compiling with Borland C 5.5 and 'encoding' is "utf-8"
- then Vim can't open files under MS-Windows 98. (Antoine J.
- Mechelynck)
-Solution: Don't use _wstat(), _wopen() and _wfopen() in this situation.
-Files: src/os_mswin.c, src/os_win32.c
-
-Patch 6.3b.004
-Problem: ":helpgrep" includes a trailing CR in the text line.
-Solution: Remove the CR.
-Files: src/quickfix.c
-
-Patch 6.3b.005
-Problem: ":echo &g:ai" results in the local option value. (Salman Halim)
-Solution: Pass the flags from find_option_end() to get_option_value().
-Files: src/eval.c
-
-Patch 6.3b.006
-Problem: When using "mswin.vim", CTRL-V in Insert mode leaves cursor before
- last pasted character. (Mathew Davis)
-Solution: Use the same Paste() function as in menu.vim.
-Files: runtime/mswin.vim
-
-Patch 6.3b.007
-Problem: Session file doesn't restore view on windows properly. (Robert
- Webb)
-Solution: Restore window sizes both before and after restoring the view, so
- that the view, cursor position and size are restored properly.
-Files: src/ex_docmd.c
-
-Patch 6.3b.008
-Problem: Using ":finally" in a user command doesn't always work. (Hari
- Krishna Dara)
-Solution: Don't assume that using getexline() means the command was typed.
-Files: src/ex_docmd.c
-
-Patch 6.3b.009 (extra)
-Problem: Win32: When the -P argument is not found in a window title, there
- is no error message.
-Solution: When the window can't be found give an error message and exit.
- Also use try/except to catch failing to open the MDI window.
- (Michael Wookey)
-Files: src/gui_w32.c
-
-Patch 6.3b.010
-Problem: Win32: Using the "-D" argument and expanding arguments may cause a
- hang, because the terminal isn't initialized yet. (Vince Negri)
-Solution: Don't go into debug mode before the terminal is initialized.
-Files: src/main.c
-
-Patch 6.3b.011
-Problem: Using CTRL-\ e while obtaining an expression aborts the command
- line. (Hari Krishna Dara)
-Solution: Insert the CTRL-\ e as typed.
-Files: src/ex_getln.c
-
-Patch 6.3b.012 (after 6.3b.010)
-Problem: Can't compile with tiny features. (Norbert Tretkowski)
-Solution: Add #ifdefs.
-Files: src/main.c
-
-Patch 6.3b.013
-Problem: Loading a session file results in editing the wrong file in the
- first window when this is not the file at the current position in
- the argument list. (Robert Webb)
-Solution: Check w_arg_idx_invalid to decide whether to edit a file.
-Files: src/ex_docmd.c
-
-Patch 6.3b.014
-Problem: ":runtime! foo*.vim" may using freed memory when a sourced script
- changes the value of 'runtimepath'.
-Solution: Make a copy of 'runtimepath' when looping over the matches.
-Files: src/ex_cmds2.c
-
-Patch 6.3b.015
-Problem: Get lalloc(0) error when using "p" in Visual mode while
- 'clipboard' contains "autoselect,unnamed". (Mark Wagonner)
-Solution: Avoid allocating zero bytes. Obtain the clipboard when necessary.
-Files: src/ops.c
-
-Patch 6.3b.016
-Problem: When 'virtualedit' is used "x" doesn't delete the last character
- of a line that has as many characters as 'columns'. (Yakov Lerner)
-Solution: When the cursor isn't moved let oneright() return FAIL.
-Files: src/edit.c
-
-Patch 6.3b.017
-Problem: Win32: "vim --remote-wait" doesn't exit when the server finished
- editing the file. (David Fishburn)
-Solution: In the rrhelper plugin change backslashes to forward slashes and
- escape special characters.
-Files: runtime/plugin/rrhelper.vim
-
-Patch 6.3b.018
-Problem: The list of help files in the "local additions" table doesn't
- recognize utf-8 encoding. (Yasuhiro Matsumoto)
-Solution: Recognize utf-8 characters.
-Files: src/ex_cmds.c
-
-Patch 6.3b.019
-Problem: When $VIMRUNTIME is not a full path name the "local additions"
- table lists all the help files.
-Solution: Use fullpathcmp() instead of fnamecmp() to compare the directory
- names.
-Files: src/ex_cmds.c
-
-Patch 6.3b.020
-Problem: When using CTRL-^ when entering a search string, the item in the
- statusline that indicates the keymap is not updated. (Ilya
- Dogolazky)
-Solution: Mark the statuslines for updating.
-Files: src/ex_getln.c
-
-Patch 6.3b.021
-Problem: The swapfile is not readable for others, the ATTENTION prompt does
- not show all info when someone else is editing the same file.
- (Marcel Svitalsky)
-Solution: Use the protection of original file for the swapfile and set it
- after creating the swapfile.
-Files: src/fileio.c
-
-Patch 6.3b.022
-Problem: Using "4v" to select four times the old Visual area may put the
- cursor beyond the end of the line. (Jens Paulus)
-Solution: Correct the cursor column.
-Files: src/normal.c
-
-Patch 6.3b.023
-Problem: When "3dip" starts in an empty line, white lines after the
- non-white lines are not deleted. (Jens Paulus)
-Solution: Include the white lines.
-Files: src/search.c
-
-Patch 6.3b.024
-Problem: "2daw" does not delete leading white space like "daw" does. (Jens
- Paulus)
-Solution: Include the white space when a count is used.
-Files: src/search.c
-
-Patch 6.3b.025
-Problem: Percentage in ruler isn't updated when a line is deleted. (Jens
- Paulus)
-Solution: Check for a change in line count when deciding to update the ruler.
-Files: src/screen.c, src/structs.h
-
-Patch 6.3b.026
-Problem: When selecting "abort" at the ATTENTION prompt for a file that is
- already being edited Vim crashes.
-Solution: Don't abort creating a new buffer when we really need it.
-Files: src/buffer.c, src/vim.h
-
-Patch 6.3b.027
-Problem: Win32: When enabling the menu in a maximized window, Vim uses more
- lines than what is room for. (Shizhu Pan)
-Solution: When deciding to call shell_resized(), also compare the text area
- size with Rows and Columns, not just with screen_Rows and
- screen_Columns.
-Files: src/gui.c
-
-Patch 6.3b.028
-Problem: When in diff mode, setting 'rightleft' causes a crash. (Eddine)
-Solution: Check for last column differently when 'rightleft' is set.
-Files: src/screen.c
-
-Patch 6.3b.029
-Problem: Win32: warning for uninitialized variable.
-Solution: Initialize to zero.
-Files: src/misc1.c
-
-Patch 6.3b.030
-Problem: After Visually selecting four characters, changing it to other
- text, Visually selecting and yanking two characters: "." changes
- four characters, another "." changes two characters. (Robert Webb)
-Solution: Don't store the size of the Visual area when redo is active.
-Files: src/normal.c
-
-==============================================================================
-VERSION 6.4 *version-6.4*
-
-This section is about improvements made between version 6.3 and 6.4.
-
-This is a bug-fix release. There are also a few new features. The major
-number of new items is in the runtime files and translations.
-
-The big MS-Windows version now uses:
- Ruby version 1.8.3
- Perl version 5.8.7
- Python version 2.4.2
-
-
-Changed *changed-6.4*
--------
-
-Removed runtime/tools/tcltags, Exuberant ctags does it better.
-
-
-Added *added-6.4*
------
-
-Alsaconf syntax file (Nikolai Weibull)
-Eruby syntax, indent, compiler and ftplugin file (Doug Kearns)
-Esterel syntax file (Maurizio Tranchero)
-Mathematica indent file (Steve Layland)
-Netrc syntax file (Nikolai Weibull)
-PHP compiler file (Doug Kearns)
-Pascal indent file (Neil Carter)
-Prescribe syntax file (Klaus Muth)
-Rubyunit compiler file (Doug Kearns)
-SMTPrc syntax file (Kornel Kielczewski)
-Sudoers syntax file (Nikolai Weibull)
-TPP syntax file (Gerfried Fuchs)
-VHDL ftplugin file (R. Shankar)
-Verilog-AMS syntax file (S. Myles Prather)
-
-Bulgarian keymap (Alberto Mardegan)
-Canadian keymap (Eric Joanis)
-
-Hungarian menu translations in UTF-8 (Kantra Gergely)
-Ukrainian menu translations (Bohdan Vlasyuk)
-
-Irish message translations (Kevin Patrick Scannell)
-
-Configure also checks for tclsh8.4.
-
-
-Fixed *fixed-6.4*
------
-
-"dFxd;" deleted the character under the cursor, "d;" didn't remember the
-exclusiveness of the motion.
-
-When using "set laststatus=2 cmdheight=2" in the .gvimrc you may only get one
-line for the cmdline. (Christian Robinson) Invoke command_height() after the
-GUI has started up.
-
-Gcc would warn "dereferencing type-punned pointer will break strict -aliasing
-rules". Avoid using typecasts for variable pointers.
-
-Gcc 3.x interprets the -MM argument differently. Change "-I /path" to
-"-isystem /path" for "make depend".
-
-
-Patch 6.3.001
-Problem: ":browse split" gives the file selection dialog twice. (Gordon
- Bazeley) Same problem for ":browse diffpatch".
-Solution: Reset cmdmod.browse before calling do_ecmd().
-Files: src/diff.c, src/ex_docmd.c
-
-Patch 6.3.002
-Problem: When using translated help files with non-ASCII latin1 characters
- in the first line the utf-8 detection is wrong.
-Solution: Properly detect utf-8 characters. When a mix of encodings is
- detected continue with the next language and avoid a "no matches"
- error because of "got_int" being set. Add the directory name to
- the error message for a duplicate tag.
-Files: src/ex_cmds.c
-
-Patch 6.3.003
-Problem: Crash when using a console dialog and the first choice does not
- have a default button. (Darin Ohashi)
-Solution: Allocate two more characters for the [] around the character for
- the default choice.
-Files: src/message.c
-
-Patch 6.3.004
-Problem: When searching for a long string (140 chars in a 80 column
- terminal) get three hit-enter prompts. (Robert Webb)
-Solution: Avoid the hit-enter prompt when giving the message for wrapping
- around the end of the buffer. Don't give that message again when
- the string was not found.
-Files: src/message.c, src/search.c
-
-Patch 6.3.005
-Problem: Crash when searching for a pattern with a character offset and
- starting in a closed fold. (Frank Butler)
-Solution: Check for the column to be past the end of the line. Also fix
- that a pattern with a character offset relative to the end isn't
- read back from the viminfo properly.
-Files: src/search.c
-
-Patch 6.3.006
-Problem: ":breakadd file *foo" prepends the current directory to the file
- pattern. (Hari Krishna Dara)
-Solution: Keep the pattern as-is.
-Files: src/ex_cmds2.c
-
-Patch 6.3.007
-Problem: When there is a buffer with 'buftype' set to "nofile" and using a
- ":cd" command, the swap file is not deleted when exiting.
-Solution: Use the full path of the swap file also for "nofile" buffers.
-Files: src/fileio.c
-
-Patch 6.3.008
-Problem: Compiling fails under OS/2.
-Solution: Include "e_screenmode" also for OS/2. (David Sanders)
-Files: src/globals.h
-
-Patch 6.3.009 (after 6.3.006)
-Problem: ":breakadd file /path/foo.vim" does not match when a symbolic link
- is involved. (Servatius Brandt)
-Solution: Do expand the pattern when it does not start with "*".
-Files: runtime/doc/repeat.txt, src/ex_cmds2.c
-
-Patch 6.3.010
-Problem: When writing to a named pipe there is an error for fsync()
- failing.
-Solution: Ignore the fsync() error for devices.
-Files: src/fileio.c
-
-Patch 6.3.011
-Problem: Crash when the completion function of a user-command uses a
- "normal :cmd" command. (Hari Krishna Dara)
-Solution: Save the command line when invoking the completion function.
-Files: src/ex_getln.c
-
-Patch 6.3.012
-Problem: Internal lalloc(0) error when using a complicated multi-line
- pattern in a substitute command. (Luc Hermitte)
-Solution: Avoid going past the end of a line.
-Files: src/ex_cmds.c
-
-Patch 6.3.013
-Problem: Crash when editing a command line and typing CTRL-R = to evaluate
- a function that uses "normal :cmd". (Hari Krishna Dara)
-Solution: Save and restore the command line when evaluating an expression
- for CTRL-R =.
-Files: src/ex_getln.c, src/ops.c, src/proto/ex_getln.pro,
- src/proto/ops.pro
-
-Patch 6.3.014
-Problem: When using Chinese or Taiwanese the default for 'helplang' is
- wrong. (Simon Liang)
-Solution: Use the part of the locale name after "zh_".
-Files: src/option.c
-
-Patch 6.3.015
-Problem: The string that winrestcmd() returns may end in garbage.
-Solution: NUL-terminate the string. (Walter Briscoe)
-Files: src/eval.c
-
-Patch 6.3.016
-Problem: The default value for 'define' has "\s" before '#'.
-Solution: Add a star after "\s". (Herculano de Lima Einloft Neto)
-Files: src/option.c
-
-Patch 6.3.017
-Problem: "8zz" may leave the cursor beyond the end of the line. (Niko
- Maatjes)
-Solution: Correct the cursor column after moving to another line.
-Files: src/normal.c
-
-Patch 6.3.018
-Problem: ":0argadd zero" added the argument after the first one, instead of
- before it. (Adri Verhoef)
-Solution: Accept a zero range for ":argadd".
-Files: src/ex_cmds.h
-
-Patch 6.3.019
-Problem: Crash in startup for debug version. (David Rennals)
-Solution: Move the call to nbdebug_wait() to after allocating NameBuff.
-Files: src/main.c
-
-Patch 6.3.020
-Problem: When 'encoding' is "utf-8" and 'delcombine' is set, "dw" does not
- delete a word but only a combining character of the first
- character, if there is one. (Raphael Finkel)
-Solution: Correctly check that one character is being deleted.
-Files: src/misc1.c
-
-Patch 6.3.021
-Problem: When the last character of a file name is a multi-byte character
- and the last byte is a path separator, the file cannot be edited.
-Solution: Check for the last byte to be part of a multi-byte character.
- (Taro Muraoka)
-Files: src/fileio.c
-
-Patch 6.3.022 (extra)
-Problem: Win32: When the last character of a file name is a multi-byte
- character and the last byte is a path separator, the file cannot
- be written. A trail byte that is a space makes that a file cannot
- be opened from the command line.
-Solution: Recognize double-byte characters when parsing the command line.
- In mch_stat() check for the last byte to be part of a multi-byte
- character. (Taro Muraoka)
-Files: src/gui_w48.c, src/os_mswin.c
-
-Patch 6.3.023
-Problem: When the "to" part of a mapping starts with its "from" part,
- abbreviations for the same characters is not possible. For
- example, when <Space> is mapped to something that starts with a
- space, typing <Space> does not expand abbreviations.
-Solution: Only disable expanding abbreviations when a mapping is not
- remapped, don't disable it when the RHS of a mapping starts with
- the LHS.
-Files: src/getchar.c, src/vim.h
-
-Patch 6.3.024
-Problem: In a few places a string in allocated memory is not terminated
- with a NUL.
-Solution: Add ga_append(NUL) in script_get(), gui_do_findrepl() and
- serverGetVimNames().
-Files: src/ex_getln.c, src/gui.c, src/if_xcmdsrv.c, src/os_mswin.c
-
-Patch 6.3.025 (extra)
-Problem: Missing NUL for list of server names.
-Solution: Add ga_append(NUL) in serverGetVimNames().
-Files: src/os_mswin.c
-
-Patch 6.3.026
-Problem: When ~/.vim/after/syntax/syncolor.vim contains a command that
- reloads the colors an endless loop and/or a crash may occur.
-Solution: Only free the old value of an option when it was originally
- allocated. Limit recursiveness of init_highlight() to 5 levels.
-Files: src/option.c, src/syntax.c
-
-Patch 6.3.027
-Problem: VMS: Writing a file may insert extra CR characters. Not all
- terminals are recognized correctly. Vt320 doesn't support colors.
- Environment variables are not expanded correctly.
-Solution: Use another method to write files. Add vt320 termcap codes for
- colors. (Zoltan Arpadffy)
-Files: src/fileio.c, src/misc1.c, src/os_unix.c, src/structs.h,
- src/term.c
-
-Patch 6.3.028
-Problem: When appending to a file the BOM marker may be written. (Alex
- Jakushev)
-Solution: Do not write the BOM marker when appending.
-Files: src/fileio.c
-
-Patch 6.3.029
-Problem: Crash when inserting a line break. (Walter Briscoe)
-Solution: In the syntax highlighting code, don't use an old state after a
- change was made, current_col may be past the end of the line.
-Files: src/syntax.c
-
-Patch 6.3.030
-Problem: GTK 2: Crash when sourcing a script that deletes the menus, sets
- 'encoding' to "utf-8" and loads the menus again. GTK error
- message when tooltip text is in a wrong encoding.
-Solution: Don't copy characters from the old screen to the new screen when
- switching 'encoding' to utf-8, they may be invalid. Only set the
- tooltip when it is valid utf-8.
-Files: src/gui_gtk.c, src/mbyte.c, src/proto/mbyte.pro, src/screen.c
-
-Patch 6.3.031
-Problem: When entering a mapping and pressing Tab halfway the command line
- isn't redrawn properly. (Adri Verhoef)
-Solution: Reposition the cursor after drawing over the "..." of the
- completion attempt.
-Files: src/ex_getln.c
-
-Patch 6.3.032
-Problem: Using Python 2.3 with threads doesn't work properly.
-Solution: Release the lock after initialization.
-Files: src/if_python.c
-
-Patch 6.3.033
-Problem: When a mapping ends in a Normal mode command of more than one
- character Vim doesn't return to Insert mode.
-Solution: Check that the mapping has ended after obtaining all characters of
- the Normal mode command.
-Files: src/normal.c
-
-Patch 6.3.034
-Problem: VMS: crash when using ":help".
-Solution: Avoid using "tags-??", some Open VMS systems can't handle the "?"
- wildcard. (Zoltan Arpadffy)
-Files: src/tag.c
-
-Patch 6.3.035 (extra)
-Problem: RISC OS: Compile errors.
-Solution: Change e_screnmode to e_screenmode. Change the way
- __riscosify_control is set. Improve the makefile. (Andy Wingate)
-Files: src/os_riscos.c, src/search.c, src/Make_ro.mak
-
-Patch 6.3.036
-Problem: ml_get errors when the whole file is a fold, switching
- 'foldmethod' and doing "zj". (Christian J. Robinson) Was not
- deleting the fold but creating a fold with zero lines.
-Solution: Delete the fold properly.
-Files: src/fold.c
-
-Patch 6.3.037 (after 6.3.032)
-Problem: Warning for unused variable.
-Solution: Change the #ifdefs for the saved thread stuff.
-Files: src/if_python.c
-
-Patch 6.3.038 (extra)
-Problem: Win32: When the "file changed" dialog pops up after a click that
- gives gvim focus and not moving the mouse after that, the effect
- of the click may occur when moving the mouse later. (Ken Clark)
- Happened because the release event was missed.
-Solution: Clear the s_button_pending variable when any input is received.
-Files: src/gui_w48.c
-
-Patch 6.3.039
-Problem: When 'number' is set and inserting lines just above the first
- displayed line (in another window on the same buffer), the line
- numbers are not updated. (Hitier Sylvain)
-Solution: When 'number' is set and lines are inserted/deleted redraw all
- lines below the change.
-Files: src/screen.c
-
-Patch 6.3.040
-Problem: Error handling does not always work properly and may cause a
- buffer to be marked as if it's viewed in a window while it isn't.
- Also when selecting "Abort" at the attention prompt.
-Solution: Add enter_cleanup() and leave_cleanup() functions to move
- saving/restoring things for error handling to one place.
- Clear a buffer read error when it's unloaded.
-Files: src/buffer.c, src/ex_docmd.c, src/ex_eval.c,
- src/proto/ex_eval.pro, src/structs.h, src/vim.h
-
-Patch 6.3.041 (extra)
-Problem: Win32: When the path to a file has Russian characters, ":cd %:p:h"
- doesn't work. (Valery Kondakoff)
-Solution: Use a wide function to change directory.
-Files: src/os_mswin.c
-
-Patch 6.3.042
-Problem: When there is a closed fold at the top of the window, CTRL-X
- CTRL-E in Insert mode reduces the size of the fold instead of
- scrolling the text up. (Gautam)
-Solution: Scroll over the closed fold.
-Files: src/move.c
-
-Patch 6.3.043
-Problem: 'hlsearch' highlighting sometimes disappears when inserting text
- in PHP code with syntax highlighting. (Marcel Svitalsky)
-Solution: Don't use pointers to remember where a match was found, use an
- index. The pointers may become invalid when searching in other
- lines.
-Files: src/screen.c
-
-Patch 6.3.044 (extra)
-Problem: Mac: When 'linespace' is non-zero the Insert mode cursor leaves
- pixels behind. (Richard Sandilands)
-Solution: Erase the character cell before drawing the text when needed.
-Files: src/gui_mac.c
-
-
-Patch 6.3.045
-Problem: Unusual characters in an option value may cause unexpected
- behavior, especially for a modeline. (Ciaran McCreesh)
-Solution: Don't allow setting termcap options or 'printdevice' in a
- modeline. Don't list options for "termcap" and "all" in a
- modeline. Don't allow unusual characters in 'filetype', 'syntax',
- 'backupext', 'keymap', 'patchmode' and 'langmenu'.
-Files: src/option.c, runtime/doc/options.txt
-
-Patch 6.3.046
-Problem: ":registers" doesn't show multi-byte characters properly.
- (Valery Kondakoff)
-Solution: Get the length of each character before displaying it.
-Files: src/ops.c
-
-Patch 6.3.047 (extra)
-Problem: Win32 with Borland C 5.5 on Windows XP: A new file is created with
- read-only attributes. (Tony Mechelynck)
-Solution: Don't use the _wopen() function for Borland.
-Files: src/os_win32.c
-
-Patch 6.3.048 (extra)
-Problem: Build problems with VMS on IA64.
-Solution: Add dependencies to the build file. (Zoltan Arpadffy)
-Files: src/Make_vms.mms
-
-Patch 6.3.049 (after 6.3.045)
-Problem: Compiler warning for "char" vs "char_u" mixup. (Zoltan Arpadffy)
-Solution: Add a typecast.
-Files: src/option.c
-
-Patch 6.3.050
-Problem: When SIGHUP is received while busy exiting, non-reentrant
- functions such as free() may cause a crash.
-Solution: Ignore SIGHUP when exiting because of an error. (Scott Anderson)
-Files: src/misc1.c, src/main.c
-
-Patch 6.3.051
-Problem: When 'wildmenu' is set and completed file names contain multi-byte
- characters Vim may crash.
-Solution: Reserve room for multi-byte characters. (Yasuhiro Matsumoto)
-Files: src/screen.c
-
-Patch 6.3.052 (extra)
-Problem: Windows 98: typed keys that are not ASCII may not work properly.
- For example with a Russian input method. (Jiri Jezdinsky)
-Solution: Assume that the characters arrive in the current codepage instead
- of UCS-2. Perform conversion based on that.
-Files: src/gui_w48.c
-
-Patch 6.3.053
-Problem: Win32: ":loadview" cannot find a file with non-ASCII characters.
- (Valerie Kondakoff)
-Solution: Use mch_open() instead of open() to open the file.
-Files: src/ex_cmds2.c
-
-Patch 6.3.054
-Problem: When 'insertmode' is set <C-L>4ixxx<C-L> hangs Vim. (Jens Paulus)
- Vim is actually still working but redraw is disabled.
-Solution: When stopping Insert mode with CTRL-L don't put an Esc in the redo
- buffer but a CTRL-L.
-Files: src/edit.c
-
-Patch 6.3.055 (after 6.3.013)
-Problem: Can't use getcmdline(), getcmdpos() or setcmdpos() with <C-R>=
- when editing a command line. Using <C-\>e may crash Vim. (Peter
- Winters)
-Solution: When moving ccline out of the way for recursive use, make it
- available to the functions that need it. Also save and restore
- ccline when calling get_expr_line(). Make ccline.cmdbuf NULL at
- the end of getcmdline().
-Files: src/ex_getln.c
-
-Patch 6.3.056
-Problem: The last characters of a multi-byte file name may not be displayed
- in the window title.
-Solution: Avoid to remove a multi-byte character where the last byte looks
- like a path separator character. (Yasuhiro Matsumoto)
-Files: src/buffer.c, src/ex_getln.c
-
-Patch 6.3.057
-Problem: When filtering lines folds are not updated. (Carl Osterwisch)
-Solution: Update folds for filtered lines.
-Files: src/ex_cmds.c
-
-Patch 6.3.058
-Problem: When 'foldcolumn' is equal to the window width and 'wrap' is on
- Vim may crash. Disabling the vertical split feature breaks
- compiling. (Peter Winters)
-Solution: Check for zero room for wrapped text. Make compiling without
- vertical splits possible.
-Files: src/move.c, src/quickfix.c, src/screen.c, src/netbeans.c
-
-Patch 6.3.059
-Problem: Crash when expanding an ":edit" command containing several spaces
- with the shell. (Brian Hirt)
-Solution: Allocate enough space for the quotes.
-Files: src/os_unix.c
-
-Patch 6.3.060
-Problem: Using CTRL-R CTRL-O in Insert mode with an invalid register name
- still causes something to be inserted.
-Solution: Check the register name for being valid.
-Files: src/edit.c
-
-Patch 6.3.061
-Problem: When editing a utf-8 file in an utf-8 xterm and there is a
- multi-byte character in the last column, displaying is messed up.
- (Joël Rio)
-Solution: Check for a multi-byte character, not a multi-column character.
-Files: src/screen.c
-
-Patch 6.3.062
-Problem: ":normal! gQ" hangs.
-Solution: Quit getcmdline() and do_exmode() when out of typeahead.
-Files: src/ex_getln.c, src/ex_docmd.c
-
-Patch 6.3.063
-Problem: When a CursorHold autocommand changes to another window
- (temporarily) 'mousefocus' stops working.
-Solution: Call gui_mouse_correct() after triggering CursorHold.
-Files: src/gui.c
-
-Patch 6.3.064
-Problem: line2byte(line("$") + 1) sometimes returns the wrong number.
- (Charles Campbell)
-Solution: Flush the cached line before counting the bytes.
-Files: src/memline.c
-
-Patch 6.3.065
-Problem: The euro digraph doesn't always work.
-Solution: Add an "e=" digraph for Unicode euro character and adjust the
- help files.
-Files: src/digraph.c, runtime/doc/digraph.txt
-
-Patch 6.3.066
-Problem: Backup file may get wrong permissions.
-Solution: Use permissions of original file for backup file in more places.
-Files: src/fileio.c
-
-Patch 6.3.067 (after 6.3.066)
-Problem: Newly created file gets execute permission.
-Solution: Check for "perm" to be negative before using it.
-Files: src/fileio.c
-
-Patch 6.3.068
-Problem: When editing a compressed file xxx.gz which is a symbolic link to
- the actual file a ":write" renames the link.
-Solution: Resolve the link, so that the actual file is renamed and
- compressed.
-Files: runtime/plugin/gzip.vim
-
-Patch 6.3.069
-Problem: When converting text with illegal characters Vim may crash.
-Solution: Avoid that too much is subtracted from the length. (Da Woon Jung)
-Files: src/mbyte.c
-
-Patch 6.3.070
-Problem: After ":set number linebreak wrap" and a vertical split, moving
- the vertical separator far left will crash Vim. (Georg Dahn)
-Solution: Avoid dividing by zero.
-Files: src/charset.c
-
-Patch 6.3.071
-Problem: The message for CTRL-X mode is still displayed after an error for
- 'thesaurus' or 'dictionary' being empty.
-Solution: Clear "edit_submode".
-Files: src/edit.c
-
-Patch 6.3.072
-Problem: Crash in giving substitute message when language is Chinese and
- encoding is utf-8. (Yongwei)
-Solution: Make the msg_buf size larger when using multi-byte.
-Files: src/vim.h
-
-Patch 6.3.073
-Problem: Win32 GUI: When the Vim window is partly above or below the
- screen, scrolling causes display errors when the taskbar is not on
- that side.
-Solution: Use the SW_INVALIDATE flag when the Vim window is partly below or
- above the screen.
-Files: src/gui_w48.c
-
-Patch 6.3.074
-Problem: When mswin.vim is used and 'insertmode' is set, typing text in
- Select mode and then using CTRL-V results in <SNR>99_Pastegi.
- (Georg Dahn)
-Solution: When restart_edit is set use "d" instead of "c" to remove the
- selected text to avoid calling edit() twice.
-Files: src/normal.c
-
-Patch 6.3.075
-Problem: After unloading another buffer, syntax highlighting in the current
- buffer may be wrong when it uses "containedin". (Eric Arnold)
-Solution: Use "buf" instead of "curbuf" in syntax_clear().
-Files: src/syntax.c
-
-Patch 6.3.076
-Problem: Crash when using cscope and there is a parse error (e.g., line too
- long). (Alexey I. Froloff)
-Solution: Pass the actual number of matches to cs_manage_matches() and
- correctly handle the error situation.
-Files: src/if_cscope.c
-
-Patch 6.3.077 (extra)
-Problem: VMS: First character input after ESC was not recognized.
-Solution: Added TRM$M_TM_TIMED in vms_read(). (Zoltan Arpadffy)
-Files: src/os_vms.c
-
-Patch 6.3.078 (extra, after 6.3.077)
-Problem: VMS: Performance issue after patch 6.3.077
-Solution: Add a timeout in the itemlist. (Zoltan Arpadffy)
-Files: src/os_vms.c
-
-Patch 6.3.079
-Problem: Crash when executing a command in the command line window while
- syntax highlighting is enabled. (Pero Brbora)
-Solution: Don't use a pointer to a buffer that has been deleted.
-Files: src/syntax.c
-
-Patch 6.3.080 (extra)
-Problem: Win32: With 'encoding' set to utf-8 while the current codepage is
- Chinese editing a file with some specific characters in the name
- fails.
-Solution: Use _wfullpath() instead of _fullpath() when necessary.
-Files: src/os_mswin.c
-
-Patch 6.3.081
-Problem: Unix: glob() may execute a shell command when it's not wanted.
- (Georgi Guninski)
-Solution: Verify the sandbox flag is not set.
-Files: src/os_unix.c
-
-Patch 6.3.082 (after 6.3.081)
-Problem: Unix: expand() may execute a shell command when it's not wanted.
- (Georgi Guninski)
-Solution: A more generic solution than 6.3.081.
-Files: src/os_unix.c
-
-Patch 6.3.083
-Problem: VMS: The vt320 termcap entry is incomplete.
-Solution: Add missing function keys. (Zoltan Arpadffy)
-Files: src/term.c
-
-Patch 6.3.084 (extra)
-Problem: Cygwin: compiling with DEBUG doesn't work. Perl path was ignored.
- Failure when $(OUTDIR) already exists. "po" makefile is missing.
-Solution: Use changes tested in Vim 7. (Tony Mechelynck)
-Files: src/Make_cyg.mak, src/po/Make_cyg.mak
-
-Patch 6.3.085
-Problem: Crash in syntax highlighting code. (Marc Espie)
-Solution: Prevent current_col going past the end of the line.
-Files: src/syntax.c
-
-Patch 6.3.086 (extra)
-Problem: Can't produce message translation file with msgfmt that checks
- printf strings.
-Solution: Fix the Russian translation.
-Files: src/po/ru.po, src/po/ru.cp1251.po
-
-Patch 6.3.087
-Problem: MS-DOS: Crash. (Jason Hood)
-Solution: Don't call fname_case() with a NULL pointer.
-Files: src/ex_cmds.c
-
-Patch 6.3.088
-Problem: Editing ".in" causes error E218. (Stefan Karlsson)
-Solution: Require some characters before ".in". Same for ".orig" and others.
-Files: runtime/filetype.vim
-
-Patch 6.3.089
-Problem: A session file doesn't work when created while the current
- directory contains a space or the directory of the session files
- contains a space. (Paolo Giarrusso)
-Solution: Escape spaces with a backslash.
-Files: src/ex_docmd.c
-
-Patch 6.3.090
-Problem: A very big value for 'columns' or 'lines' may cause a crash.
-Solution: Limit the values to 10000 and 1000.
-Files: src/option.c
-
-Patch 6.4a.001
-Problem: The Unix Makefile contained too many dependencies and a few
- uncommented lines.
-Solution: Run "make depend" with manual changes to avoid a gcc
- incompatibility. Comment a few lines.
-Files: src/Makefile
-
-Patch 6.4b.001
-Problem: Vim reports "Vim 6.4a" in the ":version" output.
-Solution: Change "a" to "b". (Tony Mechelynck)
-Files: src/version.h
-
-Patch 6.4b.002
-Problem: In Insert mode, pasting a multi-byte character after the end of
- the line leaves the cursor just before that character.
-Solution: Make sure "gP" leaves the cursor in the right place when
- 'virtualedit' is set.
-Files: src/ops.c
-
-Patch 6.4b.003 (after 6.4b.002)
-Problem: The problem still exists when 'encoding' is set to "cp936".
-Solution: Fix the problem in getvvcol(), compute the coladd field correctly.
-Files: src/charset.c, src/ops.c
-
-Patch 6.4b.004
-Problem: Selecting a {} block with "viB" includes the '}' when there is an
- empty line before it.
-Solution: Don't advance the cursor to include a line break when it's already
- at the line break.
-Files: src/search.c
-
-
- vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
deleted file mode 100644
index 1bff5b5da9..0000000000
--- a/runtime/doc/version7.txt
+++ /dev/null
@@ -1,18311 +0,0 @@
-*version7.txt* For Vim version 7.4. Last change: 2013 Nov 18
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
-
- *vim7* *version-7.0* *version7.0*
-Welcome to Vim 7! A large number of features has been added. This file
-mentions all the new items, changes to existing features and bug fixes
-since Vim 6.x. Use this command to see the version you are using: >
- :version
-
-See |vi_diff.txt| for an overview of differences between Vi and Vim 7.0.
-See |version4.txt| for differences between Vim 3.x and Vim 4.x.
-See |version5.txt| for differences between Vim 4.x and Vim 5.x.
-See |version6.txt| for differences between Vim 5.x and Vim 6.x.
-
-INCOMPATIBLE CHANGES |incompatible-7|
-
-NEW FEATURES |new-7|
-
-Vim script enhancements |new-vim-script|
-Spell checking |new-spell|
-Omni completion |new-omni-completion|
-MzScheme interface |new-MzScheme|
-Printing multi-byte text |new-print-multi-byte|
-Tab pages |new-tab-pages|
-Undo branches |new-undo-branches|
-Extended Unicode support |new-more-unicode|
-More highlighting |new-more-highlighting|
-Translated manual pages |new-manpage-trans|
-Internal grep |new-vimgrep|
-Scroll back in messages |new-scroll-back|
-Cursor past end of the line |new-onemore|
-POSIX compatibility |new-posix|
-Debugger support |new-debug-support|
-Remote file explorer |new-netrw-explore|
-Define an operator |new-define-operator|
-Mapping to an expression |new-map-expression|
-Visual and Select mode mappings |new-map-select|
-Location list |new-location-list|
-Various new items |new-items-7|
-
-IMPROVEMENTS |improvements-7|
-
-COMPILE TIME CHANGES |compile-changes-7|
-
-BUG FIXES |bug-fixes-7|
-
-VERSION 7.1 |version-7.1|
-Changed |changed-7.1|
-Added |added-7.1|
-Fixed |fixed-7.1|
-
-VERSION 7.2 |version-7.2|
-Changed |changed-7.2|
-Added |added-7.2|
-Fixed |fixed-7.2|
-
-VERSION 7.3 |version-7.3|
-
-Persistent undo |new-persistent-undo|
-More encryption |new-more-encryption|
-Conceal text |new-conceal|
-Lua interface |new-lua|
-Python3 interface |new-python3|
-
-Changed |changed-7.3|
-Added |added-7.3|
-Fixed |fixed-7.3|
-
-VERSION 7.4 |version-7.4|
-New regexp engine |new-regexp-engine|
-Better Python interface |better-python-interface|
-Changed |changed-7.4|
-Added |added-7.4|
-Fixed |fixed-7.4|
-
-
-==============================================================================
-INCOMPATIBLE CHANGES *incompatible-7*
-
-These changes are incompatible with previous releases. Check this list if you
-run into a problem when upgrading from Vim 6.x to 7.0.
-
-A ":write file" command no longer resets the 'modified' flag of the buffer,
-unless the '+' flag is in 'cpoptions' |cpo-+|. This was illogical, since the
-buffer is still modified compared to the original file. And when undoing
-all changes the file would actually be marked modified. It does mean that
-":quit" fails now.
-
-":helpgrep" now uses a help window to display a match.
-
-In an argument list double quotes could be used to include spaces in a file
-name. This caused a difference between ":edit" and ":next" for escaping
-double quotes and it is incompatible with some versions of Vi.
- Command Vim 6.x file name Vim 7.x file name ~
- :edit foo\"888 foo"888 foo"888
- :next foo\"888 foo888 foo"888
- :next a\"b c\"d ab cd a"b and c"d
-
-In a |literal-string| a single quote can be doubled to get one.
-":echo 'a''b'" would result in "a b", but now that two quotes stand for one it
-results in "a'b".
-
-When overwriting a file with ":w! fname" there was no warning for when "fname"
-was being edited by another Vim. Vim now gives an error message |E768|.
-
-The support for Mac OS 9 has been removed.
-
-Files ending in .tex now have 'filetype' set to "context", "plaintex", or
-"tex". |ft-tex-plugin|
-
-
-Minor incompatibilities:
-
-For filetype detection: For many types, use */.dir/filename instead of
-~/.dir/filename, so that it also works for other user's files.
-
-For quite a few filetypes the indent settings have been moved from the
-filetype plugin to the indent plugin. If you used: >
- :filetype plugin on
-Then some indent settings may be missing. You need to use: >
- :filetype plugin indent on
-
-":0verbose" now sets 'verbose' to zero instead of one.
-
-Removed the old and incomplete "VimBuddy" code.
-
-Buffers without a name report "No Name" instead of "No File". It was
-confusing for buffers with a name and 'buftype' set to "nofile".
-
-When ":file xxx" is used in a buffer without a name, the alternate file name
-isn't set. This avoids creating buffers without a name, they are not useful.
-
-The "2html.vim" script now converts closed folds to HTML. This means the HTML
-looks like it's displayed, with the same folds open and closed. Use "zR", or
-"let html_ignore_folding=1", if no folds should appear in the HTML. (partly by
-Carl Osterwisch)
-Diff mode is now also converted to HTML as it is displayed.
-
-Win32: The effect of the <F10> key depended on 'winaltkeys'. Now it depends
-on whether <F10> has been mapped or not. This allows mapping <F10> without
-changing 'winaltkeys'.
-
-When 'octal' is in 'nrformats' and using CTRL-A on "08" it became "018", which
-is illogical. Now it becomes "9". The leading zero(s) is(are) removed to
-avoid the number becoming octal after incrementing "009" to "010".
-
-When 'encoding' is set to a Unicode encoding, the value for 'fileencodings'
-now includes "default" before "latin1". This means that for files with 8-bit
-encodings the default is to use the encoding specified by the environment, if
-possible. Previously latin1 would always be used, which is wrong in a
-non-latin1 environment, such as Russian.
-
-Previously Vim would exit when there are two windows, both of them displaying
-a help file, and using ":quit". Now only the window is closed.
-
-"-w {scriptout}" only works when {scriptout} doesn't start with a digit.
-Otherwise it's used to set the 'window' option.
-
-Previously <Home> and <xHome> could be mapped separately. This had the
-disadvantage that all mappings (with modifiers) had to be duplicated, since
-you can't be sure what the keyboard generates. Now all <xHome> are internally
-translated to <Home>, both for the keys and for mappings. Also for <xEnd>,
-<xF1>, etc.
-
-":put" now leaves the cursor on the last inserted line.
-
-When a .gvimrc file exists then 'compatible' is off, just like when a ".vimrc"
-file exists.
-
-When making a string upper-case with "vlllU" or similar then the German sharp
-s is replaced with "SS". This does not happen with "~" to avoid backwards
-compatibility problems and because "SS" can't be changed back to a sharp s.
-
-"gd" previously found the very first occurrence of a variable in a function,
-that could be the function argument without type. Now it finds the position
-where the type is given.
-
-The line continuation in functions was not taken into account, line numbers in
-errors were logical lines, not lines in the sourced file. That made it
-difficult to locate errors. Now the line number in the sourced file is
-reported, relative to the function start. This also means that line numbers
-for ":breakadd func" are different.
-
-When defining a user command with |:command| the special items could be
-abbreviated. This caused unexpected behavior, such as <li> being recognized
-as <line1>. The items can no longer be abbreviated.
-
-When executing a FileChangedRO autocommand it is no longer allowed to switch
-to another buffer or edit another file. This is to prevent crashes (the event
-is triggered deep down in the code where changing buffers is not anticipated).
-It is still possible to reload the buffer.
-
-At the |more-prompt| and the |hit-enter-prompt|, when the 'more' option is
-set, the 'k', 'u', 'g' and 'b' keys are now used to scroll back to previous
-messages. Thus they are no longer used as typeahead.
-
-==============================================================================
-NEW FEATURES *new-7*
-
-Vim script enhancements *new-vim-script*
------------------------
-
-In Vim scripts the following types have been added:
-
- |List| ordered list of items
- |Dictionary| associative array of items
- |Funcref| reference to a function
-
-Many functions and commands have been added to support the new types.
-
-The |string()| function can be used to get a string representation of a
-variable. Works for Numbers, Strings and composites of them. Then |eval()|
-can be used to turn the string back into the variable value.
-
-The |:let| command can now use "+=", "-=" and ".=": >
- :let var += expr " works like :let var = var + expr
- :let var -= expr " works like :let var = var - expr
- :let var .= string " works like :let var = var . string
-
-With the |:profile| command you can find out where your function or script
-is wasting time.
-
-In the Python interface vim.eval() also handles Dictionaries and Lists.
-|python-eval| (G. Sumner Hayes)
-
-The |getscript| plugin was added as a convenient way to update scripts from
-www.vim.org automatically. (Charles Campbell)
-
-The |vimball| plugin was added as a convenient way to distribute a set of
-files for a plugin (plugin file, autoload script, documentation). (Charles
-Campbell)
-
-
-Spell checking *new-spell*
---------------
-
-Spell checking has been integrated in Vim. There were a few implementations
-with scripts, but they were slow and/or required an external program.
-
-The 'spell' option is used to switch spell checking on or off
-The 'spelllang' option is used to specify the accepted language(s)
-The 'spellfile' option specifies where new words are added
-The 'spellsuggest' option specifies the methods used for making suggestions
-
-The |]s| and |[s| commands can be used to move to the next or previous error
-The |zg| and |zw| commands can be used to add good and wrong words
-The |z=| command can be used to list suggestions and correct the word
-The |:mkspell| command is used to generate a Vim spell file from word lists
-
-The "undercurl" highlighting attribute was added to nicely point out spelling
-mistakes in the GUI (based on patch from Marcin Dalecki).
-The "guisp" color can be used to give it a color different from foreground and
-background.
-The number of possible different highlight attributes was raised from about
-220 to over 30000. This allows for the attributes of spelling to be combined
-with syntax highlighting attributes. This is also used for syntax
-highlighting and marking the Visual area.
-
-Much more info here: |spell|.
-
-
-Omni completion *new-omni-completion*
----------------
-
-This could also be called "intellisense", but that is a trademark. It is a
-smart kind of completion. The text in front of the cursor is inspected to
-figure out what could be following. This may suggest struct and class
-members, system functions, etc.
-
-Use CTRL-X CTRL-O in Insert mode to start the completion. |i_CTRL-X_CTRL-O|
-
-The 'omnifunc' option is set by filetype plugins to define the function that
-figures out the completion.
-
-Currently supported languages:
- C |ft-c-omni|
- (X)HTML with CSS |ft-html-omni|
- JavaScript |ft-javascript-omni|
- PHP |ft-php-omni|
- Python
- Ruby |ft-ruby-omni|
- SQL |ft-sql-omni|
- XML |ft-xml-omni|
- any language with syntax highlighting |ft-syntax-omni|
-
-You can add your own omni completion scripts.
-
-When the 'completeopt' option contains "menu" then matches for Insert mode
-completion are displayed in a (rather primitive) popup menu.
-
-
-MzScheme interface *new-MzScheme*
-------------------
-
-The MzScheme interpreter is supported. |MzScheme|
-
-The |:mzscheme| command can be used to execute MzScheme commands
-The |:mzfile| command can be used to execute an MzScheme script file
-
-This depends on Vim being compiled with the |+mzscheme| feature.
-
-
-Printing multi-byte text *new-print-multi-byte*
-------------------------
-
-The |:hardcopy| command now supports printing multi-byte characters when using
-PostScript.
-
-The 'printmbcharset' and 'printmbfont' options are used for this.
-Also see |postscript-cjk-printing|. (Mike Williams)
-
-
-Tab pages *new-tab-pages*
----------
-
-A tab page is a page with one or more windows with a label (aka tab) at the top.
-By clicking on the label you can quickly switch between the tab pages. And
-with the keyboard, using the |gt| (Goto Tab) command. This is a convenient
-way to work with many windows.
-
-To start Vim with each file argument in a separate tab page use the |-p|
-argument. The maximum number of pages can be set with 'tabpagemax'.
-
-The line with tab labels is either made with plain text and highlighting or
-with a GUI mechanism. The GUI labels look better but are only available on a
-few systems. The line can be customized with 'tabline', 'guitablabel' and
-'guitabtooltip'. Whether it is displayed is set with 'showtabline'. Whether
-to use the GUI labels is set with the "e" flag in 'guioptions'.
-
-The |:tab| command modifier can be used to have most commands that open a new
-window open a new tab page instead.
-
-The |--remote-tab| argument can be used to edit a file in a new tab page in an
-already running Vim server.
-
-Variables starting with "t:" are local to a tab page.
-
-More info here: |tabpage|
-Most of the GUI stuff was implemented by Yegappan Lakshmanan.
-
-
-Undo branches *new-undo-branches*
--------------
-
-Previously there was only one line of undo-redo. If, after undoing a number
-of changes, a new change was made all the undone changes were lost. This
-could lead to accidentally losing work.
-
-Vim now makes an undo branch in this situation. Thus you can go back to the
-text after any change, even if they were undone. So long as you do not run
-into 'undolevels', when undo information is freed up to limit the memory used.
-
-To be able to navigate the undo branches each change is numbered sequentially.
-The commands |g-| and |:earlier| go back in time, to older changes. The
-commands |g+| and |:later| go forward in time, to newer changes.
-
-The changes are also timestamped. Use ":earlier 10m" to go to the text as it
-was about ten minutes earlier.
-
-The |:undolist| command can be used to get an idea of which undo branches
-exist. The |:undo| command now takes an argument to directly jump to a
-specific position in this list. The |changenr()| function can be used to
-obtain the change number.
-
-There is no graphical display of the tree with changes, navigation can be
-quite confusing.
-
-
-Extended Unicode support *new-more-unicode*
-------------------------
-
-Previously only two combining characters were displayed. The limit is now
-raised to 6. This can be set with the 'maxcombine' option. The default is
-still 2.
-
-|ga| now shows all combining characters, not just the first two.
-
-Previously only 16 bit Unicode characters were supported for displaying. Now
-the full 32 bit character set can be used. Unless manually disabled at
-compile time to save a bit of memory.
-
-For pattern matching it is now possible to search for individual composing
-characters. |patterns-composing|
-
-The |8g8| command searches for an illegal UTF-8 byte sequence.
-
-
-More highlighting *new-more-highlighting*
------------------
-
-Highlighting matching parens:
-
-When moving the cursor through the text and it is on a paren, then the
-matching paren can be highlighted. This uses the new |CursorMoved|
-autocommand event.
-
-This means some commands are executed every time you move the cursor. If this
-slows you down too much switch it off with: >
- :NoMatchParen
-
-See |matchparen| for more information.
-
-The plugin uses the |:match| command. It now supports three match patterns.
-The plugin uses the third one. The first one is for the user and the second
-one can be used by another plugin.
-
-Highlighting the cursor line and column:
-
-The 'cursorline' and 'cursorcolumn' options have been added. These highlight
-the screen line and screen column of the cursor. This makes the cursor
-position easier to spot. 'cursorcolumn' is also useful to align text. This
-may make screen updating quite slow. The CursorColumn and CursorLine
-highlight groups allow changing the colors used. |hl-CursorColumn|
-|hl-CursorLine|
-
-The number of possible different highlight attributes was raised from about
-220 to over 30000. This allows for the attributes of spelling to be combined
-with syntax highlighting attributes. This is also used for syntax
-highlighting, marking the Visual area, CursorColumn, etc.
-
-
-Translated manual pages *new-manpage-trans*
------------------------
-
-The manual page of Vim and associated programs is now also available in
-several other languages.
-
-French - translated by David Blanchet
-Italian - translated by Antonio Colombo
-Russian - translated by Vassily Ragosin
-Polish - translated by Mikolaj Machowski
-
-The Unix Makefile installs the Italian manual pages in .../man/it/man1/,
-.../man/it.ISO8859-1/man1/ and .../man/it.UTF-8/man1/. There appears to be no
-standard for what encoding goes in the "it" directory, the 8-bit encoded file
-is used there as a best guess.
-Other languages are installed in similar places.
-The translated pages are not automatically installed when Vim was configured
-with "--disable-nls", but "make install-languages install-tool-languages" will
-do it anyway.
-
-
-Internal grep *new-vimgrep*
--------------
-
-The ":vimgrep" command can be used to search for a pattern in a list of files.
-This is like the ":grep" command, but no external program is used. Besides
-better portability, handling of different file encodings and using multi-line
-patterns, this also allows grepping in compressed and remote files.
-|:vimgrep|.
-
-If you want to use the search results in a script you can use the
-|getqflist()| function.
-
-To grep files in various directories the "**" pattern can be used. It expands
-into an arbitrary depth of directories. "**" can be used in all places where
-file names are expanded, thus also with |:next| and |:args|.
-
-
-Scroll back in messages *new-scroll-back*
------------------------
-
-When displaying messages, at the |more-prompt| and the |hit-enter-prompt|, The
-'k', 'u', 'g' and 'b' keys can be used to scroll back to previous messages.
-This is especially useful for commands such as ":syntax", ":autocommand" and
-":highlight". This is implemented in a generic way thus it works for all
-commands and highlighting is kept. Only works when the 'more' option is set.
-Previously it only partly worked for ":clist".
-
-The |g<| command can be used to see the last page of messages after you have
-hit <Enter> at the |hit-enter-prompt|. Then you can scroll further back.
-
-
-Cursor past end of the line *new-onemore*
----------------------------
-
-When the 'virtualedit' option contains "onemore" the cursor can move just past
-the end of the line. As if it's on top of the line break.
-
-This makes some commands more consistent. Previously the cursor was always
-past the end of the line if the line was empty. But it is far from Vi
-compatible. It may also break some plugins or Vim scripts. Use with care!
-
-The patch was provided by Mattias Flodin.
-
-
-POSIX compatibility *new-posix*
--------------------
-
-The POSIX test suite was used to verify POSIX compatibility. A number of
-problems have been fixed to make Vim more POSIX compatible. Some of them
-conflict with traditional Vi or expected behavior. The $VIM_POSIX environment
-variable can be set to get POSIX compatibility. See |posix|.
-
-Items that were fixed for both Vi and POSIX compatibility:
-- repeating "R" with a count only overwrites text once; added the 'X' flag to
- 'cpoptions' |cpo-X|
-- a vertical movement command that moves to a non-existing line fails; added
- the '-' flag to 'cpoptions' |cpo--|
-- when preserving a file and doing ":q!" the file can be recovered; added the
- '&' flag to 'cpoptions' |cpo-&|
-- The 'window' option is partly implemented. It specifies how much CTRL-F and
- CTRL-B scroll when there is one window. The "-w {number}" argument is now
- accepted. "-w {scriptout}" only works when {scriptout} doesn't start with a
- digit.
-- Allow "-c{command}" argument, no space between "-c" and {command}.
-- When writing a file with ":w!" don't reset 'readonly' when 'Z' is present in
- 'cpoptions'.
-- Allow 'l' and '#' flags for ":list", ":print" and ":number".
-- Added the '.' flag to 'cpoptions': ":cd" fails when the buffer is modified.
-- In Ex mode with an empty buffer ":read file" doesn't keep an empty line
- above or below the new lines.
-- Remove a backslash before a NL for the ":global" command.
-- When ":append", ":insert" or ":change" is used with ":global", get the
- inserted lines from the command. Can use backslash-NL to separate lines.
-- Can use ":global /pat/ visual" to execute Normal mode commands at each
- matched line. Use "Q" to continue and go to the next line.
-- The |:open| command has been partially implemented. It stops Ex mode, but
- redraws the whole screen, not just one line as open mode is supposed to do.
-- Support using a pipe to read the output from and write input to an external
- command. Added the 'shelltemp' option and has("filterpipe").
-- In ex silent mode the ":set" command output is displayed.
-- The ":@@" and ":**" give an error message when no register was used before.
-- The search pattern "[]-`]" matches ']', '^', '_' and '`'.
-- Autoindent for ":insert" is using the line below the insert.
-- Autoindent for ":change" is using the first changed line.
-- Editing Ex command lines is not done in cooked mode, because CTRL-D and
- CTRL-T cannot be handled then.
-- In Ex mode, "1,3" prints three lines. "%" prints all lines.
-- In Ex mode "undo" would undo all changes since Ex mode was started.
-- Implemented the 'prompt' option.
-
-
-Debugger support *new-debug-support*
-----------------
-
-The 'balloonexpr' option has been added. This is a generic way to implement
-balloon functionality. You can use it to show info for the word under the
-mouse pointer.
-
-
-Remote file explorer *new-netrw-explore*
---------------------
-
-The netrw plugin now also supports viewing a directory, when "scp://" is used.
-Deleting and renaming files is possible.
-
-To avoid duplicating a lot of code, the previous file explorer plugin has been
-integrated in the netrw plugin. This means browsing local and remote files
-works the same way.
-
-":browse edit" and ":browse split" use the netrw plugin when it's available
-and a GUI dialog is not possible.
-
-The netrw plugin is maintained by Charles Campbell.
-
-
-Define an operator *new-define-operator*
-------------------
-
-Previously it was not possible to define your own operator; a command that is
-followed by a {motion}. Vim 7 introduces the 'operatorfunc' option and the
-|g@| operator. This makes it possible to define a mapping that works like an
-operator. The actual work is then done by a function, which is invoked
-through the |g@| operator.
-
-See |:map-operator| for the explanation and an example.
-
-
-Mapping to an expression *new-map-expression*
-------------------------
-
-The {rhs} argument of a mapping can be an expression. That means the
-resulting characters can depend on the context. Example: >
- :inoremap <expr> . InsertDot()
-Here the dot will be mapped to whatever InsertDot() returns.
-
-This also works for abbreviations. See |:map-<expr>| for the details.
-
-
-Visual and Select mode mappings *new-map-select*
--------------------------------
-
-Previously Visual mode mappings applied both to Visual and Select mode. With
-a trick to have the mappings work in Select mode like they would in Visual
-mode.
-
-Commands have been added to define mappings for Visual and Select mode
-separately: |:xmap| and |:smap|. With the associated "noremap" and "unmap"
-commands.
-
-The same is done for menus: |:xmenu|, |:smenu|, etc.
-
-
-Location list *new-location-list*
--------------
-
-The support for a per-window quickfix list (location list) is added. The
-location list can be displayed in a location window (similar to the quickfix
-window). You can open more than one location list window. A set of commands
-similar to the quickfix commands are added to browse the location list.
-(Yegappan Lakshmanan)
-
-
-Various new items *new-items-7*
------------------
-
-Normal mode commands: ~
-
-a", a' and a` New text objects to select quoted strings. |a'|
-i", i' and i` (Taro Muraoka)
-
-CTRL-W <Enter> In the quickfix window: opens a new window to show the
- location of the error under the cursor.
-
-|at| and |it| text objects select a block of text between HTML or XML tags.
-
-<A-LeftMouse> ('mousemodel' "popup" or "popup-setpos")
-<A-RightMouse> ('mousemodel' "extend")
- Make a blockwise selection. |<A-LeftMouse>|
-
-gF Start editing the filename under the cursor and jump
- to the line number following the file name.
- (Yegappan Lakshmanan)
-
-CTRL-W F Start editing the filename under the cursor in a new
- window and jump to the line number following the file
- name. (Yegappan Lakshmanan)
-
-Insert mode commands: ~
-
-CTRL-\ CTRL-O Execute a Normal mode command. Like CTRL-O but
- without moving the cursor. |i_CTRL-\_CTRL-O|
-
-Options: ~
-
-'balloonexpr' expression for text to show in evaluation balloon
-'completefunc' The name of the function used for user-specified
- Insert mode completion. CTRL-X CTRL-U can be used in
- Insert mode to do any kind of completion. (Taro
- Muraoka)
-'completeopt' Enable popup menu and other settings for Insert mode
- completion.
-'cursorcolumn' highlight column of the cursor
-'cursorline' highlight line of the cursor
-'formatexpr' expression for formatting text with |gq| and when text
- goes over 'textwidth' in Insert mode.
-'formatlistpat' pattern to recognize a numbered list for formatting.
- (idea by Hugo Haas)
-'fsync' Whether fsync() is called after writing a file.
- (Ciaran McCreesh)
-'guitablabel' expression for text to display in GUI tab page label
-'guitabtooltip' expression for text to display in GUI tab page tooltip
-'macatsui' Mac: use ATSUI text display functions
-'maxcombine' maximum number of combining characters displayed
-'maxmempattern' maximum amount of memory to use for pattern matching
-'mkspellmem' parameters for |:mkspell| memory use
-'mzquantum' Time in msec to schedule MzScheme threads.
-'numberwidth' Minimal width of the space used for the 'number' and
- 'relativenumber' option. (Emmanuel Renieris)
-'omnifunc' The name of the function used for omni completion.
-'operatorfunc' function to be called for |g@| operator
-'printmbcharset' CJK character set to be used for :hardcopy
-'printmbfont' font names to be used for CJK output of :hardcopy
-'pumheight' maximum number of items to show in the popup menu
-'quoteescape' Characters used to escape quotes inside a string.
- Used for the a", a' and a` text objects. |a'|
-'shelltemp' whether to use a temp file or pipes for shell commands
-'showtabline' whether to show the tab pages line
-'spell' switch spell checking on/off
-'spellcapcheck' pattern to locate the end of a sentence
-'spellfile' file where good and wrong words are added
-'spelllang' languages to check spelling for
-'spellsuggest' methods for spell suggestions
-'synmaxcol' maximum column to look for syntax items; avoids very
- slow redrawing when there are very long lines
-'tabline' expression for text to display in the tab pages line
-'tabpagemax' maximum number of tab pages to open for |-p|
-'verbosefile' Log messages in a file.
-'wildoptions' "tagfile" value enables listing the file name of
- matching tags for CTRL-D command line completion.
- (based on an idea from Yegappan Lakshmanan)
-'winfixwidth' window with fixed width, similar to 'winfixheight'
-
-
-Ex commands: ~
-
-Win32: The ":winpos" command now also works in the console. (Vipin Aravind)
-
-|:startreplace| Start Replace mode. (Charles Campbell)
-|:startgreplace| Start Virtual Replace mode.
-
-|:0file| Removes the name of the buffer. (Charles Campbell)
-
-|:diffoff| Switch off diff mode in the current window or in all
- windows.
-
-|:delmarks| Delete marks.
-
-|:exusage| Help for Ex commands (Nvi command).
-|:viusage| Help for Vi commands (Nvi command).
-
-|:sort| Sort lines in the buffer without depending on an
- external command. (partly by Bryce Wagner)
-
-|:vimgrep| Internal grep command, search for a pattern in files.
-|:vimgrepadd| Like |:vimgrep| but don't make a new list.
-
-|:caddfile| Add error messages to an existing quickfix list
- (Yegappan Lakshmanan).
-|:cbuffer| Read error lines from a buffer. (partly by Yegappan
- Lakshmanan)
-|:cgetbuffer| Create a quickfix list from a buffer but don't jump to
- the first error.
-|:caddbuffer| Add errors from the current buffer to the quickfix
- list.
-|:cexpr| Read error messages from a Vim expression (Yegappan
- Lakshmanan).
-|:caddexpr| Add error messages from a Vim expression to an
- existing quickfix list. (Yegappan Lakshmanan).
-|:cgetexpr| Create a quickfix list from a Vim expression, but
- don't jump to the first error. (Yegappan Lakshmanan).
-
-|:lfile| Like |:cfile| but use the location list.
-|:lgetfile| Like |:cgetfile| but use the location list.
-|:laddfile| Like |:caddfile| but use the location list.
-|:lbuffer| Like |:cbuffer| but use the location list.
-|:lgetbuffer| Like |:cgetbuffer| but use the location list.
-|:laddbuffer| Like |:caddbuffer| but use the location list.
-|:lexpr| Like |:cexpr| but use the location list.
-|:lgetexpr| Like |:cgetexpr| but use the location list.
-|:laddexpr| Like |:caddexpr| but use the location list.
-|:ll| Like |:cc| but use the location list.
-|:llist| Like |:clist| but use the location list.
-|:lnext| Like |:cnext| but use the location list.
-|:lprevious| Like |:cprevious| but use the location list.
-|:lNext| Like |:cNext| but use the location list.
-|:lfirst| Like |:cfirst| but use the location list.
-|:lrewind| Like |:crewind| but use the location list.
-|:llast| Like |:clast| but use the location list.
-|:lnfile| Like |:cnfile| but use the location list.
-|:lpfile| Like |:cpfile| but use the location list.
-|:lNfile| Like |:cNfile| but use the location list.
-|:lolder| Like |:colder| but use the location list.
-|:lnewer| Like |:cnewer| but use the location list.
-|:lwindow| Like |:cwindow| but use the location list.
-|:lopen| Like |:copen| but use the location list.
-|:lclose| Like |:cclose| but use the location list.
-|:lmake| Like |:make| but use the location list.
-|:lgrep| Like |:grep| but use the location list.
-|:lgrepadd| Like |:grepadd| but use the location list.
-|:lvimgrep| Like |:vimgrep| but use the location list.
-|:lvimgrepadd| Like |:vimgrepadd| but use the location list.
-|:lhelpgrep| Like |:helpgrep| but use the location list.
-|:lcscope| Like |:cscope| but use the location list.
-|:ltag| Jump to a tag and add matching tags to a location list.
-
-|:undojoin| Join a change with the previous undo block.
-|:undolist| List the leafs of the undo tree.
-
-|:earlier| Go back in time for changes in the text.
-|:later| Go forward in time for changes in the text.
-
-|:for| Loop over a |List|.
-|:endfor|
-
-|:lockvar| Lock a variable, prevents it from being changed.
-|:unlockvar| Unlock a locked variable.
-
-|:mkspell| Create a Vim spell file.
-|:spellgood| Add a word to the list of good words.
-|:spellwrong| Add a word to the list of bad words
-|:spelldump| Dump list of good words.
-|:spellinfo| Show information about the spell files used.
-|:spellrepall| Repeat a spelling correction for the whole buffer.
-|:spellundo| Remove a word from list of good and bad words.
-
-|:mzscheme| Execute MzScheme commands.
-|:mzfile| Execute an MzScheme script file.
-
-|:nbkey| Pass a key to NetBeans for processing.
-
-|:profile| Commands for Vim script profiling.
-|:profdel| Stop profiling for specified items.
-
-|:smap| Select mode mapping.
-|:smapclear|
-|:snoremap|
-|:sunmap|
-
-|:xmap| Visual mode mapping, not used for Select mode.
-|:xmapclear|
-|:xnoremap|
-|:xunmap|
-
-|:smenu| Select mode menu.
-|:snoremenu|
-|:sunmenu|
-
-|:xmenu| Visual mode menu, not used for Select mode.
-|:xnoremenu|
-|:xunmenu|
-
-|:tabclose| Close the current tab page.
-|:tabdo| Perform a command in every tab page.
-|:tabedit| Edit a file in a new tab page.
-|:tabnew| Open a new tab page.
-|:tabfind| Search for a file and open it in a new tab page.
-|:tabnext| Go to the next tab page.
-|:tabprevious| Go to the previous tab page.
-|:tabNext| Go to the previous tab page.
-|:tabfirst| Go to the first tab page.
-|:tabrewind| Go to the first tab page.
-|:tablast| Go to the last tab page.
-|:tabmove| Move the current tab page elsewhere.
-|:tabonly| Close all other tab pages.
-|:tabs| List the tab pages and the windows they contain.
-
-Ex command modifiers: ~
-
-|:keepalt| Do not change the alternate file.
-
-|:noautocmd| Do not trigger autocommand events.
-
-|:sandbox| Execute a command in the sandbox.
-
-|:tab| When opening a new window create a new tab page.
-
-
-Ex command arguments: ~
-
-|++bad| Specify what happens with characters that can't be
- converted and illegal bytes. (code example by Yasuhiro
- Matsumoto)
- Also, when a conversion error occurs or illegal bytes
- are found include the line number in the error
- message.
-
-
-New and extended functions: ~
-
-|add()| append an item to a List
-|append()| append List of lines to the buffer
-|argv()| without an argument return the whole argument list
-|browsedir()| dialog to select a directory
-|bufnr()| takes an extra argument: create buffer
-|byteidx()| index of a character (Ilya Sher)
-|call()| call a function with List as arguments
-|changenr()| number of current change
-|complete()| set matches for Insert mode completion
-|complete_add()| add match for 'completefunc'
-|complete_check()| check for key pressed, for 'completefunc'
-|copy()| make a shallow copy of a List or Dictionary
-|count()| count nr of times a value is in a List or Dictionary
-|cursor()| also accepts an offset for 'virtualedit', and
- the first argument can be a list: [lnum, col, off]
-|deepcopy()| make a full copy of a List or Dictionary
-|diff_filler()| returns number of filler lines above line {lnum}.
-|diff_hlID()| returns the highlight ID for diff mode
-|empty()| check if List or Dictionary is empty
-|eval()| evaluate {string} and return the result
-|extend()| append one List to another or add items from one
- Dictionary to another
-|feedkeys()| put characters in the typeahead buffer
-|filter()| remove selected items from a List or Dictionary
-|finddir()| find a directory in 'path'
-|findfile()| find a file in 'path' (Johannes Zellner)
-|foldtextresult()| the text displayed for a closed fold at line "lnum"
-|function()| make a Funcref out of a function name
-|garbagecollect()| cleanup unused |Lists| and |Dictionaries| with circular
- references
-|get()| get an item from a List or Dictionary
-|getbufline()| get a list of lines from a specified buffer
- (Yegappan Lakshmanan)
-|getcmdtype()| return the current command-line type
- (Yegappan Lakshmanan)
-|getfontname()| get actual font name being used
-|getfperm()| get file permission string (Nikolai Weibull)
-|getftype()| get type of file (Nikolai Weibull)
-|getline()| with second argument: get List with buffer lines
-|getloclist()| list of location list items (Yegappan Lakshmanan)
-|getpos()| return a list with the position of cursor, mark, etc.
-|getqflist()| list of quickfix errors (Yegappan Lakshmanan)
-|getreg()| get contents of a register
-|gettabwinvar()| get variable from window in specified tab page.
-|has_key()| check whether a key appears in a Dictionary
-|haslocaldir()| check if current window used |:lcd|
-|hasmapto()| check for a mapping to a string
-|index()| index of item in List
-|inputlist()| prompt the user to make a selection from a list
-|insert()| insert an item somewhere in a List
-|islocked()| check if a variable is locked
-|items()| get List of Dictionary key-value pairs
-|join()| join List items into a String
-|keys()| get List of Dictionary keys
-|len()| number of items in a List or Dictionary
-|map()| change each List or Dictionary item
-|maparg()| extra argument: use abbreviation
-|mapcheck()| extra argument: use abbreviation
-|match()| extra argument: count
-|matcharg()| return arguments of |:match| command
-|matchend()| extra argument: count
-|matchlist()| list with match and submatches of a pattern in a string
-|matchstr()| extra argument: count
-|max()| maximum value in a List or Dictionary
-|min()| minimum value in a List or Dictionary
-|mkdir()| create a directory
-|pathshorten()| reduce directory names to a single character
-|printf()| format text
-|pumvisible()| check whether the popup menu is displayed
-|range()| generate a List with numbers
-|readfile()| read a file into a list of lines
-|reltime()| get time value, possibly relative
-|reltimestr()| turn a time value into a string
-|remove()| remove one or more items from a List or Dictionary
-|repeat()| repeat "expr" "count" times (Christophe Poucet)
-|reverse()| reverse the order of a List
-|search()| extra argument:
-|searchdecl()| search for declaration of variable
-|searchpair()| extra argument: line to stop searching
-|searchpairpos()| return a List with the position of the match
-|searchpos()| return a List with the position of the match
-|setloclist()| modify a location list (Yegappan Lakshmanan)
-|setpos()| set cursor or mark to a position
-|setqflist()| modify a quickfix list (Yegappan Lakshmanan)
-|settabwinvar()| set variable in window of specified tab page
-|sort()| sort a List
-|soundfold()| get the sound-a-like equivalent of a word
-|spellbadword()| get a badly spelled word
-|spellsuggest()| get suggestions for correct spelling
-|split()| split a String into a List
-|str2nr()| convert a string to a number, base 8, 10 or 16
-|stridx()| extra argument: start position
-|strridx()| extra argument: start position
-|string()| string representation of a List or Dictionary
-|system()| extra argument: filters {input} through a shell command
-|tabpagebuflist()| List of buffers in a tab page
-|tabpagenr()| number of current or last tab page
-|tabpagewinnr()| window number in a tab page
-|tagfiles()| List with tags file names
-|taglist()| get list of matching tags (Yegappan Lakshmanan)
-|tr()| translate characters (Ron Aaron)
-|uniq()| remove copies of repeated adjacent list items
-|values()| get List of Dictionary values
-|winnr()| takes an argument: what window to use
-|winrestview()| restore the view of the current window
-|winsaveview()| save the view of the current window
-|writefile()| write a list of lines into a file
-
-User defined functions can now be loaded automatically from the "autoload"
-directory in 'runtimepath'. See |autoload-functions|.
-
-
-New Vim variables: ~
-
-|v:insertmode| used for |InsertEnter| and |InsertChange| autocommands
-|v:val| item value in a |map()| or |filter()| function
-|v:key| item key in a |map()| or |filter()| function
-|v:profiling| non-zero after a ":profile start" command
-|v:fcs_reason| the reason why |FileChangedShell| was triggered
-|v:fcs_choice| what should happen after |FileChangedShell|
-|v:beval_bufnr| buffer number for 'balloonexpr'
-|v:beval_winnr| window number for 'balloonexpr'
-|v:beval_lnum| line number for 'balloonexpr'
-|v:beval_col| column number for 'balloonexpr'
-|v:beval_text| text under the mouse pointer for 'balloonexpr'
-|v:scrollstart| what caused the screen to be scrolled up
-|v:swapname| name of the swap file for the |SwapExists| event
-|v:swapchoice| what to do for an existing swap file
-|v:swapcommand| command to be executed after handling |SwapExists|
-|v:char| argument for evaluating 'formatexpr'
-
-
-New autocommand events: ~
-
-|ColorScheme| after loading a color scheme
-
-|CursorHoldI| the user doesn't press a key for a while in Insert mode
-|CursorMoved| the cursor was moved in Normal mode
-|CursorMovedI| the cursor was moved in Insert mode
-
-|FileChangedShellPost| after handling a file changed outside of Vim
-
-|InsertEnter| starting Insert or Replace mode
-|InsertChange| going from Insert to Replace mode or back
-|InsertLeave| leaving Insert or Replace mode
-
-|MenuPopup| just before showing popup menu
-
-|QuickFixCmdPre| before :make, :grep et al. (Ciaran McCreesh)
-|QuickFixCmdPost| after :make, :grep et al. (Ciaran McCreesh)
-
-|SessionLoadPost| after loading a session file. (Yegappan Lakshmanan)
-
-|ShellCmdPost| after executing a shell command
-|ShellFilterPost| after filtering with a shell command
-
-|SourcePre| before sourcing a Vim script
-
-|SpellFileMissing| when a spell file can't be found
-
-|SwapExists| found existing swap file when editing a file
-
-|TabEnter| just after entering a tab page
-|TabLeave| just before leaving a tab page
-
-|VimResized| after the Vim window size changed (Yakov Lerner)
-
-
-New highlight groups: ~
-
-Pmenu Popup menu: normal item |hl-Pmenu|
-PmenuSel Popup menu: selected item |hl-PmenuSel|
-PmenuThumb Popup menu: scrollbar |hl-PmenuThumb|
-PmenuSbar Popup menu: Thumb of the scrollbar |hl-PmenuSbar|
-
-TabLine tab pages line, inactive label |hl-TabLine|
-TabLineSel tab pages line, selected label |hl-TabLineSel|
-TabLineFill tab pages line, filler |hl-TabLineFill|
-
-SpellBad badly spelled word |hl-SpellBad|
-SpellCap word with wrong caps |hl-SpellCap|
-SpellRare rare word |hl-SpellRare|
-SpellLocal word only exists in other region |hl-SpellLocal|
-
-CursorColumn 'cursorcolumn' |hl-CursorColumn|
-CursorLine 'cursorline' |hl-CursorLine|
-
-MatchParen matching parens |pi_paren.txt| |hl-MatchParen|
-
-
-New items in search patterns: ~
-|/\%d| \%d123 search for character with decimal number
-|/\]| [\d123] idem, in a collection
-|/\%o| \%o103 search for character with octal number
-|/\]| [\o1o3] idem, in a collection
-|/\%x| \%x1a search for character with 2 pos. hex number
-|/\]| [\x1a] idem, in a collection
-|/\%u| \%u12ab search for character with 4 pos. hex number
-|/\]| [\u12ab] idem, in a collection
-|/\%U| \%U1234abcd search for character with 8 pos. hex number
-|/\]| [\U1234abcd] idem, in a collection
- (The above partly by Ciaran McCreesh)
-
-|/[[=| [[=a=]] an equivalence class (only for latin1 characters)
-|/[[.| [[.a.]] a collation element (only works with single char)
-
-|/\%'m| \%'m match at mark m
-|/\%<'m| \%<'m match before mark m
-|/\%>'m| \%>'m match after mark m
-|/\%V| \%V match in Visual area
-
-Nesting |/multi| items no longer is an error when an empty match is possible.
-
-It is now possible to use \{0}, it matches the preceding atom zero times. Not
-useful, just for compatibility.
-
-
-New Syntax/Indent/FTplugin files: ~
-
-Moved all the indent settings from the filetype plugin to the indent file.
-Implemented b:undo_indent to undo indent settings when setting 'filetype' to a
-different value.
-
-a2ps syntax and ftplugin file. (Nikolai Weibull)
-ABAB/4 syntax file. (Marius van Wyk)
-alsaconf ftplugin file. (Nikolai Weibull)
-AppendMatchGroup ftplugin file. (Dave Silvia)
-arch ftplugin file. (Nikolai Weibull)
-asterisk and asteriskvm syntax file. (Tilghman Lesher)
-BDF ftplugin file. (Nikolai Weibull)
-BibTeX indent file. (Dorai Sitaram)
-BibTeX Bibliography Style syntax file. (Tim Pope)
-BTM ftplugin file. (Bram Moolenaar)
-calendar ftplugin file. (Nikolai Weibull)
-Changelog indent file. (Nikolai Weibull)
-ChordPro syntax file. (Niels Bo Andersen)
-Cmake indent and syntax file. (Andy Cedilnik)
-conf ftplugin file. (Nikolai Weibull)
-context syntax and ftplugin file. (Nikolai Weibull)
-CRM114 ftplugin file. (Nikolai Weibull)
-cvs RC ftplugin file. (Nikolai Weibull)
-D indent file. (Jason Mills)
-Debian Sources.list syntax file. (Matthijs Mohlmann)
-dictconf and dictdconf syntax, indent and ftplugin files. (Nikolai Weibull)
-diff ftplugin file. (Bram Moolenaar)
-dircolors ftplugin file. (Nikolai Weibull)
-django and htmldjango syntax file. (Dave Hodder)
-doxygen syntax file. (Michael Geddes)
-elinks ftplugin file. (Nikolai Weibull)
-eterm ftplugin file. (Nikolai Weibull)
-eviews syntax file. (Vaidotas Zemlys)
-fetchmail RC ftplugin file. (Nikolai Weibull)
-FlexWiki syntax and ftplugin file. (George Reilly)
-Generic indent file. (Dave Silvia)
-gpg ftplugin file. (Nikolai Weibull)
-gretl syntax file. (Vaidotas Zemlys)
-groovy syntax file. (Alessio Pace)
-group syntax and ftplugin file. (Nikolai Weibull)
-grub ftplugin file. (Nikolai Weibull)
-Haskell ftplugin file. (Nikolai Weibull)
-help ftplugin file. (Nikolai Weibull)
-indent ftplugin file. (Nikolai Weibull)
-Javascript ftplugin file. (Bram Moolenaar)
-Kconfig ftplugin and syntax file. (Nikolai Weibull)
-ld syntax, indent and ftplugin file. (Nikolai Weibull)
-lftp ftplugin file. (Nikolai Weibull)
-libao config ftplugin file. (Nikolai Weibull)
-limits syntax and ftplugin file. (Nikolai Weibull)
-Lisp indent file. (Sergey Khorev)
-loginaccess and logindefs syntax and ftplugin file. (Nikolai Weibull)
-m4 ftplugin file. (Nikolai Weibull)
-mailaliases syntax file. (Nikolai Weibull)
-mailcap ftplugin file. (Nikolai Weibull)
-manconf syntax and ftplugin file. (Nikolai Weibull)
-matlab ftplugin file. (Jake Wasserman)
-Maxima syntax file. (Robert Dodier)
-MGL syntax file. (Gero Kuhlmann)
-modconf ftplugin file. (Nikolai Weibull)
-mplayer config ftplugin file. (Nikolai Weibull)
-Mrxvtrc syntax and ftplugin file. (Gautam Iyer)
-MuPAD source syntax, indent and ftplugin. (Dave Silvia)
-mutt RC ftplugin file. (Nikolai Weibull)
-nanorc syntax and ftplugin file. (Nikolai Weibull)
-netrc ftplugin file. (Nikolai Weibull)
-pamconf syntax and ftplugin file. (Nikolai Weibull)
-Pascal indent file. (Neil Carter)
-passwd syntax and ftplugin file. (Nikolai Weibull)
-PHP compiler plugin. (Doug Kearns)
-pinfo ftplugin file. (Nikolai Weibull)
-plaintex syntax and ftplugin files. (Nikolai Weibull, Benji Fisher)
-procmail ftplugin file. (Nikolai Weibull)
-prolog ftplugin file. (Nikolai Weibull)
-protocols syntax and ftplugin file. (Nikolai Weibull)
-quake ftplugin file. (Nikolai Weibull)
-racc syntax and ftplugin file. (Nikolai Weibull)
-readline ftplugin file. (Nikolai Weibull)
-rhelp syntax file. (Johannes Ranke)
-rnoweb syntax file. (Johannes Ranke)
-Relax NG compact ftplugin file. (Nikolai Weibull)
-Scheme indent file. (Sergey Khorev)
-screen ftplugin file. (Nikolai Weibull)
-sensors syntax and ftplugin file. (Nikolai Weibull)
-services syntax and ftplugin file. (Nikolai Weibull)
-setserial syntax and ftplugin file. (Nikolai Weibull)
-sieve syntax and ftplugin file. (Nikolai Weibull)
-SiSU syntax file (Ralph Amissah)
-Sive syntax file. (Nikolai Weibull)
-slp config, reg and spi syntax and ftplugin files. (Nikolai Weibull)
-SML indent file. (Saikat Guha)
-SQL anywhere syntax and indent file. (David Fishburn)
-SQL indent file.
-SQL-Informix syntax file. (Dean L Hill)
-SQL: Handling of various variants. (David Fishburn)
-sshconfig ftplugin file. (Nikolai Weibull)
-Stata and SMCL syntax files. (Jeff Pitblado)
-sudoers ftplugin file. (Nikolai Weibull)
-sysctl syntax and ftplugin file. (Nikolai Weibull)
-terminfo ftplugin file. (Nikolai Weibull)
-trustees syntax file. (Nima Talebi)
-Vera syntax file. (David Eggum)
-udev config, permissions and rules syntax and ftplugin files. (Nikolai Weibull)
-updatedb syntax and ftplugin file. (Nikolai Weibull)
-VHDL indent file (Gerald Lai)
-WSML syntax file. (Thomas Haselwanter)
-Xdefaults ftplugin file. (Nikolai Weibull)
-XFree86 config ftplugin file. (Nikolai Weibull)
-xinetd syntax, indent and ftplugin file. (Nikolai Weibull)
-xmodmap ftplugin file. (Nikolai Weibull)
-Xquery syntax file. (Jean-Marc Vanel)
-xsd (XML schema) indent file.
-YAML ftplugin file. (Nikolai Weibull)
-Zsh ftplugin file. (Nikolai Weibull)
-
-
-New Keymaps: ~
-
-Sinhala (Sri Lanka) (Harshula Jayasuriya)
-Tamil in TSCII encoding (Yegappan Lakshmanan)
-Greek in cp737 (Panagiotis Louridas)
-Polish-slash (HS6_06)
-Ukrainian-jcuken (Anatoli Sakhnik)
-Kana (Edward L. Fox)
-
-
-New message translations: ~
-
-The Ukrainian messages are now also available in cp1251.
-Vietnamese message translations and menu. (Phan Vinh Thinh)
-
-
-Others: ~
-
-The |:read| command has the |++edit| argument. This means it will use the
-detected 'fileformat', 'fileencoding' and other options for the buffer. This
-also fixes the problem that editing a compressed file didn't set these
-options.
-
-The Netbeans interface was updated for Sun Studio 10. The protocol number
-goes from 2.2 to 2.3. (Gordon Prieur)
-
-Mac: When starting up Vim will load the $VIMRUNTIME/macmap.vim script to
-define default command-key mappings. (mostly by Benji Fisher)
-
-Mac: Add the selection type to the clipboard, so that Block, line and
-character selections can be used between two Vims. (Eckehard Berns)
-Also fixes the problem that setting 'clipboard' to "unnamed" breaks using
-"yyp".
-
-Mac: GUI font selector. (Peter Cucka)
-
-Mac: support for multi-byte characters. (Da Woon Jung)
-This doesn't always work properly. If you see text drawing problems try
-switching the 'macatsui' option off.
-
-Mac: Support the xterm mouse in the non-GUI version.
-
-Mac: better integration with Xcode. Post a fake mouse-up event after the odoc
-event and the drag receive handler to work around a stall after Vim loads a
-file. Fixed an off-by-one line number error. (Da Woon Jung)
-
-Mac: When started from Finder change directory to the file being edited or the
-user home directory.
-
-Added the t_SI and t_EI escape sequences for starting and ending Insert mode.
-To be used to set the cursor shape to a bar or a block. No default values,
-they are not supported by termcap/terminfo.
-
-GUI font selector for Motif. (Marcin Dalecki)
-
-Nicer toolbar buttons for Motif. (Marcin Dalecki)
-
-Mnemonics for the Motif find/replace dialog. (Marcin Dalecki)
-
-Included a few improvements for Motif from Marcin Dalecki. Draw label
-contents ourselves to make them handle fonts in a way configurable by Vim and
-a bit less dependent on the X11 font management.
-
-Autocommands can be defined local to a buffer. This means they will also work
-when the buffer does not have a name or no specific name. See
-|autocmd-buflocal|. (Yakov Lerner)
-
-For xterm most combinations of modifiers with function keys are recognized.
-|xterm-modifier-keys|
-
-When 'verbose' is set the output of ":highlight" will show where a highlight
-item was last set.
-When 'verbose' is set the output of the ":map", ":abbreviate", ":command",
-":function" and ":autocmd" commands will show where it was last defined.
-(Yegappan Lakshmanan)
-
-":function /pattern" lists functions matching the pattern.
-
-"1gd" can be used like "gd" but ignores matches in a {} block that ends before
-the cursor position. Likewise for "1gD" and "gD".
-
-'scrolljump' can be set to a negative number to scroll a percentage of the
-window height.
-
-The |v:scrollstart| variable has been added to help find the location in
-your script that causes the hit-enter prompt.
-
-To make it possible to handle the situation that a file is being edited that
-is already being edited by another Vim instance, the |SwapExists| event has
-been added. The |v:swapname|, |v:swapchoice| and |v:swapcommand| variables
-can be used, for example to use the |client-server| functionality to bring the
-other Vim to the foreground.
-When starting Vim with a "-t tag" argument, there is an existing swapfile and
-the user selects "quit" or "abort" then exit Vim.
-
-Undo now also restores the '< and '> marks. "gv" selects the same area as
-before the change and undo.
-
-When editing a search pattern for a "/" or "?" command and 'incsearch' is set
-CTRL-L can be used to add a character from the current match. CTRL-R CTRL-W
-will add a word, but exclude the part of the word that was already typed.
-
-Ruby interface: add line number methods. (Ryan Paul)
-
-The $MYVIMRC environment variable is set to the first found vimrc file.
-The $MYGVIMRC environment variable is set to the first found gvimrc file.
-
-==============================================================================
-IMPROVEMENTS *improvements-7*
-
-":helpgrep" accepts a language specifier after the pattern: "pat@it".
-
-Moved the help for printing to a separate help file. It's quite a lot now.
-
-When doing completion for ":!cmd", ":r !cmd" or ":w !cmd" executable files are
-found in $PATH instead of looking for ordinary files in the current directory.
-
-When ":silent" is used and a backwards range is given for an Ex command the
-range is swapped automatically instead of asking if that is OK.
-
-The pattern matching code was changed from a recursive function to an
-iterative mechanism. This avoids out-of-stack errors. State is stored in
-allocated memory, running out of memory can always be detected. Allows
-matching more complex things, but Vim may seem to hang while doing that.
-
-Previously some options were always evaluated in the |sandbox|. Now that only
-happens when the option was set from a modeline or in secure mode. Applies to
-'balloonexpr', 'foldexpr', 'foldtext' and 'includeexpr'. (Sumner Hayes)
-
-Some commands and expressions could have nasty side effects, such as using
-CTRL-R = while editing a search pattern and the expression invokes a function
-that jumps to another window. The |textlock| has been added to prevent this
-from happening.
-
-":breakadd here" and ":breakdel here" can be used to set or delete a
-breakpoint at the cursor.
-
-It is now possible to define a function with: >
- :exe "func Test()\n ...\n endfunc"
-
-The tutor was updated to make it simpler to use and text was added to explain
-a few more important commands. Used ideas from Gabriel Zachmann.
-
-Unix: When libcall() fails obtain an error message with dlerror() and display
-it. (Johannes Zellner)
-
-Mac and Cygwin: When editing an existing file make the file name the same case
-of the edited file. Thus when typing ":e os_UNIX.c" the file name becomes
-"os_unix.c".
-
-Added "nbsp" in 'listchars'. (David Blanchet)
-
-Added the "acwrite" value for the 'buftype' option. This is for a buffer that
-does not have a name that refers to a file and is written with BufWriteCmd
-autocommands.
-
-For lisp indenting and matching parenthesis: (Sergey Khorev)
-- square brackets are recognized properly
-- #\(, #\), #\[ and #\] are recognized as character literals
-- Lisp line comments (delimited by semicolon) are recognized
-
-Added the "count" argument to match(), matchend() and matchstr(). (Ilya Sher)
-
-winnr() takes an optional "$" or "#" argument. (Nikolai Weibull, Yegappan
-Lakshmanan)
-
-Added 's' flag to search(): set ' mark if cursor moved. (Yegappan Lakshmanan)
-Added 'n' flag to search(): don't move the cursor. (Nikolai Weibull)
-Added 'c' flag to search(): accept match at the cursor.
-Added 'e' flag to search(): move to end of the match. (Benji Fisher)
-Added 'p' flag to search(): return number of sub-pattern. (Benji Fisher)
-These also apply to searchpos(), searchpair() and searchpairpos().
-
-The search() and searchpair() functions have an extra argument to specify
-where to stop searching. Speeds up searches that should not continue too far.
-
-When uncompressing fails in the gzip plugin, give an error message but don't
-delete the raw text. Helps if the file has a .gz extension but is not
-actually compressed. (Andrew Pimlott)
-
-When C, C++ or IDL syntax is used, may additionally load doxygen syntax.
-(Michael Geddes)
-
-Support setting 'filetype' and 'syntax' to "aaa.bbb" for "aaa" plus "bbb"
-filetype or syntax.
-
-The ":registers" command now displays multi-byte characters properly.
-
-VMS: In the usage message mention that a slash can be used to make a flag
-upper case. Add color support to the builtin vt320 terminal codes.
-(Zoltan Arpadffy)
-
-For the '%' item in 'viminfo', allow a number to set a maximum for the number
-of buffers.
-
-For recognizing the file type: When a file looks like a shell script, check
-for an "exec" command that starts the tcl interpreter. (suggested by Alexios
-Zavras)
-
-Support conversion between utf-8 and latin9 (iso-8859-15) internally, so that
-digraphs still work when iconv is not available.
-
-When a session file is loaded while editing an unnamed, empty buffer that
-buffer is wiped out. Avoids that there is an unused buffer in the buffer
-list.
-
-Win32: When libintl.dll supports bind_textdomain_codeset(), use it.
-(NAKADAIRA Yukihiro)
-
-Win32: Vim was not aware of hard links on NTFS file systems. These are
-detected now for when 'backupcopy' is "auto". Also fixed a bogus "file has
-been changed since reading it" error for links.
-
-When foldtext() finds no text after removing the comment leader, use the
-second line of the fold. Helps for C-style /* */ comments where the first
-line is just "/*".
-
-When editing the same file from two systems (e.g., Unix and MS-Windows) there
-mostly was no warning for an existing swap file, because the name of the
-edited file differs (e.g., y:\dir\file vs /home/me/dir/file). Added a flag to
-the swap file to indicate it is in the same directory as the edited file. The
-used path then doesn't matter and the check for editing the same file is much
-more reliable.
-
-Unix: When editing a file through a symlink the swap file would use the name
-of the symlink. Now use the name of the actual file, so that editing the same
-file twice is detected. (suggestions by Stefano Zacchiroli and James Vega)
-
-Client-server communication now supports 'encoding'. When setting 'encoding'
-in a Vim server to "utf-8", and using "vim --remote fname" in a console,
-"fname" is converted from the console encoding to utf-8. Also allows Vims
-with different 'encoding' settings to exchange messages.
-
-Internal: Changed ga_room into ga_maxlen, so that it doesn't need to be
-incremented/decremented each time.
-
-When a register is empty it is not stored in the viminfo file.
-
-Removed the tcltags script, it's obsolete.
-
-":redir @*>>" and ":redir @+>>" append to the clipboard. Better check for
-invalid characters after the register name. |:redir|
-
-":redir => variable" and ":redir =>> variable" write or append to a variable.
-(Yegappan Lakshmanan) |:redir|
-
-":redir @{a-z}>>" appends to register a to z. (Yegappan Lakshmanan)
-
-The 'verbosefile' option can be used to log messages in a file. Verbose
-messages are not displayed then. The "-V{filename}" argument can be used to
-log startup messages.
-
-":let g:" lists global variables.
-":let b:" lists buffer-local variables.
-":let w:" lists window-local variables.
-":let v:" lists Vim variables.
-
-The stridx() and strridx() functions take a third argument, where to start
-searching. (Yegappan Lakshmanan)
-
-The getreg() function takes an extra argument to be able to get the expression
-for the '=' register instead of the result of evaluating it.
-
-The setline() function can take a List argument to set multiple lines. When
-the line number is just below the last line the line is appended.
-
-g CTRL-G also shows the number of characters if it differs from the number of
-bytes.
-
-Completion for ":debug" and entering an expression for the '=' register. Skip
-":" between range and command name. (Peter winters)
-
-CTRL-Q in Insert mode now works like CTRL-V by default. Previously it was
-ignored.
-
-When "beep" is included in 'debug' a function or script that causes a beep
-will result in a message with the source of the error.
-
-When completing buffer names, match with "\(^\|[\/]\)" instead of "^", so that
-":buf stor<Tab>" finds both "include/storage.h" and "storage/main.c".
-
-To count items (pattern matches) without changing the buffer the 'n' flag has
-been added to |:substitute|. See |count-items|.
-
-In a |:substitute| command the \u, \U, \l and \L items now also work for
-multi-byte characters.
-
-The "screen.linux" $TERM name is recognized to set the default for
-'background' to "dark". (Ciaran McCreesh) Also for "cygwin" and "putty".
-
-The |FileChangedShell| autocommand event can now use the |v:fcs_reason|
-variable that specifies what triggered the event. |v:fcs_choice| can be used
-to reload the buffer or ask the user what to do.
-
-Not all modifiers were recognized for xterm function keys. Added the
-possibility in term codes to end in ";*X" or "O*X", where X is any character
-and the * stands for the modifier code.
-Added the <xUp>, <xDown>, <xLeft> and <xRight> keys, to be able to recognize
-the two forms that xterm can send their codes in and still handle all possible
-modifiers.
-
-getwinvar() now also works to obtain a buffer-local option from the specified
-window.
-
-Added the "%s" item to 'errorformat'. (Yegappan Lakshmanan)
-Added the "%>" item to 'errorformat'.
-
-For 'errorformat' it was not possible to have a file name that contains the
-character that follows after "%f". For example, in "%f:%l:%m" the file name
-could not contain ":". Now include the first ":" where the rest of the
-pattern matches. In the example a ":" not followed by a line number is
-included in the file name. (suggested by Emanuele Giaquinta)
-
-GTK GUI: use the GTK file dialog when it's available. Mix from patches by
-Grahame Bowland and Evan Webb.
-
-Added ":scriptnames" to bugreport.vim, so that we can see what plugins were
-used.
-
-Win32: If the user changes the setting for the number of lines a scroll wheel
-click scrolls it is now used immediately. Previously Vim would need to be
-restarted.
-
-When using @= in an expression the value is expression @= contains. ":let @=
-= value" can be used to set the register contents.
-
-A ! can be added to ":popup" to have the popup menu appear at the mouse
-pointer position instead of the text cursor.
-
-The table with encodings has been expanded with many MS-Windows codepages,
-such as cp1250 and cp737, so that these can also be used on Unix without
-prepending "8bit-".
-When an encoding name starts with "microsoft-cp" ignore the "microsoft-" part.
-
-Added the "customlist" completion argument to a user-defined command. The
-user-defined completion function should return the completion candidates as a
-Vim List and the returned results are not filtered by Vim. (Yegappan
-Lakshmanan)
-
-Win32: Balloons can have multiple lines if common controls supports it.
-(Sergey Khorev)
-
-For command-line completion the matches for various types of arguments are now
-sorted: user commands, variables, syntax names, etc.
-
-When no locale is set, thus using the "C" locale, Vim will work with latin1
-characters, using its own isupper()/toupper()/etc. functions.
-
-When using an rxvt terminal emulator guess the value of 'background' using the
-COLORFGBG environment variable. (Ciaran McCreesh)
-
-Also support t_SI and t_EI on Unix with normal features. (Ciaran McCreesh)
-
-When 'foldcolumn' is one then put as much info in it as possible. This allows
-closing a fold with the mouse by clicking on the '-'.
-
-input() takes an optional completion argument to specify the type of
-completion supported for the input. (Yegappan Lakshmanan)
-
-"dp" works with more than two buffers in diff mode if there is only one where
-'modifiable' is set.
-
-The 'diffopt' option has three new values: "horizontal", "vertical" and
-"foldcolumn".
-
-When the 'include' option contains \zs the file name found is what is being
-matched from \zs to the end or \ze. Useful to pass more to 'includeexpr'.
-
-Loading plugins on startup now supports subdirectories in the plugin
-directory. |load-plugins|
-
-In the foldcolumn always show the '+' for a closed fold, so that it can be
-opened easily. It may overwrite another character, esp. if 'foldcolumn' is 1.
-
-It is now possible to get the W10 message again by setting 'readonly'. Useful
-in the FileChangedRO autocommand when checking out the file fails.
-
-Unix: When open() returns EFBIG give an appropriate message.
-
-":mksession" sets the SessionLoad variable to notify plugins. A modeline is
-added to the session file to set 'filetype' to "vim".
-
-In the ATTENTION prompt put the "Delete it" choice before "Quit" to make it
-more logical. (Robert Webb)
-
-When appending to a file while the buffer has no name the name of the appended
-file would be used for the current buffer. But the buffer contents is
-actually different from the file content. Don't set the file name, unless the
-'P' flag is present in 'cpoptions'.
-
-When starting to edit a new file and the directory for the file doesn't exist
-then Vim will report "[New DIRECTORY]" instead of "[New File] to give the user
-a hint that something might be wrong.
-
-Win32: Preserve the hidden attribute of the viminfo file.
-
-In Insert mode CTRL-A didn't keep the last inserted text when using CTRL-O and
-then a cursor key. Now keep the previously inserted text if nothing is
-inserted after the CTRL-O. Allows using CTRL-O commands to move the cursor
-without losing the last inserted text.
-
-The exists() function now supports checking for autocmd group definition
-and for supported autocommand events. (Yegappan Lakshmanan)
-
-Allow using ":global" in the sandbox, it doesn't do anything harmful by
-itself.
-
-":saveas asdf.c" will set 'filetype' to c when it's empty. Also for ":w
-asdf.c" when it sets the filename for the buffer.
-
-Insert mode completion for whole lines now also searches unloaded buffers.
-
-The colortest.vim script can now be invoked directly with ":source" or
-":runtime syntax/colortest.vim".
-
-The 'statusline' option can be local to the window, so that each window can
-have a different value. (partly by Yegappan Lakshmanan)
-
-The 'statusline' option and other options that support the same format can now
-use these new features:
-- When it starts with "%!" the value is first evaluated as an expression
- before parsing the value.
-- "%#HLname#" can be used to start highlighting with HLname.
-
-When 'statusline' is set to something that causes an error message then it is
-made empty to avoid an endless redraw loop. Also for other options, such at
-'tabline' and 'titlestring'. ":verbose set statusline" will mention that it
-was set in an error handler.
-
-When there are several matching tags, the ":tag <name>" and CTRL-] commands
-jump to the [count] matching tag. (Yegappan Lakshmanan)
-
-Win32: In the batch files generated by the install program, use $VIMRUNTIME or
-$VIM if it's set. Example provided by Mathias Michaelis.
-Also create a vimtutor.bat batch file.
-
-The 'balloonexpr' option is now |global-local|.
-
-The system() function now runs in cooked mode, thus can be interrupted by
-CTRL-C.
-
-==============================================================================
-COMPILE TIME CHANGES *compile-changes-7*
-
-Dropped the support for the BeOS and Amiga GUI. They were not maintained and
-probably didn't work. If you want to work on this: get the Vim 6.x version
-and merge it back in.
-
-When running the tests and one of them fails to produce "test.out" the
-following tests are still executed. This helps when running out of memory.
-
-When compiling with EXITFREE defined and the ccmalloc library it is possible
-to detect memory leaks. Some memory will always reported as leaked, such as
-allocated by X11 library functions and the memory allocated in alloc_cmdbuff()
-to store the ":quit" command.
-
-Moved the code for printing to src/hardcopy.c.
-
-Moved some code from main() to separate functions to make it easier to see
-what is being done. Using a structure to avoid a lot of arguments to the
-functions.
-
-Moved unix_expandpath() to misc1.c, so that it can also be used by os_mac.c
-without copying the code.
-
---- Mac ---
-
-"make" now creates the Vim.app directory and "make install" copies it to its
-final destination. (Raf)
-
-Put the runtime directory not directly in Vim.app but in
-Vim.app/Contents/Resources/vim, so that it's according to Mac specs.
-
-Made it possible to compile with Motif, Athena or GTK without tricks and still
-being able to use the MacRoman conversion. Added the os_mac_conv.c file.
-
-When running "make install" the runtime files are installed as for Unix.
-Avoids that too many files are copied. When running "make" a link to the
-runtime files is created to avoid a recursive copy that takes much time.
-
-Configure will attempt to build Vim for both Intel and PowerPC. The
---with-mac-arch configure argument can change it.
-
---- Win32 ---
-
-The Make_mvc.mak file was adjusted to work with the latest MS compilers,
-including the free version of Visual Studio 2005. (George Reilly)
-
-INSTALLpc.txt was updated for the recent changes. (George Reilly)
-
-The distributed executable is now produced with the free Visual C++ Toolkit
-2003 and other free SDK chunks. msvcsetup.bat was added to support this.
-
-Also generate the .pdb file that can be used to generate a useful crash report
-on MS-Windows. (George Reilly)
-
-==============================================================================
-BUG FIXES *bug-fixes-7*
-
-When using PostScript printing on MS-DOS the default 'printexpr' used "lpr"
-instead of "copy". When 'printdevice' was empty the copy command did not
-work. Use "LPT1" then.
-
-The GTK font dialog uses a font size zero when the font name doesn't include a
-size. Use a default size of 10.
-
-This example in the documentation didn't work:
- :e `=foo . ".c"`
-Skip over the expression in `=expr` when looking for comments, |, % and #.
-
-When ":helpgrep" doesn't find anything there is no error message.
-
-"L" and "H" did not take closed folds into account.
-
-Win32: The "-P title" argument stopped at the first title that matched, even
-when it doesn't support MDI.
-
-Mac GUI: CTRL-^ and CTRL-@ did not work.
-
-"2daw" on "word." at the end of a line didn't include the preceding white
-space.
-
-Win32: Using FindExecutable() doesn't work to find a program. Use
-SearchPath() instead. For executable() use $PATHEXT when the program searched
-for doesn't have an extension.
-
-When 'virtualedit' is set, moving the cursor up after appending a character
-may move it to a different column. Was caused by auto-formatting moving the
-cursor and not putting it back where it was.
-
-When indent was added automatically and then moving the cursor, the indent was
-not deleted (like when pressing ESC). The "I" flag in 'cpoptions' can be used
-to make it work the old way.
-
-When opening a command-line window, 'textwidth' gets set to 78 by the Vim
-filetype plugin. Reset 'textwidth' to 0 to avoid lines are broken.
-
-After using cursor(line, col) moving up/down doesn't keep the same column.
-
-Win32: Borland C before 5.5 requires using ".u." for LowPart and HighPart
-fields. (Walter Briscoe)
-
-On Sinix SYS_NMLN isn't always defined. Define it ourselves. (Cristiano De
-Michele)
-
-Printing with PostScript may keep the printer waiting for more. Append a
-CTRL-D to the printer output. (Mike Williams)
-
-When converting a string with a hex or octal number the leading '-' was
-ignored. ":echo '-05' + 0" resulted in 5 instead of -5.
-
-Using "@:" to repeat a command line didn't work when it contains control
-characters. Also remove "'<,'>" when in Visual mode to avoid that it appears
-twice.
-
-When using file completion for a user command, it would not expand environment
-variables like for a regular command with a file argument.
-
-'cindent': When the argument of a #define looks like a C++ class the next line
-is indented too much.
-
-When 'comments' includes multi-byte characters inserting the middle part and
-alignment may go wrong. 'cindent' also suffers from this for right-aligned
-items.
-
-Win32: when 'encoding' is set to "utf-8" getenv() still returns strings in the
-active codepage. Convert to utf-8. Also for $HOME.
-
-The default for 'helplang' was "zh" for both "zh_cn" and "zh_tw". Now use
-"cn" or "tw" as intended.
-
-When 'bin' is set and 'eol' is not set then line2byte() added the line break
-after the last line while it's not there.
-
-Using foldlevel() in a WinEnter autocommand may not work. Noticed when
-resizing the GUI shell upon startup.
-
-Python: Using buffer.append(f.readlines()) didn't work. Allow appending a
-string with a trailing newline. The newline is ignored.
-
-When using the ":saveas f2" command for buffer "f1", the Buffers menu would
-contain "f2" twice, one of them leading to "f1". Also trigger the BufFilePre
-and BufFilePost events for the alternate buffer that gets the old name.
-
-strridx() did not work well when the needle is empty. (Ciaran McCreesh)
-
-GTK: Avoid a potential hang in gui_mch_wait_for_chars() when input arrives
-just before it is invoked
-
-VMS: Occasionally CR characters were inserted in the file. Expansion of
-environment variables was not correct. (Zoltan Arpadffy)
-
-UTF-8: When 'delcombine' is set "dw" only deleted the last combining character
-from the first character of the word.
-
-When using ":sball" in an autocommand only the filetype in one buffer was
-detected. Reset did_filetype in enter_buffer().
-
-When using ":argdo" and the window already was at the first argument index,
-but not actually editing it, the current buffer would be used instead.
-
-When ":next dir/*" includes many matches, adding the names to the argument
-list may take an awful lot of time and can't be interrupted. Allow
-interrupting this.
-
-When editing a file that was already loaded in a buffer, modelines were not
-used. Now window-local options in the modeline are set. Buffer-local options
-and global options remain unmodified.
-
-Win32: When 'encoding' is set to "utf-8" in the vimrc file, files from the
-command line with non-ASCII characters are not used correctly. Recode the
-file names when 'encoding' is set, using the Unicode command line.
-
-Win32 console: When the default for 'encoding' ends up to be "latin1", the
-default value of 'isprint' was wrong.
-
-When an error message is given while waiting for a character (e.g., when an
-xterm reports the number of colors), the hit-enter prompt overwrote the last
-line. Don't reset msg_didout in normal_cmd() for K_IGNORE.
-
-Mac GUI: Shift-Tab didn't work.
-
-When defining tooltip text, don't translate terminal codes, since it's not
-going to be used like a command.
-
-GTK 2: Check the tooltip text for valid utf-8 characters to avoid getting a
-GTK error. Invalid characters may appear when 'encoding' is changed.
-
-GTK 2: Add a safety check for invalid utf-8 sequences, they can crash pango.
-
-Win32: When 'encoding' is changed while starting up, use the Unicode command
-line to convert the file arguments to 'encoding'. Both for the GUI and the
-console version.
-
-Win32 GUI: latin9 text (iso-8859-15) was not displayed correctly, because
-there is no codepage for latin9. Do our own conversion from latin9 to UCS2.
-
-When two versions of GTK+ 2 are installed it was possible to use the header
-files from one and the library from the other. Use GTK_LIBDIR to put the
-directory for the library early in the link flags.
-
-With the GUI find/replace dialog a replace only worked if the pattern was
-literal text. Now it works for any pattern.
-
-When 'equalalways' is set and 'eadirection' is "hor", ":quit" would still
-cause equalizing window heights in the vertical direction.
-
-When ":emenu" is used in a startup script the command was put in the typeahead
-buffer, causing a prompt for the crypt key to be messed up.
-
-Mac OS/X: The default for 'isprint' included characters 128-160, causes
-problems for Terminal.app.
-
-When a syntax item with "containedin" is used, it may match in the start or
-end of a region with a matchgroup, while this doesn't happen for a "contains"
-argument.
-
-When a transparent syntax items matches in another item where the highlighting
-has already stopped (because of a he= argument), the highlighting would come
-back.
-
-When cscope is used to set the quickfix error list, it didn't get set if there
-was only one match. (Sergey Khorev)
-
-When 'confirm' is set and using ":bdel" in a modified buffer, then selecting
-"cancel", would still give an error message.
-
-The PopUp menu items that started Visual mode didn't work when not in Normal
-mode. Switching between selecting a word and a line was not possible.
-
-Win32: The keypad decimal point always resulted in a '.', while on some
-keyboards it's a ','. Use MapVirtualKey(VK_DECIMAL, 2).
-
-Removed unused function DisplayCompStringOpaque() from gui_w32.c
-
-In Visual mode there is not always an indication whether the line break is
-selected or not. Highlight the character after the line when the line break
-is included, e.g., after "v$o".
-
-GTK: The <F10> key can't be mapped, it selects the menu. Disable that with a
-GTK setting and do select the menu when <F10> isn't mapped. (David Necas)
-
-After "Y" '[ and '] were not at start/end of the yanked text.
-
-When a telnet connection is dropped Vim preserves files and exits. While
-doing that a SIGHUP may arrive and disturb us, thus ignore it. (Scott
-Anderson) Also postpone SIGHUP, SIGQUIT and SIGTERM until it's safe to
-handle. Added handle_signal().
-
-When completing a file name on the command line backslashes are required for
-white space. Was only done for a space, not for a Tab.
-
-When configure could not find a terminal library, compiling continued for a
-long time before reporting the problem. Added a configure check for tgetent()
-being found in a library.
-
-When the cursor is on the first char of the last line a ":g/pat/s///" command
-may cause the cursor to be displayed below the text.
-
-Win32: Editing a file with non-ASCII characters doesn't work when 'encoding'
-is "utf-8". use _wfullpath() instead of _fullpath(). (Yu-sung Moon)
-
-When recovering the 'fileformat' and 'fileencoding' were taken from the
-original file instead of from the swapfile. When the file didn't exist, was
-empty or the option was changed (e.g., with ":e ++fenc=cp123 file") it could
-be wrong. Now store 'fileformat' and 'fileencoding' in the swapfile and use
-the values when recovering.
-
-":bufdo g/something/p" overwrites each last printed text line with the file
-message for the next buffer. Temporarily clear 'shortmess' to avoid that.
-
-Win32: Cannot edit a file starting with # with --remote. Do escape % and #
-when building the ":drop" command.
-
-A comment or | just after an expression-backtick argument was not recognized.
-E.g. in :e `="foo"`"comment.
-
-"(" does not stop at an empty sentence (single dot and white space) while ")"
-does. Also breaks "das" on that dot.
-
-When doing "yy" with the cursor on a TAB the ruler could be wrong and "k"
-moved the cursor to another column.
-
-When 'commentstring' is '"%s' and there is a double quote in the line a double
-quote before the fold marker isn't removed in the text displayed for a closed
-fold.
-
-In Visual mode, when 'bin' and 'eol' set, g CTRL-G counted the last line
-break, resulting in "selected 202 of 201 bytes".
-
-Motif: fonts were not used for dialog components. (Marcin Dalecki)
-
-Motif: After using a toolbar button the keyboard focus would be on the toolbar
-(Lesstif problem). (Marcin Dalecki)
-
-When using "y<C-V>`x" where mark x is in the first column, the last line was
-not included.
-
-Not all test scripts work properly on MS-Windows when checked out from CVS.
-Use a Vim command to fix all fileformats to dos before executing the tests.
-
-When using ":new" and the file fits in the window, lines could still be above
-the window. Now remove empty lines instead of keeping the relative position.
-
-Cmdline completion didn't work after ":let var1 var<Tab>".
-
-When using ":startinsert" or ":startreplace" when already in Insert mode
-(possible when using CTRL-R =), pressing Esc would directly restart Insert
-mode. (Peter Winters)
-
-"2daw" didn't work at end of file if the last word is a single character.
-
-Completion for ":next a'<Tab>" put a backslash before single quote, but it was
-not removed when editing a file. Now halve backslashes in save_patterns().
-Also fix expanding a file name with the shell that contains "\'".
-
-When doing "1,6d|put" only "fewer lines" was reported. Now a following "more
-lines" overwrites the message.
-
-Configure could not handle "-Dfoo=long\ long" in the TCL config output.
-
-When searching backwards, using a pattern that matches a newline and uses \zs
-after that, didn't find a match. Could also get a hang or end up in the right
-column in the wrong line.
-
-When $LANG is "sl" for slovenian, the slovak menu was used, since "slovak"
-starts with "sl".
-
-When 'paste' is set in the GUI the Paste toolbar button doesn't work. Clear
-'paste' when starting the GUI.
-
-A message about a wrong viminfo line included the trailing NL.
-
-When 'paste' is set in the GUI the toolbar button doesn't work in Insert mode.
-Use ":exe" in menu.vim to avoid duplicating the commands, instead of using a
-mapping.
-
-Treat "mlterm" as an xterm-like terminal. (Seiichi Sato)
-
-":z.4" and ":z=4" didn't work Vi compatible.
-
-When sourcing a file, editing it and sourcing it again, it could appear twice
-in ":scriptnames" and get a new <SID>, because the inode has changed.
-
-When $SHELL is set but empty the 'shell' option would be empty. Don't use an
-empty $SHELL value.
-
-A command "w! file" in .vimrc or $EXINIT didn't work. Now it writes an empty
-file.
-
-When a CTRL-F command at the end of the file failed, the cursor was still
-moved to the start of the line. Now it remains where it is.
-
-When using ":s" or "&" to repeat the last substitute and "$" was used to put
-the cursor in the last column, put the cursor in the last column again. This
-is Vi compatible.
-
-Vim is not fully POSIX compliant but sticks with traditional Vi behavior.
-Added a few flags in 'cpoptions' to behave the POSIX way when wanted. The
-$VIM_POSIX environment variable is checked to set the default.
-
-Appending to a register didn't insert a line break like Vi. Added the '>'
-flag to 'cpoptions' for this.
-
-Using "I" in a line with only blanks appended to the line. This is not Vi
-compatible. Added the 'H' flag in 'coptions' for this.
-
-When joining multiple lines the cursor would be at the last joint, but Vi
-leaves it at the position where "J" would put it. Added the 'q' flag in
-'cpoptions' for this.
-
-Autoindent didn't work for ":insert" and ":append".
-
-Using ":append" in an empty buffer kept the dummy line. Now it's deleted to
-be Vi compatible.
-
-When reading commands from a file and stdout goes to a terminal, would still
-request the xterm version. Vim can't read it, thus the output went to the
-shell and caused trouble there.
-
-When redirecting to a register with an invalid name the redirection would
-still be done (after an error message). Now reset "redir_reg". (Yegappan
-Lakshmanan)
-
-It was not possible to use a NL after a backslash in Ex mode. This is
-sometimes used to feed multiple lines to a shell command.
-
-When 'cmdheight' is set to 2 in .vimrc and the GUI uses the number of lines
-from the terminal we actually get 3 lines for the cmdline in gvim.
-
-When setting $HOME allocated memory would leak.
-
-Win32: bold characters may sometimes write in another character cell. Use
-unicodepdy[] as for UTF-8. (Taro Muraoka)
-
-":w fname" didn't work for files with 'buftype' set to "nofile".
-
-The method used to locate user commands for completion differed from when they
-are executed. Ambiguous command names were not completed properly.
-
-Incremental search may cause a crash when there is a custom statusline that
-indirectly invokes ":normal".
-
-Diff mode failed when $DIFF_OPTIONS was set in the environment. Unset it
-before invoking "diff".
-
-Completion didn't work after ":argdo", ":windo" and ":bufdo". Also for ":set
-&l:opt" and ":set &g:opt". (Peter Winters)
-
-When setting 'ttymouse' to "dec" in an xterm that supports the DEC mouse
-locator it doesn't work. Now switch off the mouse before selecting another
-mouse model.
-
-When the CursorHold event is triggered and the commands peek for typed
-characters the typeahead buffer may be messed up, e.g., when a mouse-up event
-is received. Avoid invoking the autocommands from the function waiting for a
-character, let it put K_CURSORHOLD in the input buffer.
-
-Removed the "COUNT" flag from ":argadd", to avoid ":argadd 1*" to be used like
-":1argadd *". Same for ":argdelete" and ":argedit".
-
-Avoid that $LANG is used for the menus when LC_MESSAGES is "en_US".
-
-Added backslashes before dashes in the vim.1 manual page to make the appear as
-real dashes. (Pierr Habouzit)
-
-Where "gq" left the cursor depended on the value of 'formatprg'. Now "gq"
-always leaves the cursor at the last line of the formatted text.
-
-When editing a compressed file, such as "changelog.Debian.gz" file, filetype
-detection may try to check the contents of the file while it's still
-compressed. Skip setting 'filetype' for compressed files until they have been
-decompressed. Required for patterns that end in a "*".
-
-Starting with an argument "+cmd" or "-S script" causes the cursor the be moved
-to the first line. That breaks a BufReadPost autocommand that uses g`".
-Don't move the cursor if it's somewhere past the first line.
-
-"gg=G" while 'modifiable' is off was uninterruptible.
-
-When 'encoding' is "sjis" inserting CTRL-V u d800 a few times causes a crash.
-Don't insert a DBCS character with a NUL second byte.
-
-In Insert mode CTRL-O <Home> didn't move the cursor. Made "ins_at_eol" global
-and reset it in nv_home().
-
-Wildcard expansion failed: ":w /tmp/$$.`echo test`". Don't put quotes around
-spaces inside backticks.
-
-After this sequence of commands: Y V p gv: the wrong line is selected. Now
-let "gv" select the text that was put, since the original text is deleted.
-This should be the most useful thing to do.
-
-":sleep 100u" sleeps for 100 seconds, not 100 usec as one might expect. Give
-an error message when the argument isn't recognized.
-
-In gui_mch_draw_string() in gui_w32.c "unibuflen" wasn't static, resulting in
-reallocating the buffer every time. (Alexei Alexandrov)
-
-When using a Python "atexit" function it was not invoked when Vim exits. Now
-call Py_Finalize() for that. (Ugo Di Girolamo)
-This breaks the thread stuff though, fixed by Ugo.
-
-GTK GUI: using a .vimrc with "set cmdheight=2 lines=43" and ":split" right
-after startup, the window layout is messed up. (Michael Schaap) Added
-win_new_shellsize() call in gui_init() to fix the topframe size.
-
-Trick to get ...MOUSE_NM not used when there are vertical splits. Now pass
-column -1 for the left most window and add MOUSE_COLOFF for others. Limits
-mouse column to 10000.
-
-searchpair() may hang when the end pattern has "\zs" at the end. Check that
-we find the same position again and advance one character.
-
-When in diff mode and making a change that causes the "changed" highlighting
-to disappear or reappear, it was still highlighted in another window.
-
-When a ":next" command fails because the user selects "Abort" at the ATTENTION
-prompt the argument index was advanced anyway.
-
-When "~" is in 'iskeyword' the "gd" doesn't work, it's used for the previous
-substitute pattern. Put "\V" in the pattern to avoid that.
-
-Use of sprintf() sometimes didn't check properly for buffer overflow. Also
-when using smsg(). Included code for snprintf() to avoid having to do size
-checks where invoking them
-
-":help \=<Tab>" didn't find "sub-replace-\=". Wild menu for help tags didn't
-show backslashes. ":he :s\=" didn't work.
-
-When reading an errorfile "~/" in a file name was not expanded.
-
-GTK GUI: When adding a scrollbar (e.g. when using ":vsplit") in a script or
-removing it the window size may change. GTK sends us resize events when we
-change the window size ourselves, but they may come at an unexpected moment.
-Peek for a character to get any window resize events and fix 'columns' and
-'lines' to undo this.
-
-When using the GTK plug mechanism, resizing and focus was not working
-properly. (Neil Bird)
-
-After deleting files from the argument list a session file generated with
-":mksession" may contain invalid ":next" commands.
-
-When 'shortmess' is empty and 'keymap' set to accents, in Insert mode CTRL-N
-may cause the hit-enter prompt. Typing 'a then didn't result in the accented
-character. Put the character typed at the prompt back in the typeahead buffer
-so that mapping is done in the right mode.
-
-setbufvar() and setwinvar() did not give error messages.
-
-It was possible to set a variable with an illegal name, e.g. with setbufvar().
-It was possible to define a function with illegal name, e.t. ":func F{-1}()"
-
-CTRL-W F and "gf" didn't use the same method to get the file name.
-
-When reporting a conversion error the line number of the last error could be
-given. Now report the first encountered error.
-
-When using ":e ++enc=name file" and iconv() was used for conversion an error
-caused a fall-back to no conversion. Now replace a character with '?' and
-continue.
-
-When opening a new buffer the local value of 'bomb' was not initialized from
-the global value.
-
-Win32: When using the "Edit with Vim" entry the file name was limited to about
-200 characters.
-
-When using command line completion for ":e *foo" and the file "+foo" exists
-the resulting command ":e +foo" doesn't work. Now insert a backslash: ":e
-\+foo".
-
-When the translation of "-- More --" was not 10 characters long the following
-message would be in the wrong position.
-
-At the more-prompt the last character in the last line wasn't drawn.
-
-When deleting non-existing text while 'virtualedit' is set the '[ and '] marks
-were not set.
-
-Win32: Could not use "**/" in 'path', it had to be "**\".
-
-The search pattern "\n" did not match at the end of the last line.
-
-Searching for a pattern backwards, starting on the NUL at the end of the line
-and 'encoding' is "utf-8" would match the pattern just before it incorrectly.
-Affected searchpair('/\*', '', '\*/').
-
-For the Find/Replace dialog it was possible that not finding the text resulted
-in an error message while redrawing, which cleared the syntax highlighting
-while it was being used, resulting in a crash. Now don't clear syntax
-highlighting, disable it with b_syn_error.
-
-Win32: Combining UTF-8 characters were drawn on the previous character.
-Could be noticed with a Thai font.
-
-Output of ":function" could leave some of the typed text behind. (Yegappan
-Lakshmanan)
-
-When the command line history has only a few lines the command line window
-would be opened with these lines above the first window line.
-
-When using a command line window for search strings ":qa" would result in
-searching for "qa" instead of quitting all windows.
-
-GUI: When scrolling with the scrollbar and there is a line that doesn't fit
-redrawing may fail. Make sure w_skipcol is valid before redrawing.
-
-Limit the values of 'columns' and 'lines' to avoid an overflow in Rows *
-Columns. Fixed bad effects when running out of memory (command line would be
-reversed, ":qa!" resulted in ":!aq").
-
-Motif: "gvim -iconic" opened the window anyway. (David Harrison)
-
-There is a tiny chance that a symlink gets created between checking for an
-existing file and creating a file. Use the O_NOFOLLOW for open() if it's
-available.
-
-In an empty line "ix<CTRL-O>0" moved the cursor to after the line instead of
-sticking to the first column.
-
-When using ":wq" and a BufWriteCmd autocmd uses inputsecret() the text was
-echoed anyway. Set terminal to raw mode in getcmdline().
-
-Unix: ":w a;b~c" caused an error in expanding wildcards.
-
-When appending to a file with ":w >>fname" in a buffer without a name, causing
-the buffer to use "fname", the modified flag was reset.
-
-When appending to the current file the "not edited" flag would be reset.
-":w" would overwrite the file accidentally.
-
-Unix: When filtering text with an external command Vim would still read input,
-causing text typed for the command (e.g., a password) to be eaten and echoed.
-Don't read input when the terminal is in cooked mode.
-
-The Cygwin version of xxd used CR/LF line separators. (Corinna Vinschen)
-
-Unix: When filtering text through a shell command some resulting text may be
-dropped. Now after detecting that the child has exited try reading some more
-of its output.
-
-When inside input(), using "CTRL-R =" and the expression throws an exception
-the command line was not abandoned but it wasn't used either. Now abandon
-typing the command line.
-
-'delcombine' was also used in Visual and Select mode and for commands like
-"cl". That was illogical and has been disabled.
-
-When recording while a CursorHold autocommand was defined special keys would
-appear in the register. Now the CursorHold event is not triggered while
-recording.
-
-Unix: the src/configure script used ${srcdir-.}, not all shells understand
-that. Use ${srcdir:-.} instead.
-
-When editing file "a" which is a symlink to file "b" that doesn't exist,
-writing file "a" to create "b" and then ":split b" resulted in two buffers on
-the same file with two different swapfile names. Now set the inode in the
-buffer when creating a new file.
-
-When 'esckeys' is not set don't send the xterm code to request the version
-string, because it may cause trouble in Insert mode.
-
-When evaluating an expression for CTRL-R = on the command line it was possible
-to call a function that opens a new window, resulting in errors for
-incremental search, and many other nasty things were possible. Now use the
-|textlock| to disallow changing the buffer or jumping to another window
-to protect from unexpected behavior. Same for CTRL-\ e.
-
-"d(" deleted the character under the cursor, while the documentation specified
-an exclusive motion. Vi also doesn't delete the character under the cursor.
-
-Shift-Insert in Insert mode could put the cursor before the last character
-when it just fits in the window. In coladvance() don't stop at the window
-edge when filling with spaces and when in Insert mode. In mswin.vim avoid
-getting a beep from the "l" command.
-
-Win32 GUI: When Alt-F4 is used to close the window and Cancel is selected in
-the dialog then Vim would insert <M-F4> in the text. Now it's ignored.
-
-When ":silent! {cmd}" caused the swap file dialog, which isn't displayed,
-there would still be a hit-enter prompt.
-
-Requesting the termresponse (|t_RV|) early may cause problems with "-c"
-arguments that invoke an external command or even "-c quit". Postpone it
-until after executing "-c" arguments.
-
-When typing in Insert mode so that a new line is started, using CTRL-G u to
-break undo and start a new change, then joining the lines with <BS> caused
-undo info to be missing. Now reset the insertion start point.
-
-Syntax HL: When a region start match has a matchgroup and an offset that
-happens to be after the end of the line then it continued in the next line and
-stopped at the region end match, making the region continue after that.
-Now check for the column being past the end of the line in syn_add_end_off().
-
-When changing a file, setting 'swapfile' off and then on again, making another
-change and killing Vim, then some blocks may be missing from the swapfile.
-When 'swapfile' is switched back on mark all blocks in the swapfile as dirty.
-Added mf_set_dirty().
-
-Expanding wildcards in a command like ":e aap;<>!" didn't work. Put
-backslashes before characters that are special to the shell. (Adri Verhoef)
-
-A CursorHold autocommand would cause a message to be cleared. Don't show the
-special key for the event for 'showcmd'.
-
-When expanding a file name for a shell command, as in "!cmd foo<Tab>" or ":r
-!cmd foo<Tab>" also escape characters that are special for the shell:
-"!;&()<>".
-
-When the name of the buffer was set by a ":r fname" command |cpo-f| no
-autocommands were triggered to notify about the change in the buffer list.
-
-In the quickfix buffer 'bufhidden' was set to "delete", which caused closing
-the quickfix window to leave an unlisted "No Name" buffer behind every time.
-
-Win32: when using two screens of different size, setting 'lines' to a large
-value didn't fill the whole screen. (SungHyun Nam)
-
-Win32 installer: The generated _vimrc contained an absolute path to diff.exe.
-After upgrading it becomes invalid. Now use $VIMRUNTIME instead.
-
-The command line was cleared to often when 'showmode' was set and ":silent
-normal vy" was used. Don't clear the command line unless the mode was
-actually displayed. Added the "mode_displayed" variable.
-
-The "load session" toolbar item could not handle a space or other special
-characters in v:this_session.
-
-":set sta ts=8 sw=4 sts=2" deleted 4 spaces halfway a line instead of 2.
-
-In a multi-byte file the foldmarker could be recognized in the trail byte.
-(Taro Muraoka)
-
-Pasting with CTRL-V and menu didn't work properly when some commands are
-mapped. Use ":normal!" instead of ":normal". (Tony Apuzzo)
-
-Crashed when expanding a file name argument in backticks.
-
-In some situations the menu and scrollbar didn't work, when the value contains
-a CSI byte. (Yukihiro Nakadaira)
-
-GTK GUI: When drawing the balloon focus changes and we might get a key release
-event that removed the balloon again. Ignore the key release event.
-
-'titleold' was included in ":mkexrc" and ":mksession" files.
-
-":set background&" didn't use the same logic as was used when starting up.
-
-When "umask" is set such that nothing is writable then the viminfo file would
-be written without write permission. (Julian Bridle)
-
-Motif: In diff mode dragging one scrollbar didn't update the scrollbar of the
-other diff'ed window.
-
-When editing in an xterm with a different number of colors than expected the
-screen would be cleared and redrawn, causing the message about the edited file
-to be cleared. Now set "keep_msg" to redraw the last message.
-
-For a color terminal: When the Normal HL uses bold, possibly to make the color
-lighter, and another HL group specifies a color it might become light as well.
-Now reset bold if a HL group doesn't specify bold itself.
-
-When using 256 color xterm the color 255 would show up as color 0. Use a
-short instead of a char to store the color number.
-
-ml_get errors when searching for "\n\zs" in an empty file.
-
-When selecting a block and using "$" to select until the end of every line and
-not highlighting the character under the cursor the first character of the
-block could be unhighlighted.
-
-When counting words for the Visual block area and using "$" to select until
-the end of every line only up to the length of the last line was counted.
-
-"dip" in trailing empty lines left one empty line behind.
-
-The script ID was only remembered globally for each option. When a buffer- or
-window-local option was set the same "last set" location was changed for all
-buffers and windows. Now remember the script ID for each local option
-separately.
-
-GUI: The "Replace All" button didn't handle backslashes in the replacement in
-the same way as "Replace". Escape backslashes so that they are taken
-literally.
-
-When using Select mode from Insert mode and typing a key, causing lines to be
-deleted and a message displayed, delayed the effect of inserting the key.
-Now overwrite the message without delay.
-
-When 'whichwrap' includes "l" then "dl" and "yl" on a single letter line
-worked differently. Now recognize all operators when using "l" at the end of
-a line.
-
-GTK GUI: when the font selector returned a font name with a comma in it then
-it would be handled like two font names. Now put a backslash before the
-comma.
-
-MS-DOS, Win32: When 'encoding' defaults to "latin1" then the value for
-'iskeyword' was still for CPxxx. And when 'nocompatible' was set 'isprint'
-would also be the wrong value.
-
-When a command was defined not to take arguments and no '|' no warning message
-would be given for using a '|'. Also with ":loadkeymap".
-
-Motif: When using a fontset and 'encoding' is "utf-8" and sizeof(wchar_t) !=
-sizeof(XChar2b) then display was wrong. (Yukihiro Nakadaira)
-
-":all" always set the current window to the first window, even when it
-contains a buffer that is not in the argument list (can't be closed because it
-is modified). Now go to the window that has the first item of the argument
-list.
-
-GUI: To avoid left-over pixels from bold text all characters after a character
-with special attributes were redrawn. Now only do this for characters that
-actually are bold. Speeds up displaying considerably.
-
-When only highlighting changes and the text is scrolled at the same time
-everything is redrawn instead of using a scroll and updating the changed text.
-E.g., when using ":match" to highlight a paren that the cursor landed on.
-Added SOME_VALID: Redraw the whole window but also try to scroll to minimize
-redrawing.
-
-Win32: When using Korean IME making it active didn't work properly. (Moon,
-Yu-sung, 2005 March 21)
-
-Ruby interface: when inserting/deleting lines display wasn't updated. (Ryan
-Paul)
-
---- fixes since Vim 7.0b ---
-
-Getting the GCC version in configure didn't work with Solaris sed. First
-strip any "darwin." and then get the version number.
-
-The "autoload" directory was missing from the self-installing executable for
-MS-Windows.
-
-The MS-Windows install program would find "vimtutor.bat" in the install
-directory. After changing to "c:" also change to "\" to avoid looking in the
-install directory.
-
-To make the 16 bit DOS version compile exclude not used highlight
-initializations and build a tiny instead of small version.
-
-finddir() and findfile() accept a negative count and return a List then.
-
-The Python indent file contained a few debugging statements, removed.
-
-Expanding {} for a function name, resulting in a name starting with "s:" was
-not handled correctly.
-
-Spelling: renamed COMPOUNDMAX to COMPOUNDWORDMAX. Added several items to be
-able to handle the new Hungarian dictionary.
-
-Mac: Default to building for the current platform only, that is much faster
-than building a universal binary. Also, using Perl/Python/etc. only works for
-the current platform.
-
-The time on undo messages disappeared for someone. Using %T for strftime()
-apparently doesn't work everywhere. Use %H:%M:%S instead.
-
-Typing BS at the "z=" prompt removed the prompt.
-
---- fixes and changes since Vim 7.0c ---
-
-When jumping to another tab page the Vim window size was always set, even when
-nothing in the layout changed.
-
-Win32 GUI tab pages line wasn't always enabled. Do a proper check for the
-compiler version.
-
-Win32: When switching between tab pages the Vim window was moved when part of
-it was outside of the screen. Now only do that in the direction of a size
-change.
-
-Win32: added menu to GUI tab pages line. (Yegappan Lakshmanan)
-
-Mac: Added document icons. (Benji Fisher)
-
-Insert mode completion: Using Enter to accept the current match causes
-confusion. Use CTRL-Y instead. Also, use CTRL-E to go back to the typed
-text.
-
-GUI: When there are left and right scrollbars, ":tabedit" kept them instead of
-using the one that isn't needed.
-
-Using "gP" to replace al the text could leave the cursor below the last line,
-causing ml_get errors.
-
-When 'cursorline' is set don't use the highlighting when Visual mode is
-active, otherwise it's difficult to see the selected area.
-
-The matchparen plugin restricts the search to 100 lines, to avoid a long delay
-when there are closed folds.
-
-Sometimes using CTRL-X s to list spelling suggestions used text from another
-line.
-
-Win32: Set the default for 'isprint' back to the wrong default "@,~-255",
-because many people use Windows-1252 while 'encoding' is "latin1".
-
-GTK: Added a workaround for gvim crashing when used over an untrusted ssh
-link, caused by GTK doing something nasty. (Ed Catmur)
-
-Win32: The font used for the tab page labels is too big. Use the system menu
-font. (George Reilly)
-
-Win32: Adjusting the window position and size to keep it on the screen didn't
-work properly when the taskbar is on the left or top of the screen.
-
-The installman.sh and installml.sh scripts use ${10}, that didn't work with
-old shells. And use "test -f" instead of "test -e".
-
-Win32: When 'encoding' was set in the vimrc then a directory argument for diff
-mode didn't work.
-
-GUI: at the inputlist() prompt the cursorshape was adjusted as if the windows
-were still at their old position.
-
-The parenmatch plugin didn't remember the highlighting per window.
-
-Using ":bd" for a buffer that's the current window in another tab page caused
-a crash.
-
-For a new tab page the 'scroll' option wasn't set to a good default.
-
-Using an end offset for a search "/pat/e" didn't work properly for multi-byte
-text. (Yukihiro Nakadaira)
-
-":s/\n/,/" doubled the text when used on the last line.
-
-When "search" is in 'foldopen' "[s" and "]s" now open folds.
-
-When using a numbered function "dict" can be omitted, but "self" didn't work
-then. Always add FC_DICT to the function flags when it's part of a
-dictionary.
-
-When "--remote-tab" executes locally it left an empty tab page.
-
-"gvim -u NONE", ":set cursorcolumn", "C" in the second line didn't update
-text. Do update further lines even though the "$" is displayed.
-
-VMS: Support GTK better, also enable +clientserver. (Zoltan Arpadffy)
-
-When highlighting of statusline or tabline is changed there was no redraw to
-show the effect.
-
-Mac: Added "CFBundleIdentifier" to infplist.xml.
-
-Added tabpage-local variables t:var.
-
-Win32: Added double-click in tab pages line creates new tab. (Yegappan
-Lakshmanan)
-
-Motif: Added GUI tab pages line. (Yegappan Lakshmanan)
-
-Fixed crash when 'lines' was set to 1000 in a modeline.
-
-When init_spellfile() finds a writable directory in 'runtimepath' but it
-doesn't contain a "spell" directory, create one.
-
-Win32: executable() also finds "xxd" in the directory where Vim was started,
-but "!xxd" doesn't work. Append the Vim starting directory to $PATH.
-
-The tab page labels are shortened, directory names are reduced to a single
-letter by default. Added the pathshorten() function to allow a user to do the
-same.
-
-":saveas" now resets 'readonly' if the file was successfully written.
-
-Set $MYVIMRC file to the first found .vimrc file.
-Set $MYGVIMRC file to the first found .gvimrc file.
-Added menu item "Startup Settings" that edits the $MYVIMRC file
-
-Added matcharg().
-
-Error message E745 appeared twice. Renamed one to E786.
-
-Fixed crash when using "au BufRead * Sexplore" and doing ":help". Was wiping
-out a buffer that's still in a window.
-
-":hardcopy" resulted in an error message when 'encoding' is "utf-8" and
-'printencoding' is empty. Now it assumes latin1. (Mike Williams)
-
-The check for the toolbar feature for Motif, depending on certain included
-files, wasn't detailed enough, causing building to fail in gui_xmebw.c.
-
-Using CTRL-E in Insert mode completion after CTRL-P inserted the first match
-instead of the original text.
-
-When displaying a UTF-8 character with a zero lower byte Vim might think the
-previous character is double-wide.
-
-The "nbsp" item of 'listchars' didn't work when 'encoding' was utf-8.
-
-Motif: when Xm/xpm.h is missing gui_xmebw.c would not compile.
-HAVE_XM_UNHIGHLIGHTT_H was missing a T.
-
-Mac: Moved the .icns files into src/os_mac_rsrc, so that they can all be
-copied at once. Adjusted the Info.plist file for three icons.
-
-When Visual mode is active while switching to another tabpage could get ml_get
-errors.
-
-When 'list' is set, 'nowrap' the $ in the first column caused 'cursorcolumn'
-to move to the right.
-
-When a line wraps, 'cursorcolumn' was never displayed past the end of the
-line.
-
-'autochdir' was only available when compiled with NetBeans and GUI. Now it's
-a separate feature, also available in the "big" version.
-
-Added CTRL-W gf: open file under cursor in new tab page.
-
-When using the menu in the tab pages line, "New Tab" opens the new tab before
-where the click was. Beyond the labels the new tab appears at the end instead
-of after the current tab page.
-
-Inside a mapping with an expression getchar() could not be used.
-
-When vgetc is used recursively vgetc_busy protects it from being used
-recursively. But after a ":normal" command the protection was reset.
-
-":s/a/b/n" didn't work when 'modifiable' was off.
-
-When $VIMRUNTIME includes a multi-byte character then rgb.txt could not be
-found. (Yukihiro Nakadaira)
-
-":mkspell" didn't work correctly for non-ASCII affix flags when conversion is
-needed on the spell file.
-
-glob('/dir/\$ABC/*') didn't work.
-
-When using several tab pages and changing 'cmdheight' the display could become
-messed up. Now store the value of 'cmdheight' separately for each tab page.
-
-The user of the Enter key while the popup menu is visible was still confusing.
-Now use Enter to select the match after using a cursor key.
-
-Added "usetab" to 'switchbuf'.
-
-
---- fixes and changes since Vim 7.0d ---
-
-Added CTRL-W T: move a window to a new tab page.
-
-Using CTRL-X s in Insert mode to complete spelling suggestions and using BS
-deleted characters before the bad word.
-
-A few small fixes for the VMS makefile. (Zoltan Arpadffy)
-
-With a window of 91 lines 45 cols, ":vsp" scrolled the window. Copy w_wrow
-when splitting a window and skip setting the height when it's already at the
-right value.
-
-Using <silent> in a mapping with a shell command and the GUI caused redraw
-to use wrong attributes.
-
-Win32: Using MSVC 4.1 for install.exe resulted in the start menu items to be
-created in the administrator directory instead of "All Users". Define the
-CSIDL_ items if they are missing.
-
-Motif: The GUI tabline did not use the space above the right scrollbar. Work
-around a bug in the Motif library. (Yegappan Lakshmanan)
-
-The extra files for XML Omni completion are now also installed.
-|xml-omni-datafile|
-
-GTK GUI: when 'm' is missing from 'guioptions' during startup and pressing
-<F10> GTK produced error messages. Now do create the menu but disable it just
-after the first gui_mch_update().
-
-":mkspell" doesn't work well with the Hungarian dictionary from the Hunspell
-project. Back to the Myspell dictionary.
-
-In help files hide the | used around tags.
-
-Renamed pycomplete to pythoncomplete.
-
-Added "tabpages" to 'sessionoptions'.
-
-When 'guitablabel' is set the effect wasn't visible right away.
-
-Fixed a few 'cindent' errors.
-
-When completing menu names, e.g., after ":emenu", don't sort the entries but
-keep them in the original order.
-
-Fixed a crash when editing a directory in diff mode. Don't trigger
-autocommands when executing the diff command.
-
-Getting a keystroke could get stuck if 'encoding' is a multi-byte encoding and
-typing a special key.
-
-When 'foldignore' is set the folds were not updated right away.
-
-When a list is indexed with [a : b] and b was greater than the length an error
-message was given. Now silently truncate the result.
-
-When using BS during Insert mode completion go back to the original text, so
-that CTRL-N selects the first matching entry.
-
-Added the 'M' flag to 'cinoptions'.
-
-Win32: Make the "gvim --help" window appear in the middle of the screen
-instead of at an arbitrary position. (Randall W. Morris)
-
-Added gettabwinvar() and settabwinvar().
-
-Command line completion: pressing <Tab> after ":e /usr/*" expands the whole
-tree, because it becomes ":e /usr/**". Don't add a star if there already is
-one.
-
-Added grey10 to grey90 to all GUIs, so that they can all be used for
-initializing highlighting. Use grey40 for CursorColumn and CursorLine when
-'background' is "dark".
-
-When reading a file and using iconv for conversion, an incomplete byte
-sequence at the end caused problems. (Yukihiro Nakadaira)
-
-
---- fixes and changes since Vim 7.0e ---
-
-Default color for MatchParen when 'background' is "dark" is now DarkCyan.
-
-":syn off" had to be used twice in a file that sets 'syntax' in a modeline.
-(Michael Geddes)
-
-When using ":vsp" or ":sp" the available space wasn't used equally between
-windows. (Servatius Brandt)
-
-Expanding <cWORD> on a trailing blank resulted in the first word in the line
-if 'encoding' is a multi-byte encoding.
-
-Spell checking: spellbadword() didn't see a missing capital in the first word
-of a line. Popup menu now only suggest the capitalized word when appropriate.
-
-When using whole line completion CTRL-L moves through the matches but it
-didn't work when at the original text.
-
-When completion finds the longest match, don't go to the first match but stick
-at the original text, so that CTRL-N selects the first one.
-
-Recognize "zsh-beta" like "zsh" for setting the 'shellpipe' default. (James
-Vega)
-
-When using ":map <expr>" and the expression results in something with a
-special byte (NUL or CSI) then it didn't work properly. Now escape special
-bytes.
-
-The default Visual highlighting for a color xterm with 8 colors was a magenta
-background, which made magenta text disappear. Now use reverse in this
-specific situation.
-
-After completing the longest match "." didn't insert the same text. Repeating
-also didn't work correctly for multi-byte text.
-
-When using Insert mode completion and BS the whole word that was completed
-would result in all possible matches. Now stop completion. Also fixes that
-for spell completion the previous word was deleted.
-
-GTK: When 'encoding' is "latin1" and using non-ASCII characters in a file name
-the tab page label was wrong and an error message would be given.
-
-The taglist() function could hang on a tags line with a non-ASCII character.
-
-Win32: When 'encoding' differs from the system encoding tab page labels with
-non-ASCII characters looked wrong. (Yegappan Lakshmanan)
-
-Motif: building failed when Xm/Notebook.h doesn't exist. Added a configure
-check, disable GUI tabline when it's missing.
-
-Mac: When compiled without multi-byte feature the clipboard didn't work.
-
-It was possible to switch to another tab page when the cmdline window is open.
-
-Completion could hang when 'lines' is 6 and a preview window was opened.
-
-Added CTRL-W gF: open file under cursor in new tab page and jump to the line
-number following the file name.
-Added 'guitabtooltip'. Implemented for Win32 (Yegappan Lakshmanan).
-
-Added "throw" to 'debug' option: throw an exception for error messages even
-whey they would otherwise be ignored.
-
-When 'keymap' is set and a line contains an invalid entry could get a "No
-mapping found" warning instead of a proper error message.
-
-Motif: default to using XpmAttributes instead of XpmAttributes_21.
-
-A few more changes for 64 bit MS-Windows. (George Reilly)
-
-Got ml_get errors when doing "o" and selecting in other window where there are
-less lines shorter than the cursor position in the other window. ins_mouse()
-was using position in wrong window.
-
-Win32 GUI: Crash when giving a lot of messages during startup. Allocate twice
-as much memory for the dialog template.
-
-Fixed a few leaks and wrong pointer use reported by coverity.
-
-When showing menus the mode character was sometimes wrong.
-
-Added feedkeys(). (Yakov Lerner)
-
-Made matchlist() always return all submatches.
-
-Moved triggering QuickFixCmdPost to before jumping to the first location.
-
-Mac: Added the 'macatsui' option as a temporary work around for text drawing
-problems.
-
-Line completion on "/**" gave error messages when scanning an unloaded buffer.
-
---- fixes and changes since Vim 7.0f ---
-
-Win32: The height of the tab page labels is now adjusted to the font height.
-(Yegappan Lakshmanan)
-
-Win32: selecting the tab label was off by one. (Yegappan Lakshmanan)
-
-Added tooltips for Motif and GTK tab page labels. (Yegappan Lakshmanan)
-
-When 'encoding' is "utf-8" then ":help spell" would report an illegal byte and
-the file was not converted from latin1 to utf-8. Now retry with latin1 if
-reading the file as utf-8 results in illegal bytes.
-
-Escape the argument of feedkeys() before putting it in the typeahead buffer.
-(Yukihiro Nakadaira)
-
-Added the v:char variable for evaluating 'formatexpr'. (Yukihiro Nakadaira)
-
-With 8 colors Search highlighting combined with Statement highlighted text
-made the text disappear.
-
-VMS: avoid warnings for redefining MAX and MIN. (Zoltan Arpadffy)
-
-When 'virtualedit' includes "onemore", stopping Visual selection would still
-move the cursor left.
-
-Prevent that using CTRL-R = in Insert mode can start Visual mode.
-
-Fixed a crash that occurred when in Insert mode with completion active and a
-mapping caused edit() to be called recursively.
-
-When using CTRL-O in Insert mode just after the last character while
-'virtualedit' is "all", then typing CR moved the last character to the next
-line. Call coladvance() before starting the new line.
-
-When using |:shell| ignore clicks on the tab page labels. Also when using the
-command line window.
-
-When 'eventignore' is "all" then adding more to ignoring some events, e.g.,
-for ":vimgrep", would actually trigger more events.
-
-Win32: When a running Vim uses server name GVIM1 then "gvim --remote fname"
-didn't find it. When looking for a server name that doesn't end in a digit
-and it is not found then use another server with that name and a number (just
-like on Unix).
-
-When using "double" in 'spellsuggest' when the language doesn't support sound
-folding resulted in too many suggestions.
-
-Win32: Dropping a shortcut on the Vim icon didn't edit the referred file like
-editing it in another way would. Use fname_expand() in buf_set_name() instead
-of simply make the file name a full path.
-
-Using feedkeys() could cause Vim to hang.
-
-When closing another tab page from the tabline menu in Insert mode the tabline
-was not updated right away.
-
-The syntax menu didn't work in compatible mode.
-
-After using ":tag id" twice with the same "id", ":ts" and then ":pop" a ":ts"
-reported no matching tag. Clear the cached tag name.
-
-In Insert mode the matchparen plugin highlighted the wrong paren when there is
-a string just next to a paren.
-
-GTK: After opening a new tab page the text was sometimes not drawn correctly.
-Flush output and catch up with events when updating the tab page labels.
-
-In the GUI, using CTRL-W q to close the last window of a tab page could cause
-a crash.
-
-GTK: The tab pages line menu was not converted from 'encoding' to utf-8.
-
-Typing a multi-byte character or a special key at the hit-enter prompt did not
-work.
-
-When 'virtualedit' contains "onemore" CTRL-O in Insert mode still moved the
-cursor left when it was after the end of the line, even though it's allowed to
-be there.
-
-Added test for using tab pages.
-
-towupper() and towlower() were not used, because of checking for
-__STDC__ISO_10646__ instead of __STDC_ISO_10646__. (sertacyildiz)
-
-For ":map <expr>" forbid changing the text, jumping to another buffer and
-using ":normal" to avoid nasty side effects.
-
---- fixes and changes since Vim 7.0g ---
-
-Compilation error on HP-UX, use of "dlerr" must be inside a #ifdef.
-(Gary Johnson)
-
-Report +reltime feature in ":version" output.
-
-The tar and zip plugins detect failure to get the contents of the archive and
-edit the file as-is.
-
-When the result of 'guitablabel' is empty fall back to the default label.
-
-Fixed crash when using ":insert" in a while loop and missing "endwhile".
-
-"gt" and other commands could move to another window when |textlock| active
-and when the command line window was open.
-
-Spell checking a file with syntax highlighting and a bad word at the end of
-the line is ignored could make "]s" hang.
-
-Mac: inputdialog() didn't work when compiled with big features.
-
-Interrupting ":vimgrep" while it is busy loading a file left a modified and
-hidden buffer behind. Use enter_cleanup() and leave_cleanup() around
-wipe_buffer().
-
-When making 'keymap' empty the b:keymap_name variable wasn't deleted.
-
-Using CTRL-N that searches a long time, pressing space to interrupt the
-searching and accept the first match, the popup menu was still displayed
-briefly.
-
-When setting the Vim window height with -geometry the 'window' option could be
-at a value that makes CTRL-F behave differently.
-
-When opening a quickfix window in two tabs they used different buffers,
-causing redrawing problems later. Now use the same buffer for all quickfix
-windows. (Yegappan Lakshmanan)
-
-When 'mousefocus' is set moving the mouse to the text tab pages line would
-move focus to the first window. Also, the mouse pointer would jump to the
-active window.
-
-In a session file, when an empty buffer is wiped out, do this silently.
-
-When one window has the cursor on the last line and another window is resized
-to make that window smaller, the cursor line could go below the displayed
-lines. In win_new_height() subtract one from the available space.
-Also avoid that using "~" lines makes the window scroll down.
-
-Mac: When sourcing the "macmap.vim" script and then finding a .vimrc file the
-'cpo' option isn't set properly, because it was already set and restored.
-Added the <special> argument to ":map", so that 'cpo' doesn't need to be
-changed to be able to use <> notation. Also do this for ":menu" for
-consistency.
-
-When using "/encoding=abc" in a spell word list, only "bc" was used.
-
-When 'encoding' and 'printencoding' were both "utf-8" then ":hardcopy" didn't
-work. (Mike Williams)
-
-Mac: When building with "--disable-gui" the install directory would still be
-"/Applications" and Vim.app would be installed. Now install in /usr/local as
-usual for a console application.
-
-GUI: when doing completion and there is one match and still searching for
-another, the cursor was displayed at the end of the line instead of after the
-match. Now show the cursor after the match while still searching for matches.
-
-GUI: The mouse shape changed on the statusline even when 'mouse' was empty and
-they can't be dragged.
-
-GTK2: Selecting a button in the confirm() dialog with Tab or cursor keys and
-hitting Enter didn't select that button. Removed GTK 1 specific code. (Neil
-Bird)
-
-When evaluating 'balloonexpr' takes a long time it could be called
-recursively, which could cause a crash.
-
-exists() could not be used to detect whether ":2match" is supported. Added a
-check for it specifically.
-
-GTK1: Tab page labels didn't work. (Yegappan Lakshmanan)
-
-Insert mode completion: When finding matches use 'ignorecase', but when adding
-matches to the list don't use it, so that all words with different case are
-added, "word", "Word" and "WORD".
-
-When 'cursorline' and 'hlsearch' are set and the search pattern is "x\n"
-the rest of the line was highlighted as a match.
-
-Cursor moved while evaluating 'balloonexpr' that invokes ":isearch" and
-redirects the output. Don't move the cursor to the command line if msg_silent
-is set.
-
-exists() ignored text after a function name and option name, which could
-result in false positives.
-
-exists() ignored characters after the recognized word, which can be wrong when
-using a name with non-keyword characters. Specifically, these calls no longer
-allow characters after the name: exists('*funcname') exists('*funcname(...')
-exists('&option') exists(':cmd') exists('g:name') exists('g:name[n]')
-exists('g:name.n')
-
-Trigger the TabEnter autocommand only after entering the current window of the
-tab page, otherwise the commands are executed with an invalid current window.
-
-Win32: When using two monitors and Vim is on the second monitor, changing the
-width of the Vim window could make it jump to the first monitor.
-
-When scrolling back at the more prompt and the quitting a line of text would
-be left behind when 'cmdheight' is 2 or more.
-
-Fixed a few things for Insert mode completion, especially when typing BS,
-CTRL-N or a printable character while still searching for matches.
-
-
-==============================================================================
-VERSION 7.1 *version-7.1* *version7.1*
-
-This section is about improvements made between version 7.0 and 7.1.
-
-This is a bug-fix release, there are no fancy new features.
-
-
-Changed *changed-7.1*
--------
-
-Added setting 'mouse' in vimrc_example.vim.
-
-When building with MZscheme also look for include files in the "plt"
-subdirectory. That's where they are for FreeBSD.
-
-The Ruby interface module is now called "Vim" instead of "VIM". But "VIM" is
-an alias, so it's backwards compatible. (Tim Pope)
-
-
-Added *added-7.1*
------
-
-New syntax files:
- /var/log/messages (Yakov Lerner)
- Autohotkey (Nikolai Weibull)
- AutoIt v3 (Jared Breland)
- Bazaar commit file "bzr". (Dmitry Vasiliev)
- Cdrdao TOC (Nikolai Weibull)
- Cmusrc (Nikolai Weibull)
- Conary recipe (rPath Inc)
- Framescript (Nikolai Weibull)
- FreeBasic (Mark Manning)
- Hamster (David Fishburn)
- IBasic (Mark Manning)
- Initng (Elan Ruusamae)
- Ldapconf (Nikolai Weibull)
- Litestep (Nikolai Weibull)
- Privoxy actions file (Doug Kearns)
- Streaming Descriptors "sd" (Puria Nafisi Azizi)
-
-New tutor files:
- Czech (Lubos Turek)
- Hungarian (Arpad Horvath)
- Turkish (Serkan kkk)
- utf-8 version of Greek tutor.
- utf-8 version of Russian tutor.
- utf-8 version of Slowak tutor.
-
-New filetype plugins:
- Bst (Tim Pope)
- Cobol (Tim Pope)
- Fvwm (Gautam Iyer)
- Hamster (David Fishburn)
- Django HTML template (Dave Hodder)
-
-New indent files:
- Bst (Tim Pope)
- Cobol (Tim Pope)
- Hamster (David Fishburn)
- Django HTML template (Dave Hodder)
- Javascript
- JSP (David Fishburn)
-
-New keymap files:
- Bulgarian (Boyko Bantchev)
- Mongolian (Natsagdorj Shagdar)
- Thaana (Ibrahim Fayaz)
- Vietnamese (Samuel Thibault)
-
-Other new runtime files:
- Ada support files. (Neil Bird, Martin Krischik)
- Slovenian menu translations (Mojca Miklavec)
- Mono C# compiler plugin (Jarek Sobiecki)
-
-
-Fixed *fixed-7.1*
------
-
-Could not build the Win32s version. Added a few structure definitions in
-src/gui_w32.c
-
-
-Patch 7.0.001
-Problem: ":set spellsuggest+=10" does not work. (Suresh Govindachar)
-Solution: Add P_COMMA to the 'spellsuggest' flags.
-Files: src/option.c
-
-Patch 7.0.002
-Problem: C omni completion has a problem with tags files with a path
- containing "#" or "%".
-Solution: Escape these characters. (Sebastian Baberowski)
-Files: runtime/autoload/ccomplete.vim
-
-Patch 7.0.003
-Problem: GUI: clicking in the lower part of a label in the tab pages line
- while 'mousefocus' is set may warp the mouse pointer. (Robert
- Webb)
-Solution: Check for a negative mouse position.
-Files: src/gui.c
-
-Patch 7.0.004
-Problem: Compiler warning for debug_saved used before set. (Todd Blumer)
-Solution: Remove the "else" for calling save_dbg_stuff().
-Files: src/ex_docmd.c
-
-Patch 7.0.005 (extra)
-Problem: Win32: The installer doesn't remove the "autoload" and "spell"
- directories. (David Fishburn)
-Solution: Add the directories to the list to be removed.
-Files: nsis/gvim.nsi
-
-Patch 7.0.006
-Problem: Mac: "make shadow" doesn't make a link for infplist.xml. (Axel
- Kielhorn)
-Solution: Make the link.
-Files: src/Makefile
-
-Patch 7.0.007
-Problem: AIX: compiling fails for message.c. (Ruediger Hornig)
-Solution: Move the #if outside of memchr().
-Files: src/message.c
-
-Patch 7.0.008
-Problem: Can't call a function that uses both <SID> and {expr}. (Thomas)
-Solution: Check both the expanded and unexpanded name for <SID>.
-Files: src/eval.c
-
-Patch 7.0.009
-Problem: ml_get errors with both 'sidescroll' and 'spell' set.
-Solution: Use ml_get_buf() instead of ml_get(), get the line from the right
- buffer, not the current one.
-Files: src/spell.c
-
-Patch 7.0.010
-Problem: The spellfile plugin required typing login name and password.
-Solution: Use "anonymous" and "vim7user" by default. No need to setup a
- .netrc file.
-Files: runtime/autoload/spellfile.vim
-
-Patch 7.0.011
-Problem: Can't compile without the folding and with the eval feature.
-Solution: Add an #ifdef. (Vallimar)
-Files: src/option.c
-
-Patch 7.0.012
-Problem: Using the matchparen plugin, moving the cursor in Insert mode to a
- shorter line that ends in a brace, changes the preferred column
-Solution: Use winsaveview()/winrestview() instead of getpos()/setpos().
-Files: runtime/plugin/matchparen.vim
-
-Patch 7.0.013
-Problem: Insert mode completion: using CTRL-L to add an extra character
- also deselects the current match, making it impossible to use
- CTRL-L a second time.
-Solution: Keep the current match. Also make CTRL-L work at the original
- text, using the first displayed match.
-Files: src/edit.c
-
-Patch 7.0.014
-Problem: Compiling gui_xmebw.c fails on Dec Alpha Tru64. (Rolfe)
-Solution: Disable some code for Motif 1.2 and older.
-Files: src/gui_xmebw.c
-
-Patch 7.0.015
-Problem: Athena: compilation problems with modern compiler.
-Solution: Avoid type casts for lvalue. (Alexey Froloff)
-Files: src/gui_at_fs.c
-
-Patch 7.0.016
-Problem: Printing doesn't work for "dec-mcs" encoding.
-Solution: Add "dec-mcs", "mac-roman" and "hp-roman8" to the list of
- recognized 8-bit encodings. (Mike Williams)
-Files: src/mbyte.c
-
-Patch 7.0.017 (after 7.0.014)
-Problem: Linking gui_xmebw.c fails on Dec Alpha Tru64. (Rolfe)
-Solution: Adjust defines for Motif 1.2 and older.
-Files: src/gui_xmebw.c
-
-Patch 7.0.018
-Problem: VMS: plugins are not loaded on startup.
-Solution: Remove "**" from the path. (Zoltan Arpadffy)
-Files: src/main.c
-
-Patch 7.0.019
-Problem: Repeating "VjA789" may cause a crash. (James Vega)
-Solution: Check the cursor column after moving it to another line.
-Files: src/ops.c
-
-Patch 7.0.020
-Problem: Crash when using 'mousefocus'. (William Fulton)
-Solution: Make buffer for mouse coordinates 2 bytes longer. (Juergen Weigert)
-Files: src/gui.c
-
-Patch 7.0.021
-Problem: Crash when using "\\[" and "\\]" in 'errorformat'. (Marc Weber)
-Solution: Check for valid submatches after matching the pattern.
-Files: src/quickfix.c
-
-Patch 7.0.022
-Problem: Using buffer.append() in Ruby may append the line to the wrong
- buffer. (Alex Norman)
-Solution: Properly switch to the buffer to do the appending. Also for
- buffer.delete() and setting a buffer line.
-Files: src/if_ruby.c
-
-Patch 7.0.023
-Problem: Crash when doing spell completion in an empty line and pressing
- CTRL-E.
-Solution: Check for a zero pointer. (James Vega)
- Also handle a situation without a matching pattern better, report
- "No matches" instead of remaining in undefined CTRL-X mode. And
- get out of CTRL-X mode when typing a letter.
-Files: src/edit.c
-
-Patch 7.0.024
-Problem: It is possible to set arbitrary "v:" variables.
-Solution: Disallow setting "v:" variables that are not predefined.
-Files: src/eval.c
-
-Patch 7.0.025
-Problem: Crash when removing an element of a:000. (Nikolai Weibull)
-Solution: Mark the a:000 list with VAR_FIXED.
-Files: src/eval.c
-
-Patch 7.0.026
-Problem: Using libcall() may show an old error.
-Solution: Invoke dlerror() to clear a previous error. (Yukihiro Nakadaira)
-Files: src/os_unix.c
-
-Patch 7.0.027 (extra)
-Problem: Win32: When compiled with SNIFF gvim may hang on exit.
-Solution: Translate and dispatch the WM_USER message. (Mathias Michaelis)
-Files: src/gui_w48.c
-
-Patch 7.0.028 (extra)
-Problem: OS/2: Vim doesn't compile with gcc 3.2.1.
-Solution: Add argument to after_pathsep(), don't define vim_handle_signal(),
- define HAVE_STDARG_H. (David Sanders)
-Files: src/os_unix.c, src/vim.h, src/os_os2_cfg.h
-
-Patch 7.0.029
-Problem: getchar() may not position the cursor after a space.
-Solution: Position the cursor explicitly.
-Files: src/eval.c
-
-Patch 7.0.030
-Problem: The ":compiler" command can't be used in a FileChangedRO event.
- (Hari Krishna Dara)
-Solution: Add the CMDWIN flag to the ":compiler" command.
-Files: src/ex_cmds.h
-
-Patch 7.0.031
-Problem: When deleting a buffer the buffer-local mappings for Select mode
- remain.
-Solution: Add the Select mode bit to MAP_ALL_MODES. (Edwin Steiner)
-Files: src/vim.h
-
-Patch 7.0.032 (extra, after 7.0.027)
-Problem: Missing semicolon.
-Solution: Add the semicolon.
-Files: src/gui_w48.c
-
-Patch 7.0.033
-Problem: When pasting text, with the menu or CTRL-V, autoindent is removed.
-Solution: Use "x<BS>" to avoid indent to be removed. (Benji Fisher)
-Files: runtime/autoload/paste.vim
-
-Patch 7.0.034
-Problem: After doing completion and typing more characters or using BS
- repeating with "." didn't work properly. (Martin Stubenschrott)
-Solution: Don't put BS and other characters in the redo buffer right away,
- do this when finishing completion.
-Files: src/edit.c
-
-Patch 7.0.035
-Problem: Insert mode completion works when typed but not when replayed from
- a register. (Hari Krishna Dara)
- Also: Mappings for Insert mode completion don't always work.
-Solution: When finding a non-completion key in the input don't interrupt
- completion when it wasn't typed.
- Do use mappings when checking for typeahead while still finding
- completions. Avoids that completion is interrupted too soon.
- Use "compl_pending" in a different way.
-Files: src/edit.c
-
-Patch 7.0.036
-Problem: Can't compile with small features and syntax highlighting or the
- diff feature.
-Solution: Define LINE_ATTR whenever syntax highlighting or the diff feature
- is enabled.
-Files: src/screen.c
-
-Patch 7.0.037
-Problem: Crash when resizing the GUI window vertically when there is a line
- that doesn't fit.
-Solution: Don't redraw while the screen data is invalid.
-Files: src/screen.c
-
-Patch 7.0.038
-Problem: When calling complete() from an Insert mode expression mapping
- text could be inserted in an improper way.
-Solution: Make undo_allowed() global and use it in complete().
-Files: src/undo.c, src/proto/undo.pro, src/eval.c
-
-Patch 7.0.039
-Problem: Calling inputdialog() with a third argument in the console doesn't
- work.
-Solution: Make a separate function for input() and inputdialog(). (Yegappan
- Lakshmanan)
-Files: src/eval.c
-
-Patch 7.0.040
-Problem: When 'cmdheight' is larger than 1 using inputlist() or selecting
- a spell suggestion with the mouse gets the wrong entry.
-Solution: Start listing the first alternative on the last line of the screen.
-Files: src/eval.c, src/spell.c
-
-Patch 7.0.041
-Problem: cursor([1, 1]) doesn't work. (Peter Hodge)
-Solution: Allow leaving out the third item of the list and use zero for the
- virtual column offset.
-Files: src/eval.c
-
-Patch 7.0.042
-Problem: When pasting a block of text in Insert mode Vim hangs or crashes.
- (Noam Halevy)
-Solution: Avoid that the cursor is positioned past the NUL of a line.
-Files: src/ops.c
-
-Patch 7.0.043
-Problem: Using "%!" at the start of 'statusline' doesn't work.
-Solution: Recognize the special item when the option is being set.
-Files: src/option.c
-
-Patch 7.0.044
-Problem: Perl: setting a buffer line in another buffer may result in
- changing the current buffer.
-Solution: Properly change to the buffer to be changed.
-Files: src/if_perl.xs
-
-Patch 7.0.045 (extra)
-Problem: Win32: Warnings when compiling OLE version with MSVC 2005.
-Solution: Move including vim.h to before windows.h. (Ilya Bobir)
-Files: src/if_ole.cpp
-
-Patch 7.0.046
-Problem: The matchparen plugin ignores parens in strings, but not in single
- quotes, often marked with "character".
-Solution: Also ignore parens in syntax items matching "character".
-Files: runtime/plugin/matchparen.vim
-
-Patch 7.0.047
-Problem: When running configure the exit status is wrong.
-Solution: Handle the exit status properly. (Matthew Woehlke)
-Files: configure, src/configure
-
-Patch 7.0.048
-Problem: Writing a compressed file fails when there are parens in the name.
- (Wang Jian)
-Solution: Put quotes around the temp file name.
-Files: runtime/autoload/gzip.vim
-
-Patch 7.0.049
-Problem: Some TCL scripts are not recognized. (Steven Atkinson)
-Solution: Check for "exec wish" in the file.
-Files: runtime/scripts.vim
-
-Patch 7.0.050
-Problem: After using the netbeans interface close command a stale pointer
- may be used.
-Solution: Clear the pointer to the closed buffer. (Xaview de Gaye)
-Files: src/netbeans.c
-
-Patch 7.0.051 (after 7.0.44)
-Problem: The Perl interface doesn't compile or doesn't work properly.
-Solution: Remove the spaces before #ifdef and avoid an empty line above it.
-Files: src/if_perl.xs
-
-Patch 7.0.052
-Problem: The user may not be aware that the Vim server allows others more
- functionality than desired.
-Solution: When running Vim as root don't become a Vim server without an
- explicit --servername argument.
-Files: src/main.c
-
-Patch 7.0.053
-Problem: Shortening a directory name may fail when there are multi-byte
- characters.
-Solution: Copy the correct bytes. (Titov Anatoly)
-Files: src/misc1.c
-
-Patch 7.0.054
-Problem: Mac: Using a menu name that only has a mnemonic or accelerator
- causes a crash. (Elliot Shank)
-Solution: Check for an empty menu name. Also delete empty submenus that
- were created before detecting the error.
-Files: src/menu.c
-
-Patch 7.0.055
-Problem: ":startinsert" in a CmdwinEnter autocommand doesn't take immediate
- effect. (Bradley White)
-Solution: Put a NOP key in the typeahead buffer. Also avoid that using
- CTRL-C to go back to the command line moves the cursor left.
-Files: src/edit.c, src/ex_getln.c
-
-Patch 7.0.056
-Problem: "#!something" gives an error message.
-Solution: Ignore this line, so that it can be used in an executable Vim
- script.
-Files: src/ex_docmd.c
-
-Patch 7.0.057 (extra, after 7.0.45)
-Problem: Win32: Compilation problem with Borland C 5.5.
-Solution: Include vim.h as before. (Mark S. Williams)
-Files: src/if_ole.cpp
-
-Patch 7.0.058
-Problem: The gbk and gb18030 encodings are not recognized.
-Solution: Add aliases to cp936. (Edward L. Fox)
-Files: src/mbyte.c
-
-Patch 7.0.059
-Problem: The Perl interface doesn't compile with ActiveState Perl 5.8.8.
-Solution: Remove the __attribute__() items. (Liu Yubao)
-Files: src/if_perl.xs
-
-Patch 7.0.060 (after 7.0.51)
-Problem: Code for temporarily switching to another buffer is duplicated in
- quite a few places.
-Solution: Use aucmd_prepbuf() and aucmd_restbuf() also when FEAT_AUTOCMD is
- not defined.
-Files: src/buffer.c, src/eval.c, src/fileio.c, src/if_ruby.c,
- src/if_perl.xs, src/quickfix.c, src/structs.h
-
-Patch 7.0.061
-Problem: Insert mode completion for Vim commands may crash if there is
- nothing to complete.
-Solution: Instead of freeing the pattern make it empty, so that a "not
- found" error is given. (Yukihiro Nakadaira)
-Files: src/edit.c
-
-Patch 7.0.062
-Problem: Mac: Crash when using the popup menu for spell correction. The
- popup menu appears twice when letting go of the right mouse button
- early.
-Solution: Don't show the popup menu on the release of the right mouse
- button. Also check that a menu pointer is actually valid.
-Files: src/proto/menu.pro, src/menu.c, src/normal.c, src/term.c
-
-Patch 7.0.063
-Problem: Tiny chance for a memory leak. (coverity)
-Solution: Free pointer when next memory allocation fails.
-Files: src/eval.c
-
-Patch 7.0.064
-Problem: Using uninitialized variable. (Tony Mechelynck)
-Solution: When not used set "temp" to zero. Also avoid a warning for
- "files" in ins_compl_dictionaries().
-Files: src/edit.c
-
-Patch 7.0.065 (extra)
-Problem: Mac: left-right movement of the scrollwheel causes up-down
- scrolling.
-Solution: Ignore mouse wheel events that are not up-down. (Nicolas Weber)
-Files: src/gui_mac.c
-
-Patch 7.0.066
-Problem: After the popup menu for Insert mode completion overlaps the tab
- pages line it is not completely removed.
-Solution: Redraw the tab pages line after removing the popup menu. (Ori
- Avtalion)
-Files: src/popupmnu.c
-
-Patch 7.0.067
-Problem: Undo doesn't always work properly when using "scim" input method.
- Undo is split up when using preediting.
-Solution: Reset xim_has_preediting also when preedit_start_col is not
- MAXCOL. Don't split undo when <Left> is used while preediting.
- (Yukihiro Nakadaira)
-Files: src/edit.c, src/mbyte.c
-
-Patch 7.0.068
-Problem: When 'ignorecase' is set and using Insert mode completion,
- typing characters to change the list of matches, case is not
- ignored. (Hugo Ahlenius)
-Solution: Store the 'ignorecase' flag with the matches where needed.
-Files: src/edit.c, src/search.c, src/spell.c
-
-Patch 7.0.069
-Problem: Setting 'guitablabel' to %!expand(\%) causes Vim to free an
- invalid pointer. (Kim Schulz)
-Solution: Don't try freeing a constant string pointer.
-Files: src/buffer.c
-
-Patch 7.0.070
-Problem: Compiler warnings for shadowed variables and uninitialized
- variables.
-Solution: Rename variables such as "index", "msg" and "dup". Initialize
- variables.
-Files: src/edit.c, src/eval.c, src/ex_cmds.c, src/ex_cmds2.c,
- src/ex_docmd.c, src/gui_beval.c, src/gui_gtk.c, src/gui_gtk_x11.c,
- src/hardcopy.c, src/if_cscope.c, src/main.c, src/mbyte.c,
- src/memline.c, src/netbeans.c, src/normal.c, src/option.c,
- src/os_unix.c, src/quickfix.c, src/regexp.c, src/screen.c,
- src/search.c, src/spell.c, src/ui.c, src/undo.c, src/window.c,
- src/version.c
-
-Patch 7.0.071
-Problem: Using an empty search pattern may cause a crash.
-Solution: Avoid using a NULL pointer.
-Files: src/search.c
-
-Patch 7.0.072
-Problem: When starting the GUI fails there is no way to adjust settings or
- do something else.
-Solution: Add the GUIFailed autocommand event.
-Files: src/fileio.c, src/gui.c, src/vim.h
-
-Patch 7.0.073
-Problem: Insert mode completion: Typing <CR> sometimes selects the original
- text instead of keeping what was typed. (Justin Constantino)
-Solution: Don't let <CR> select the original text if there is no popup menu.
-Files: src/edit.c
-
-Patch 7.0.074 (extra)
-Problem: Win32: tooltips were not converted from 'encoding' to Unicode.
-Solution: Set the tooltip to use Unicode and do the conversion. Also
- cleanup the code for the tab pages tooltips. (Yukihiro Nakadaira)
-Files: src/gui_w32.c, src/gui_w48.c
-
-Patch 7.0.075
-Problem: winsaveview() did not store the actual value of the desired cursor
- column. This could move the cursor in the matchparen plugin.
-Solution: Call update_curswant() before using the value w_curswant.
-Files: src/eval.c
-
-Patch 7.0.076 (after 7.0.010)
-Problem: Automatic downloading of spell files only works for ftp.
-Solution: Don't add login and password for non-ftp URLs. (Alexander Patrakov)
-Files: runtime/autoload/spellfile.vim
-
-Patch 7.0.077
-Problem: ":unlet v:this_session" causes a crash. (Marius Roets)
-Solution: When trying to unlet a fixed variable give an error message.
-Files: src/eval.c
-
-Patch 7.0.078
-Problem: There are two error messages E46.
-Solution: Change the number for the sandbox message to E794.
-Files: src/globals.h
-
-Patch 7.0.079
-Problem: Russian tutor doesn't work when 'encoding' is "utf-8".
-Solution: Use tutor.ru.utf-8 as the master, and generate the other encodings
- from it. Select the right tutor depending on 'encoding'. (Alexey
- Froloff)
-Files: runtime/tutor/Makefile, runtime/tutor/tutor.vim,
- runtime/tutor/tutor.ru.utf-8
-
-Patch 7.0.080
-Problem: Generating auto/pathdef.c fails for CFLAGS with a backslash.
-Solution: Double backslashes in the string. (Alexey Froloff)
-Files: src/Makefile
-
-Patch 7.0.081
-Problem: Command line completion doesn't work for a shell command with an
- absolute path.
-Solution: Don't use $PATH when there is an absolute path.
-Files: src/ex_getln.c
-
-Patch 7.0.082
-Problem: Calling a function that waits for input may cause List and
- Dictionary arguments to be freed by the garbage collector.
-Solution: Keep a list of all arguments to internal functions.
-Files: src/eval.c
-
-Patch 7.0.083
-Problem: Clicking with the mouse on an item for inputlist() doesn't work
- when 'compatible' is set and/or when 'cmdheight' is more than one.
- (Christian J. Robinson)
-Solution: Also decrement "lines_left" when 'more' isn't set. Set
- "cmdline_row" to zero to get all mouse events.
-Files: src/message.c, src/misc1.c
-
-Patch 7.0.084
-Problem: The garbage collector may do its work while some Lists or
- Dictionaries are used internally, e.g., by ":echo" that runs into
- the more-prompt or ":echo [garbagecollect()]".
-Solution: Only do garbage collection when waiting for a character at the
- toplevel. Let garbagecollect() set a flag that is handled at the
- toplevel before waiting for a character.
-Files: src/eval.c, src/getchar.c, src/globals.h, src/main.c
-
-Patch 7.0.085
-Problem: When doing "make test" the viminfo file is modified.
-Solution: Use another viminfo file after setting 'compatible'.
-Files: src/testdir/test56.in
-
-Patch 7.0.086
-Problem: getqflist() returns entries for pattern and text with the number
- zero. Passing these to setqflist() results in the string "0".
-Solution: Use an empty string instead of the number zero.
-Files: src/quickfix.c
-
-Patch 7.0.087
-Problem: After ":file fname" and ":saveas fname" the 'autochdir' option
- does not take effect. (Yakov Lerner)
- Commands for handling 'autochdir' are repeated many times.
-Solution: Add the DO_AUTOCHDIR macro and do_autochdir(). Use it for
- ":file fname" and ":saveas fname".
-Files: src/proto/buffer.pro, src/buffer.c, src/ex_cmds.c, src/macros.h,
- src/netbeans.c, src/option.c, src/window.c
-
-Patch 7.0.088
-Problem: When compiled with Perl the generated prototypes have "extern"
- unnecessarily added.
-Solution: Remove the "-pipe" argument from PERL_CFLAGS.
-Files: src/auto/configure, src/configure.in
-
-Patch 7.0.089
-Problem: "ga" does not work properly for a non-Unicode multi-byte encoding.
-Solution: Only check for composing chars for utf-8. (Taro Muraoka)
-Files: src/ex_cmds.c
-
-Patch 7.0.090
-Problem: Cancelling the conform() dialog on the console with Esc requires
- typing it twice. (Benji Fisher)
-Solution: When the start of an escape sequence is found use 'timeoutlen' or
- 'ttimeoutlen'.
-Files: src/misc1.c
-
-Patch 7.0.091
-Problem: Using winrestview() while 'showcmd' is set causes the cursor to be
- displayed in the wrong position. (Yakov Lerner)
-Solution: Set the window topline properly.
-Files: src/eval.c
-
-Patch 7.0.092 (after 7.0.082 and 7.0.084)
-Problem: The list of internal function arguments is obsolete now that
- garbage collection is only done at the toplevel.
-Solution: Remove the list of all arguments to internal functions.
-Files: src/eval.c
-
-Patch 7.0.093
-Problem: The matchparen plugin can't handle a 'matchpairs' value where a
- colon is matched.
-Solution: Change the split() that is used to change 'matchpairs' into a
- List.
-Files: runtime/plugin/matchparen.vim
-
-Patch 7.0.094
-Problem: When a hidden buffer is made the current buffer and another file
- edited later, the file message will still be given. Using
- ":silent" also doesn't prevent the file message. (Marvin Renich)
-Solution: Reset the need_fileinfo flag when reading a file. Don't set
- need_fileinfo when msg_silent is set.
-Files: src/buffer.c, src/fileio.c
-
-Patch 7.0.095
-Problem: The Greek tutor is not available in utf-8. "el" is used for the
- language, only "gr" for the country is recognized.
-Solution: Add the utf-8 Greek tutor. Use it for conversion to iso-8859-7
- and cp737. (Lefteris Dimitroulakis)
-Files: runtime/tutor/Makefile, runtime/tutor/tutor.gr.utf-8,
- runtime/tutor/tutor.vim
-
-Patch 7.0.096
-Problem: taglist() returns the filename relative to the tags file, while
- the directory of the tags file is unknown. (Hari Krishna Dara)
-Solution: Expand the file name. (Yegappan Lakshmanan)
-Files: src/tag.c
-
-Patch 7.0.097
-Problem: ":tabclose N" that closes another tab page does not remove the tab
- pages line. Same problem when using the mouse.
-Solution: Adjust the tab pages line when needed in tabpage_close_other().
-Files: src/ex_docmd.c
-
-Patch 7.0.098
-Problem: Redirecting command output in a cmdline completion function
- doesn't work. (Hari Krishna Dara)
-Solution: Enable redirection when redirection is started.
-Files: src/ex_docmd.c, src/ex_getln.c
-
-Patch 7.0.099
-Problem: GUI: When the popup menu is visible using the scrollbar messes up
- the display.
-Solution: Disallow scrolling the current window. Redraw the popup menu
- after scrolling another window.
-Files: src/gui.c
-
-Patch 7.0.100
-Problem: "zug" may report the wrong filename. (Lawrence Kesteloot)
-Solution: Call home_replace() to fill NameBuff[].
-Files: src/spell.c
-
-Patch 7.0.101
-Problem: When the "~/.vim/spell" directory does not exist "zg" may create
- a wrong directory. "zw" doesn't work.
-Solution: Use the directory of the file name instead of NameBuff. For "zw"
- not only remove a good word but also add the word with "!".
-Files: src/spell.c
-
-Patch 7.0.102
-Problem: Redrawing cmdline is not correct when using SCIM.
-Solution: Don't call im_get_status(). (Yukihiro Nakadaira)
-Files: src/ex_getln.c
-
-Patch 7.0.103 (after 7.0.101)
-Problem: Compiler warning for uninitialized variable. (Tony Mechelynck)
-Solution: Init variable.
-Files: src/spell.c
-
-Patch 7.0.104
-Problem: The CursorHoldI event only triggers once in Insert mode. It also
- triggers after CTRL-V and other two-key commands.
-Solution: Set "did_cursorhold" before getting a second key. Reset
- "did_cursorhold" after handling a command.
-Files: src/edit.c, src/fileio.c
-
-Patch 7.0.105
-Problem: When using incremental search the statusline ruler isn't updated.
- (Christoph Koegl)
-Solution: Update the statusline when it contains the ruler.
-Files: src/ex_getln.c
-
-Patch 7.0.106
-Problem: The spell popup menu uses ":amenu", triggering mappings. Other
- PopupMenu autocommands are removed. (John Little)
-Solution: Use ":anoremenu" and use an autocmd group.
-Files: runtime/menu.vim
-
-Patch 7.0.107
-Problem: Incremental search doesn't redraw the text tabline. (Ilya Bobir)
- Also happens in other situations with one window in a tab page.
-Solution: Redraw the tabline after clearing the screen.
-Files: src/screen.c
-
-Patch 7.0.108 (extra)
-Problem: Amiga: Compilation problem.
-Solution: Have mch_mkdir() return a failure flag. (Willy Catteau)
-Files: src/os_amiga.c, src/proto/os_amiga.pro
-
-Patch 7.0.109
-Problem: Lisp indenting is confused by escaped quotes in strings. (Dorai
- Sitaram)
-Solution: Check for backslash inside strings. (Sergey Khorev)
-Files: src/misc1.c
-
-Patch 7.0.110
-Problem: Amiga: Compilation problems when not using libnix.
-Solution: Change a few #ifdefs. (Willy Catteau)
-Files: src/memfile.c
-
-Patch 7.0.111
-Problem: The gzip plugin can't handle filenames with single quotes.
-Solution: Add and use the shellescape() function. (partly by Alexey Froloff)
-Files: runtime/autoload/gzip.vim, runtime/doc/eval.txt, src/eval.c,
- src/mbyte.c, src/misc2.c, src/proto/misc2.pro
-
-Patch 7.0.112
-Problem: Python interface does not work with Python 2.5.
-Solution: Change PyMem_DEL() to Py_DECREF(). (Sumner Hayes)
-Files: src/if_python.c
-
-Patch 7.0.113
-Problem: Using CTRL-L in Insert completion when there is no current match
- may cause a crash. (Yukihiro Nakadaira)
-Solution: Check for compl_leader to be NULL
-Files: src/edit.c
-
-Patch 7.0.114
-Problem: When aborting an insert with CTRL-C an extra undo point is
- created in the GUI. (Yukihiro Nakadaira)
-Solution: Call gotchars() only when advancing.
-Files: src/getchar.c
-
-Patch 7.0.115
-Problem: When 'ignorecase' is set, Insert mode completion only adds "foo"
- and not "Foo" when both are found.
- A found match isn't displayed right away when 'completeopt' does
- not have "menu" or "menuone".
-Solution: Do not ignore case when checking if a completion match already
- exists. call ins_compl_check_keys() also when not using a popup
- menu. (Yukihiro Nakadaira)
-Files: src/edit.c
-
-Patch 7.0.116
-Problem: 64 bit Windows version reports "32 bit" in the ":version" output.
- (M. Veerman)
-Solution: Change the text for Win64.
-Files: src/version.c
-
-Patch 7.0.117
-Problem: Using "extend" on a syntax item inside a region with "keepend", an
- intermediate item may be truncated.
- When applying the "keepend" and there is an offset to the end
- pattern the highlighting of a contained item isn't adjusted.
-Solution: Use the seen_keepend flag to remember when to apply the "keepend"
- flag. Adjust the keepend highlighting properly. (Ilya Bobir)
-Files: src/syntax.c
-
-Patch 7.0.118
-Problem: printf() does not do zero padding for strings.
-Solution: Do allow zero padding for strings.
-Files: src/message.c
-
-Patch 7.0.119
-Problem: When going back from Insert to Normal mode the CursorHold event
- doesn't trigger. (Yakov Lerner)
-Solution: Reset "did_cursorhold" when leaving Insert mode.
-Files: src/edit.c
-
-Patch 7.0.120
-Problem: Crash when using CTRL-R = at the command line and entering
- "getreg('=')". (James Vega)
-Solution: Avoid recursiveness of evaluating the = register.
-Files: src/ops.c
-
-Patch 7.0.121
-Problem: GUI: Dragging the last status line doesn't work when there is a
- text tabline. (Markus Wolf)
-Solution: Take the text tabline into account when deciding to start modeless
- selection.
-Files: src/gui.c
-
-Patch 7.0.122
-Problem: GUI: When clearing after a bold, double-wide character half a
- character may be drawn.
-Solution: Check for double-wide character and redraw it. (Yukihiro Nakadaira)
-Files: src/screen.c
-
-Patch 7.0.123
-Problem: On SCO Openserver configure selects the wrong terminal library.
-Solution: Put terminfo before the other libraries. (Roger Cornelius)
- Also fix a small problem compiling on Mac without Darwin.
-Files: src/configure.in, src/auto/configure
-
-Patch 7.0.124
-Problem: getwinvar() obtains a dictionary with window-local variables, but
- it's always for the current window.
-Solution: Get the variables of the specified window. (Geoff Reedy)
-Files: src/eval.c
-
-Patch 7.0.125
-Problem: When "autoselect" is in the 'clipboard' option then the '< and '>
- marks are set while Visual mode is still active.
-Solution: Don't set the '< and '> marks when yanking the selected area for
- the clipboard.
-Files: src/normal.c
-
-Patch 7.0.126
-Problem: When 'formatexpr' uses setline() and later internal formatting is
- used undo information is not correct. (Jiri Cerny, Benji Fisher)
-Solution: Set ins_need_undo after using 'formatexpr'.
-Files: src/edit.c
-
-Patch 7.0.127
-Problem: Crash when swap files has invalid timestamp.
-Solution: Check return value of ctime() for being NULL.
-Files: src/memline.c
-
-Patch 7.0.128
-Problem: GUI: when closing gvim is cancelled because there is a changed
- buffer the screen isn't updated to show the changed buffer in the
- current window. (Krzysztof Kacprzak)
-Solution: Redraw when closing gvim is cancelled.
-Files: src/gui.c
-
-Patch 7.0.129
-Problem: GTK GUI: the GTK file dialog can't handle a relative path.
-Solution: Make the initial directory a full path before passing it to GTK.
- (James Vega) Also postpone adding the default file name until
- after setting the directory.
-Files: src/gui_gtk.c
-
-Patch 7.0.130 (extra)
-Problem: Win32: Trying to edit or write devices may cause Vim to get stuck.
-Solution: Add the 'opendevice' option, default off. Disallow
- reading/writing from/to devices when it's off.
- Also detect more devices by the full name starting with "\\.\".
-Files: runtime/doc/options.txt, src/fileio.c, src/option.c, src/option.h,
- src/os_win32.c
-
-Patch 7.0.131
-Problem: Win32: "vim -r" does not list all the swap files.
-Solution: Also check for swap files starting with a dot.
-Files: src/memline.c
-
-Patch 7.0.132 (after 7.0.130)
-Problem: Win32: Crash when Vim reads from stdin.
-Solution: Only use mch_nodetype() when there is a file name.
-Files: src/fileio.c
-
-Patch 7.0.133
-Problem: When searching included files messages are added to the history.
-Solution: Set msg_hist_off for messages about scanning included files.
- Set msg_silent to avoid message about wrapping around.
-Files: src/edit.c, src/globals.h, src/message.c, src/search.c
-
-Patch 7.0.134
-Problem: Crash when comparing a recursively looped List or Dictionary.
-Solution: Limit recursiveness for comparing to 1000.
-Files: src/eval.c
-
-Patch 7.0.135
-Problem: Crash when garbage collecting list or dict with loop.
-Solution: Don't use DEL_REFCOUNT but don't recurse into Lists and
- Dictionaries when freeing them in the garbage collector.
- Also add allocated Dictionaries to the list of Dictionaries to
- avoid leaking memory.
-Files: src/eval.c, src/proto/eval.pro, src/tag.c
-
-Patch 7.0.136
-Problem: Using "O" while matching parens are highlighted may not remove the
- highlighting. (Ilya Bobir)
-Solution: Also trigger CursorMoved when a line is inserted under the cursor.
-Files: src/misc1.c
-
-Patch 7.0.137
-Problem: Configure check for big features is wrong.
-Solution: Change "==" to "=". (Martti Kuparinen)
-Files: src/auto/configure, src/configure.in
-
-Patch 7.0.138 (extra)
-Problem: Mac: modifiers don't work with function keys.
-Solution: Use GetEventParameter() to obtain modifiers. (Nicolas Weber)
-Files: src/gui_mac.c
-
-Patch 7.0.139
-Problem: Using CTRL-PageUp or CTRL-PageDown in Insert mode to go to another
- tab page does not prepare for undo properly. (Stefano Zacchiroli)
-Solution: Call start_arrow() before switching tab page.
-Files: src/edit.c
-
-Patch 7.0.140 (after 7.0.134)
-Problem: Comparing recursively looped List or Dictionary doesn't work well.
-Solution: Detect comparing a List or Dictionary with itself.
-Files: src/eval.c
-
-Patch 7.0.141
-Problem: When pasting a while line on the command line an extra CR is added
- literally.
-Solution: Don't add the trailing CR when pasting with the mouse.
-Files: src/ex_getln.c, src/proto/ops.pro, src/ops.c
-
-Patch 7.0.142
-Problem: Using the middle mouse button in Select mode to paste text results
- in an extra "y". (Kriton Kyrimis)
-Solution: Let the middle mouse button replace the selected text with the
- contents of the clipboard.
-Files: src/normal.c
-
-Patch 7.0.143
-Problem: Setting 'scroll' to its default value was not handled correctly.
-Solution: Compare the right field to PV_SCROLL.
-Files: src/option.c
-
-Patch 7.0.144
-Problem: May compare two unrelated pointers when matching a pattern against
- a string. (Dominique Pelle)
-Solution: Avoid calling reg_getline() when REG_MULTI is false.
-Files: src/regexp.c
-
-Patch 7.0.145 (after 7.0.142)
-Problem: Compiler warning.
-Solution: Add type cast.
-Files: src/normal.c
-
-Patch 7.0.146
-Problem: When 'switchbuf' is set to "usetab" and the current tab has only a
- quickfix window, jumping to an error always opens a new window.
- Also, when the buffer is open in another tab page it's not found.
-Solution: Check for the "split" value of 'switchbuf' properly. Search in
- other tab pages for the desired buffer. (Yegappan Lakshmanan)
-Files: src/buffer.c, src/quickfix.c
-
-Patch 7.0.147
-Problem: When creating a session file and there are several tab pages and
- some windows have a local directory a short file name may be used
- when it's not valid. (Marius Roets)
- A session with multiple tab pages may result in "No Name" buffers.
- (Bill McCarthy)
-Solution: Don't enter tab pages when going through the list, only use a
- pointer to the first window in each tab page.
- Use "tabedit" instead of "tabnew | edit" when possible.
-Files: src/ex_docmd.c
-
-Patch 7.0.148
-Problem: When doing "call a.xyz()" and "xyz" does not exist in dictionary
- "a" there is no error message. (Yegappan Lakshmanan)
-Solution: Add the error message.
-Files: src/eval.c
-
-Patch 7.0.149
-Problem: When resizing a window that shows "~" lines the text sometimes
- jumps down.
-Solution: Remove code that uses "~" lines in some situations. Fix the
- computation of the screen line of the cursor. Also set w_skipcol
- to handle very long lines.
-Files: src/misc1.c, src/window.c
-
-Patch 7.0.150
-Problem: When resizing the Vim window scrollbinding doesn't work. (Yakov
- Lerner)
-Solution: Do scrollbinding in set_shellsize().
-Files: src/term.c
-
-Patch 7.0.151
-Problem: Buttons in file dialog are not according to Gnome guidelines.
-Solution: Swap Cancel and Open buttons. (Stefano Zacchiroli)
-Files: src/gui_gtk.c
-
-Patch 7.0.152
-Problem: Crash when using lesstif 2.
-Solution: Fill in the extension field. (Ben Hutchings)
-Files: src/gui_xmebw.c
-
-Patch 7.0.153
-Problem: When using cscope and opening the temp file fails Vim crashes.
- (Kaya Bekiroglu)
-Solution: Check for NULL pointer returned from mch_open().
-Files: src/if_cscope.c
-
-Patch 7.0.154
-Problem: When 'foldnextmax' is negative Vim can hang. (James Vega)
-Solution: Avoid the fold level becoming negative.
-Files: src/fold.c, src/syntax.c
-
-Patch 7.0.155
-Problem: When getchar() returns a mouse button click there is no way to get
- the mouse coordinates.
-Solution: Add v:mouse_win, v:mouse_lnum and v:mouse_col.
-Files: runtime/doc/eval.txt, src/eval.c, src/vim.h
-
-Patch 7.0.156 (extra)
-Problem: Vim doesn't compile for Amiga OS 4.
-Solution: Various changes for Amiga OS4. (Peter Bengtsson)
-Files: src/feature.h, src/mbyte.c, src/memfile.c, src/memline.c,
- src/os_amiga.c, src/os_amiga.h, src/pty.c
-
-Patch 7.0.157
-Problem: When a function is used recursively the profiling information is
- invalid. (Mikolaj Machowski)
-Solution: Put the start time on the stack instead of in the function.
-Files: src/eval.c
-
-Patch 7.0.158
-Problem: In a C file with ":set foldmethod=syntax", typing {<CR> on the
- last line results in the cursor being in a closed fold. (Gautam
- Iyer)
-Solution: Open fold after inserting a new line.
-Files: src/edit.c
-
-Patch 7.0.159
-Problem: When there is an I/O error in the swap file the cause of the error
- cannot be seen.
-Solution: Use PERROR() instead of EMSG() where possible.
-Files: src/memfile.c
-
-Patch 7.0.160
-Problem: ":@a" echoes the command, Vi doesn't do that.
-Solution: Set the silent flag in the typeahead buffer to avoid echoing the
- command.
-Files: src/ex_docmd.c, src/normal.c, src/ops.c, src/proto/ops.pro
-
-Patch 7.0.161
-Problem: Win32: Tab pages line popup menu isn't using the right encoding.
- (Yongwei Wu)
-Solution: Convert the text when necessary. Also fixes the Find/Replace
- dialog title. (Yegappan Lakshmanan)
-Files: src/gui_w48.c
-
-Patch 7.0.162
-Problem: "vim -o a b" when file "a" triggers the ATTENTION dialog,
- selecting "Quit" exits Vim instead of editing "b" only.
- When file "b" triggers the ATTENTION dialog selecting "Quit" or
- "Abort" results in editing file "a" in that window.
-Solution: When selecting "Abort" exit Vim. When selecting "Quit" close the
- window. Also avoid hit-enter prompt when selecting Abort.
-Files: src/buffer.c, src/main.c
-
-Patch 7.0.163
-Problem: Can't retrieve the position of a sign after it was set.
-Solution: Add the netbeans interface getAnno command. (Xavier de Gaye)
-Files: runtime/doc/netbeans.txt, src/netbeans.c
-
-Patch 7.0.164
-Problem: ":redir @+" doesn't work.
-Solution: Accept "@+" just like "@*". (Yegappan Lakshmanan)
-Files: src/ex_docmd.c
-
-Patch 7.0.165
-Problem: Using CTRL-L at the search prompt adds a "/" and other characters
- without escaping, causing the pattern not to match.
-Solution: Escape special characters with a backslash.
-Files: src/ex_getln.c
-
-Patch 7.0.166
-Problem: Crash in cscope code when connection could not be opened.
- (Kaya Bekiroglu)
-Solution: Check for the file descriptor to be NULL.
-Files: src/if_cscope.c
-
-Patch 7.0.167
-Problem: ":function" redefining a dict function doesn't work properly.
- (Richard Emberson)
-Solution: Allow a function name to be a number when it's a function
- reference.
-Files: src/eval.c
-
-Patch 7.0.168
-Problem: Using uninitialized memory and memory leak. (Dominique Pelle)
-Solution: Use alloc_clear() instead of alloc() for w_lines. Free
- b_ml.ml_stack after recovery.
-Files: src/memline.c, src/window.c
-
-Patch 7.0.169
-Problem: With a Visual block selection, with the cursor in the left upper
- corner, pressing "I" doesn't remove the highlighting. (Guopeng
- Wen)
-Solution: When checking if redrawing is needed also check if Visual
- selection is still active.
-Files: src/screen.c
-
-Patch 7.0.170 (extra)
-Problem: Win32: Using "gvim --remote-tab foo" when gvim is minimized while
- it previously was maximized, un-maximizing doesn't work properly.
- And the labels are not displayed properly when 'encoding' is
- utf-8.
-Solution: When minimized check for SW_SHOWMINIMIZED. When updating the tab
- pages line use TCM_SETITEMW instead of TCM_INSERTITEMW. (Liu
- Yubao)
-Files: src/gui_w48.c
-
-Patch 7.0.171 (extra)
-Problem: VMS: A file name with multiple paths is written in the wrong file.
-Solution: Get the actually used file name. (Zoltan Arpadffy)
- Also add info to the :version command about compilation.
-Files: src/Make_vms.mms, src/buffer.c, src/os_unix.c, src/version.c
-
-Patch 7.0.172
-Problem: Crash when recovering and quitting at the "press-enter" prompt.
-Solution: Check for "msg_list" to be NULL. (Liu Yubao)
-Files: src/ex_eval.c
-
-Patch 7.0.173
-Problem: ":call f().TT()" doesn't work. (Richard Emberson)
-Solution: When a function returns a Dictionary or another composite continue
- evaluating what follows.
-Files: src/eval.c
-
-Patch 7.0.174
-Problem: ":mksession" doesn't restore window layout correctly in tab pages
- other than the current one. (Zhibin He)
-Solution: Use the correct topframe for producing the window layout commands.
-Files: src/ex_docmd.c
-
-Patch 7.0.175
-Problem: The result of tr() is missing the terminating NUL. (Ingo Karkat)
-Solution: Add the NUL.
-Files: src/eval.c
-
-Patch 7.0.176
-Problem: ":emenu" isn't executed directly, causing the encryption key
- prompt to fail. (Life Jazzer)
-Solution: Fix wrong #ifdef.
-Files: src/menu.c
-
-Patch 7.0.177
-Problem: When the press-enter prompt gets a character from a non-remappable
- mapping, it's put back in the typeahead buffer as remappable,
- which may cause an endless loop.
-Solution: Restore the non-remappable flag and the silent flag when putting a
- char back in the typeahead buffer.
-Files: src/getchar.c, src/message.c, src/normal.c
-
-Patch 7.0.178
-Problem: When 'enc' is "utf-8" and 'ignorecase' is set the result of ":echo
- ("\xe4" == "\xe4")" varies.
-Solution: In mb_strnicmp() avoid looking past NUL bytes.
-Files: src/mbyte.c
-
-Patch 7.0.179
-Problem: Using ":recover" or "vim -r" without a swapfile crashes Vim.
-Solution: Check for "buf" to be unequal NULL. (Yukihiro Nakadaira)
-Files: src/memline.c
-
-Patch 7.0.180 (extra, after 7.0.171)
-Problem: VMS: build failed. Problem with swapfiles.
-Solution: Add "compiled_arch". Always expand path and pass it to
- buf_modname(). (Zoltan Arpadffy)
-Files: src/globals.h, src/memline.c, src/os_unix.c, runtime/menu.vim
-
-Patch 7.0.181
-Problem: When reloading a file that starts with an empty line, the reloaded
- buffer has an extra empty line at the end. (Motty Lentzitzky)
-Solution: Delete all lines, don't use bufempty().
-Files: src/fileio.c
-
-Patch 7.0.182
-Problem: When using a mix of undo and "g-" it may no longer be possible to
- go to every point in the undo tree. (Andy Wokula)
-Solution: Correctly update pointers in the undo tree.
-Files: src/undo.c
-
-Patch 7.0.183
-Problem: Crash in ":let" when redirecting to a variable that's being
- displayed. (Thomas Link)
-Solution: When redirecting to a variable only do the assignment when
- stopping redirection to avoid that setting the variable causes a
- freed string to be accessed.
-Files: src/eval.c
-
-Patch 7.0.184
-Problem: When the cscope program is called "mlcscope" the Cscope interface
- doesn't work.
-Solution: Accept "\S*cscope:" instead of "cscope:". (Frodak D. Baksik)
-Files: src/if_cscope.c
-
-Patch 7.0.185
-Problem: Multi-byte characters in a message are displayed with attributes
- from what comes before it.
-Solution: Don't use the attributes for a multi-byte character. Do use
- attributes for special characters. (Yukihiro Nakadaira)
-Files: src/message.c
-
-Patch 7.0.186
-Problem: Get an ml_get error when 'encoding' is "utf-8" and searching for
- "/\_s*/e" in an empty buffer. (Andrew Maykov)
-Solution: Don't try getting the line just below the last line.
-Files: src/search.c
-
-Patch 7.0.187
-Problem: Can't source a remote script properly.
-Solution: Add the SourceCmd event. (Charles Campbell)
-Files: runtime/doc/autocmd.txt, src/ex_cmds2.c, src/fileio.c, src/vim.h
-
-Patch 7.0.188 (after 7.0.186)
-Problem: Warning for wrong pointer type.
-Solution: Add a type cast.
-Files: src/search.c
-
-Patch 7.0.189
-Problem: Translated message about finding matches is truncated. (Yukihiro
- Nakadaira)
-Solution: Enlarge the buffer. Also use vim_snprintf().
-Files: src/edit.c
-
-Patch 7.0.190
-Problem: "syntax spell default" results in an error message.
-Solution: Change 4 to 7 for STRNICMP(). (Raul Nunez de Arenas Coronado)
-Files: src/syntax.c
-
-Patch 7.0.191
-Problem: The items used by getqflist() and setqflist() don't match.
-Solution: Support the "bufnum" item for setqflist(). (Yegappan Lakshmanan)
-Files: runtime/doc/eval.txt, src/quickfix.c
-
-Patch 7.0.192
-Problem: When 'swapfile' is switched off in an empty file it is possible
- that not all blocks are loaded into memory, causing ml_get errors
- later.
-Solution: Rename "dont_release" to "mf_dont_release" and also use it to
- avoid using the cached line and locked block.
-Files: src/globals.h, src/memfile.c, src/memline.c
-
-Patch 7.0.193
-Problem: Using --remote or --remote-tab with an argument that matches
- 'wildignore' causes a crash.
-Solution: Check the argument count before using ARGLIST[0].
-Files: src/ex_cmds.c
-
-Patch 7.0.194
-Problem: Once an ml_get error is given redrawing part of the screen may
- cause it again, resulting in an endless loop.
-Solution: Don't give the error message for a recursive call.
-Files: src/memline.c
-
-Patch 7.0.195
-Problem: When a buffer is modified and 'autowriteall' is set, ":quit"
- results in an endless loop when there is a conversion error while
- writing. (Nikolai Weibull)
-Solution: Make autowrite() return FAIL if the buffer is still changed after
- writing it.
- /* put the cursor on the last char, for 'tw' formatting */
-Files: src/ex_cmds2.c
-
-Patch 7.0.196
-Problem: When using ":vert ball" the computation of the mouse pointer
- position may be off by one column. (Stefan Karlsson)
-Solution: Recompute the frame width when moving the vertical separator from
- one window to another.
-Files: src/window.c
-
-Patch 7.0.197 (extra)
-Problem: Win32: Compiling with EXITFREE doesn't work.
-Solution: Adjust a few #ifdefs. (Alexei Alexandrof)
-Files: src/misc2.c, src/os_mswin.c
-
-Patch 7.0.198 (extra)
-Problem: Win32: Compiler warnings. No need to generate gvim.exe.mnf.
-Solution: Add type casts. Use "*" for processorArchitecture. (George Reilly)
-Files: src/Make_mvc.mak, src/eval.c, src/gvim.exe.mnf, src/misc2.c
-
-Patch 7.0.199
-Problem: When using multi-byte characters the combination of completion and
- formatting may result in a wrong cursor position.
-Solution: Don't decrement the cursor column, use dec_cursor(). (Yukihiro
- Nakadaira) Also check for the column to be zero.
-Files: src/edit.c
-
-Patch 7.0.200
-Problem: Memory leaks when out of memory.
-Solution: Free the memory.
-Files: src/edit.c, src/diff.c
-
-Patch 7.0.201
-Problem: Message for ":diffput" about buffer not being in diff mode may be
- wrong.
-Solution: Check for buffer in diff mode but not modifiable.
-Files: src/diff.c
-
-Patch 7.0.202
-Problem: Problems on Tandem systems while compiling and at runtime.
-Solution: Recognize root uid is 65535. Check select() return value for it
- not being supported. Avoid wrong function prototypes. Mention
- use of -lfloss. (Matthew Woehlke)
-Files: src/Makefile, src/ex_cmds.c, src/fileio.c, src/main.c,
- src/osdef1.h.in, src/osdef2.h.in, src/os_unix.c, src/pty.c,
- src/vim.h
-
-Patch 7.0.203
-Problem: 0x80 characters in a register are not handled correctly for the
- "@" command.
-Solution: Escape CSI and 0x80 characters. (Yukihiro Nakadaira)
-Files: src/ops.c
-
-Patch 7.0.204
-Problem: Cscope: Parsing matches for listing isn't done properly.
-Solution: Check for line number being found. (Yu Zhao)
-Files: src/if_cscope.c
-
-Patch 7.0.205 (after 7.0.203)
-Problem: Can't compile.
-Solution: Always include the vim_strsave_escape_csi function.
-Files: src/getchar.c
-
-Patch 7.0.206 (after 7.0.058)
-Problem: Some characters of the "gb18030" encoding are not handled
- properly.
-Solution: Do not use "cp936" as an alias for "gb18030" encoding. Instead
- initialize 'encoding' to "cp936".
-Files: src/mbyte.c, src/option.c
-
-Patch 7.0.207
-Problem: After patch 2.0.203 CSI and K_SPECIAL characters are escaped when
- recorded and then again when the register is executed.
-Solution: Remove escaping before putting the recorded characters in a
- register. (Yukihiro Nakadaira)
-Files: src/getchar.c, src/ops.c, src/proto/getchar.pro
-
-Patch 7.0.208 (after 7.0.171 and 7.0.180)
-Problem: VMS: changes to path handling cause more trouble than they solve.
-Solution: Revert changes.
-Files: src/buffer.c, src/memline.c, src/os_unix.c
-
-Patch 7.0.209
-Problem: When replacing a line through Python the cursor may end up beyond
- the end of the line.
-Solution: Check the cursor column after replacing the line.
-Files: src/if_python.c
-
-Patch 7.0.210
-Problem: ":cbuffer" and ":lbuffer" always fail when the buffer is modified.
- (Gary Johnson)
-Solution: Support adding a !. (Yegappan Lakshmanan)
-Files: runtime/doc/quickfix.txt, src/ex_cmds.h
-
-Patch 7.0.211
-Problem: With ":set cindent noai bs=0" using CTRL-U in Insert mode will
- delete auto-indent. After ":set ai" it doesn't.
-Solution: Also check 'cindent' being set. (Ryan Lortie)
-Files: src/edit.c
-
-Patch 7.0.212
-Problem: The GUI can't be terminated with SIGTERM. (Mark Logan)
-Solution: Use the signal protection in the GUI as in the console, allow
- signals when waiting for 100 msec or longer.
-Files: src/ui.c
-
-Patch 7.0.213
-Problem: When 'spellfile' has two regions that use the same sound folding
- using "z=" will cause memory to be freed twice. (Mark Woodward)
-Solution: Clear the hashtable properly so that the items are only freed once.
-Files: src/spell.c
-
-Patch 7.0.214
-Problem: When using <f-args> in a user command it's not possible to have an
- argument end in '\ '.
-Solution: Change the handling of backslashes. (Yakov Lerner)
-Files: runtime/doc/map.txt, src/ex_docmd.c
-
-Patch 7.0.215 (extra)
-Problem: Mac: Scrollbar size isn't set. Context menu has disabled useless
- Help entry. Call to MoreMasterPointers() is ignored.
-Solution: Call SetControlViewSize() in gui_mch_set_scrollbar_thumb(). Use
- kCMHelpItemRemoveHelp for ContextualMenuSelect(). Remove call to
- MoreMasterPointers(). (Nicolas Weber)
-Files: src/gui_mac.c
-
-Patch 7.0.216
-Problem: ":tab wincmd ]" does not open a tab page. (Tony Mechelynck)
-Solution: Copy the cmdmod.tab value to postponed_split_tab and use it.
-Files: src/globals.h, src/ex_docmd.c, src/if_cscope.c, src/window.c
-
-Patch 7.0.217
-Problem: This hangs when pressing "n": ":%s/\n/,\r/gc". (Ori Avtalion)
-Solution: Set "skip_match" to advance to the next line.
-Files: src/ex_cmds.c
-
-Patch 7.0.218
-Problem: "%B" in 'statusline' always shows zero in Insert mode. (DervishD)
-Solution: Remove the exception for Insert mode, check the column for being
- valid instead.
-Files: src/buffer.c
-
-Patch 7.0.219
-Problem: When using the 'editexisting.vim' script and a file is being
- edited in another tab page the window is split. The "+123"
- argument is not used.
-Solution: Make the tab page with the file the current tab page. Set
- v:swapcommand when starting up to the first "+123" or "-c" command
- line argument.
-Files: runtime/macros/editexisting.vim, src/main.c
-
-Patch 7.0.220
-Problem: Crash when using winnr('#') in a new tab page. (Andy Wokula)
-Solution: Check for not finding the window.
-Files: src/eval.c
-
-Patch 7.0.221
-Problem: finddir() uses 'path' by default, where "." means relative to the
- current file. But it works relative to the current directory.
- (Tye Zdrojewski)
-Solution: Add the current buffer name to find_file_in_path_option() for the
- relative file name.
-Files: runtime/doc/eval.txt, src/eval.c
-
-Patch 7.0.222
-Problem: Perl indenting using 'cindent' works almost right.
-Solution: Recognize '#' to start a comment. (Alex Manoussakis) Added '#'
- flag in 'cinoptions'.
-Files: runtime/doc/indent.txt, src/misc1.c
-
-Patch 7.0.223
-Problem: Unprintable characters in completion text mess up the popup menu.
- (Gombault Damien)
-Solution: Use strtrans() to make the text printable.
-Files: src/charset.c, src/popupmnu.c
-
-Patch 7.0.224
-Problem: When expanding "##" spaces are escaped twice. (Pavol Juhas)
-Solution: Don't escape the spaces that separate arguments.
-Files: src/eval.c, src/ex_docmd.c, src/proto/ex_docmd.pro
-
-Patch 7.0.225
-Problem: When using setline() in an InsertEnter autocommand and doing "A"
- the cursor ends up on the last byte in the line. (Yukihiro
- Nakadaira)
-Solution: Only adjust the column when using setline() for the cursor line.
- Move it back to the head byte if necessary.
-Files: src/eval.c, src/misc2.c
-
-Patch 7.0.226
-Problem: Display flickering when updating signs through the netbeans
- interface. (Xavier de Gaye)
-Solution: Remove the redraw_later(CLEAR) call.
-Files: src/netbeans.c
-
-Patch 7.0.227
-Problem: Crash when closing a window in the GUI. (Charles Campbell)
-Solution: Don't call out_flush() from win_free().
-Files: src/window.c
-
-Patch 7.0.228
-Problem: Cygwin: problem with symlink to DOS style path.
-Solution: Invoke cygwin_conv_to_posix_path(). (Luca Masini)
-Files: src/os_unix.c
-
-Patch 7.0.229
-Problem: When 'pastetoggle' starts with Esc then pressing Esc in Insert
- mode will not time out. (Jeffery Small)
-Solution: Use KL_PART_KEY instead of KL_PART_MAP, so that 'ttimeout' applies
- to the 'pastetoggle' key.
-Files: src/getchar.c
-
-Patch 7.0.230
-Problem: After using ":lcd" a script doesn't know how to restore the
- current directory.
-Solution: Add the haslocaldir() function. (Bob Hiestand)
-Files: runtime/doc/usr_41.txt, runtime/doc/eval.txt, src/eval.c
-
-Patch 7.0.231
-Problem: When recovering from a swap file the page size is likely to be
- different from the minimum. The block used for the first page
- then has a buffer of the wrong size, causing a crash when it's
- reused later. (Zephaniah Hull)
-Solution: Reallocate the buffer when the page size changes. Also check that
- the page size is at least the minimum value.
-Files: src/memline.c
-
-Patch 7.0.232 (extra)
-Problem: Mac: doesn't support GUI tab page labels.
-Solution: Add GUI tab page labels. (Nicolas Weber)
-Files: src/feature.h, src/gui.c, src/gui.h, src/gui_mac.c,
- src/proto/gui_mac.pro
-
-Patch 7.0.233 (extra)
-Problem: Mac: code formatted badly.
-Solution: Fix code formatting
-Files: src/gui_mac.c
-
-Patch 7.0.234
-Problem: It's possible to use feedkeys() from a modeline. That is a
- security issue, can be used for a trojan horse.
-Solution: Disallow using feedkeys() in the sandbox.
-Files: src/eval.c
-
-Patch 7.0.235
-Problem: It is possible to use writefile() in the sandbox.
-Solution: Add a few more checks for the sandbox.
-Files: src/eval.c
-
-Patch 7.0.236
-Problem: Linux 2.4 uses sysinfo() with a mem_unit field, which is not
- backwards compatible.
-Solution: Add an autoconf check for sysinfo.mem_unit. Let mch_total_mem()
- return Kbyte to avoid overflow.
-Files: src/auto/configure, src/configure.in, src/config.h.in,
- src/option.c, src/os_unix.c
-
-Patch 7.0.237
-Problem: For root it is recommended to not use 'modeline', but in
- not-compatible mode the default is on.
-Solution: Let 'modeline' default to off for root.
-Files: runtime/doc/options.txt, src/option.c
-
-Patch 7.0.238
-Problem: Crash when ":match" pattern runs into 'maxmempattern'. (Yakov
- Lerner)
-Solution: Don't free the regexp program of match_hl.
-Files: src/screen.c
-
-Patch 7.0.239
-Problem: When using local directories and tab pages ":mksession" uses a
- short file name when it shouldn't. Window-local options from a
- modeline may be applied to the wrong window. (Teemu Likonen)
-Solution: Add the did_lcd flag, use the full path when it's set. Don't use
- window-local options from the modeline when using the current
- window for another buffer in ":doautoall".
-Files: src/fileio.c, src/ex_docmd.c
-
-Patch 7.0.240
-Problem: Crash when splitting a window in the GUI. (opposite of 7.0.227)
-Solution: Don't call out_flush() from win_alloc(). Also avoid this for
- win_delete(). Also block autocommands while the window structure
- is invalid.
-Files: src/window.c
-
-Patch 7.0.241
-Problem: ":windo throw 'foo'" loops forever. (Andy Wokula)
-Solution: Detect that win_goto() doesn't work.
-Files: src/ex_cmds2.c
-
-Patch 7.0.242 (extra)
-Problem: Win32: Using "-register" in a Vim that does not support OLE causes
- a crash.
-Solution: Don't use EMSG() but mch_errmsg(). Check p_go for being NULL.
- (partly by Michael Wookey)
-Files: src/gui_w32.c
-
-Patch 7.0.243 (extra)
-Problem: Win32: When GvimExt is built with MSVC 2005 or later, the "Edit
- with vim" context menu doesn't appear in the Windows Explorer.
-Solution: Embed the linker manifest file into the resources of GvimExt.dll.
- (Mathias Michaelis)
-Files: src/GvimExt/Makefile
-
-
-Fixes after Vim 7.1a BETA:
-
-The extra archive had CVS directories included below "farsi" and
-"runtime/icons". CVS was missing the farsi icon files.
-
-Fix compiling with Gnome 2.18, undefine bind_textdomain_codeset. (Daniel
-Drake)
-
-Mac: "make install" didn't copy rgb.txt.
-
-When editing a compressed file while there are folds caused "ml_get" errors
-and some lines could be missing. When decompressing failed option values were
-not restored.
-
-
-Patch 7.1a.001
-Problem: Crash when downloading a spell file. (Szabolcs Horvat)
-Solution: Avoid that did_set_spelllang() is used recursively when a new
- window is opened for the download.
- Also avoid wiping out the wrong buffer.
-Files: runtime/autoload/spellfile.vim, src/buffer.c, src/ex_cmds.c,
- src/spell.c
-
-Patch 7.1a.002 (extra)
-Problem: Compilation error with MingW.
-Solution: Check for LPTOOLTIPTEXT to be defined.
-Files: src/gui_w32.c
-
-
-Fixes after Vim 7.1b BETA:
-
-Made the Mzscheme interface build both with old and new versions of Mzscheme,
-using an #ifdef. (Sergey Khorev)
-Mzscheme interface didn't link, missing function. Changed order of libraries
-in the configure script.
-
-Ruby interface didn't compile on Mac. Changed #ifdef. (Kevin Ballard)
-
-Patch 7.1b.001 (extra)
-Problem: Random text in a source file. No idea how it got there.
-Solution: Delete the text.
-Files: src/gui_w32.c
-
-Patch 7.1b.002
-Problem: When 'maxmem' is large there can be an overflow in computations.
- (Thomas Wiegner)
-Solution: Use the same mechanism as in mch_total_mem(): first reduce the
- multiplier as much as possible.
-Files: src/memfile.c
-
-==============================================================================
-VERSION 7.2 *version-7.2* *version7.2*
-
-This section is about improvements made between version 7.1 and 7.2.
-
-This is mostly a bug-fix release. The main new feature is floating point
-support. |Float|
-
-
-Changed *changed-7.2*
--------
-
-Changed the command line buffer name from "command-line" to "[Command Line]".
-
-Removed optional ! for ":caddexpr", ":cgetexpr", ":cgetfile", ":laddexpr",
-":lgetexpr" and ":lgetfile". They are not needed. (Yegappan Lakshmanan)
-
-An offset for syntax matches worked on bytes instead of characters. That is
-inconsistent and can easily be done wrong. Use character offsets now.
-(Yukihiro Nakadaira)
-
-The FileChangedShellPost event was also given when a file didn't change.
-(John Little)
-
-When the current line is long (doesn't fit) the popup menu can't be seen.
-Display it below the screen line instead of below the text line.
-(Francois Ingelrest)
-
-Switched to autoconf version 2.62.
-
-Moved including fcntl.h to vim.h and removed it from all .c files.
-
-Introduce macro STRMOVE(d, s), like STRCPY() for overlapping strings.
-Use it instead of mch_memmove(p, p + x, STRLEN(p + x) + 1).
-
-Removed the bulgarian.vim keymap file, two more standard ones replace it.
-(Boyko Bantchev)
-
-Increased the maximum number of tag matches for command line completion from
-200 to 300.
-
-Renamed help file sql.txt to ft_sql.txt and ada.txt to ft_ada.txt.
-
-
-Added *added-7.2*
------
-
-New syntax files:
- CUDA (Timothy B. Terriberry)
- Cdrdao config (Nikolai Weibull)
- Coco/R (Ashish Shukla)
- Denyhosts config (Nikolai Weibull)
- Dtrace script (Nicolas Weber)
- Git output, commit, config, rebase, send-email (Tim Pope)
- HASTE and HastePreProc (M. Tranchero)
- Haml (Tim Pope)
- Host conf (Nikolai Weibull)
- Linden script (Timo Frenay)
- MS messages (Kevin Locke)
- PDF (Tim Pope)
- ProMeLa (Maurizio Tranchero)
- Reva Foth (Ron Aaron)
- Sass (Tim Pope)
- Symbian meta-makefile, MMP (Ron Aaron)
- VOS CM macro (Andrew McGill)
- XBL (Doug Kearns)
-
-New tutor files:
- Made UTF-8 versions of all the tutor files.
- Greek renamed from ".gr" to ".el" (Greek vs Greece).
- Esperanto (Dominique Pelle)
- Croatian (Paul B. Mahol)
-
-New filetype plugins:
- Cdrdao config (Nikolai Weibull)
- Debian control files (Debian Vim maintainers)
- Denyhosts (Nikolai Weibull)
- Dos .ini file (Nikolai Weibull)
- Dtrace script (Nicolas Weber)
- FnameScript (Nikolai Weibull)
- Git, Git config, Git commit, Git rebase, Git send-email (Tim Pope)
- Haml (Tim Pope)
- Host conf (Nikolai Weibull)
- Host access (Nikolai Weibull)
- Logtalk (Paulo Moura)
- MS messages (Kevin Locke)
- NSIS script (Nikolai Weibull)
- PDF (Tim Pope)
- Reva Forth (Ron Aaron)
- Sass (Tim Pope)
-
-New indent files:
- DTD (Nikolai Weibull)
- Dtrace script (Nicolas Weber)
- Erlang (Csaba Hoch)
- FrameScript (Nikolai Weibull)
- Git config (Tim Pope)
- Haml (Tim Pope)
- Logtalk (Paulo Moura)
- Sass (Tim Pope)
- Tiny Fugue (Christian J. Robinson)
-
-New compiler plugins:
- RSpec (Tim Pope)
-
-New keymap files:
- Croatian (Paul B. Mahol)
- Russian Dvorak (Serhiy Boiko)
- Ukrainian Dvorak (Serhiy Boiko)
- Removed plain Bulgarian, "bds" and phonetic are sufficient.
-
-Other new runtime files:
- Esperanto menu and message translations. (Dominique Pelle)
- Finnish menu and message translations. (Flammie Pirinen)
- Brazilian Portuguese message translations. (Eduardo Dobay)
-
-Added floating point support. |Float|
-
-Added argument to mode() to return a bit more detail about the current mode.
-(Ben Schmidt)
-
-Added support for BSD console mouse: |sysmouse|. (Paul B. Mahol)
-
-Added the "newtab" value for the 'switchbuf' option. (partly by Yegappan
-Lakshmanan)
-
-Improved error messages for the netbeans interface. (Philippe Fremy)
-
-Added support for using xterm mouse codes for screen. (Micah Cowan)
-
-Added support for cross compiling:
-Adjusted configure.in and added INSTALLcross.txt. (Marc Haisenko) Fixed
-mistakes in configure.in after that.
-Don't use /usr/local/include and /usr/local/lib in configure. (Philip
-Prindeville)
-For cross compiling the Cygwin version on Unix, change VIM.TLB to vim.tlb in
-src/vim.rc. (Tsuneo Nakagawa)
-
-Added v:searchforward variable: What direction we're searching in. (Yakov
-Lerner)
-
-
-Fixed *fixed-7.2*
------
-
-Patch 7.1.001
-Problem: Still can't build with Gnome libraries.
-Solution: Fix typo in bind_textdomain_codeset. (Mike Kelly)
-Files: src/gui_gtk.c, src/gui_gtk_x11.c
-
-Patch 7.1.002
-Problem: Oracle Pro*C/C++ files are not detected.
-Solution: Add the missing star. (Micah J. Cowan)
-Files: runtime/filetype.vim
-
-Patch 7.1.003 (extra)
-Problem: The "Tear off this menu" message appears in the message history
- when using a menu. (Yongwei Wu)
-Solution: Disable message history when displaying the menu tip.
-Files: src/gui_w32.c
-
-Patch 7.1.004
-Problem: Crash when doing ":next directory". (Raphael Finkel)
-Solution: Do not use "buf", it may be invalid after autocommands.
-Files: src/ex_cmds.c
-
-Patch 7.1.005
-Problem: "cit" used on <foo></foo> deletes <foo>. Should not delete
- anything and start insertion, like "ci'" does on "". (Michal
- Bozon)
-Solution: Handle an empty object specifically. Made it work consistent for
- various text objects.
-Files: src/search.c
-
-Patch 7.1.006
-Problem: Resetting 'modified' in a StdinReadPost autocommand doesn't work.
-Solution: Set 'modified' before the autocommands instead of after it.
-Files: src/buffer.c
-
-Patch 7.1.007 (extra)
-Problem: Mac: Context menu doesn't work on Intel Macs.
- Scrollbars are not dimmed when Vim is not the active application.
-Solution: Remove the test whether context menus are supported. They are
- always there in OS/X. Handle the dimming. (Nicolas Weber)
-Files: src/gui_mac.c, src/gui.h
-
-Patch 7.1.008
-Problem: getfsize() returns a negative number for very big files.
-Solution: Check for overflow and return -2.
-Files: runtime/doc/eval.txt, src/eval.c
-
-Patch 7.1.009
-Problem: In diff mode, displaying the difference between a tab and spaces
- is not highlighted correctly.
-Solution: Only change highlighting at the end of displaying a tab.
-Files: src/screen.c
-
-Patch 7.1.010
-Problem: The Gnome session file doesn't restore tab pages.
-Solution: Add SSOP_TABPAGES to the session flags. (Matias D'Ambrosio)
-Files: src/gui_gtk_x11.c
-
-Patch 7.1.011
-Problem: Possible buffer overflow when $VIMRUNTIME is very long. (Victor
- Stinner)
-Solution: Use vim_snprintf().
-Files: src/main.c
-
-Patch 7.1.012
-Problem: ":let &shiftwidth = 'asdf'" doesn't produce an error message.
-Solution: Check for a string argument. (Chris Lubinski)
-Files: src/option.c
-
-Patch 7.1.013
-Problem: ":syn include" only loads the first file, while it is documented
- as doing the equivalent of ":runtime!".
-Solution: Change the argument to source_runtime(). (James Vega)
-Files: src/syntax.c
-
-Patch 7.1.014
-Problem: Crash when doing C indenting. (Chris Monson)
-Solution: Obtain the current line again after invoking cin_islabel().
-Files: src/edit.c
-
-Patch 7.1.015
-Problem: MzScheme interface: current-library-collection-paths produces no
- list. Interface doesn't build on a Mac.
-Solution: Use a list instead of a pair. (Bernhard Fisseni) Use "-framework"
- argument for MZSCHEME_LIBS in configure.
-Files: src/configure.in, src/if_mzsch.c, src/auto/configure
-
-Patch 7.1.016 (after patch 7.1.012)
-Problem: Error message about setting 'diff' to a string.
-Solution: Don't pass an empty string to set_option_value() when setting
- 'diff'.
-Files: src/quickfix.c, src/popupmnu.c
-
-Patch 7.1.017
-Problem: ":confirm w" does give a prompt when 'readonly' is set, but not
- when the file permissions are read-only. (Michael Schaap)
-Solution: Provide a dialog in both situations. (Chris Lubinski)
-Files: src/ex_cmds.c, src/fileio.c, src/proto/fileio.pro
-
-Patch 7.1.018
-Problem: When 'virtualedit' is set a "p" of a block just past the end of
- the line inserts before the cursor. (Engelke)
-Solution: Check for the cursor being just after the line (Chris Lubinski)
-Files: src/ops.c
-
-Patch 7.1.019
-Problem: ":py" asks for an argument, ":py asd" then gives the error that
- ":py" isn't implemented. Should already happen for ":py".
-Solution: Compare with ex_script_ni. (Chris Lubinski)
-Files: src/ex_docmd.c
-
-Patch 7.1.020
-Problem: Reading from uninitialized memory when using a dialog. (Dominique
- Pelle)
-Solution: In msg_show_console_dialog() append a NUL after every appended
- character.
-Files: src/message.c
-
-Patch 7.1.021 (after 7.1.015)
-Problem: Mzscheme interface doesn't compile on Win32.
-Solution: Fix the problem that 7.1.015 fixed in a better way. (Sergey Khorev)
-Files: src/if_mzsch.c
-
-Patch 7.1.022
-Problem: When setting 'keymap' twice the b:keymap_name variable isn't set.
- (Milan Berta)
-Solution: Don't unlet b:keymap_name for ":loadkeymap". (Martin Toft)
-Files: src/digraph.c
-
-Patch 7.1.023
-Problem: "dw" in a line with one character deletes the line. Vi and nvi
- don't do this. (Kjell Arne Rekaa)
-Solution: Check for one-character words especially.
-Files: src/search.c
-
-Patch 7.1.024
-Problem: Using a pointer that has become invalid. (Chris Monson)
-Solution: Obtain the line pointer again after we looked at another line.
-Files: src/search.c
-
-Patch 7.1.025
-Problem: search() and searchpos() don't use match under cursor at start of
- line when using 'bc' flags. (Viktor Kojouharov)
-Solution: Don't go to the previous line when the 'c' flag is present.
- Also fix that "j" doesn't move the cursor to the right column.
-Files: src/eval.c, src/search.c
-
-Patch 7.1.026
-Problem: "[p" doesn't work in Visual mode. (David Brown)
-Solution: Use checkclearop() instead of checkclearopq().
-Files: src/normal.c
-
-Patch 7.1.027
-Problem: On Sun systems opening /dev/fd/N doesn't work, and they are used
- by process substitutions.
-Solution: Allow opening specific character special files for Sun systems.
- (Gary Johnson)
-Files: src/fileio.c, src/os_unix.h
-
-Patch 7.1.028
-Problem: Can't use last search pattern for ":sort". (Brian McKee)
-Solution: When the pattern is empty use the last search pattern. (Martin
- Toft)
-Files: runtime/doc/change.txt, src/ex_cmds.c
-
-Patch 7.1.029 (after 7.1.019)
-Problem: Can't compile when all interfaces are used. (Taylor Venable)
-Solution: Only check for ex_script_ni when it's defined.
-Files: src/ex_docmd.c
-
-Patch 7.1.030
-Problem: The "vimtutor" shell script checks for "vim6" but not for "vim7".
- (Christian Robinson)
-Solution: Check for more versions, but prefer using "vim".
-Files: src/vimtutor
-
-Patch 7.1.031
-Problem: virtcol([123, '$']) doesn't work. (Michael Schaap)
-Solution: When '$' is used for the column number get the last column.
-Files: runtime/doc/eval.txt, src/eval.c
-
-Patch 7.1.032
-Problem: Potential crash when editing a command line. (Chris Monson)
-Solution: Check the position to avoid access before the start of an array.
-Files: src/ex_getln.c
-
-Patch 7.1.033
-Problem: A buffer is marked modified when it was first deleted and then
- added again using a ":next" command. (John Mullin)
-Solution: When checking if a buffer is modified use the BF_NEVERLOADED flag.
-Files: src/option.c
-
-Patch 7.1.034
-Problem: Win64: A few compiler warnings. Problems with optimizer.
-Solution: Use int instead of size_t. Disable the optimizer in one function.
- (George V. Reilly)
-Files: src/eval.c, src/spell.c
-
-Patch 7.1.035
-Problem: After ":s/./&/#" all listed lines have a line number. (Yakov
- Lerner)
-Solution: Reset the line number flag when not using the "&" flag.
-Files: src/ex_cmds.c
-
-Patch 7.1.036
-Problem: Completing ":echohl" argument should include "None". (Ori
- Avtalion) ":match" should have "none" too.
-Solution: Add flags to use expand_highlight(). Also fix that when disabling
- FEAT_CMDL_COMPL compilation fails. (Chris Lubinski)
-Files: src/eval.c, src/ex_docmd.c, src/ex_getln.c, src/proto/syntax.pro
- src/syntax.c
-
-Patch 7.1.037
-Problem: strcpy() used for overlapping strings. (Chris Monson)
-Solution: Use mch_memmove() instead.
-Files: src/option.c
-
-Patch 7.1.038
-Problem: When 'expandtab' is set then a Tab copied for 'copyindent' is
- expanded to spaces, even when 'preserveindent' is set. (Alexei
- Alexandrov)
-Solution: Remove the check for 'expandtab'. Also fix that ">>" doesn't obey
- 'preserveindent'. (Chris Lubinski)
-Files: src/misc1.c
-
-Patch 7.1.039
-Problem: A tag in a help file that starts with "help-tags" and contains a
- percent sign may make Vim crash. (Ulf Harnhammar)
-Solution: Use puts() instead of fprintf().
-Files: src/ex_cmds.c
-
-Patch 7.1.040
-Problem: ":match" only supports three matches.
-Solution: Add functions clearmatches(), getmatches(), matchadd(),
- matchdelete() and setmatches(). Changed the data structures for
- this. A small bug in syntax.c is fixed, so newly created
- highlight groups can have their name resolved correctly from their
- ID. (Martin Toft)
-Files: runtime/doc/eval.txt, runtime/doc/pattern.txt,
- runtime/doc/usr_41.txt, src/eval.c, src/ex_docmd.c,
- src/proto/window.pro, src/screen.c, src/structs.h, src/syntax.c,
- src/testdir/Makefile, src/testdir/test63.in,
- src/testdir/test63.ok, src/window.c
-
-Patch 7.1.041 (extra, after 7.1.040)
-Problem: Some changes for patch 7.1.040 are in extra files.
-Solution: Update the extra files.
-Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
- src/testdir/Make_os2.mak, src/testdir/Make_vms.mms
-
-Patch 7.1.042 (after 7.1.040)
-Problem: Internal error when using matchadd(). (David Larson)
-Solution: Check the third argument to be present before using the fourth
- argument. (Martin Toft)
-Files: src/eval.c
-
-Patch 7.1.043
-Problem: In Ex mode using CTRL-D twice may cause a crash. Cursor isn't
- positioned properly after CTRL-D.
-Solution: Set prev_char properly. Position the cursor correctly. (Antony
- Scriven)
-Files: src/ex_getln.c
-
-Patch 7.1.044
-Problem: In Insert mode 0 CTRL-T deletes all indent, it should add indent.
- (Gautam Iyer)
-Solution: Check for CTRL-D typed.
-Files: src/edit.c
-
-Patch 7.1.045
-Problem: Unnecessary screen redrawing. (Jjgod Jiang)
-Solution: Reset "must_redraw" after clearing the screen.
-Files: src/screen.c
-
-Patch 7.1.046
-Problem: ":s" command removes combining characters. (Ron Aaron)
-Solution: Copy composing characters individually. (Chris Lubinski)
-Files: src/regexp.c
-
-Patch 7.1.047
-Problem: vim_regcomp() called with invalid argument. (Xiaozhou Liu)
-Solution: Change TRUE to RE_MAGIC + RE_STRING.
-Files: src/ex_eval.c
-
-Patch 7.1.048
-Problem: The matchparen plugin doesn't update the match when scrolling with
- the mouse wheel. (Ilya Bobir)
-Solution: Set the match highlighting for text that can be scrolled into the
- viewable area without moving the cursor. (Chris Lubinski)
-Files: runtime/plugin/matchparen.vim
-
-Patch 7.1.049
-Problem: Cannot compile GTK2 version with Hangul input feature.
-Solution: Don't define FEAT_XFONTSET when using GTK2.
-Files: src/feature.h
-
-Patch 7.1.050
-Problem: Possible crash when using C++ indenting. (Chris Monson)
-Solution: Keep the line pointer to the line to compare with. Avoid going
- past the end of line.
-Files: src/misc1.c
-
-Patch 7.1.051
-Problem: Accessing uninitialized memory when finding spell suggestions.
-Solution: Don't try swapping characters at the end of a word.
-Files: src/spell.c
-
-Patch 7.1.052
-Problem: When creating a new match not all fields are initialized, which
- may lead to unpredictable results.
-Solution: Initialise rmm_ic and rmm_maxcol.
-Files: src/window.c
-
-Patch 7.1.053
-Problem: Accessing uninitialized memory when giving a message.
-Solution: Check going the length before checking for a NUL byte.
-Files: src/message.c
-
-Patch 7.1.054
-Problem: Accessing uninitialized memory when displaying the fold column.
-Solution: Add a NUL to the extra array. (Dominique Pelle). Also do this in
- a couple of other situations.
-Files: src/screen.c
-
-Patch 7.1.055
-Problem: Using strcpy() with arguments that overlap.
-Solution: Use mch_memmove() instead.
-Files: src/buffer.c, src/charset.c, src/eval.c, src/ex_getln.c,
- src/misc1.c, src/regexp.c, src/termlib.c
-
-Patch 7.1.056
-Problem: More prompt does not behave correctly after scrolling back.
- (Randall W. Morris)
-Solution: Avoid lines_left becomes negative. (Chris Lubinski) Don't check
- mp_last when deciding to show the more prompt. (Martin Toft)
-Files: src/message.c
-
-Patch 7.1.057
-Problem: Problem with CursorHoldI when using "r" in Visual mode (Max
- Dyckhoff)
-Solution: Ignore CursorHold(I) when getting a second character for a Normal
- mode command. Also abort the "r" command in Visual when a special
- key is typed.
-Files: src/normal.c
-
-Patch 7.1.058
-Problem: When 'rightleft' is set the completion menu is positioned wrong.
- (Baha-Eddine MOKADEM)
-Solution: Fix the completion menu. (Martin Toft)
-Files: src/popupmnu.c, src/proto/search.pro, src/search.c
-
-Patch 7.1.059
-Problem: When in Ex mode and doing "g/^/vi" and then pressing CTRL-C Vim
- hangs and beeps. (Antony Scriven)
-Solution: Clear "got_int" in the main loop to avoid the hang. When typing
- CTRL-C twice in a row abort the ":g" command. This is Vi
- compatible.
-Files: src/main.c
-
-Patch 7.1.060
-Problem: Splitting quickfix window messes up window layout. (Marius
- Gedminas)
-Solution: Compute the window size in a smarter way. (Martin Toft)
-Files: src/window.c
-
-Patch 7.1.061
-Problem: Win32: When 'encoding' is "latin1" 'ignorecase' doesn't work for
- characters with umlaut. (Joachim Hofmann)
-Solution: Do not use islower()/isupper()/tolower()/toupper() but our own
- functions. (Chris Lubinski)
-Files: src/mbyte.c, src/regexp.c, src/vim.h
-
-Patch 7.1.062 (after 7.1.038)
-Problem: Indents of C comments can be wrong. (John Mullin)
-Solution: Adjust ind_len. (Chris Lubinski)
-Files: src/misc1.c
-
-Patch 7.1.063 (after 7.1.040)
-Problem: Warning for uninitialized variable.
-Solution: Initialise it to NULL.
-Files: src/ex_docmd.c
-
-Patch 7.1.064
-Problem: On Interix some files appear not to exist.
-Solution: Remove the top bit from st_mode. (Ligesh)
-Files: src/os_unix.c
-
-Patch 7.1.065 (extra)
-Problem: Win32: Compilation problem for newer version of w32api.
-Solution: Only define __IID_DEFINED__ when needed. (Chris Sutcliffe)
-Files: src/Make_ming.mak, src/iid_ole.c
-
-Patch 7.1.066
-Problem: When 'bomb' is set or reset the file should be considered
- modified. (Tony Mechelynck)
-Solution: Handle like 'endofline'. (Martin Toft)
-Files: src/buffer.c, src/fileio.c, src/option.c, src/structs.h
-
-Patch 7.1.067
-Problem: 'thesaurus' doesn't work when 'infercase' is set. (Mohsin)
-Solution: Don't copy the characters being completed but check the case and
- apply it to the suggested word. Also fix that the first word in
- the thesaurus line is not used. (Martin Toft)
-Files: src/edit.c
-
-Patch 7.1.068
-Problem: When 'equalalways' is set and splitting a window, it's possible
- that another small window gets bigger.
-Solution: Only equalize window sizes when after a split the windows are
- smaller than another window. (Martin Toft)
-Files: runtime/doc/options.txt, runtime/doc/windows.txt, src/window.c
-
-Patch 7.1.069
-Problem: GTK GUI: When using confirm() without a default button there still
- is a default choice.
-Solution: Ignore Enter and Space when there is no default button. (Chris
- Lubinski)
-Files: src/gui_gtk.c
-
-Patch 7.1.070 (extra)
-Problem: Win32 GUI: When using confirm() without a default button there
- still is a default choice.
-Solution: Set focus on something else than a button. (Chris Lubinski)
-Files: src/gui_w32.c
-
-Patch 7.1.071 (after 7.1.040)
-Problem: Regexp patterns are not tested.
-Solution: Add a basic test, to be expanded later.
- Also add (commented-out) support for valgrind.
-Files: src/testdir/Makefile, src/testdir/test64.in, src/testdir/test64.ok
-
-Patch 7.1.072 (extra, after 7.1.041 and 7.1.071)
-Problem: Some changes for patch 7.1.071 are in extra files.
-Solution: Update the extra files. Also fix a few warnings from the DOS test
- makefile.
-Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
- src/testdir/Make_os2.mak, src/testdir/Make_vms.mms
-
-Patch 7.1.073 (after 7.1.062)
-Problem: Wrong cursor position and crash when 'preserveindent' is set.
- (Charles Campbell)
-Solution: Handle the situation that we start without indent. (Chris
- Lubinski)
-Files: src/misc1.c
-
-Patch 7.1.074
-Problem: Crash when calling string() on a recursively nested List.
-Solution: Check result value for being NULL. (Yukihiro Nakadaira)
-Files: src/eval.c
-
-Patch 7.1.075
-Problem: ":let v:statusmsg" reads memory already freed.
-Solution: Don't set v:statusmsg when listing it.
-Files: src/eval.c
-
-Patch 7.1.076
-Problem: Another strcpy() with overlapping arguments.
-Solution: Use mch_memmove(). (Dominique Pelle) And another one.
-Files: src/ex_docmd.c, src/normal.c
-
-Patch 7.1.077
-Problem: Using "can_spell" without initializing it. (Dominique Pelle)
-Solution: Set a default for get_syntax_attr().
-Files: src/syntax.c
-
-Patch 7.1.078
-Problem: Dropping a file name on gvim that contains a CSI byte doesn't work
- when editing the command line.
-Solution: Escape the CSI byte when inserting in the input buffer. (Yukihiro
- Nakadaira)
-Files: src/gui.c, src/ui.c
-
-Patch 7.1.079
-Problem: When the locale is "C" and 'encoding' is "latin1" then the "@"
- character in 'isfname', 'isprint', etc. doesn't pick up accented
- characters.
-Solution: Instead of isalpha() use MB_ISLOWER() and MB_ISUPPER().
-Files: src/charset.c, src/macros.h
-
-Patch 7.1.080 (extra)
-Problem: Compiler warnings for using "const char *" for "char *".
-Solution: Add type casts. (Chris Sutcliffe)
-Files: src/GvimExt/gvimext.cpp
-
-Patch 7.1.081
-Problem: Command line completion for a shell command: "cat </tmp/file<Tab>"
- doesn't work.
-Solution: Start the file name at any character that can't be in a file name.
- (Martin Toft)
-Files: src/ex_docmd.c
-
-Patch 7.1.082
-Problem: After a ":split" the matchparen highlighting isn't there.
-Solution: Install a WinEnter autocommand. Also fixes that after
- ":NoMatchParen" only the current window is updated. (Martin Toft)
-Files: runtime/doc/pi_paren.txt, runtime/plugin/matchparen.vim
-
-Patch 7.1.083 (after 7.1.081)
-Problem: Command line completion doesn't work with wildcards.
-Solution: Add vim_isfilec_or_wc() and use it. (Martin Toft)
-Files: src/charset.c, src/proto/charset.pro, src/ex_docmd.c
-
-Patch 7.1.084
-Problem: Using the "-nb" argument twice causes netbeans not to get
- fileOpened events.
-Solution: Change "&" to "&&". (Xavier de Gaye)
-Files: src/ex_cmds.c
-
-Patch 7.1.085
-Problem: ":e fold.c" then ":sp fold.c" results in folds of original window
- to disappear. (Akita Noek)
-Solution: Invoke foldUpdateAll() for all windows of the changed buffer.
- (Martin Toft)
-Files: src/ex_cmds.c
-
-Patch 7.1.086
-Problem: Crash when using specific Python syntax highlighting. (Quirk)
-Solution: Check for a negative index, coming from a keyword match at the
- start of a line from a saved state.
-Files: src/syntax.c
-
-Patch 7.1.087
-Problem: Reading past ":cscope find" command. Writing past end of a buffer.
-Solution: Check length of the argument before using the pattern. Use
- vim_strncpy(). (Dominique Pelle)
-Files: if_cscope.c
-
-Patch 7.1.088 (extra)
-Problem: The coordinates used by ":winpos" differ from what getwinposx()
- and getwinposy() return.
-Solution: Use MoveWindowStructure() instead of MoveWindow(). (Michael Henry)
-Files: src/gui_mac.c
-
-Patch 7.1.089
-Problem: ":let loaded_getscriptPlugin" doesn't clear to eol, result is
- "#1in".
-Solution: Clear to the end of the screen after displaying the first variable
- value.
-Files: src/eval.c
-
-Patch 7.1.090
-Problem: Compiler warning on Mac OS X 10.5.
-Solution: Don't redeclare sigaltstack(). (Hisashi T Fujinaka)
-Files: src/os_unix.c
-
-Patch 7.1.091 (extra)
-Problem: Win32: Can't embed Vim inside another application.
-Solution: Add the --windowid argument. (Nageshwar)
-Files: runtime/doc/gui_w32.txt, runtime/doc/starting.txt,
- runtime/doc/vi_diff.txt, src/globals.h, src/gui_w32.c, src/main.c
-
-Patch 7.1.092 (extra, after 7.1.088)
-Problem: Wrong arguments for MoveWindowStructure().
-Solution: Remove "TRUE". (Michael Henry)
-Files: src/gui_mac.c
-
-Patch 7.1.093
-Problem: Reading past end of a screen line when determining cell width.
- (Dominique Pelle)
-Solution: Add an argument to mb_off2cells() for the maximum offset.
-Files: src/globals.h, src/gui.c, src/mbyte.c, src/proto/mbyte.pro,
- src/screen.c
-
-Patch 7.1.094
-Problem: When checking if syntax highlighting is present, looking in the
- current buffer instead of the specified one.
-Solution: Use "buf" instead of "curbuf".
-Files: src/syntax.c
-
-Patch 7.1.095
-Problem: The FocusLost and FocusGained autocommands are triggered
- asynchronously in the GUI. This may cause arbitrary problems.
-Solution: Put the focus event in the input buffer and handle it when ready
- for it.
-Files: src/eval.c, src/getchar.c, src/gui.c, src/gui_gtk_x11.c,
- src/keymap.h
-
-Patch 7.1.096
-Problem: Reading past end of a string when resizing Vim. (Dominique Pelle)
-Solution: Check the string pointer before getting the char it points to.
-Files: src/message.c
-
-Patch 7.1.097
-Problem: ":setlocal stl=%!1+1" does not work.
-Solution: Adjust check for pointer. (Politz)
-Files: src/option.c
-
-Patch 7.1.098
-Problem: ":call s:var()" doesn't work if "s:var" is a Funcref. (Andy Wokula)
-Solution: Before converting "s:" into a script ID, check if it is a Funcref.
-Files: src/eval.c
-
-Patch 7.1.099
-Problem: When the 'keymap' and 'paste' options have a non-default value,
- ":mkexrc" and ":mksession" do not correctly set the options.
-Solution: Set the options with side effects before other options.
-Files: src/option.c
-
-Patch 7.1.100
-Problem: Win32: Executing cscope doesn't always work properly.
-Solution: Use another way to invoke cscope. (Mike Williams)
-Files: src/if_cscope.c, src/if_cscope.h, src/main.c,
- src/proto/if_cscope.pro
-
-Patch 7.1.101
-Problem: Ruby: The Buffer.line= method does not work.
-Solution: Add the "self" argument to set_current_line(). (Jonathan Hankins)
-Files: src/if_ruby.c
-
-Patch 7.1.102
-Problem: Perl interface doesn't compile with new version of Perl.
-Solution: Add two variables to the dynamic library loading. (Suresh
- Govindachar)
-Files: src/if_perl.xs
-
-Patch 7.1.103
-Problem: Using "dw" with the cursor past the end of the last line (using
- CTRL-\ CTRL-O from Insert mode) deletes a character. (Tim Chase)
-Solution: Don't move the cursor back when the movement failed.
-Files: src/normal.c
-
-Patch 7.1.104 (after 7.1.095)
-Problem: When 'lazyredraw' is set a focus event causes redraw to be
- postponed until a key is pressed.
-Solution: Instead of not returning from vgetc() when a focus event is
- encountered return K_IGNORE. Add plain_vgetc() for when the
- caller doesn't want to get K_IGNORE.
-Files: src/digraph.c, src/edit.c, src/ex_cmds.c, src/ex_getln.c,
- src/getchar.c, src/normal.c, src/proto/getchar.pro, src/window.c
-
-Patch 7.1.105
-Problem: Internal error when using "0 ? {'a': 1} : {}". (A.Politz)
-Solution: When parsing a dictionary value without using the value, don't try
- obtaining the key name.
-Files: src/eval.c
-
-Patch 7.1.106
-Problem: ":messages" doesn't quit listing on ":".
-Solution: Break the loop when "got_int" is set.
-Files: src/message.c
-
-Patch 7.1.107
-Problem: When doing a block selection and using "s" to change the text,
- while triggering auto-indenting, causes the wrong text to be
- repeated in other lines. (Adri Verhoef)
-Solution: Compute the change of indent and compensate for that.
-Files: src/ops.c
-
-Patch 7.1.108 (after 7.1.100)
-Problem: Win32: Compilation problems in Cscope code. (Jeff Lanzarotta)
-Solution: Use (long) instead of (intptr_t) when it's not defined.
-Files: src/if_cscope.c
-
-Patch 7.1.109
-Problem: GTK: when there are many tab pages, clicking on the arrow left of
- the labels moves to the next tab page on the right. (Simeon Bird)
-Solution: Check the X coordinate of the click and pass -1 as value for the
- left arrow.
-Files: src/gui_gtk_x11.c, src/term.c
-
-Patch 7.1.110 (after 7.1.102)
-Problem: Win32: Still compilation problems with Perl.
-Solution: Change the #ifdefs. (Suresh Govindachar)
-Files: src/if_perl.xs
-
-Patch 7.1.111
-Problem: When using ":vimgrep" with the "j" flag folds from another buffer
- may be displayed. (A.Politz)
-Solution: When not jumping to another buffer update the folds.
-Files: src/quickfix.c
-
-Patch 7.1.112
-Problem: Using input() with a wrong argument may crash Vim. (A.Politz)
-Solution: Init the input() return value to NULL.
-Files: src/eval.c
-
-Patch 7.1.113
-Problem: Using map() to go over an empty list causes memory to be freed
- twice. (A.Politz)
-Solution: Don't clear the typeval in restore_vimvar().
-Files: src/eval.c
-
-Patch 7.1.114
-Problem: Memory leak in getmatches().
-Solution: Don't increment the refcount twice.
-Files: src/eval.c
-
-Patch 7.1.115 (after 7.1.105)
-Problem: Compiler warning for uninitialized variable. (Tony Mechelynck)
-Solution: Init variable to NULL.
-Files: src/eval.c
-
-Patch 7.1.116
-Problem: Cannot display Unicode characters above 0x10000.
-Solution: Remove the replacement with a question mark when UNICODE16 is not
- defined. (partly by Nicolas Weber)
-Files: src/screen.c
-
-Patch 7.1.117
-Problem: Can't check whether Vim was compiled with Gnome. (Tony Mechelynck)
-Solution: Add gui_gnome to the has() list.
-Files: src/eval.c
-
-Patch 7.1.118 (after 7.1.107)
-Problem: Compiler warning for Visual C compiler.
-Solution: Add typecast. (Mike Williams)
-Files: src/ops.c
-
-Patch 7.1.119
-Problem: Crash when 'cmdheight' set to very large value. (A.Politz)
-Solution: Limit 'cmdheight' to 'lines' minus one. Store right value of
- 'cmdheight' when running out of room.
-Files: src/option.c, src/window.c
-
-Patch 7.1.120
-Problem: Can't properly check memory leaks while running tests.
-Solution: Add an argument to garbagecollect(). Delete functions and
- variables in the test scripts.
-Files: runtime/doc/eval.txt src/eval.c, src/globals.h, src/main.c,
- src/testdir/Makefile, src/testdir/test14.in,
- src/testdir/test26.in, src/testdir/test34.in,
- src/testdir/test45.in, src/testdir/test47.in,
- src/testdir/test49.in, src/testdir/test55.in,
- src/testdir/test56.in, src/testdir/test58.in,
- src/testdir/test59.in, src/testdir/test60.in,
- src/testdir/test60.vim, src/testdir/test62.in,
- src/testdir/test63.in, src/testdir/test64.in,
-
-Patch 7.1.121
-Problem: Using ":cd %:h" when editing a file in the current directory
- results in an error message for using an empty string.
-Solution: When "%:h" results in an empty string use ".".
-Files: src/eval.c
-
-Patch 7.1.122
-Problem: Mac: building Vim.app fails. Using wrong architecture.
-Solution: Use line continuation for the gui_bundle dependency. Detect the
- system architecture with "uname -a".
-Files: src/main.aap
-
-Patch 7.1.123
-Problem: Win32: ":edit foo ~ foo" expands "~".
-Solution: Change the call to expand_env().
-Files: src/ex_docmd.c, src/misc1.c, src/proto/misc1.pro, src/option.c
-
-Patch 7.1.124 (extra)
-Problem: Mac: When dropping a file on Vim.app that is already in the buffer
- list (from .viminfo) results in editing an empty, unnamed buffer.
- (Axel Kielhorn) Also: warning for unused variable.
-Solution: Move to the buffer of the first argument. Delete unused variable.
-Files: src/gui_mac.c
-
-Patch 7.1.125
-Problem: The TermResponse autocommand event is not always triggered. (Aron
- Griffis)
-Solution: When unblocking autocommands check if v:termresponse changed and
- trigger the event then.
-Files: src/buffer.c, src/diff.c, src/ex_getln.c, src/fileio.c,
- src/globals.h, src/misc2.c, src/proto/fileio.pro, src/window.c
-
-Patch 7.1.126 (extra)
-Problem: ":vimgrep */*" fails when a BufRead autocommand changes directory.
- (Bernhard Kuhn)
-Solution: Change back to the original directory after loading a file.
- Also: use shorten_fname1() to avoid duplicating code.
-Files: src/buffer.c, src/ex_docmd.c, src/fileio.c, src/gui_gtk.c,
- src/gui_w48.c, src/proto/ex_docmd.pro, src/proto/fileio.pro,
- src/quickfix.c
-
-Patch 7.1.127
-Problem: Memory leak when doing cmdline completion. (Dominique Pelle)
-Solution: Free "orig" argument of ExpandOne() when it's not used.
-Files: src/ex_getln.c
-
-Patch 7.1.128 (extra)
-Problem: Build problems with new version of Cygwin.
-Solution: Remove -D__IID_DEFINED__, like with MingW. (Guopeng Wen)
-Files: src/Make_cyg.mak
-
-Patch 7.1.129 (extra)
-Problem: Win32: Can't get the user name when it is longer than 15
- characters.
-Solution: Use UNLEN instead of MAX_COMPUTERNAME_LENGTH. (Alexei Alexandrov)
-Files: src/os_win32.c
-
-Patch 7.1.130
-Problem: Crash with specific order of undo and redo. (A.Politz)
-Solution: Clear and adjust pointers properly. Add u_check() for debugging.
-Files: src/undo.c, src/structs.h
-
-Patch 7.1.131
-Problem: ":mksession" always adds ":setlocal autoread". (Christian J.
- Robinson)
-Solution: Skip boolean global/local option using global value.
-Files: src/option.c
-
-Patch 7.1.132
-Problem: getpos("'>") may return a negative column number for a Linewise
- selection. (A.Politz)
-Solution: Don't add one to MAXCOL.
-Files: src/eval.c
-
-Patch 7.1.133 (after 7.1.126)
-Problem: shorten_fname1() linked when it's not needed.
-Solution: Add #ifdef.
-Files: src/fileio.c
-
-Patch 7.1.134 (extra)
-Problem: Win32: Can't build with VC8
-Solution: Detect the MSVC version instead of using NMAKE_VER.
- (Mike Williams)
-Files: src/Make_mvc.mak
-
-Patch 7.1.135
-Problem: Win32: When editing a file c:\tmp\foo and c:\tmp\\foo we have two
- buffers for the same file. (Suresh Govindachar)
-Solution: Invoke FullName_save() when a path contains "//" or "\\".
-Files: src/buffer.c
-
-Patch 7.1.136
-Problem: Memory leak when using Ruby syntax highlighting. (Dominique Pelle)
-Solution: Free the contained-in list.
-Files: src/syntax.c
-
-Patch 7.1.137
-Problem: Build failure when using EXITFREE. (Dominique Pelle)
-Solution: Add an #ifdef around using clip_exclude_prog.
-Files: src/misc2.c
-
-Patch 7.1.138
-Problem: The Perl Msg() function doesn't stop when "q" is typed at the more
- prompt. (Hari Krishna Dara)
-Solution: Check got_int.
-Files: src/if_perl.xs
-
-Patch 7.1.139
-Problem: When using marker folding and ending Insert mode with CTRL-C the
- current fold is truncated. (Fred Kater)
-Solution: Ignore got_int while updating folds.
-Files: src/fold.c
-
-Patch 7.1.140
-Problem: v:count is set only after typing a non-digit, that makes it
- difficult to make a nice mapping.
-Solution: Set v:count while still typing the count.
-Files: src/normal.c
-
-Patch 7.1.141
-Problem: GTK: -geom argument doesn't support a negative offset.
-Solution: Compute position from the right/lower corner.
-Files: src/gui_gtk_x11.c
-
-Patch 7.1.142
-Problem: ":redir @A>" doesn't work.
-Solution: Ignore the extra ">" also when appending. (James Vega)
-Files: src/ex_docmd.c
-
-Patch 7.1.143
-Problem: Uninitialized memory read when diffing three files. (Dominique
- Pelle)
-Solution: Remove "+ !notset" so that we don't use fields that were not
- computed.
-Files: src/diff.c
-
-Patch 7.1.144
-Problem: After ":diffup" cursor can be in the wrong position.
-Solution: Force recomputing the cursor position.
-Files: src/diff.c
-
-Patch 7.1.145
-Problem: Insert mode completion: When using the popup menu, after
- completing a word and typing a non-word character Vim is still
- completing the same word, following CTRL-N doesn't work.
- Insert mode Completion: When using CTRL-X O and there is only
- "struct." before the cursor, typing one char to reduce the
- matches, then BS completion stops.
-Solution: When typing a character that is not part of the item being
- completed, stop complete mode. For whole line completion also
- accept a space. For file name completion stop at a path
- separator.
- For omni completion stay in completion mode even if completing
- with empty string.
-Files: src/edit.c
-
-Patch 7.1.146 (extra)
-Problem: VMS: Files with a very rare record organization (VFC) cannot be
- properly written by Vim.
- On older VAX systems mms runs into a syntax error.
-Solution: Check for this special situation. Do not wrap a comment, make it
- one long line. (Zoltan Arpadffy)
-Files: src/fileio.c, src/Make_vms.mms
-
-Patch 7.1.147 (after 7.1.127)
-Problem: Freeing memory already freed when completing user name. (Meino
- Cramer)
-Solution: Use a flag to remember if "orig" needs to be freed.
-Files: src/ex_getln.c
-
-Patch 7.1.148
-Problem: Some types are not found by configure.
-Solution: Test for the sys/types.h header file. (Sean Boudreau)
-Files: src/configure.in, src/auto/configure
-
-Patch 7.1.149
-Problem: GTK GUI: When the completion popup menu is used scrolling another
- window by the scrollbar is OK, but using the scroll wheel it
- behaves line <Enter>.
-Solution: Ignore K_MOUSEDOWN and K_MOUSEUP. Fix redrawing the popup menu.
-Files: src/edit.c, src/gui.c
-
-Patch 7.1.150
-Problem: When 'clipboard' has "unnamed" using "p" in Visual mode doesn't
- work correctly. (Jianrong Yu)
-Solution: When 'clipboard' has "unnamed" also obtain the selection when
- getting the default register.
-Files: src/ops.c
-
-Patch 7.1.151
-Problem: Using whole line completion with 'ignorecase' and 'infercase' set
- and the line is empty get an lalloc(0) error.
-Solution: Don't try changing case for an empty match. (Matthew Wozniski)
-Files: src/edit.c
-
-Patch 7.1.152
-Problem: Display problem when 'hls' and 'cursorcolumn' are set and
- searching for "$". (John Mullin) Also when scrolling
- horizontally when 'wrap' is off.
-Solution: Keep track of the column where highlighting was set. Check the
- column offset when skipping characters.
-Files: src/screen.c
-
-Patch 7.1.153
-Problem: Compiler warnings on SGI. Undefined XpmAllocColor (Charles
- Campbell)
-Solution: Add type casts. Init st_dev and st_ino separately. Don't use
- type casts for vim_snprintf() when HAVE_STDARG_H is defined.
- Define XpmAllocColor when needed.
-Files: src/eval.c, src/ex_cmds.c, src/fileio.c, src/misc2.c,
- src/gui_xmebw.c
-
-Patch 7.1.154
-Problem: Compiler warning for signed/unsigned compare.
-Solution: Add type cast.
-Files: src/screen.c
-
-Patch 7.1.155
-Problem: Crash when 'undolevels' is 0 and repeating "udd". (James Vega)
-Solution: When there is only one branch use u_freeheader() to delete it.
-Files: src/undo.c
-
-Patch 7.1.156
-Problem: Overlapping arguments for strcpy() when expanding command line
- variables.
-Solution: Use mch_memmove() instead of STRCPY(). Also fix a few typos.
- (Dominique Pelle)
-Files: src/ex_docmd.c
-
-Patch 7.1.157
-Problem: In Ex mode, :" gives an error at end-of-file. (Michael Hordijk)
-Solution: Only give an error for an empty line, not for a comment.
-Files: src/ex_docmd.c
-
-Patch 7.1.158 (extra)
-Problem: Win32 console: When 'encoding' is "utf-8" and typing Alt-y the
- result is wrong. Win32 GUI: Alt-y results in "u" when 'encoding'
- is "cp1250" (Lukas Cerman)
-Solution: For utf-8 don't set the 7th bit in a byte, convert to the correct
- byte sequence. For cp1250, when conversion to 'encoding' results
- in the 7th bit not set, set the 7th bit after conversion.
-Files: src/os_win32.c, src/gui_w48.c
-
-Patch 7.1.159
-Problem: strcpy() has overlapping arguments.
-Solution: Use mch_memmove() instead. (Dominique Pelle)
-Files: src/ex_cmds.c
-
-Patch 7.1.160
-Problem: When a focus autocommand is defined, getting or losing focus
- causes the hit-enter prompt to be redrawn. (Bjorn Winckler)
-Solution: Overwrite the last line.
-Files: src/message.c
-
-Patch 7.1.161
-Problem: Compilation errors with tiny features and EXITFREE.
-Solution: Add #ifdefs. (Dominique Pelle)
-Files: src/edit.c, src/misc2.c
-
-Patch 7.1.162
-Problem: Crash when using a modifier before "while" or "for". (A.Politz)
-Solution: Skip modifiers when checking for a loop command.
-Files: src/proto/ex_docmd.pro, src/ex_docmd.c, src/ex_eval.c
-
-Patch 7.1.163
-Problem: Warning for the unknown option 'bufsecret'.
-Solution: Remove the lines .vim that use this option. (Andy Wokula)
-Files: runtime/menu.vim
-
-Patch 7.1.164
-Problem: Reading past end of regexp pattern. (Dominique Pelle)
-Solution: Use utf_ptr2len().
-Files: src/regexp.c
-
-Patch 7.1.165
-Problem: Crash related to getting X window ID. (Dominique Pelle)
-Solution: Don't trust the window ID that we got in the past, check it every
- time.
-Files: src/os_unix.c
-
-Patch 7.1.166
-Problem: Memory leak for using "gp" in Visual mode.
-Solution: Free memory in put_register(). (Dominique Pelle)
-Files: src/ops.c
-
-Patch 7.1.167
-Problem: Xxd crashes when using "xxd -b -c 110". (Debian bug 452789)
-Solution: Allocate more memory. Fix check for maximum number of columns.
-Files: src/xxd/xxd.c
-
-Patch 7.1.168 (extra)
-Problem: Win32 GUI: Since patch 7.1.095, when the Vim window does not have
- focus, clicking in it doesn't position the cursor. (Juergen
- Kraemer)
-Solution: Don't reset s_button_pending just after receiving focus.
-Files: src/gui_w48.c
-
-Patch 7.1.169
-Problem: Using uninitialized variable when system() fails. (Dominique
- Pelle)
-Solution: Let system() return an empty string when it fails.
-Files: src/eval.c
-
-Patch 7.1.170
-Problem: Valgrind warning for overlapping arguments for strcpy().
-Solution: Use mch_memmove() instead. (Dominique Pelle)
-Files: src/getchar.c
-
-Patch 7.1.171
-Problem: Reading one byte before allocated memory.
-Solution: Check index not to become negative. (Dominique Pelle)
-Files: src/ex_getln.c
-
-Patch 7.1.172
-Problem: When 'buftype' is "acwrite" Vim still checks if the file or
- directory exists before overwriting.
-Solution: Don't check for overwriting when the buffer name is not a file
- name.
-Files: src/ex_cmds.c
-
-Patch 7.1.173
-Problem: Accessing freed memory. (Dominique Pelle)
-Solution: Don't call reg_getline() to check if a line is the first in the
- file.
-Files: src/regexp.c
-
-Patch 7.1.174
-Problem: Writing NUL past end of a buffer.
-Solution: Copy one byte less when using strncat(). (Dominique Pelle)
-Files: src/ex_cmds.c, src/ex_docmd.c,
-
-Patch 7.1.175
-Problem: <BS> doesn't work with some combination of 'sts', 'linebreak' and
- 'backspace'. (Francois Ingelrest)
-Solution: When adding white space results in not moving back delete one
- character.
-Files: src/edit.c
-
-Patch 7.1.176
-Problem: Building with Aap fails when the "compiledby" argument contains
- '<' or '>' characters. (Alex Yeh)
-Solution: Change how quoting is done in the Aap recipe.
-Files: src/main.aap
-
-Patch 7.1.177
-Problem: Freeing memory twice when in debug mode while reading a script.
-Solution: Ignore script input while in debug mode.
-Files: src/ex_cmds2.c, src/getchar.c, src/globals.h
-
-Patch 7.1.178
-Problem: "%" doesn't work on "/* comment *//* comment */".
-Solution: Don't handle the "//" in "*//*" as a C++ comment. (Markus
- Heidelberg)
-Files: src/search.c
-
-Patch 7.1.179
-Problem: Need to check for TCL 8.5.
-Solution: Adjust configure script. (Alexey Froloff)
-Files: src/configure.in, src/auto/configure
-
-Patch 7.1.180
-Problem: Regexp patterns not tested sufficiently.
-Solution: Add more checks to the regexp test.
-Files: src/testdir/test64.in, src/testdir/test64.ok
-
-Patch 7.1.181
-Problem: Accessing uninitialized memory in Farsi mode. (Dominique Pelle)
-Solution: Only invoke lrF_sub() when there is something to do.
-Files: src/ex_cmds.c
-
-Patch 7.1.182
-Problem: When using tab pages and an argument list the session file may
- contain wrong "next" commands. (Alexander Bluem)
-Solution: Use "argu" commands and only when needed.
-Files: src/ex_docmd.c
-
-Patch 7.1.183
-Problem: "Internal error" for ":echo matchstr('a', 'a\%[\&]')" (Mitanu
- Paul)
-Solution: Inside "\%[]" detect \&, \| and \) as an error.
-Files: src/regexp.c
-
-Patch 7.1.184
-Problem: Crash when deleting backwards over a line break in Insert mode.
-Solution: Don't advance the cursor when it's already on the NUL after a
- line. (Matthew Wozniski)
-Files: src/normal.c
-
-Patch 7.1.185
-Problem: Using "gR" with a multi-byte encoding and typing a CR pushes
- characters onto the replace stack incorrectly, resulting in BS
- putting back the wrong characters. (Paul B. Mahol)
-Solution: Push multi-byte characters onto the replace stack in reverse byte
- order. Add replace_push_mb().
-Files: src/edit.c, src/misc1.c, src/proto/edit.pro
-
-Patch 7.1.186
-Problem: "expand('<afile>')" returns a bogus value after changing
- directory. (Dave Fishburn)
-Solution: Copy "autocmd_fname" to allocated memory and expand to full
- filename. Shorten the path when expanding <afile>.
-Files: src/ex_docmd.c, src/fileio.c
-
-Patch 7.1.187
-Problem: Win32 GUI: Custom completion using system() no longer works
- after patch 7.1.104. (Erik Falor)
-Solution: Loop when safe_vgetc() returns K_IGNORE.
-Files: src/ex_getln.c
-
-Patch 7.1.188
-Problem: When 'showmode' is off the message for changing a readonly file is
- given in the second column instead of the first. (Payl B. Mahol)
-Solution: Put the W10 message in the first column.
-Files: src/edit.c
-
-Patch 7.1.189 (after 7.1.104)
-Problem: Patch 7.1.104 was incomplete.
-Solution: Also call plain_vgetc() in ask_yesno().
-Files: src/misc1.c
-
-Patch 7.1.190
-Problem: Cursor after end-of-line: "iA sentence.<Esc>)"
-Solution: Move cursor back and make motion inclusive.
-Files: src/normal.c
-
-Patch 7.1.191
-Problem: Win32 GUI: after patch 7.1.168 there is still a problem when
- clicking in a scrollbar. (Juergen Jottkaerr)
-Solution: Don't check the input buffer when dragging the scrollbar.
-Files: src/gui.c
-
-Patch 7.1.192
-Problem: With Visual block selection, "s" and typing something, CTRL-C
- doesn't stop Vim from repeating the replacement in other lines,
- like happens for "I".
-Solution: Check for "got_int" to be set.
-Files: src/ops.c
-
-Patch 7.1.193
-Problem: Some Vim 5.x digraphs are missing in Vim 7, even though the
- character pairs are not used. (Philippe de Muyter)
-Solution: Add those Vim 5.x digraphs that don't conflict with others.
-Files: src/digraph.c
-
-Patch 7.1.194
-Problem: ":echo glob('~/{}')" results in /home/user//.
-Solution: Don't add a slash if there already is one.
-Files: src/os_unix.c
-
-Patch 7.1.195
-Problem: '0 mark doesn't work for "~/foo ~ foo".
-Solution: Don't expand the whole file name, only "~/".
-Files: src/mark.c
-
-Patch 7.1.196 (extra)
-Problem: Win32 GUI: "\n" in a tooltip doesn't cause a line break. (Erik
- Falor)
-Solution: Use the TTM_SETMAXTIPWIDTH message.
-Files: src/gui_w32.c
-
-Patch 7.1.197
-Problem: Mac: "make install" doesn't work when prefix defined.
-Solution: Pass different arguments to "make installruntime". (Jjgod Jiang)
-Files: src/Makefile
-
-Patch 7.1.198
-Problem: Hang when using ":s/\n//gn". (Burak Gorkemli)
-Solution: Set "skip_match".
-Files: src/ex_cmds.c
-
-Patch 7.1.199
-Problem: Can't do command line completion for a specific file name
- extension.
-Solution: When the pattern ends in "$" don't add a star for completion and
- remove the "$" before matching with file names.
-Files: runtime/doc/cmdline.txt, src/ex_getln.c
-
-Patch 7.1.200 (after 7.1.177 and 7.1.182)
-Problem: Compiler warnings for uninitialized variables.
-Solution: Init variables.
-Files: src/ex_cmds2.c, src/ex_docmd.c
-
-Patch 7.1.201
-Problem: When reading stdin 'fenc' and 'ff' are not set.
-Solution: Set the options after reading stdin. (Ben Schmidt)
-Files: src/fileio.c
-
-Patch 7.1.202
-Problem: Incomplete utf-8 byte sequence is not checked for validity.
-Solution: Check the bytes that are present for being valid. (Ben Schmidt)
-Files: src/mbyte.c
-
-Patch 7.1.203
-Problem: When 'virtualedit' is "onemore" then "99|" works but ":normal 99|"
- doesn't. (Andy Wokula)
-Solution: Check for "onemore" flag in check_cursor_col().
-Files: src/misc2.c
-
-Patch 7.1.204 (extra)
-Problem: Win32: Using the example at 'balloonexpr' the balloon disappears
- after four seconds and then comes back again. Also moves the
- mouse pointer a little bit. (Yongwei Wu)
-Solution: Set the autopop time to 30 seconds (the max value). (Sergey
- Khorev) Move the mouse two pixels forward and one back to end up
- in the same position (really!).
-Files: src/gui_w32.c
-
-Patch 7.1.205
-Problem: Can't get the operator in an ":omap".
-Solution: Add the "v:operator" variable. (Ben Schmidt)
-Files: runtime/doc/eval.txt, src/eval.c, src/normal.c, src/vim.h
-
-Patch 7.1.206
-Problem: Compiler warnings when using MODIFIED_BY.
-Solution: Add type casts. (Ben Schmidt)
-Files: src/version.c
-
-Patch 7.1.207
-Problem: Netbeans: "remove" cannot delete one line.
-Solution: Remove partial lines and whole lines properly. Avoid a memory
- leak. (Xavier de Gaye)
-Files: src/netbeans.c
-
-Patch 7.1.208
-Problem: On Alpha get an unaligned access error.
-Solution: Store the dictitem pointer before using it. (Matthew Luckie)
-Files: src/eval.c
-
-Patch 7.1.209
-Problem: GTK: When using the netrw plugin and doing ":gui" Vim hangs.
-Solution: Stop getting a selection after three seconds. This is a hack.
-Files: src/gui_gtk_x11.c
-
-Patch 7.1.210
-Problem: Listing mapping for 0xdb fails when 'encoding' is utf-8. (Tony
- Mechelynck)
-Solution: Recognize K_SPECIAL KS_EXTRA KE_CSI as a CSI byte.
-Files: src/mbyte.c
-
-Patch 7.1.211
-Problem: The matchparen plugin may take an unexpected amount of time, so
- that it looks like Vim hangs.
-Solution: Add a timeout to searchpair(), searchpairpos(), search() and
- searchpos(). Use half a second timeout in the plugin.
-Files: runtime/doc/eval.txt, runtime/plugin/matchparen.vim, src/edit.c,
- src/eval.c, src/ex_cmds2.c, src/ex_docmd.c, src/normal.c,
- src/proto/eval.pro, src/proto/ex_cmds2.pro, src/proto/search.pro,
- src/search.c
-
-Patch 7.1.212
-Problem: Accessing a byte before a line.
-Solution: Check that the column is 1 or more. (Dominique Pelle)
-Files: src/edit.c
-
-Patch 7.1.213
-Problem: A ":tabedit" command that results in the "swap file exists" dialog
- and selecting "abort" doesn't close the new tab. (Al Budden)
-Solution: Pass "old_curwin" to do_exedit().
-Files: src/ex_docmd.c
-
-Patch 7.1.214
-Problem: ":1s/g\n\zs1//" deletes characters from the first line. (A Politz)
-Solution: Start replacing in the line where the match starts.
-Files: src/ex_cmds.c
-
-Patch 7.1.215
-Problem: It is difficult to figure out what syntax items are nested at a
- certain position.
-Solution: Add the synstack() function.
-Files: runtime/doc/eval.txt, src/eval.c, src/proto/syntax.pro,
- src/syntax.c
-
-Patch 7.1.216
-Problem: Variants of --remote-tab are not mentioned for "vim --help".
-Solution: Display optional -wait and -silent.
-Files: src/main.c
-
-Patch 7.1.217
-Problem: The "help-tags" tag may be missing from runtime/doc/tags when it
- was generated during "make install".
-Solution: Add the "++t" argument to ":helptags" to force adding the tag.
-Files: runtime/doc/Makefile, runtime/doc/various.txt, src/ex_cmds.c,
- src/ex_cmds.h
-
-Patch 7.1.218
-Problem: A syntax region without a "keepend", containing a region with
- "extend" could be truncated at the end of the containing region.
-Solution: Do not call syn_update_ends() when there are no keepend items.
-Files: src/syntax.c
-
-Patch 7.1.219 (after 7.1.215)
-Problem: synstack() returns situation after the current character, can't
- see the state for a one-character region.
-Solution: Don't update ending states in the requested column.
-Files: runtime/doc/eval.txt, src/eval.c, src/hardcopy.c,
- src/proto/syntax.pro, src/screen.c, src/spell.c, src/syntax.c
-
-Patch 7.1.220
-Problem: When a ")" or word movement command moves the cursor back from the
- end of the line it may end up on the trail byte of a multi-byte
- character. It's also moved back when it isn't needed.
-Solution: Add the adjust_cursor() function.
-Files: src/normal.c
-
-Patch 7.1.221
-Problem: When inserting a "(", triggering the matchparen plugin, the
- following highlighting may be messed up.
-Solution: Before triggering the CursorMovedI autocommands update the display
- to update the stored syntax stacks for the change.
-Files: src/edit.c
-
-Patch 7.1.222 (after 7.1.217)
-Problem: Wildcards in argument of ":helptags" are not expanded. (Marcel
- Svitalsky)
-Solution: Expand wildcards in the directory name.
-Files: src/ex_cmds.c
-
-Patch 7.1.223
-Problem: glob() doesn't work properly when 'shell' is "sh" or "bash" and
- the expanded name contains spaces, '~', single quotes and other
- special characters. (Adri Verhoef, Charles Campbell)
-Solution: For Posix shells define a vimglob() function to list the matches
- instead of using "echo" directly.
-Files: src/os_unix.c
-
-Patch 7.1.224
-Problem: When using "vim -F -o file1 file2" only one window is
- right-to-left. Same for "-H". (Ben Schmidt)
-Solution: use set_option_value() to set 'rightleft'.
-Files: src/main.c
-
-Patch 7.1.225
-Problem: Using uninitialized value when XGetWMNormalHints() fails.
-Solution: Check the return value. (Dominique Pelle)
-Files: src/os_unix.c
-
-Patch 7.1.226
-Problem: Command line completion doesn't work when a file name contains a
- '&' character.
-Solution: Accept all characters in a file name, except ones that end a
- command or white space.
-Files: src/ex_docmd.c
-
-Patch 7.1.227
-Problem: Hang in syntax HL when moving over a ")". (Dominique Pelle)
-Solution: Avoid storing a syntax state in the wrong position in the list of
- remembered states.
-Files: src/syntax.c
-
-Patch 7.1.228
-Problem: When 'foldmethod' is "indent" and a fold is created with ">>" it
- can't be closed with "zc". (Daniel Shahaf)
-Solution: Reset the "small" flag of a fold when adding a line to it.
-Files: src/fold.c
-
-Patch 7.1.229
-Problem: A fold is closed when it shouldn't when 'foldmethod' is "indent"
- and backspacing a non-white character so that the indent increases.
-Solution: Keep the fold open after backspacing a character.
-Files: src/edit.c
-
-Patch 7.1.230
-Problem: Memory leak when executing SourceCmd autocommands.
-Solution: Free the memory. (Dominique Pelle)
-Files: src/ex_cmds2.c
-
-Patch 7.1.231
-Problem: When shifting lines the change is acted upon multiple times.
-Solution: Don't have shift_line() call changed_bytes.
-Files: src/edit.c, src/ops.c, src/proto/edit.pro, src/proto/ops.pro
-
-Patch 7.1.232 (after 7.1.207 and 7.1.211)
-Problem: Compiler warnings with MSVC.
-Solution: Add type casts. (Mike Williams)
-Files: src/ex_cmds2.c, src/netbeans.c
-
-Patch 7.1.233
-Problem: Crash when doing Insert mode completion for a user defined
- command. (Yegappan Lakshmanan)
-Solution: Don't use the non-existing command line.
-Files: src/ex_getln.c
-
-Patch 7.1.234
-Problem: When diff'ing three files the third one isn't displayed correctly.
- (Gary Johnson)
-Solution: Compute the size of diff blocks correctly when merging blocks.
- Compute filler lines correctly when scrolling.
-Files: src/diff.c
-
-Patch 7.1.235
-Problem: Pattern matching is slow when using a lot of simple patterns.
-Solution: Avoid allocating memory by not freeing it when it's not so much.
- (Alexei Alexandrov)
-Files: src/regexp.c
-
-Patch 7.1.236
-Problem: When using 'incsearch' and 'hlsearch' a complicated pattern may
- make Vim hang until CTRL-C is pressed.
-Solution: Add the 'redrawtime' option.
-Files: runtime/doc/options.txt, src/ex_cmds.c, src/ex_docmd.c,
- src/ex_getln.c, src/gui.c, src/misc1.c, src/normal.c,
- src/option.c, src/quickfix.c, src/regexp.c, src/proto/regexp.pro,
- src/proto/search.pro, src/search.c, src/screen.c,
- src/option.h, src/spell.c, src/structs.h, src/syntax.c, src/tag.c,
- src/vim.h
-
-Patch 7.1.237
-Problem: Compiler warning on an Alpha processor in Motif code.
-Solution: Change a typecast. (Adri Verhoef)
-Files: src/gui_motif.c
-
-Patch 7.1.238
-Problem: Using the 'c' flag with searchpair() may cause it to fail. Using
- the 'r' flag doesn't work when 'wrapscan' is set. (A.Politz)
-Solution: Only use the 'c' flag for the first search, not for repeating.
- When using 'r' imply 'W'. (Antony Scriven)
-Files: src/eval.c
-
-Patch 7.1.239 (after 7.1.233)
-Problem: Compiler warning for sprintf() argument.
-Solution: Add a typecast. (Nico Weber)
-Files: src/ex_getln.c
-
-Patch 7.1.240
-Problem: When "gUe" turns a German sharp s into SS the operation stops
- before the end of the word. Latin2 has the same sharp s but it's
- not changed to SS there.
-Solution: Make sure all the characters are operated upon. Detect the sharp
- s in latin2. Also fixes that changing case of a multi-byte
- character that changes the byte count doesn't always work.
-Files: src/ops.c
-
-Patch 7.1.241
-Problem: Focus change events not always ignored. (Erik Falor)
-Solution: Ignore K_IGNORE in Insert mode in a few more places.
-Files: src/edit.c
-
-Patch 7.1.242 (after 7.1.005)
-Problem: "cib" doesn't work properly on "(x)". (Tim Pope)
-Solution: Use ltoreq() instead of lt(). Also fix "ciT" on "<a>x</a>".
-Files: src/search.c
-
-Patch 7.1.243 (after 7.1.240)
-Problem: "U" doesn't work on all text in Visual mode. (Adri Verhoef)
-Solution: Loop over all the lines to be changed. Add tests for this.
-Files: src/ops.c, src/testdir/test39.in, src/testdir/test39.ok
-
-Patch 7.1.244
-Problem: GUI may have part of the command line cut off.
-Solution: Don't round the number of lines up, always round down.
- (Tony Houghton, Scott Dillard)
-Files: src/gui.c
-
-Patch 7.1.245
-Problem: Pressing CTRL-\ three times causes Vim to quit. (Ranganath Rao).
- Also for f CTRL-\ CTRL-\.
-Solution: When going to cooked mode in mch_delay() set a flag to ignore
- SIGQUIT.
-Files: src/os_unix.c
-
-Patch 7.1.246
-Problem: Configure hangs when the man pager is something strange. (lorien)
-Solution: Set MANPAGER and PAGER to "cat". (Micah Cowan)
-Files: src/auto/configure, src/configure.in
-
-Patch 7.1.247
-Problem: When using Netbeans backspacing in Insert mode skips a character
- now and then. (Ankit Jain)
-Solution: Avoid calling netbeans_removed(), it frees the line pointer.
- (partly by Dominique Pelle).
-Files: src/misc1.c
-
-Patch 7.1.248
-Problem: Can't set the '" mark. Can't know if setpos() was successful.
-Solution: Allow setting the '" mark with setpos(). Have setpos() return a
- value indicating success/failure.
-Files: runtime/doc/eval.txt, src/eval.c, src/mark.c
-
-Patch 7.1.249
-Problem: After "U" the cursor can be past end of line. (Adri Verhoef)
-Solution: Adjust the cursor position in u_undoline().
-Files: src/undo.c
-
-Patch 7.1.250
-Problem: ":setglobal fenc=anything" gives an error message in a buffer
- where 'modifiable' is off. (Ben Schmidt)
-Solution: Don't give an error if 'modifiable' doesn't matter.
-Files: src/option.c
-
-Patch 7.1.251
-Problem: Using freed memory when spell checking enabled.
-Solution: Obtain the current line again after calling spell_move_to().
- (Dominique Pelle)
-Files: src/screen.c
-
-Patch 7.1.252 (after 7.1.243)
-Problem: Test 39 fails when the environment has a utf-8 locale. (Dominique
- Pelle)
-Solution: Force 'encoding' to be latin1.
-Files: src/testdir/test39.in
-
-Patch 7.1.253
-Problem: ":sort" doesn't work in a one line file. (Patrick Texier)
-Solution: Don't sort if there is only one line. (Dominique Pelle)
-Files: src/ex_cmds.c
-
-Patch 7.1.254
-Problem: Tests 49 and 55 fail when the locale is French.
-Solution: Using C messages for test 49. Filter the error message in test 55
- such that it works when the number is halfway the message.
-Files: src/testdir/test49.in, src/testdir/test55.in
-
-Patch 7.1.255
-Problem: Vim doesn't support utf-32. (Yongwei Wu)
-Solution: Add aliases for utf-32, it's the same as ucs-4.
-Files: src/mbyte.c
-
-Patch 7.1.256
-Problem: findfile() also returns directories.
-Solution: Cleanup the code for finding files and directories in a list of
- directories. Remove the ugly global ff_search_ctx.
-Files: src/eval.c, src/misc2.c, src/vim.h, src/tag.c
-
-Patch 7.1.257
-Problem: Configure can't always find the Tcl header files.
-Solution: Also look in /usr/local/include/tcl$tclver and
- /usr/include/tcl$tclver (James Vega)
-Files: src/auto/configure, src/configure.in
-
-Patch 7.1.258
-Problem: Crash when doing "d/\n/e" and 'virtualedit' is "all". (Andy Wokula)
-Solution: Avoid that the column becomes negative. Also fixes other problems
- with the end of a pattern match is in column zero. (A.Politz)
-Files: src/search.c
-
-Patch 7.1.259
-Problem: Cursor is in the wrong position when 'rightleft' is set,
- 'encoding' is "utf-8" and on an illegal byte. (Dominique Pelle)
-Solution: Only put the cursor in the first column when actually on a
- double-wide character. (Yukihiro Nakadaira)
-Files: src/screen.c
-
-Patch 7.1.260
-Problem: Cursor positioning problem after ^@ wrapping halfway when
- 'encoding' is utf-8.
-Solution: Only count a position for printable characters. (partly by
- Yukihiro Nakadaira)
-Files: src/charset.c
-
-Patch 7.1.261
-Problem: When a 2 byte BOM is detected Vim uses UCS-2, which doesn't work
- for UTF-16 text. (Tony Mechelynck)
-Solution: Default to UTF-16.
-Files: src/fileio.c, src/testdir/test42.ok
-
-Patch 7.1.262
-Problem: Can't get the process ID of Vim.
-Solution: Implement getpid().
-Files: src/eval.c, runtime/doc/eval.txt
-
-Patch 7.1.263
-Problem: The filetype can consist of two dot separated names. This works
- for syntax and ftplugin, but not for indent. (Brett Stahlman)
-Solution: Use split() and loop over each dot separated name.
-Files: runtime/indent.vim
-
-Patch 7.1.264
-Problem: Crash when indenting lines. (Dominique Pelle)
-Solution: Set the cursor column when changing the cursor line.
-Files: src/ops.c, src/misc1.c
-
-Patch 7.1.265
-Problem: When 'isfname' contains a space, cmdline completion can hang.
- (James Vega)
-Solution: Reset the "len" variable.
-Files: src/ex_docmd.c
-
-Patch 7.1.266
-Problem: When the version string returned by the terminal contains
- unexpected characters, it is used as typed input. (James Vega)
-Solution: Assume the escape sequence ends in a letter.
-Files: src/term.c
-
-Patch 7.1.267
-Problem: When changing folds cursor may be positioned in the wrong place.
-Solution: Call changed_window_setting_win() instead of
- changed_window_setting().
-Files: src/fold.c
-
-Patch 7.1.268
-Problem: Always shows "+" at end of screen line with: ":set
- listchars=eol:$,extends:+ nowrap list cursorline" (Gary Johnson)
-Solution: Check for lcs_eol_one instead of lcs_eol.
-Files: src/screen.c
-
-Patch 7.1.269
-Problem: The matchparen plugin has an arbitrary limit for the number of
- lines to look for a match.
-Solution: Rely on the searchpair() timeout.
-Files: runtime/plugin/matchparen.vim
-
-Patch 7.1.270
-Problem: ":?foo?" matches in current line since patch 7.1.025. (A.Politz)
-Solution: Remove the SEARCH_START flag.
-Files: src/ex_docmd.c, src/search.c
-
-Patch 7.1.271
-Problem: In a Vim build without autocommands, checking a file that was
- changed externally causes the current buffer to be changed
- unexpectedly. (Karsten Hopp)
-Solution: Store "curbuf" instead of "buf".
-Files: src/fileio.c
-
-Patch 7.1.272
-Problem: The special buffer name [Location List] is not used for a buffer
- displayed in another tab page.
-Solution: Use FOR_ALL_TAB_WINDOWS instead of FOR_ALL_WINDOWS. (Hiroaki
- Nishihara)
-Files: src/buffer.c
-
-Patch 7.1.273
-Problem: When profiling on Linux Vim exits early. (Liu Yubao)
-Solution: When profiling don't exit on SIGPROF.
-Files: src/Makefile, src/os_unix.c
-
-Patch 7.1.274 (after 7.1.272)
-Problem: Compiler warning for optimized build.
-Solution: Init win to NULL.
-Files: src/buffer.c
-
-Patch 7.1.275 (extra)
-Problem: Mac: ATSUI and 'antialias' don't work properly together.
-Solution: Fix this and the input method. (Jjgod Jiang)
-Files: src/vim.h, src/gui_mac.c
-
-Patch 7.1.276
-Problem: "gw" uses 'formatexpr', even though the docs say it doesn't.
-Solution: Don't use 'formatexpr' for "gw".
-Files: src/vim.h, src/edit.c, src/ops.c, src/proto/ops.pro
-
-Patch 7.1.277
-Problem: Default for 'paragraphs' misses some items (Colin Watson)
-Solution: Add TP, HP, Pp, Lp and It to 'paragraphs'. (James Vega)
-Files: runtime/doc/options.txt, src/option.c
-
-Patch 7.1.278 (extra, after 7.1.275)
-Problem: Build failure when USE_CARBONKEYHANDLER is not defined.
-Solution: Remove #ifdef.
-Files: src/gui_mac.c
-
-Patch 7.1.279
-Problem: When using cscope temporary files are left behind.
-Solution: Send the quit command to cscope and give it two seconds to exit
- nicely before killing it. (partly by Dominique Pelle)
-Files: src/if_cscope.c
-
-Patch 7.1.280 (after 7.1.275)
-Problem: Mac: build problems when not using multibyte feature. (Nicholas
- Stallard)
-Solution: Don't define USE_IM_CONTROL when not using multibyte.
-Files: src/vim.h
-
-Patch 7.1.281 (after 7.1.279)
-Problem: sa.sa_mask is not initialized. Cscope may not exit.
-Solution: Use sigemptyset(). Use SIGKILL instead of SIGTERM. (Dominique
- Pelle)
-Files: src/if_cscope.c
-
-Patch 7.1.282 (extra)
-Problem: Win64: Edit with Vim context menu isn't installed correctly.
- Compiler warnings and a few other things.
-Solution: Add [ and ] to entry of class name. Use UINT_PTR instead of UINT.
- And a fixes for the other things. (George V. Reilly)
-Files: src/GvimExt/Makefile, src/dosinst.c, src/if_ole.cpp, src/if_ole.h,
- src/if_ole.idl, src/INSTALLpc.txt, src/Make_mvc.mak,
- src/os_win32.c,
-
-Patch 7.1.283
-Problem: Non-extra part for 7.1.282.
-Solution: Various changes.
-Files: src/ex_docmd.c, src/globals.h, src/if_cscope.c, src/main.c,
- src/mark.c, src/netbeans.c, src/popupmnu.c, src/vim.h,
- src/window.c
-
-Patch 7.1.284
-Problem: Compiler warnings for functions without prototype.
-Solution: Add the function prototypes. (Patrick Texier)
-Files: src/eval.c, src/quickfix.c
-
-Patch 7.1.285 (extra)
-Problem: Mac: dialog hotkeys don't work.
-Solution: Add hotkey support. (Dan Sandler)
-Files: src/gui_mac.c
-
-Patch 7.1.286 (after 7.1.103)
-Problem: "w" at the end of the buffer moves the cursor past the end of the
- line. (Markus Heidelberg)
-Solution: Move the cursor back from the NUL when it was moved forward.
-Files: src/normal.c
-
-Patch 7.1.287
-Problem: Crash when reversing a list after using it. (Andy Wokula)
-Solution: Update the pointer to the last used element. (Dominique Pelle)
-Files: src/eval.c
-
-Patch 7.1.288 (after 7.1.281)
-Problem: Cscope still leaves behind temp files when using gvim.
-Solution: When getting the ECHILD error loop for a while until cscope exits.
- (Dominique Pelle)
-Files: if_cscope.c
-
-Patch 7.1.289
-Problem: When EXITFREE is defined and 'acd' is set freed memory is used.
- (Dominique Pelle)
-Solution: Reset p_acd before freeing all buffers.
-Files: src/misc2.c
-
-Patch 7.1.290
-Problem: Reading bytes that were not written when spell checking and a line
- has a very large indent.
-Solution: Don't copy the start of the next line when it only contains
- spaces. (Dominique Pelle)
-Files: src/spell.c
-
-Patch 7.1.291 (after 7.1.288)
-Problem: Compiler warning.
-Solution: Change 50 to 50L.
-Files: src/if_cscope.c
-
-Patch 7.1.292
-Problem: When using a pattern with "\@<=" the submatches can be wrong.
- (Brett Stahlman)
-Solution: Save the submatches when attempting a look-behind match.
-Files: src/regexp.c
-
-Patch 7.1.293
-Problem: Spell checking considers super- and subscript characters as word
- characters.
-Solution: Recognize the Unicode super and subscript characters.
-Files: src/spell.c
-
-Patch 7.1.294
-Problem: Leaking memory when executing a shell command.
-Solution: Free memory when not able to save for undo. (Dominique Pelle)
-Files: src/ex_cmds.c
-
-Patch 7.1.295
-Problem: Vimtutor only works with vim, not gvim.
-Solution: Add the -g flag to vimtutor. (Dominique Pelle) Add gvimtutor.
-Files: src/Makefile, src/gvimtutor, src/vimtutor, runtime/doc/vimtutor.1
-
-Patch 7.1.296
-Problem: SELinux is not supported.
-Solution: Detect the selinux library and use mch_copy_sec(). (James Vega)
-Files: src/auto/configure, src/config.h.in, src/configure.in,
- src/fileio.c, src/memfile.c, src/os_unix.c, src/proto/os_unix.pro
-
-Patch 7.1.297
-Problem: When using the search/replace dialog the parenmatch highlighting
- can be wrong. (Tim Duncan)
-Solution: In the GUI redraw function invoke the CursorMoved autocmd.
-Files: src/gui.c
-
-Patch 7.1.298 (after 7.1.295)
-Problem: src/gvimtutor is not distributed.
-Solution: Add it to the list of distributed files.
-Files: Filelist
-
-Patch 7.1.299
-Problem: Filetype detection doesn't work properly for file names ending in
- a part that is ignored and contain a space or other special
- characters.
-Solution: Escape the special characters using the new fnameescape function.
-Files: runtime/doc/eval.txt, runtime/filetype.vim, src/eval.c,
- src/ex_getln.c, src/proto/ex_getln.pro, src/vim.h
-
-Patch 7.1.300
-Problem: Value of asmsyntax argument isn't checked for valid characters.
-Solution: Only accepts letters and digits.
-Files: runtime/filetype.vim
-
-Patch 7.1.301
-Problem: When the "File/Save" menu is used in Insert mode, a tab page label
- is not updated to remove the "+".
-Solution: Call draw_tabline() from showruler(). (Bjorn Winckler)
-Files: src/screen.c
-
-Patch 7.1.302 (after 7.1.299)
-Problem: Compilation error on MS-Windows.
-Solution: Don't use xp_shell when it's not defined.
-Files: src/ex_getln.c
-
-Patch 7.1.303 (after 7.1.302)
-Problem: Compilation error on MS-Windows, again.
-Solution: Declare p.
-Files: src/ex_getln.c
-
-Patch 7.1.304
-Problem: Shortpath_for_invalid_fname() does not work correctly and is
- unnecessary complex.
-Solution: Clean up shortpath_for_invalid_fname(). (mostly by Yegappan
- Lakshmanan)
-Files: src/eval.c
-
-Patch 7.1.305
-Problem: Editing a compressed file with special characters in the name
- doesn't work properly.
-Solution: Escape special characters.
-Files: runtime/autoload/gzip.vim
-
-Patch 7.1.306
-Problem: Some Unicode characters are handled like word characters while
- they are symbols.
-Solution: Adjust the table for Unicode classification.
-Files: src/mbyte.c
-
-Patch 7.1.307
-Problem: Many warnings when compiling with Python 2.5.
-Solution: Use ssize_t instead of int for some types. (James Vega)
-Files: src/if_python.c
-
-Patch 7.1.308
-Problem: When in readonly mode ":options" produces an error.
-Solution: Reset 'readonly'. (Gary Johnson)
-Files: runtime/optwin.vim
-
-Patch 7.1.309
-Problem: Installing and testing with a shadow directory doesn't work.
- (James Vega)
-Solution: Add "po" to the list of directories to link. Also link the Vim
- scripts in testdir. And a few more small fixes.
-Files: src/Makefile
-
-Patch 7.1.310
-Problem: Incomplete utf-8 byte sequence at end of the file is not detected.
- Accessing memory that wasn't written.
-Solution: Check the last bytes in the buffer for being a valid utf-8
- character. (mostly by Ben Schmidt)
- Also fix that the reported line number of the error was wrong.
-Files: src/fileio.c
-
-Patch 7.1.311
-Problem: Compiler warning for missing sentinel in X code.
-Solution: Change 0 to NULL. (Markus Heidelberg)
-Files: src/mbyte.c
-
-Patch 7.1.312
-Problem: The .po files have mistakes in error numbers.
-Solution: Search for these mistakes in the check script. (Dominique Pelle)
-Files: src/po/check.vim
-
-Patch 7.1.313
-Problem: When the netbeans interface setModified call is used the status
- lines and window title are not updated.
-Solution: Redraw the status lines and title. (Philippe Fremy)
-Files: src/netbeans.c
-
-Patch 7.1.314
-Problem: The value of 'pastetoggle' is written to the session file without
- any escaping. (Randall Hansen)
-Solution: Use put_escstr(). (Ben Schmidt)
-Files: src/option.c
-
-Patch 7.1.315
-Problem: Crash with specific search pattern using look-behind match.
- (Andreas Politz)
-Solution: Also save the value of "need_clear_subexpr".
-Files: src/regexp.c
-
-Patch 7.1.316
-Problem: When 'cscopetag' is set ":tag" gives an error message instead of
- going to the next tag in the tag stack.
-Solution: Don't call do_cstag() when there is no argument. (Mark Goldman)
-Files: src/ex_docmd.c
-
-Patch 7.1.317
-Problem: Compiler warnings in Motif calls.
-Solution: Change zero to NULL. (Dominique Pelle)
-Files: src/gui_motif.c
-
-Patch 7.1.318
-Problem: Memory leak when closing xsmp connection. Crash on exit when
- using Lesstif.
-Solution: Don't close the X display to work around a Lesstif bug. Free
- clientid. Also fix a leak for Motif and Athena. (Dominique Pelle)
-Files: src/gui_x11.c, src/os_unix.c
-
-Patch 7.1.319
-Problem: When a register has an illegal utf-8 sequence, pasting it on the
- command line causes an illegal memory access.
-Solution: Use mb_cptr2char_adv(). (Dominique Pelle)
-Files: src/ex_getln.c
-
-Patch 7.1.320 (extra)
-Problem: Win64: Warnings while compiling Python interface.
-Solution: Use PyInt in more places. Also update version message for the
- console. (George Reilly)
-Files: src/if_python.c, src/version.c
-
-Patch 7.1.321 (extra)
-Problem: Win32 / Win64: Install file is outdated.
-Solution: Update the text for recent compiler. (George Reilly)
-Files: src/INSTALLpc.txt
-
-Patch 7.1.322
-Problem: Can't get start of Visual area in an <expr> mapping.
-Solution: Add the 'v' argument to getpos().
-Files: runtime/doc/eval.txt, src/eval.c
-
-Patch 7.1.323
-Problem: Test 19 fails with some termcaps. (Dominique Pelle)
-Solution: Set the t_kb and t_kD termcap values.
-Files: src/testdir/test19.in, src/testdir/test38.in
-
-Patch 7.1.324
-Problem: File name path length on Unix is limited to 1024.
-Solution: Use PATH_MAX when it's more than 1000.
-Files: src/os_unix.h
-
-Patch 7.1.325
-Problem: When editing a command line that's longer than available space in
- the window, the characters at the end are in reverse order.
-Solution: Increment the insert position even when the command line doesn't
- fit. (Ingo Karkat)
-Files: src/ex_getln.c
-
-Patch 7.1.326
-Problem: ":s!from!to!" works, but ":smagic!from!to!" doesn't. It sees the
- "!" as a flag to the command. Same for ":snomagic". (Johan Spetz)
-Solution: When checking for a forced command also ignore ":smagic" and
- ":snomagic". (Ian Kelling)
-Files: src/ex_docmd.c
-
-Patch 7.1.327
-Problem: The GUI tutor is installed when there is no GUI version.
-Solution: Only install gvimtutor when building a GUI version.
-Files: src/Makefile
-
-Patch 7.1.328
-Problem: Crash when using Cygwin and non-posix path name in tags file.
-Solution: Use separate buffer for posix path. (Ben Schmidt)
-Files: src/os_unix.c
-
-Patch 7.1.329
-Problem: When the popup menu is removed a column of cells, the right halve
- of double-wide characters, may not be redrawn.
-Solution: Check if the right halve of a character needs to be redrawn.
- (Yukihiro Nakadaira)
-Files: src/screen.c
-
-Patch 7.1.330
-Problem: Reading uninitialized memory when using Del in replace mode.
-Solution: Use utfc_ptr2len_len() instead of mb_ptr2len(). (Dominique Pelle)
-Files: src/misc1.c
-
-
-Warning for missing sentinel in gui_xmldlg.c. (Dominique Pelle)
-
-A search offset from the end of a match didn't work properly for multi-byte
-characters. (Yukihiro Nakadaira)
-
-When displaying the value of 'key' don't show "*****" when the value is empty.
-(Ben Schmidt)
-
-Internal error when compiled with EXITFREE and using the nerd_tree plugin.
-Set last_msg_hist to NULL when history becomes empty. Call
-free_all_functions() after garbage collection. (Dominique Pelle)
-
-GTK with XIM: <S-Space> does not work. (Yukihiro Nakadaira)
-
-Some shells do not support "echo -n", which breaks glob(). Use "echo" instead
-of "echo -n $1; echo". (Gary Johnson)
-
-"echo 22,44" printed "22" on top of the command, the error messages caused
-the rest not to be cleared. Added the need_clr_eos flag.
-
-Netbeans events are handled while updating the screen, causing a crash.
-Change the moment when events are handled. Rename nb_parse_messages() to
-netbeans_parse_messages(). (Xavier de Gaye)
-
-Test 11 was broken after patch 7.1.186 on Win32 console. (Daniel Shahaf)
-Use shellescape() on the file name.
-
-IM was turned off in im_preedit_end_cb() for no good reason. (Takuhiro
-Nishioka)
-
-A corrupted spell file could cause Vim to use lots of memory. Better
-detection for running into the end of the file. (idea from James Vega)
-
-Mac: Included a patch to make it build with GTK. Moved language init to
-mac_lang_init() function. (Ben Schmidt)
-
-Problem with 'wildmenu' after ":lcd", up/down arrows don't work. (Erik Falor)
-
-Fix configure.in to avoid "implicitly declared" warnings when running
-configure.
-
-Fixed a memory leak when redefining a keymap. (Dominique Pelle)
-
-Setting 'pastetoggle' to "jj" didn't work.
-
-'ic' and 'smartcase' don't work properly when using \%V in a search pattern.
-(Kana Natsuno)
-
-Patch 7.2a.001
-Problem: On some systems X11/Xlib.h exists (from X11-dev package) but
- X11/Intrinsic.h does not (in Xt-dev package). This breaks the
- build. Also, on Solaris 9 sys/ptem.h isn't found.
-Solution: Have configure only accept X11 when X11/Intrinsic.h exists.
- Check for sys/ptem.h while including sys/stream.h. (Vladimir
- Marek)
-Files: src/auto/configure, src/configure.in
-
-Patch 7.2a.002
-Problem: getbufvar(N, "") gets the dictionary of the current buffer instead
- of buffer N.
-Solution: Set curbuf before calling find_var_in_ht(). (Kana Natsuno)
-Files: src/eval.c
-
-Patch 7.2a.003
-Problem: Leaking memory when using ":file name" and using access control
- lists.
-Solution: Invoke mch_free_acl() in vim_rename(). (Dominique Pelle)
-Files: src/fileio.c
-
-Patch 7.2a.004
-Problem: Some systems can't get spell files by ftp.
-Solution: Use http when it looks like it's possible. (James Vega)
-Files: runtime/autoload/spellfile.vim
-
-Patch 7.2a.005
-Problem: A few error messages use confusing names. Misspelling.
-Solution: Change "dissallows" to "disallows". (Dominique Pelle) Change
- "number" to "Number".
-Files: src/eval.c, src/fileio.c
-
-Patch 7.2a.006
-Problem: Reading past NUL in a string.
-Solution: Check for invalid utf-8 byte sequence. (Dominique Pelle)
-Files: src/charset.c
-
-Patch 7.2a.007
-Problem: ":let v = 1.2.3" was OK in Vim 7.1, now it gives an error.
-Solution: Don't look for a floating point number after the "." operator.
-Files: src/eval.c
-
-Patch 7.2a.008
-Problem: printf("%g", 1) doesn't work.
-Solution: Convert Number to Float when needed.
-Files: src/message.c
-
-Patch 7.2a.009
-Problem: cygwin_conv_to_posix_path() does not specify buffer size.
-Solution: Use new Cygwin function: cygwin_conv_path(). (Corinna Vinschen)
-Files: src/main.c, src/os_unix.c
-
-Patch 7.2a.010
-Problem: When a file name has an illegal byte sequence Vim may read
- uninitialised memory.
-Solution: Don't use UTF_COMPOSINGLIKE() on an illegal byte. In
- msg_outtrans_len_attr() use char2cells() instead of ptr2cells().
- In utf_ptr2char() don't check second byte when first byte is
- illegal. (Dominique Pelle)
-Files: src/mbyte.c, src/message.c
-
-Patch 7.2a.011
-Problem: The Edit/Startup Settings menu doesn't work.
-Solution: Expand environment variables. (Ben Schmidt)
-Files: runtime/menu.vim
-
-Patch 7.2a.012
-Problem: Compiler warnings for casting int to pointer.
-Solution: Add cast to long in between. (Martin Toft)
-Files: src/gui_gtk_x11.c
-
-Patch 7.2a.013
-Problem: shellescape() does not escape "%" and "#" characters.
-Solution: Add find_cmdline_var() and use it when the second argument to
- shellescape() is non-zero.
-Files: runtime/doc/eval.txt, src/eval.c, src/ex_docmd.c,
- src/proto/ex_docmd.pro, src/proto/misc2.pro, src/misc2.c
-
-Patch 7.2a.014
-Problem: Problem with % in message.
-Solution: Put % in single quotes.
-Files: src/eval.c
-
-Patch 7.2a.015 (after 7.2a.010)
-Problem: Misaligned messages.
-Solution: Compute length of unprintable chars correctly.
-Files: src/message.c
-
-Patch 7.2a.016
-Problem: Using CTRL-W v in the quickfix window results in two quickfix
- windows, which is not allowed. ":tab split" should be allowed to
- open a new quickfix window in another tab.
-Solution: For CTRL-W v instead of splitting the window open a new one.
- When using ":tab" do allow splitting the quickfix window (was
- already included in patch 7.2a.013).
-Files: src/window.c
-
-Patch 7.2a.017
-Problem: ":doautoall" executes autocommands for all buffers instead of just
- for loaded buffers.
-Solution: Change "curbuf" to "buf".
-Files: src/fileio.c
-
-Patch 7.2a.018
-Problem: Compiler warnings when compiling with Gnome. (Tony Mechelynck)
-Solution: Add type casts.
-Files: src/gui_gtk_x11.c
-
-Patch 7.2a.019
-Problem: ":let &g:tw = 44" sets the local option value. (Cyril Slobin)
-Solution: Use get_varp_scope() instead of get_varp(). (Ian Kelling)
-Files: src/option.c
-
-There is no way to avoid adding /usr/local/{include|lib} to the build
-commands. Add the --with-local-dir argument to configure. (Michael
-Haubenwallner)
-
-When using CTRL-D after ":help", the number of matches could be thousands.
-Restrict to TAG_MANY to avoid this taking too long. (Ian Kelling)
-
-The popup menu could be placed at a weird location. Caused by w_wcol computed
-by curs_columns(). (Dominique Pelle)
-
-Overlapping STRCPY() arguments when using %r item in 'errorformat'. Use
-STRMOVE() instead. (Ralf Wildenhues)
-
-Mac: On Leopard gvim, when using the mouse wheel nothing would happen until
-another event occurs, such as moving the mouse. Then the recorded scrolling
-would take place all at once. (Eckehard Berns)
-
-Solution for cursor color not reflecting IM status for GTK 2. Add
-preedit_is_active flag. (SungHyun Nam)
-
-filereadable() can hang on a FIFO on Linux. Use open() instead of fopen(),
-with O_NONBLOCK. (suggested by Lars Kotthoff)
-
-Included patch to support Perl 5.10. (Yasuhiro Matsumoto)
-
-When files are dropped on gvim while the screen is being updated, ignore the
-drop command to avoid freeing memory that is being used.
-
-In a terminal, when drawing the popup menu over double-wide characters, half
-characters may not be cleared properly. (Yukihiro Nakadaira)
-
-The #ifdef for including "vimio.h" was inconsistent. In a few files it
-depended on MSWIN, which isn't defined until later.
-
-Patch 7.2b.001
-Problem: Compilation problem: mb_fix_col() missing with multi-byte feature
- but without GUI or clipboard.
-Solution: Remove #ifdef.
-Files: src/mbyte.c
-
-Patch 7.2b.002
-Problem: Compiler warnings for signed/unsigned mismatch.
-Solution: Add type casts.
-Files: src/screen.c
-
-Patch 7.2b.003
-Problem: Still a compilation problem, check_col() and check_row() missing.
-Solution: Add FEAT_MBYTE to the #if.
-Files: src/ui.c
-
-Patch 7.2b.004
-Problem: Trying to free memory for a static string when using ":helpgrep".
- (George Reilly)
-Solution: Set 'cpo' to empty_option instead of an empty string. Also for
- searchpair() and substitute().
-Files: src/quickfix.c, src/eval.c
-
-Patch 7.2b.005
-Problem: The special character "!" isn't handled properly in shellescape().
- (Jan Minar)
-Solution: Escape "!" when using a "csh" like shell and with
- shellescape(s, 1). Twice for both. Also escape <NL>.
-Files: src/misc2.c
-
-Patch 7.2b.006
-Problem: Reading past end of string when reading info from tags line.
-Solution: Break the loop when encountering a NUL. (Dominique Pelle)
-Files: src/tag.c
-
-Patch 7.2b.007
-Problem: Part of a message cannot be translated.
-Solution: Put _() around the message.
-Files: src/search.c
-
-Patch 7.2b.008
-Problem: A few filetypes are not detected or not detected properly.
-Solution: Add filetype detection patterns. (Nikolai Weibull)
-Files: runtime/filetype.vim
-
-Patch 7.2b.009
-Problem: Reading past end of screen line. (Epicurus)
-Solution: Avoid going past the value of Columns.
-Files: src/screen.c
-
-Patch 7.2b.010
-Problem: ":mksession" doesn't work for ":map , foo", ":sunmap ,". (Ethan
- Mallove)
-Solution: Check for "nxo", "nso" and other strange mapping combinations.
-Files: src/getchar.c
-
-Patch 7.2b.011
-Problem: Configure for TCL ends up with include file in compiler command.
- (Richard Hogg)
-Solution: Delete items from $TCL_DEFS that do not start with a dash.
-Files: src/auto/configure, src/configure.in
-
-Patch 7.2b.012
-Problem: Build failure with +multi_byte but without +diff.
-Solution: Add #ifdef. (Patrick Texier)
-Files: src/main.c
-
-Patch 7.2b.013
-Problem: Build fails with tiny features and Perl. (Dominique Pelle)
-Solution: Define missing functions. Also when compiling Python.
-Files: src/if_perl.xs, src/if_python.c
-
-Patch 7.2b.014
-Problem: Configure uses an unsafe temp file to store commands.
-Solution: Create the temp file in local directory.
-Files: src/auto/configure, src/configure.in
-
-Patch 7.2b.015
-Problem: Build fails on Mac when using Aap.
-Solution: Fix typo in configure script.
-Files: src/auto/configure, src/configure.in
-
-Patch 7.2b.016
-Problem: Build fails with normal features but without +autocmd.
-Solution: Fix #ifdefs. (Ian Kelling)
-Files: src/eval.c, src/ex_cmds.c, src/quickfix.c, src/option.c,
- src/ex_docmd.c
-
-Patch 7.2b.017
-Problem: "vim -O foo foo" results in only one window. (Zdenek Sekera)
-Solution: Handle result of ATTENTION prompt properly. (Ian Kelling)
-Files: src/main.c
-
-Patch 7.2b.018
-Problem: When doing command line completion on a file name for a csh-like
- shell argument a '!' character isn't escaped properly.
-Solution: Add another backslash.
-Files: src/ex_getln.c, src/misc2.c, src/proto/misc2.pro, src/screen.c
-
-Patch 7.2b.019 (extra)
-Problem: Win32: Various compiler warnings.
-Solution: Use __w64 attribute. Comment-out unused parameters. Adjust a few
- #ifdefs. (George Reilly)
-Files: src/gui_w48.c, src/GvimExt/gvimext.cpp, src/Make_mvc.mak,
- src/os_mswin.c, src/os_win32.c, src/vim.h
-
-Patch 7.2b.020
-Problem: ":sort n" doesn't handle negative numbers. (James Vega)
-Solution: Include '-' in the number.
-Files: src/charset.c, src/ex_cmds.c
-
-Patch 7.2b.021
-Problem: Reloading doesn't read the BOM correctly. (Steve Gardner)
-Solution: Accept utf-8 BOM when specified file encoding is utf-8.
-Files: src/fileio.c
-
-Patch 7.2b.022
-Problem: When using ":normal" while updating the status line the count of
- an operator is lost. (Dominique Pelle)
-Solution: Save and restore "opcount".
-Files: src/ex_docmd.c, src/globals.h, src/normal.c
-
-Patch 7.2b.023
-Problem: Crash when using the result of synstack(0,0). (Matt Wozniski)
-Solution: Check for v_list to be NULL in a few more places.
-Files: src/eval.c
-
-Patch 7.2b.024
-Problem: Using ":gui" while the netrw plugin is active causes a delay in
- updating the display.
-Solution: Don't check for terminal codes when starting the GUI.
-Files: src/term.c
-
-Patch 7.2b.025
-Problem: When the CursorHold event triggers a pending count is lost.
- (Juergen Kraemer)
-Solution: Save the counts and restore them.
-Files: src/normal.c, src/structs.h
-
-Patch 7.2b.026
-Problem: The GTK 2 file chooser causes the ~/.recently-used.xbel file to be
- written over and over again. This may cause a significant
- slowdown. (Guido Berhoerster)
-Solution: Don't use the GTK 2 file chooser.
-Files: src/gui_gtk.c
-
-Patch 7.2b.027
-Problem: Memory leak for Python, Perl, etc. script command with end marker.
-Solution: Free the memory of the end marker. (Andy Kittner)
-Files: src/ex_getln.c
-
-Patch 7.2b.028
-Problem: Reading uninitialized memory when doing ":gui -f". (Dominique
- Pelle)
-Solution: Don't position the cursor when the screen size is invalid.
-Files: src/gui.c
-
-Patch 7.2b.029
-Problem: ":help a" doesn't jump to "a" tag in docs. (Tony Mechelynck)
-Solution: Get all tags and throw away more than TAG_MANY after sorting.
- When there is no argument find matches for "help" to avoid a long
- delay.
-Files: src/ex_cmds.c, src/ex_getln.c
-
-Patch 7.2b.030
-Problem: When changing the value of t_Co from 8 to 16 the Visual
- highlighting keeps both reverse and a background color.
-Solution: Remove the attribute when setting the default highlight color.
- (Markus Heidelberg)
-Files: src/syntax.c
-
-Error when cancelling completion menu and auto-formatting. (fixed by Ian
-Kelling)
-
-Patch 7.2c.001
-Problem: ":let x=[''] | let x += x" causes hang. (Matt Wozniski)
-Solution: Only insert elements up to the original length of the List.
-Files: runtime/doc/eval.txt, src/eval.c
-
-Patch 7.2c.002
-Problem: fnameescape() doesn't handle a leading '+' or '>'. (Jan Minar)
-Solution: Escape a leading '+' and '>'. And a single '-'.
-Files: runtime/doc/eval.txt, src/ex_getln.c
-
-Patch 7.2c.003
-Problem: Searching for "foo\%[bar]\+" gives a "Corrupted regexp program"
- error. (Joachim Hofmann)
-Solution: Mark the \%[] item as not being simple.
-Files: src/regexp.c
-
-On Vista access to system directories is virtualized. (Michael Mutschler)
-Adjusted the manifest file to avoid this. (George Reilly)
-
-Memory leak when using CTRL-C to cancel listing the jump list. (Dominique
-Pelle)
-
-Mac: Could not build with Perl interface.
-
-==============================================================================
-VERSION 7.3 *version-7.3* *version7.3*
-
-This section is about improvements made between version 7.2 and 7.3.
-
-This release has hundreds of bug fixes and there are a few new features. The
-most notable new features are:
-
-
-Persistent undo *new-persistent-undo*
----------------
-
-Store undo information in a file. Can undo to before when the file was read,
-also for unloaded buffers. See |undo-persistence| (partly by Jordan Lewis)
-
-Added the ":earlier 1f" and ":later 1f" commands.
-Added file save counter to undo information.
-Added the |undotree()| and |undofile()| functions.
-
-Also added the 'undoreload' option. This makes it possible to save the
-current text when reloading the buffer, so that the reload can be undone.
-
-
-More encryption *new-more-encryption*
----------------
-
-Support for Blowfish encryption. Added the 'cryptmethod' option.
-Mostly by Mohsin Ahmed.
-
-Also encrypt the text in the swap file and the undo file.
-
-
-Conceal text *new-conceal*
-------------
-
-Added the |+conceal| feature. (Vince Negri)
-This allows hiding stretches of text, based on syntax highlighting.
-It also allows replacing a stretch of text by a character |:syn-cchar|.
-The 'conceallevel' option specifies what happens with text matching a syntax
-item that has the conceal attribute.
-The 'concealcursor' option specifies what happens in the cursor line.
-
-The help files conceal characters used to mark tags and examples.
-
-Added the |synconcealed()| function and use it for :TOhtml. (Benjamin Fritz)
-
-Added the 'cursorbind' option, keeps the cursor in two windows with the same
-text in sync.
-
-
-Lua interface *new-lua*
--------------
-
-Added the |Lua| interface. (Luis Carvalho)
-
-
-Python3 interface *new-python3*
------------------
-
-Added the Python3 interface. It exists next to Python 2.x, both can be used
-at the same time. See |python3| (Roland Puntaier)
-
-
-Changed *changed-7.3*
--------
-
-The MS-Windows installer no longer requires the user to type anything in the
-console windows. The installer now also works on 64 bit systems, including
-the "Edit with Vim" context menu.
-The gvim executable is 32 bits, the installed gvimext.dll is either a 32 or 64
-bit version. (mostly by George Reilly)
-Made the DOS installer work with more compilers.
-The MS-Windows big gvim is now built with Python 2.7 and 3.1.2, Perl 5.12 and
-Ruby 1.9.1. You need the matching .dll files to use them.
-
-The extra and language files are no longer distributed separately.
-The source files for all systems are included in one distribution.
-
-After using ":recover" or recovering a file in another way, ":x" and "ZZ"
-didn't save what you see. This could result in work being lost. Now the text
-after recovery is compared to the original file contents. When they differ
-the buffer is marked as modified.
-
-When Vim is exiting because of a deadly signal, when v:dying is 2 or more,
-VimLeavePre, VimLeave, BufWinLeave and BufUnload autocommands are not
-executed.
-
-Removed support for GTK 1. It was no longer maintained and required a lot of
-#ifdefs in the source code. GTK 2 should be available for every system.
-(James Vega)
-
-It is no longer allowed to set the 'encoding' option from a modeline. It
-would corrupt the text. (Patrick Texier)
-
-Renamed runtime/spell/fixdup to runtime/spell/fixdup.vim.
-
-Removed obsolete Mac code.
-
-Updated spell files for Ubuntu locale names.
-
-Switched from autoconf 2.63 to 2.65.
-
-Removed Mupad indent and ftplugin files, they are not useful.
-
-The maximum number of messages remembered in the history is now 200 (was 100).
-
-
-Added *added-7.3*
------
-
-Added the 'relativenumber' option. (Markus Heidelberg)
-
-Added the 'colorcolumn' option: highlight one or more columns in a window.
-E.g. to highlight the column after 'textwidth'. (partly by Gregor Uhlenheuer)
-
-Added support for NetBeans in a terminal. Added |:nbstart| and |:nbclose|.
-(Xavier de Gaye)
-
-More floating point functions: |acos()|, |asin()|, |atan2()|, |cosh()|,
-|exp()|, |fmod()|, |log()|, |sinh()|, |tan()|, |tanh()|. (Bill McCarthy)
-
-Added the |gettabvar()| and |settabvar()| functions. (Yegappan Lakshmanan)
-
-Added the |strchars()|, |strwidth()| and |strdisplaywidth()| functions.
-
-Support GDK_SUPER_MASK for GTK on Mac. (Stephan Schulz)
-
-Made CTRL and ALT modifier work for mouse wheel. (Benjamin Haskell)
-
-Added support for horizontal scroll wheel. (Bjorn Winckler)
-
-When the buffer is in diff mode, have :TOhtml create HTML to show the diff
-side-by-side. (Christian Brabandt)
-
-Various improvements to ":TOhtml" and the 2html.vim script. (Benjamin Fritz)
-
-Add the 'L' item to 'cinoptions'. (Manuel Konig)
-
-Improve Javascript indenting. Add "J" flag to 'cinoptions'. (Hari Kumar G)
-
-Mac: Support disabling antialias. (LC Mi)
-
-Mac: Add clipboard support in the Mac console. (Bjorn Winckler)
-
-Make it possible to drag a tab page label to another position. (Paul B. Mahol)
-
-Better implementation of creating the Color Scheme menu. (Juergen Kraemer)
-
-In Visual mode with 'showcmd' display the number of bytes and characters.
-
-Allow synIDattr() getting GUI attributes when built without GUI. (Matt
-Wozniski)
-
-Support completion for ":find". Added test 73. (Nazri Ramliy)
-
-Command line completion for :ownsyntax and :setfiletype. (Dominique Pelle)
-
-Command line completion for :lmap and :lunmap.
-
-Support syntax and filetype completion for user commands. (Christian Brabandt)
-
-Avoid use of the GTK main_loop() so that the GtkFileChooser can be used.
-(James Vega)
-
-When 'formatexpr' evaluates to non-zero fall back to internal formatting, also
-for "gq". (James Vega)
-
-Support :browse for commands that use an error file argument. (Lech Lorens)
-
-Support wide file names in gvimext. (Szabolcs Horvat)
-
-Improve test for joining lines. (Milan Vancura)
-Make joining a range of lines much faster. (Milan Vancura)
-
-Add patch to improve support of z/OS (OS/390). (Ralf Schandl)
-
-Added the helphelp.txt file. Moved text from various.txt to it.
-
-Added "q" item for 'statusline'. Added |w:quickfix_title|. (Lech Lorens)
-
-Various improvements for VMS. (Zoltan Arpadffy)
-
-
-New syntax files: ~
-Haskell Cabal build file (Vincent Berthoux)
-ChaiScript (Jason Turner)
-Cucumber (Tim Pope)
-Datascript (Dominique Pelle)
-Fantom (Kamil Toman)
-Liquid (Tim Pope)
-Markdown (Tim Pope)
-wavefront's obj file (Vincent Berthoux)
-Perl 6 (Andy Lester)
-SDC - Synopsys Design Constraints (Maurizio Tranchero)
-SVG - Scalable Vector Graphics (Vincent Berthoux)
-task data (John Florian)
-task 42 edit (John Florian)
-
-New filetype plugins: ~
-Cucumber (Tim Pope)
-Liquid (Tim Pope)
-Logcheck (Debian)
-Markdown (Tim Pope)
-Perl 6 (Andy Lester)
-Quickfix window (Lech Lorens)
-Tcl (Robert L Hicks)
-
-New indent plugins: ~
-CUDA (Bram Moolenaar)
-ChaiScript (Jason Turner)
-Cucumber (Tim Pope)
-LifeLines (Patrick Texier)
-Liquid (Tim Pope)
-Mail (Bram Moolenaar)
-Perl 6 (Andy Lester)
-
-Other new runtime files: ~
-Breton spell file (Dominique Pelle)
-Dvorak keymap (Ashish Shukla)
-Korean translations. (SungHyun Nam)
-Python 3 completion (Aaron Griffin)
-Serbian menu translations (Aleksandar Jelenak)
-Tetum spell files
-Tutor Bairish (Sepp Hell)
-Tutor in Esperanto. (Dominique Pellé)
-Tutor in Portuguese.
-Norwegian Tutor now also available as tutor.nb
-
-Removed the Mupad runtime files, they were not maintained.
-
-
-Fixed *fixed-7.3*
------
-
-Patch 7.2.001
-Problem: Mac: pseudo-ttys don't work properly on Leopard, resulting in the
- shell not to have a prompt, CTRL-C not working, etc.
-Solution: Don't use SVR4 compatible ptys, even though they are detected.
- (Ben Schmidt)
-Files: src/pty.c
-
-Patch 7.2.002
-Problem: Leaking memory when displaying menus.
-Solution: Free allocated memory. (Dominique Pelle)
-Files: src/menu.c
-
-Patch 7.2.003
-Problem: Typo in translated message. Message not translated.
-Solution: Correct spelling. Add _(). (Dominique Pelle)
-Files: src/spell.c, src/version.c
-
-Patch 7.2.004
-Problem: Cscope help message is not translated.
-Solution: Put it in _(). (Dominique Pelle)
-Files: src/if_cscope.c, src/if_cscope.h
-
-Patch 7.2.005
-Problem: A few problems when profiling. Using flag pointer instead of flag
- value. Allocating zero bytes. Not freeing used memory.
-Solution: Remove wrong '&' characters. Skip dumping when there is nothing
- to dump. Free used memory. (Dominique Pelle)
-Files: src/eval.c
-
-Patch 7.2.006
-Problem: HTML files are not recognized by contents.
-Solution: Add a rule to the scripts file. (Nico Weber)
-Files: runtime/scripts.vim
-
-Patch 7.2.007 (extra)
-Problem: Minor issues for VMS.
-Solution: Minor fixes for VMS. Add float support. (Zoltan Arpadffy)
-Files: runtime/doc/os_vms.txt, src/os_vms_conf.h, src/Make_vms.mms,
- src/testdir/Make_vms.mms, src/testdir/test30.in,
- src/testdir/test54.in
-
-Patch 7.2.008
-Problem: With a BufHidden autocommand that invokes ":bunload" the window
- count for a buffer can be wrong. (Bob Hiestand)
-Solution: Don't call enter_buffer() when already in that buffer.
-Files: src/buffer.c
-
-Patch 7.2.009
-Problem: Can't compile with Perl 5.10 on MS-Windows. (Cesar Romani)
-Solution: Add the Perl_sv_free2 function for dynamic loading. (Dan Sharp)
-Files: src/if_perl.xs
-
-Patch 7.2.010
-Problem: When using "K" in Visual mode not all characters are properly
- escaped. (Ben Schmidt)
-Solution: Use a function with the functionality of shellescape(). (Jan
- Minar)
-Files: src/mbyte.c, src/misc2.c, src/normal.c
-
-Patch 7.2.011
-Problem: Get an error when inserting a float value from the expression
- register.
-Solution: Convert the Float to a String automatically in the same place
- where a List would be converted to a String.
-Files: src/eval.c
-
-Patch 7.2.012
-Problem: Compiler warnings when building with startup timing.
-Solution: Add type casts.
-Files: src/ex_cmds2.c
-
-Patch 7.2.013
-Problem: While waiting for the X selection Vim consumes a lot of CPU time
- and hangs until a response is received.
-Solution: Sleep a bit when the selection event hasn't been received yet.
- Time out after a couple of seconds to avoid a hang when the
- selection owner isn't responding.
-Files: src/ui.c
-
-Patch 7.2.014
-Problem: synstack() doesn't work in an empty line.
-Solution: Accept column zero as a valid position.
-Files: src/eval.c
-
-Patch 7.2.015
-Problem: "make all test install" doesn't stop when the test fails. (Daniel
- Shahaf)
-Solution: When test.log contains failures exit with non-zero status.
-Files: src/testdir/Makefile
-
-Patch 7.2.016
-Problem: The pattern being completed may be in freed memory when the
- command line is being reallocated. (Dominique Pelle)
-Solution: Keep a pointer to the expand_T in the command line structure.
- Don't use <S-Tab> as CTRL-P when there are no results. Clear the
- completion when using a command line from the history.
-Files: src/ex_getln.c
-
-Patch 7.2.017
-Problem: strlen() used on text that may not end in a NUL. (Dominique Pelle)
- Pasting a very big selection doesn't work.
-Solution: Use the length passed to the XtSelectionCallbackProc() function.
- After getting the SelectionNotify event continue dispatching
- events until the callback is actually called. Also dispatch the
- PropertyNotify event.
-Files: src/ui.c
-
-Patch 7.2.018
-Problem: Memory leak when substitute is aborted.
-Solution: Free the buffer allocated for the new text. (Dominique Pelle)
-Files: src/ex_cmds.c
-
-Patch 7.2.019
-Problem: Completion of ":noautocmd" doesn't work and exists(":noautocmd")
- returns zero. (Ben Fritz)
-Solution: Add "noautocmd" to the list of modifiers and commands.
-Files: src/ex_cmds.h, src/ex_docmd.c
-
-Patch 7.2.020
-Problem: Starting the GUI when the executable starts with 'k', but the KDE
- version no longer exists.
-Solution: Don't have "kvim" start the GUI.
-Files: src/main.c
-
-Patch 7.2.021
-Problem: When executing autocommands getting the full file name may be
- slow. (David Kotchan)
-Solution: Postpone calling FullName_save() until autocmd_fname is used.
-Files: src/ex_docmd.c, src/fileio.c, src/globals.h
-
-Patch 7.2.022 (extra)
-Problem: Testing is not possible when compiling with MingW.
-Solution: Add a MingW specific test Makefile. (Bill McCarthy)
-Files: Filelist, src/testdir/Make_ming.mak
-
-Patch 7.2.023
-Problem: 'cursorcolumn' is in the wrong place in a closed fold when the
- display is shifted left. (Gary Johnson)
-Solution: Subtract w_skipcol or w_leftcol when needed.
-Files: src/screen.c
-
-Patch 7.2.024
-Problem: It's possible to set 'history' to a negative value and that causes
- an out-of-memory error.
-Solution: Check that 'history' has a positive value. (Doug Kearns)
-Files: src/option.c
-
-Patch 7.2.025
-Problem: When a CursorHold event invokes system() it is retriggered over
- and over again.
-Solution: Don't reset did_cursorhold when getting K_IGNORE.
-Files: src/normal.c
-
-Patch 7.2.026 (after 7.2.010)
-Problem: "K" doesn't use the length of the identifier but uses the rest of
- the line.
-Solution: Copy the desired number of characters first.
-Files: src/normal.c
-
-Patch 7.2.027
-Problem: Can use cscope commands in the sandbox.
-Solution: Disallow them, they might not be safe.
-Files: src/ex_cmds.h
-
-Patch 7.2.028
-Problem: Confusing error message for missing ().
-Solution: Change "braces" to "parentheses". (Gary Johnson)
-Files: src/eval.c
-
-Patch 7.2.029
-Problem: No completion for ":doautoall".
-Solution: Complete ":doautoall" like ":doautocmd". (Doug Kearns)
-Files: src/ex_docmd.c
-
-Patch 7.2.030 (after 7.2.027)
-Problem: Can't compile.
-Solution: Remove prematurely added ex_oldfiles.
-Files: src/ex_cmds.h
-
-Patch 7.2.031
-Problem: Information in the viminfo file about previously edited files is
- not available to the user. There is no way to get a complete list
- of files edited in previous Vim sessions.
-Solution: Add v:oldfiles and fill it with the list of old file names when
- first reading the viminfo file. Add the ":oldfiles" command,
- ":browse oldfiles" and the "#<123" special file name. Increase
- the default value for 'viminfo' from '20 to '100.
-Files: runtime/doc/cmdline.txt, runtime/doc/eval.txt,
- runtime/doc/starting.txt, runtime/doc/usr_21.txt, src/eval.c,
- src/ex_cmds.c, src/ex_cmds.h, src/ex_docmd.c, src/feature.h,
- src/fileio.c, src/main.c, src/mark.c, src/misc1.c,
- src/proto/eval.pro, src/proto/ex_cmds.pro, src/proto/mark.pro,
- src/option.c, src/structs.h, src/vim.h
-
-Patch 7.2.032 (after 7.2.031)
-Problem: Can't build with EXITFREE defined. (Dominique Pelle)
-Solution: Change vv_string to vv_str.
-Files: src/eval.c
-
-Patch 7.2.033
-Problem: When detecting a little endian BOM "ucs-2le" is used, but the text
- might be "utf-16le".
-Solution: Default to "utf-16le", it also works for "ucs-2le". (Jia Yanwei)
-Files: src/fileio.c, src/testdir/test42.ok
-
-Patch 7.2.034
-Problem: Memory leak in spell info when deleting buffer.
-Solution: Free the memory. (Dominique Pelle)
-Files: src/buffer.c
-
-Patch 7.2.035
-Problem: Mismatches between alloc/malloc, free/vim_free,
- realloc/vim_realloc.
-Solution: Use the right function. (Dominique Pelle)
-Files: src/gui_x11.c, src/mbyte.c, src/misc2.c, src/os_unix.c
-
-Patch 7.2.036 (extra)
-Problem: Mismatches between alloc/malloc, free/vim_free,
- realloc/vim_realloc.
-Solution: Use the right function. (Dominique Pelle)
-Files: src/gui_riscos.c, src/gui_w48.c, src/mbyte.c, src/os_vms.c,
- src/os_w32exe.c, src/os_win16.c
-
-Patch 7.2.037
-Problem: Double free with GTK 1 and compiled with EXITFREE.
-Solution: Don't close display. (Dominique Pelle)
-Files: src/os_unix.c
-
-Patch 7.2.038
-Problem: Overlapping arguments to memcpy().
-Solution: Use mch_memmove(). (Dominique Pelle)
-Files: src/if_xcmdsrv.c
-
-Patch 7.2.039
-Problem: Accessing freed memory on exit when EXITFREE is defined.
-Solution: Call hash_init() on the v: hash table.
-Files: src/eval.c
-
-Patch 7.2.040
-Problem: When using ":e ++ff=dos fname" and the file contains a NL without
- a CR before it and 'ffs' contains "unix" then the fileformat
- becomes unix.
-Solution: Ignore 'ffs' when using the ++ff argument. (Ben Schmidt)
- Also remove unreachable code.
-Files: src/fileio.c
-
-Patch 7.2.041
-Problem: In diff mode, when using two tabs, each with two diffed buffers,
- editing a buffer of the other tab messes up the diff. (Matt
- Mzyzik)
-Solution: Only copy options from a window where the buffer was edited that
- doesn't have 'diff' set or is for the current tab page.
- Also fix that window options for a buffer are stored with the
- wrong window.
-Files: src/buffer.c, src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c,
- src/ex_getln.c, src/if_sniff.c, src/main.c, src/netbeans.c,
- src/normal.c, src/popupmnu.c, src/proto/buffer.pro,
- src/proto/ex_cmds.pro src/quickfix.c, src/window.c
-
-Patch 7.2.042
-Problem: When using winrestview() in a BufWinEnter autocommand the window
- is scrolled anyway. (Matt Zyzik)
-Solution: Don't recompute topline when above 'scrolloff' from the bottom.
- Don't always put the cursor halfway when entering a buffer. Add
- "w_topline_was_set".
-Files: src/buffer.c, src/move.c, src/structs.h
-
-Patch 7.2.043
-Problem: VMS: Too many characters are escaped in filename and shell
- commands.
-Solution: Escape fewer characters. (Zoltan Arpadffy)
-Files: src/vim.h
-
-Patch 7.2.044
-Problem: Crash because of STRCPY() being over protective of the destination
- size. (Dominique Pelle)
-Solution: Add -D_FORTIFY_SOURCE=1 to CFLAGS. Use an intermediate variable
- for the pointer to avoid a warning.
-Files: src/auto/configure, src/configure.in, src/eval.c
-
-Patch 7.2.045
-Problem: The Python interface has an empty entry in sys.path.
-Solution: Filter out the empty entry. (idea from James Vega)
-Files: src/if_python.c
-
-Patch 7.2.046
-Problem: Wrong check for filling buffer with encoding. (Danek Duvall)
-Solution: Remove pointers. (Dominique Pelle)
-Files: src/mbyte.c
-
-Patch 7.2.047
-Problem: Starting Vim with the -nb argument while it's not supported causes
- the other side to hang.
-Solution: When -nb is used while it's not supported exit Vim. (Xavier de
- Gaye)
-Files: src/main.c, src/vim.h
-
-Patch 7.2.048
-Problem: v:prevcount is changed too often. Counts are not multiplied when
- setting v:count.
-Solution: Set v:prevcount properly. Multiply counts. (idea by Ben Schmidt)
-Files: src/eval.c, src/normal.c, src/proto/eval.pro
-
-Patch 7.2.049 (extra)
-Problem: Win32: the clipboard doesn't support UTF-16.
-Solution: Change UCS-2 support to UTF-16 support. (Jia Yanwei)
-Files: src/gui_w32.c, src/gui_w48.c, src/mbyte.c, src/misc1.c,
- src/os_mswin.c, src/os_win32.c, src/proto/os_mswin.pro
-
-Patch 7.2.050
-Problem: Warnings for not checking return value of fwrite(). (Chip Campbell)
-Solution: Use the return value.
-Files: src/spell.c
-
-Patch 7.2.051
-Problem: Can't avoid 'wildignore' and 'suffixes' for glob() and globpath().
-Solution: Add an extra argument to these functions. (Ingo Karkat)
-Files: src/eval.c, src/ex_getln.c, src/proto/ex_getln.pro,
- runtime/doc/eval.txt, runtime/doc/options.txt
-
-Patch 7.2.052
-Problem: synIDattr() doesn't support "sp" for special color.
-Solution: Recognize "sp" and "sp#". (Matt Wozniski)
-Files: runtime/doc/eval.txt, src/eval.c
-
-Patch 7.2.053
-Problem: Crash when using WorkShop command ":ws foo". (Dominique Pelle)
-Solution: Avoid using a NULL pointer.
-Files: src/workshop.c
-
-Patch 7.2.054
-Problem: Compilation warnings for format in getchar.c.
-Solution: Use fputs() instead of fprintf(). (Dominique Pelle)
-Files: src/getchar.c
-
-Patch 7.2.055
-Problem: Various compiler warnings with strict checking.
-Solution: Avoid the warnings by using return values and renaming.
-Files: src/diff.c, src/eval.c, src/ex_cmds.c, src/ex_docmd.c,
- src/fileio.c, src/fold.c, src/globals.h, src/gui.c,
- src/gui_at_sb.c, src/gui_gtk_x11.c, src/gui_xmdlg.c,
- src/gui_xmebw.c, src/main.c, src/mbyte.c, src/message.c,
- src/netbeans.c, src/option.c, src/os_unix.c, src/spell.c,
- src/ui.c, src/window.c
-
-Patch 7.2.056 (after 7.2.050)
-Problem: Tests 58 and 59 fail.
-Solution: Don't invoke fwrite() with a zero length. (Dominique Pelle)
-Files: src/spell.c
-
-Patch 7.2.057 (after 7.2.056)
-Problem: Combination of int and size_t may not work.
-Solution: Use size_t for variable.
-Files: src/spell.c
-
-Patch 7.2.058
-Problem: Can't add a patch name to the ":version" output.
-Solution: Add the extra_patches array.
-Files: src/version.c
-
-Patch 7.2.059
-Problem: Diff display is not always updated.
-Solution: Update the display more often.
-Files: src/diff.c
-
-Patch 7.2.060
-Problem: When a spell files has many compound rules it may take a very long
- time making the list of suggestions. Displaying also can be slow
- when there are misspelled words.
- Can't parse some Hunspell .aff files.
-Solution: Check if a compounding can possibly work before trying a
- combination, if the compound rules don't contain wildcards.
- Implement using CHECKCOMPOUNDPATTERN.
- Ignore COMPOUNDRULES. Ignore a comment after most items.
- Accept ONLYINCOMPOUND as an alias for NEEDCOMPOUND.
- Accept FORBIDDENWORD as an alias for BAD.
-Files: runtime/doc/spell.txt, src/spell.c
-
-Patch 7.2.061
-Problem: Can't create a funcref for an autoload function without loading
- the script first. (Marc Weber)
-Solution: Accept autoload functions that don't exist yet in function().
-Files: src/eval.c
-
-Patch 7.2.062
-Problem: "[Scratch]" is not translated.
-Solution: Mark the string for translation. (Dominique Pelle)
-Files: src/buffer.c
-
-Patch 7.2.063
-Problem: Warning for NULL argument of Perl_sys_init3().
-Solution: Use Perl_sys_init() instead. (partly by Dominique Pelle)
-Files: src/if_perl.xs
-
-Patch 7.2.064
-Problem: Screen update bug when repeating "~" on a Visual block and the
- last line doesn't change.
-Solution: Keep track of changes for all lines. (Moritz Orbach)
-Files: src/ops.c
-
-Patch 7.2.065
-Problem: GTK GUI: the cursor disappears when doing ":vsp" and the Vim
- window is maximized. (Dominique Pelle, Denis Smolyar)
-Solution: Don't change "Columns" back to an old value at a wrong moment.
- Do change "Rows" when it should not be a problem.
-Files: src/gui.c
-
-Patch 7.2.066
-Problem: It's not easy to see whether 'encoding' is a multi-byte encoding.
-Solution: Add has('multi_byte_encoding').
-Files: runtime/doc/eval.txt, src/eval.c
-
-Patch 7.2.067
-Problem: Session file can't load extra file when the path contains special
- characters.
-Solution: Escape the file name. (Lech Lorens)
-Files: src/ex_docmd.c
-
-Patch 7.2.068
-Problem: Emacs tags file lines can be too long, resulting in an error
- message. (James Vega)
-Solution: Ignore lines with errors if they are too long.
-Files: src/tag.c
-
-Patch 7.2.069 (after 7.2.060)
-Problem: Compiler warning for storing size_t in int.
-Solution: Add type cast.
-Files: src/spell.c
-
-Patch 7.2.070
-Problem: Crash when a function returns a:000. (Matt Wozniski)
-Solution: Don't put the function struct on the stack, allocate it. Free it
- only when nothing in it is used.
-Files: src/eval.c
-
-Patch 7.2.071 (extra)
-Problem: Win32: Handling netbeans events while Vim is busy updating the
- screen may cause a crash.
-Solution: Like with GTK, only handle netbeans messages in the main loop.
- (Xavier de Gaye)
-Files: src/gui_w48.c, src/netbeans.c
-
-Patch 7.2.072 (extra)
-Problem: Compiler warning in Sniff code.
-Solution: Use return value of pipe(). (Dominique Pelle)
-Files: src/if_sniff.c
-
-Patch 7.2.073
-Problem: ":set <xHome>" has the same output as ":set <Home>". (Matt
- Wozniski)
-Solution: Don't translate "x" keys to its alternative for ":set".
-Files: src/gui_mac.c, src/misc2.c, src/option.c, src/proto/misc2.pro
-
-Patch 7.2.074 (extra, after 7.2.073)
-Problem: ":set <xHome>" has the same output as ":set <Home>". (Matt
- Wozniski)
-Solution: Don't translate "x" keys to its alternative for ":set".
-Files: src/gui_mac.c
-
-Patch 7.2.075 (after 7.2.058)
-Problem: Explanation about making a diff for extra_patches is unclear.
-Solution: Adjust comment.
-Files: src/version.c
-
-Patch 7.2.076
-Problem: rename(from, to) deletes the file if "from" and "to" are not equal
- but still refer to the same file. E.g., on a FAT32 filesystem
- under Unix.
-Solution: Go through another file name.
-Files: src/fileio.c
-
-Patch 7.2.077 (after 7.2.076)
-Problem: rename(from, to) doesn't work if "from" and "to" differ only in
- case on a system that ignores case in file names.
-Solution: Go through another file name.
-Files: src/fileio.c
-
-Patch 7.2.078
-Problem: When deleting a fold that is specified with markers the cursor
- position may be wrong. Folds may not be displayed properly after
- a delete. Wrong fold may be deleted.
-Solution: Fix the problems. (mostly by Lech Lorens)
-Files: src/fold.c
-
-Patch 7.2.079
-Problem: "killed" netbeans events are not handled correctly.
-Solution: A "killed" netbeans event is sent when the buffer is deleted or
- wiped out (in this case, the netbeans annotations in this buffer
- have been removed). A user can still remove a sign with the
- command ":sign unplace" and this does not trigger a "killed"
- event. (Xavier de Gaye)
-Files: runtime/doc/netbeans.txt, src/buffer.c, src/globals.h,
- src/netbeans.c, src/proto/netbeans.pro
-
-Patch 7.2.080
-Problem: When typing a composing character just after starting completion
- may access memory before its allocation point. (Dominique Pelle)
-Solution: Don't delete before the completion start column. Add extra checks
- for the offset not being negative.
-Files: src/edit.c
-
-Patch 7.2.081
-Problem: Compiler warning for floating point overflow on VAX.
-Solution: For VAX use a smaller number. (Zoltan Arpadffy)
-Files: src/message.c
-
-Patch 7.2.082
-Problem: When 'ff' is "mac" then "ga" on a ^J shows 0x0d instead of 0x0a.
- (Andy Wokula)
-Solution: Use NL for this situation. (Lech Lorens)
-Files: src/ex_cmds.c
-
-Patch 7.2.083
-Problem: ":tag" does not return to the right tag entry from the tag stack.
-Solution: Don't change the current match when there is no argument.
- (Erik Falor)
-Files: src/tag.c
-
-Patch 7.2.084
-Problem: Recursive structures are not handled properly in Python
- vim.eval().
-Solution: Keep track of references in a better way. (Yukihiro Nakadaira)
-Files: src/if_python.c
-
-Patch 7.2.085
-Problem: ":set <M-b>=<Esc>b" does not work when 'encoding' is utf-8.
-Solution: Put the <M-b> character in the input buffer as valid utf-8.
- (partly by Matt Wozniski)
-Files: src/term.c
-
-Patch 7.2.086
-Problem: Using ":diffget 1" in buffer 1 corrupts the text.
-Solution: Don't do anything when source and destination of ":diffget" or
- ":diffput" is the same buffer. (Dominique Pelle)
-Files: src/diff.c
-
-Patch 7.2.087
-Problem: Adding URL to 'path' doesn't work to edit a file.
-Solution: Skip simplify_filename() for URLs. (Matt Wozniski)
-Files: src/misc2.c
-
-Patch 7.2.088 (extra)
-Problem: OpenClipboard() may fail when another application is using the
- clipboard.
-Solution: Retry OpenClipboard() a few times. (Jianrong Yu)
-Files: src/os_mswin.c
-
-Patch 7.2.089 (extra)
-Problem: Win32: crash when using Ultramon buttons.
-Solution: Don't use a WM_OLE message of zero size. (Ray Megal)
-Files: src/if_ole.cpp, src/gui_w48.c
-
-Patch 7.2.090
-Problem: User command containing 0x80 in multi-byte character does not work
- properly. (Yasuhiro Matsumoto)
-Solution: Undo replacement of K_SPECIAL and CSI characters when executing
- the command.
-Files: src/ex_docmd.c
-
-Patch 7.2.091
-Problem: ":cs help" output is not aligned for some languages.
-Solution: Compute character size instead of byte size. (Dominique Pelle)
-Files: src/if_cscope.c
-
-Patch 7.2.092
-Problem: Some error messages are not translated.
-Solution: Add _() around the messages. (Dominique Pelle)
-Files: src/eval.c
-
-Patch 7.2.093 (extra)
-Problem: Win32: inputdialog() and find/replace dialogs can't handle
- multi-byte text.
-Solution: Use the wide version of dialog functions when available. (Yanwei
- Jia)
-Files: src/gui_w32.c, src/gui_w48.c
-
-Patch 7.2.094
-Problem: Compiler warning for signed/unsigned compare.
-Solution: Add type cast. Also fix a few typos.
-Files: src/edit.c
-
-Patch 7.2.095
-Problem: With Visual selection, "r" and then CTRL-C Visual mode is stopped
- but the highlighting is not removed.
-Solution: Call reset_VIsual().
-Files: src/normal.c
-
-Patch 7.2.096
-Problem: After ":number" the "Press Enter" message may be on the wrong
- screen, if switching screens for shell commands.
-Solution: Reset info_message. (James Vega)
-Files: src/ex_cmds.c
-
-Patch 7.2.097
-Problem: "!xterm&" doesn't work when 'shell' is "bash".
-Solution: Ignore SIGHUP after calling setsid(). (Simon Schubert)
-Files: src/os_unix.c
-
-Patch 7.2.098
-Problem: Warning for signed/unsigned pointer.
-Solution: Add type cast.
-Files: src/eval.c
-
-Patch 7.2.099
-Problem: Changing GUI options causes an unnecessary redraw when the GUI
- isn't active.
-Solution: Avoid the redraw. (Lech Lorens)
-Files: src/option.c
-
-Patch 7.2.100
-Problem: When using ":source" on a FIFO or something else that can't rewind
- the first three bytes are skipped.
-Solution: Instead of rewinding read the first line and detect a BOM in that.
- (mostly by James Vega)
-Files: src/ex_cmds2.c
-
-Patch 7.2.101 (extra)
-Problem: MSVC version not recognized.
-Solution: Add the version number to the list. (Zhong Zhang)
-Files: src/Make_mvc.mak
-
-Patch 7.2.102 (after 7.2.100)
-Problem: When 'encoding' is "utf-8" a BOM at the start of a Vim script is
- not removed. (Tony Mechelynck)
-Solution: When no conversion is taking place make a copy of the line without
- the BOM.
-Files: src/ex_cmds2.c
-
-Patch 7.2.103
-Problem: When 'bomb' is changed the window title is updated to show/hide a
- "+", but the tab page label isn't. (Patrick Texier)
-Solution: Set "redraw_tabline" in most places where "need_maketitle" is set.
- (partly by Lech Lorens)
-Files: src/option.c
-
-Patch 7.2.104
-Problem: When using ":saveas bar.c" the tab label isn't updated right away.
-Solution: Set redraw_tabline. (Francois Ingelrest)
-Files: src/ex_cmds.c
-
-Patch 7.2.105
-Problem: Modeline setting for 'foldmethod' overrules diff options. (Ingo
- Karkat)
-Solution: Don't set 'foldmethod' and 'wrap' from a modeline when 'diff' is
- on.
-Files: src/option.c
-
-Patch 7.2.106
-Problem: Endless loop when using "]s" in HTML when there are no
- misspellings. (Ingo Karkat)
-Solution: Break the search loop. Also fix pointer alignment for systems
- with pointers larger than int.
-Files: src/spell.c
-
-Patch 7.2.107
-Problem: When using a GUI dialog and ":echo" commands the messages are
- deleted after the dialog. (Vincent Birebent)
-Solution: Don't call msg_end_prompt() since there was no prompt.
-Files: src/message.c
-
-Patch 7.2.108 (after 7.2.105)
-Problem: Can't build without the diff feature.
-Solution: Add #ifdef.
-Files: src/option.c
-
-Patch 7.2.109
-Problem: 'langmap' does not work for multi-byte characters.
-Solution: Add a list of mapped multi-byte characters. (based on work by
- Konstantin Korikov, Agathoklis Hatzimanikas)
-Files: runtime/doc/options.txt, src/edit.c, src/getchar.c, src/macros.h,
- src/normal.c, src/option.c, src/proto/option.pro, src/window.c
-
-Patch 7.2.110
-Problem: Compiler warning for unused variable.
-Solution: Init the variable.
-Files: src/ex_docmd.c
-
-Patch 7.2.111
-Problem: When using Visual block mode with 'cursorcolumn' it's unclear what
- is selected.
-Solution: Don't use 'cursorcolumn' highlighting inside the Visual selection.
- (idea by Dominique Pelle)
-Files: src/screen.c
-
-Patch 7.2.112
-Problem: Cursor invisible in Visual mode when 'number' is set and cursor in
- first column. (Matti Niemenmaa, Renato Alves)
-Solution: Check that vcol_prev is smaller than vcol.
-Files: src/screen.c
-
-Patch 7.2.113
-Problem: Crash for substitute() call using submatch(1) while there is no
- such submatch. (Yukihiro Nakadaira)
-Solution: Also check the start of the submatch is set, it can be NULL when
- an attempted match didn't work out.
-Files: src/regexp.c
-
-Patch 7.2.114
-Problem: Using wrong printf format.
-Solution: Use "%ld" instead of "%d". (Dominique Pelle)
-Files: src/netbeans.c
-
-Patch 7.2.115
-Problem: Some debugging code is never used.
-Solution: Remove nbtrace() and nbprt(). (Dominique Pelle)
-Files: src/nbdebug.c, src/nbdebug.h
-
-Patch 7.2.116
-Problem: Not all memory is freed when EXITFREE is defined.
-Solution: Free allocated memory on exit. (Dominique Pelle)
-Files: src/ex_docmd.c, src/gui_gtk_x11.c, src/misc2.c, src/search.c,
- src/tag.c
-
-Patch 7.2.117
-Problem: Location list incorrectly labelled "Quickfix List".
-Solution: Break out of both loops for finding window for location list
- buffer. (Lech Lorens)
-Files: src/buffer.c, src/quickfix.c, src/screen.c
-
-Patch 7.2.118
-Problem: <PageUp> at the more prompt only does half a page.
-Solution: Make <PageUp> go up a whole page. Also make 'f' go a page
- forward, but not quit the more prompt. (Markus Heidelberg)
-Files: src/message.c
-
-Patch 7.2.119
-Problem: Status line is redrawn too often.
-Solution: Check ScreeenLinesUC[] properly. (Yukihiro Nakadaira)
-Files: src/screen.c
-
-Patch 7.2.120
-Problem: When opening the quickfix window or splitting the window and
- setting the location list, the location list is copied and then
- deleted, which is inefficient.
-Solution: Don't copy the location list when not needed. (Lech Lorens)
-Files: src/quickfix.c, src/vim.h, src/window.c
-
-Patch 7.2.121
-Problem: In gvim "!grep a *.c" spews out a lot of text that can't be
- stopped with CTRL-C.
-Solution: When looping to read and show text, do check for typed characters
- every two seconds.
-Files: src/os_unix.c
-
-Patch 7.2.122
-Problem: Invalid memory access when the VimResized autocommand changes
- 'columns' and/or 'lines'.
-Solution: After VimResized check for changed values. (Dominique Pelle)
-Files: src/screen.c
-
-Patch 7.2.123
-Problem: Typing 'q' at more prompt for ":map" output still displays another
- line, causing another more prompt. (Markus Heidelberg)
-Solution: Quit listing maps when 'q' typed.
-Files: src/getchar.c
-
-Patch 7.2.124
-Problem: Typing 'q' at more prompt for ":tselect" output still displays
- more lines, causing another more prompt. (Markus Heidelberg)
-Solution: Quit listing tags when 'q' typed.
-Files: src/tag.c
-
-Patch 7.2.125
-Problem: Leaking memory when reading XPM bitmap for a sign.
-Solution: Don't allocate the memory twice. (Dominique Pelle)
-Files: src/gui_x11.c
-
-Patch 7.2.126
-Problem: When EXITFREE is defined signs are not freed.
-Solution: Free all signs on exit. Also free keymaps. (Dominique Pelle)
-Files: src/misc2.c, src/ex_cmds.c, src/proto/ex_cmds.pro
-
-Patch 7.2.127
-Problem: When listing mappings and a wrapping line causes the more prompt,
- after typing 'q' there can be another more prompt. (Markus
- Heidelberg)
-Solution: Set "lines_left" to allow more lines to be displayed.
-Files: src/message.c
-
-Patch 7.2.128 (after 7.2.055)
-Problem: Using ":lcd" makes session files not work.
-Solution: Compare return value of mch_chdir() properly. (Andreas Bernauer)
-Files: src/ex_docmd.c
-
-Patch 7.2.129
-Problem: When opening a command window from input() it uses the search
- history.
-Solution: Use get_cmdline_type(). (James Vega)
-Files: src/ex_getln.c
-
-Patch 7.2.130
-Problem: Vim may hang until CTRL-C is typed when using CTRL-Z.
-Solution: Avoid using pause(). Also use "volatile" for variables used in
- signal functions. (Dominique Pelle)
-Files: src/auto/configure, src/configure.in, src/config.h.in,
- src/globals.h, src/os_unix.c
-
-Patch 7.2.131
-Problem: When 'keymap' is cleared may still use the cursor highlighting for
- when it's enabled.
-Solution: Reset 'iminsert' and 'imsearch'. (partly by Dominique Pelle)
- Also avoid ":setlocal" for these options have a global effect.
-Files: src/option.c
-
-Patch 7.2.132
-Problem: When changing directory during a SwapExists autocmd freed memory
- may be accessed. (Dominique Pelle)
-Solution: Add the allbuf_lock flag.
-Files: src/ex_getln.c, src/globals.h, src/fileio.c,
- src/proto/ex_getln.pro
-
-Patch 7.2.133
-Problem: ":diffoff!" changes settings in windows not in diff mode.
-Solution: Only change settings in other windows when 'diff' is set, always
- do it for the current window. (Lech Lorens)
-Files: src/diff.c
-
-Patch 7.2.134
-Problem: Warning for discarding "const" from pointer.
-Solution: Don't pass const pointer to mch_memmove().
-Files: src/fileio.c
-
-Patch 7.2.135
-Problem: Memory leak when redefining user command with complete argument.
-Solution: Free the old complete argument. (Dominique Pelle)
-Files: src/ex_docmd.c
-
-Patch 7.2.136 (after 7.2.132)
-Problem: ":cd" is still possible in a SwapExists autocmd.
-Solution: Check the allbuf_lock flag in ex_cd().
-Files: src/ex_docmd.c
-
-Patch 7.2.137
-Problem: When 'virtualedit' is set, a left shift of a blockwise selection
- that starts and ends inside a tab shifts too much. (Helmut
- Stiegler)
-Solution: Redo the block left shift code. (Lech Lorens)
-Files: src/ops.c, src/testdir/Makefile, src/testdir/test66.in,
- src/testdir/test66.ok
-
-Patch 7.2.138 (extra part of 7.2.137)
-Problem: See 7.2.137.
-Solution: See 7.2.137.
-Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
- src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
- src/testdir/Make_vms.mms
-
-Patch 7.2.139
-Problem: Crash when 'virtualedit' is "all". (James Vega)
-Solution: Avoid overflow when column is MAXCOL. (Dominique Pelle)
-Files: src/misc2.c
-
-Patch 7.2.140
-Problem: Diff highlighting isn't displayed before the Visual area if it
- starts at the cursor position. (Markus Heidelberg)
-Solution: Also check fromcol_prev.
-Files: src/screen.c
-
-Patch 7.2.141
-Problem: When redrawing a character for bold spill this causes the next
- character to be redrawn as well.
-Solution: Only redraw one extra character. (Yukihiro Nakadaira)
-Files: src/screen.c
-
-Patch 7.2.142
-Problem: Motif and Athena balloons don't use tooltip colors.
-Solution: Set the colors. (Matt Wozniski)
-Files: src/gui_beval.c
-
-Patch 7.2.143
-Problem: No command line completion for ":cscope" command.
-Solution: Add the completion for ":cscope". (Dominique Pelle)
-Files: src/ex_docmd.c, src/ex_getln.c, src/if_cscope.c,
- src/proto/if_cscope.pro, src/vim.h
-
-Patch 7.2.144
-Problem: When 't_Co' is set to the value it already had the color scheme is
- reloaded anyway.
-Solution: Only load the colorscheme when the t_Co value changes. (Dominique
- Pelle)
-Files: src/option.c
-
-Patch 7.2.145
-Problem: White space in ":cscope find" is not ignored.
-Solution: Ignore the white space, but not when the leading white space is
- useful for the argument.
-Files: runtime/doc/if_scop.txt, src/if_cscope.c
-
-Patch 7.2.146
-Problem: v:warningmsg isn't used for all warnings.
-Solution: Set v:warningmsg for relevant warnings. (Ingo Karkat)
-Files: src/fileio.c, src/misc1.c, src/option.c
-
-Patch 7.2.147
-Problem: When compiled as small version and 'number' is on the cursor is
- displayed in the wrong position after a tab. (James Vega)
-Solution: Don't increment vcol when still displaying the line number.
-Files: src/screen.c
-
-Patch 7.2.148
-Problem: When searching for "$" while 'hlsearch' is set, highlighting the
- character after the line does not work in the cursor column.
- Also highlighting for Visual mode after the line end when this
- isn't needed. (Markus Heidelberg)
-Solution: Only compare the cursor column in the cursor line. Only highlight
- for Visual selection after the last character when it's needed to
- see where the Visual selection ends.
-Files: src/screen.c
-
-Patch 7.2.149
-Problem: Using return value of function that doesn't return a value results
- in reading uninitialized memory.
-Solution: Set the default to return zero. Make cursor() return -1 on
- failure. Let complete() return an empty string in case of an
- error. (partly by Dominique Pelle)
-Files: runtime/doc/eval.txt, src/eval.c
-
-Patch 7.2.150 (extra)
-Problem: Can't use tab pages from VisVim.
-Solution: Add tab page support to VisVim. (Adam Slater)
-Files: src/VisVim/Commands.cpp, src/VisVim/Resource.h,
- src/VisVim/VisVim.rc
-
-Patch 7.2.151
-Problem: ":hist a" doesn't work like ":hist all" as the docs suggest.
-Solution: Make ":hist a" and ":hist al" work. (Dominique Pelle)
-Files: src/ex_getln.c
-
-Patch 7.2.152
-Problem: When using "silent echo x" inside ":redir" a next echo may start
- halfway the line. (Tony Mechelynck, Dennis Benzinger)
-Solution: Reset msg_col after redirecting silently.
-Files: src/ex_docmd.c, src/message.c, src/proto/message.pro
-
-Patch 7.2.153
-Problem: Memory leak for ":recover empty_dir/".
-Solution: Free files[] when it becomes empty. (Dominique Pelle)
-Files: src/memline.c
-
-Patch 7.2.154 (after 7.2.132)
-Problem: ":cd" is still possible in a SwapExists autocmd.
-Solution: Set allbuf_lock in do_swapexists().
-Files: src/memline.c
-
-Patch 7.2.155
-Problem: Memory leak in ":function /pat".
-Solution: Free the memory. (Dominique Pelle)
-Files: src/eval.c
-
-Patch 7.2.156 (after 7.2.143)
-Problem: No completion for :scscope and :lcscope commands.
-Solution: Implement the completion. (Dominique Pelle)
-Files: src/if_cscope.c, src/ex_docmd.c, src/proto/if_cscope.pro
-
-Patch 7.2.157
-Problem: Illegal memory access when searching in path.
-Solution: Avoid looking at a byte after end of a string. (Dominique Pelle)
-Files: src/search.c
-
-Patch 7.2.158
-Problem: Warnings from VisualC compiler.
-Solution: Add type casts. (George Reilly)
-Files: src/ops.c
-
-Patch 7.2.159
-Problem: When $x_includes ends up being "NONE" configure fails.
-Solution: Check for $x_includes not to be "NONE" (Rainer)
-Files: src/auto/configure, src/configure.in
-
-Patch 7.2.160
-Problem: Search pattern not freed on exit when 'rightleft' set.
-Solution: Free mr_pattern_alloced.
-Files: src/search.c
-
-Patch 7.2.161
-Problem: Folds messed up in other tab page. (Vlad Irnov)
-Solution: Instead of going over all windows in current tab page go over all
- windows in all tab pages. Also free memory for location lists in
- other tab pages when exiting. (Lech Lorens)
-Files: src/fileio.c, src/mark.c, src/misc1.c, src/misc2.c
-
-Patch 7.2.162
-Problem: The quickfix window may get wrong filetype.
-Solution: Do not detect the filetype for the quickfix window. (Lech Lorens)
-Files: src/quickfix.c
-
-Patch 7.2.163
-Problem: The command line window may get folding.
-Solution: Default to no/manual folding. (Lech Lorens)
-Files: src/ex_getln.c
-
-Patch 7.2.164
-Problem: When 'showbreak' is set the size of the Visual block may be
- reported wrong. (Eduardo Daudt Flach)
-Solution: Temporarily make 'sbr' empty.
-Files: src/normal.c, src/ops.c
-
-Patch 7.2.165
-Problem: The argument for the FuncUndefined autocmd event is expanded like
- a file name.
-Solution: Don't try expanding it. (Wang Xu)
-Files: src/fileio.c
-
-Patch 7.2.166
-Problem: No completion for ":sign" command.
-Solution: Add ":sign" completion. (Dominique Pelle)
-Files: src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c, src/vim.h,
- src/proto/ex_cmds.pro
-
-Patch 7.2.167
-Problem: Splint doesn't work well for checking the code.
-Solution: Add splint arguments in the Makefile. Exclude some code from
- splint that it can't handle. Tune splint arguments to give
- reasonable errors. Add a filter for removing false warnings from
- splint output. Many small changes to avoid warnings. More to
- follow...
-Files: Filelist, src/Makefile, src/buffer.c, src/charset.c,
- src/cleanlint.vim, src/digraph.c, src/edit.c, src/ex_cmds.c,
- src/globals.h, src/ops.c, src/os_unix.c, src/os_unix.h,
- src/proto/buffer.pro, src/proto/edit.pro, src/screen.c,
- src/structs.h
-
-Patch 7.2.168
-Problem: When no ctags program can be found, "make tags" attempts to
- execute the first C file.
-Solution: Default to "ctags" when no ctags program can be found.
-Files: src/configure.in, src/auto/configure
-
-Patch 7.2.169
-Problem: Splint complains about a lot of things.
-Solution: Add type casts, #ifdefs and other changes to avoid warnings.
- Change colnr_T from unsigned to int. Avoids mistakes with
- subtracting columns.
-Files: src/cleanlint.vim, src/diff.c, src/edit.c, src/ex_cmds.c,
- src/ex_cmds2.c, src/ex_docmd.c, src/proto/ex_cmds.pro,
- src/proto/spell.pro, src/quickfix.c, src/spell.c, src/structs.h,
- src/term.h, src/vim.h
-
-Patch 7.2.170
-Problem: Using b_dev while it was not set. (Dominique Pelle)
-Solution: Add the b_dev_valid flag.
-Files: src/buffer.c, src/fileio.c, src/structs.h
-
-Patch 7.2.171 (after 7.2.169)
-Problem: Compiler warnings. (Tony Mechelynck)
-Solution: Add function prototype. (Patrick Texier) Init variable.
-Files: src/ex_cmds.c
-
-Patch 7.2.172 (extra)
-Problem: Compiler warning.
-Solution: Adjust function prototype. (Patrick Texier)
-Files: src/os_mswin.c
-
-Patch 7.2.173
-Problem: Without lint there is no check for unused function arguments.
-Solution: Use gcc -Wunused-parameter instead of lint. For a few files add
- attributes to arguments that are known not to be used.
-Files: src/auto/configure, src/buffer.c, src/charset.c, src/diff.c,
- src/configure.in, src/config.h.in, src/edit.c, src/ex_cmds.c,
- src/ex_cmds2.c, src/version.c, src/vim.h
-
-Patch 7.2.174
-Problem: Too many warnings from gcc -Wextra.
-Solution: Change initializer. Add UNUSED. Add type casts.
-Files: src/edit.c, src/eval.c, src/ex_cmds.c, src/ex_docmd.c,
- src/ex_getln.c, src/fileio.c, getchar.c, globals.h, main.c,
- memline.c, message.c, src/misc1.c, src/move.c, src/normal.c,
- src/option.c, src/os_unix.c, src/os_unix.h, src/regexp.c,
- src/search.c, src/tag.c
-
-Patch 7.2.175
-Problem: Compiler warning in OpenBSD.
-Solution: Add type cast for NULL. (Dasn)
-Files: src/if_cscope.c
-
-Patch 7.2.176
-Problem: Exceptions for splint are not useful.
-Solution: Remove the S_SPLINT_S ifdefs.
-Files: src/edit.c, src/ex_cmds.c, src/ex_docmd.c, src/os_unix.c,
- src/os_unix.h, src/os_unixx.h, src/structs.h, src/term.h
-
-Patch 7.2.177
-Problem: Compiler warnings when using -Wextra
-Solution: Add UNUSED and type casts.
-Files: src/eval.c, src/ex_docmd.c, src/ex_eval.c, src/ex_getln.c,
- src/fileio.c, src/hardcopy.c, src/if_cscope.c, src/if_xcmdsrv.c,
- src/farsi.c, src/mark.c, src/menu.c
-
-Patch 7.2.178
-Problem: Using negative value for device number might not work.
-Solution: Use a separate flag for whether ffv_dev was set.
-Files: src/misc2.c
-
-Patch 7.2.179
-Problem: Using negative value for device number might not work.
-Solution: Use a separate flag for whether sn_dev was set.
-Files: src/ex_cmds2.c
-
-Patch 7.2.180
-Problem: Some more compiler warnings when using gcc -Wextra.
-Solution: Add UNUSED and type casts.
-Files: src/buffer.c, src/ex_cmds.c, src/macros.h, src/main.c,
- src/menu.c, src/message.c, src/misc1.c, src/mbyte.c,
- src/normal.c, src/option.c, src/os_unix.c, src/quickfix.c,
- src/screen.c, src/search.c, src/spell.c, src/syntax.c, src/tag.c,
- src/term.c, src/ui.c
-
-Patch 7.2.181
-Problem: Some more compiler warnings when using gcc -Wextra.
-Solution: Add UNUSED and type casts.
-Files: src/if_mzsch.c, src/gui.c, src/gui_gtk.c, src/gui_gtk_x11.c,
- src/gui_gtk_f.c, src/gui_beval.c, src/netbeans.c
-
-Patch 7.2.182 (after 7.2.181)
-Problem: Compilation problems after previous patch for Motif. Gvim with
- GTK crashes on startup.
-Solution: Add comma. Init form structure to zeroes.
-Files: src/netbeans.c, src/gui_gtk_f.c
-
-Patch 7.2.183
-Problem: Configure problem for sys/sysctl.h on OpenBSD. (Dasn)
-Solution: Add separate check for this header file. Also switch to newer
- version of autoconf.
-Files: src/auto/configure, src/configure.in
-
-Patch 7.2.184
-Problem: Some more compiler warnings when using gcc -Wextra.
-Solution: Add UNUSED and type casts. Autoconf check for wchar_t.
-Files: src/auto/configure, src/config.h.in, src/configure.in,
- src/gui_athena.c, src/gui_x11.c, src/gui.c, src/gui_beval.c,
- src/gui_at_sb.c, src/gui_at_fs.c, src/gui_motif.c,
- src/gui_xmdlg.c, src/gui_xmebw.c, src/if_python.c, src/window.c,
- src/workshop.c
-
-Patch 7.2.185
-Problem: Some more compiler warnings when using gcc -Wextra.
-Solution: Add UNUSED and type casts.
-Files: src/Makefile, src/if_tlc.c, src/if_ruby.c
-
-Patch 7.2.186
-Problem: Some more compiler warnings when using gcc -Wextra.
-Solution: Now with the intended if_tcl.c changes.
-Files: src/if_tcl.c
-
-Patch 7.2.187 (after 7.2.186)
-Problem: Doesn't build with older versions of TCL. (Yongwei Wu)
-Solution: Add #ifdefs. (Dominique Pelle)
-Files: src/if_tcl.c
-
-Patch 7.2.188
-Problem: Crash with specific use of function calls. (Meikel Brandmeyer)
-Solution: Make sure the items referenced by a function call are not freed
- twice. (based on patch from Nico Weber)
-Files: src/eval.c
-
-Patch 7.2.189
-Problem: Possible hang for deleting auto-indent. (Dominique Pelle)
-Solution: Make sure the position is not beyond the end of the line.
-Files: src/edit.c
-
-Patch 7.2.190
-Problem: The register executed by @@ isn't restored.
-Solution: Mark the executable register in the viminfo file.
-Files: src/ops.c
-
-Patch 7.2.191
-Problem: Mzscheme interface doesn't work on Ubuntu.
-Solution: Change autoconf rules. Define missing macro. Some changes to
- avoid gcc warnings. Remove per-buffer namespace. (Sergey Khorev)
-Files: runtime/doc/if_mzsch.txt, src/Makefile, src/Make_ming.mak,
- src/Make_mvc.mak, src/auto/configure, src/configure.in,
- src/config.mk.in, src/eval.c, src/if_mzsch.c, src/if_mzsch.h,
- src/main.c, src/proto/if_mzsch.pro
-
-Patch 7.2.192 (after 7.2.188)
-Problem: Still a crash in the garbage collector for a very rare situation.
-Solution: Make sure current_copyID is always incremented correctly. (Kent
- Sibilev)
-Files: src/eval.c
-
-Patch 7.2.193
-Problem: Warning for uninitialized values.
-Solution: Initialize all the struct items.
-Files: src/eval.c
-
-Patch 7.2.194 (extra)
-Problem: MSVC: rem commands are echoed.
-Solution: Add commands to switch off echo. (Wang Xu)
-Files: src/msvc2008.bat
-
-Patch 7.2.195
-Problem: Leaking memory for the command Vim was started with.
-Solution: Remember the pointer and free it.
-Files: src/gui_gtk_x11.c
-
-Patch 7.2.196 (after 7.2.167)
-Problem: Turns out splint doesn't work well enough to be usable.
-Solution: Remove splint support.
-Files: Filelist, src/cleanlint.vim
-
-Patch 7.2.197
-Problem: Warning for uninitialized values.
-Solution: Initialize all the struct items of typebuf.
-Files: src/globals.h
-
-Patch 7.2.198
-Problem: Size of buffer used for tgetent() may be too small.
-Solution: Use the largest known size everywhere.
-Files: src/vim.h
-
-Patch 7.2.199
-Problem: Strange character in comment.
-Solution: Change to "message". (Yongwei Wu)
-Files: src/term.c
-
-Patch 7.2.200
-Problem: Reading past end of string when navigating the menu bar or
- resizing the window.
-Solution: Add and use mb_ptr2len_len(). (partly by Dominique Pelle)
- Also add mb_ptr2cells_len() to prevent more trouble.
-Files: src/gui_gtk_x11.c, src/os_unix.c, src/globals.h, src/mbyte.c,
- src/proto/mbyte.pro
-
-Patch 7.2.201
-Problem: Cannot copy/paste HTML to/from Firefox via the clipboard.
-Solution: Implement this for GTK. Add the "html" value to 'clipboard'.
-Files: runtime/doc/options.txt, src/globals.h, src/gui_gtk_x11.c,
- src/mbyte.c, src/proto/mbyte.pro, src/option.c
-
-Patch 7.2.202
-Problem: BufWipeout autocommand that edits another buffer causes problems.
-Solution: Check for the situation, give an error and quit the operation.
-Files: src/fileio.c
-
-Patch 7.2.203
-Problem: When reloading a buffer or doing anything else with a buffer that
- is not displayed in a visible window, autocommands may be applied
- to the current window, folds messed up, etc.
-Solution: Instead of using the current window for the hidden buffer use a
- special window, splitting the current one temporarily.
-Files: src/fileio.c, src/globals.h, src/gui.c, src/if_perl.xs,
- src/progo/gui.pro, src/proto/window.pro, src/screen.c,
- src/structs.h, src/window.c
-
-Patch 7.2.204 (extra)
-Problem: Win32: Can't build with Visual Studio 2010 beta 1.
-Solution: Fix the makefile. (George Reilly)
-Files: src/Make_mvc.mak
-
-Patch 7.2.205 (extra)
-Problem: Win32: No support for High DPI awareness.
-Solution: Fix the manifest file. (George Reilly)
-Files: src/Make_mvc.mak, src/gvim.exe.mnf
-
-Patch 7.2.206
-Problem: Win32: Can't build netbeans interface with Visual Studio 2010.
-Solution: Undefine ECONNREFUSED. (George Reilly)
-Files: src/netbeans.c
-
-Patch 7.2.207
-Problem: Using freed memory with ":redrawstatus" when it works recursively.
-Solution: Prevent recursively updating the status line. (partly by Dominique
- Pelle)
-Files: src/screen.c
-
-Patch 7.2.208
-Problem: "set novice" gives an error message, it should be ignored.
-Solution: Don't see "no" in "novice" as unsetting an option. (Patrick
- Texier)
-Files: src/option.c
-
-Patch 7.2.209
-Problem: For xxd setmode() is undefined on Cygwin.
-Solution: Include io.h. (Dominique Pelle)
-Files: src/xxd/xxd.c
-
-Patch 7.2.210
-Problem: When a file that is being edited has its timestamp updated outside
- of Vim and ":checktime" is used still get a warning when writing
- the file. (Matt Mueller)
-Solution: Store the timestamp in b_mtime_read when the timestamp is the only
- thing that changed.
-Files: src/fileio.c
-
-Patch 7.2.211
-Problem: Memory leak when expanding a series of file names.
-Solution: Use ga_clear_strings() instead of ga_clear().
-Files: src/misc1.c
-
-Patch 7.2.212 (extra)
-Problem: Warnings for redefining SIG macros.
-Solution: Don't define them if already defined. (Bjorn Winckler)
-Files: src/os_mac.h
-
-Patch 7.2.213
-Problem: Warning for using vsprintf().
-Solution: Use vim_vsnprintf().
-Files: src/netbeans.c
-
-Patch 7.2.214
-Problem: Crash with complete function for user command. (Andy Wokula)
-Solution: Avoid using a NULL pointer (Dominique Pelle)
-Files: src/ex_getln.c
-
-Patch 7.2.215
-Problem: ml_get error when using ":vimgrep".
-Solution: Load the memfile for the hidden buffer before putting it in a
- window. Correct the order of splitting the window and filling
- the window and buffer with data.
-Files: src/fileio.c, src/proto/window.pro, src/quickfix.c, src/window.c
-
-Patch 7.2.216
-Problem: Two error messages have the same number E812.
-Solution: Give one message a different number.
-Files: runtime/doc/autocmd.txt, runtime/doc/if_mzsch.txt, src/if_mzsch.c
-
-Patch 7.2.217
-Problem: Running tests with valgrind doesn't work as advertised.
-Solution: Fix the line in the Makefile.
-Files: src/testdir/Makefile
-
-Patch 7.2.218
-Problem: Cannot build GTK with hangul_input feature. (Dominique Pelle)
-Solution: Adjust #ifdef. (SungHyun Nam)
-Files: src/gui.c
-
-Patch 7.2.219 (extra)
-Problem: Photon GUI is outdated.
-Solution: Updates for QNX 6.4.0. (Sean Boudreau)
-Files: src/gui_photon.c
-
-Patch 7.2.220 (after 7.2.215)
-Problem: a BufEnter autocommand that changes directory causes problems.
- (Ajit Thakkar)
-Solution: Disable autocommands when opening a hidden buffer in a window.
-Files: src/fileio.c
-
-Patch 7.2.221
-Problem: X cut_buffer0 text is used as-is, it may be in the wrong encoding.
-Solution: Convert between 'enc' and latin1. (James Vega)
-Files: src/gui_gtk_x11.c, src/message.c, src/ops.c, src/proto/ui.pro,
- src/ui.c
-
-Patch 7.2.222
-Problem: ":mksession" doesn't work properly with 'acd' set.
-Solution: Make it work. (Yakov Lerner)
-Files: src/ex_docmd.c
-
-Patch 7.2.223
-Problem: When a script is run with ":silent" it is not able to give warning
- messages.
-Solution: Add the ":unsilent" command.
-Files: runtime/doc/various.txt, src/ex_cmds.h, src/ex_docmd.c
-
-Patch 7.2.224
-Problem: Crash when using 'completefunc'. (Ingo Karkat)
-Solution: Disallow entering edit() recursively when doing completion.
-Files: src/edit.c
-
-Patch 7.2.225
-Problem: When using ":normal" a saved character may be executed.
-Solution: Also store old_char when saving typeahead.
-Files: src/getchar.c, src/structs.h
-
-Patch 7.2.226
-Problem: ml_get error after deleting the last line. (Xavier de Gaye)
-Solution: When adjusting marks a callback may be invoked. Adjust the cursor
- position before invoking deleted_lines_mark().
-Files: src/ex_cmds.c, src/ex_docmd.c, src/if_mzsch.c, src/if_python.c,
- src/if_perl.xs, src/misc1.c
-
-Patch 7.2.227
-Problem: When using ":cd" in a script there is no way to track this.
-Solution: Display the directory when 'verbose' is 5 or higher.
-Files: src/ex_docmd.c
-
-Patch 7.2.228
-Problem: Cscope is limited to 8 connections.
-Solution: Allocated the connection array to handle any number of
- connections. (Dominique Pelle)
-Files: runtime/doc/if_cscop.txt, src/if_cscope.h, src/if_cscope.c
-
-Patch 7.2.229
-Problem: Warning for shadowed variable.
-Solution: Rename "wait" to "wait_time".
-Files: src/os_unix.c
-
-Patch 7.2.230
-Problem: A few old lint-style ARGUSED comments.
-Solution: Change to the new UNUSED style.
-Files: src/getchar.c
-
-Patch 7.2.231
-Problem: Warning for unreachable code.
-Solution: Add #ifdef.
-Files: src/if_perl.xs
-
-Patch 7.2.232
-Problem: Cannot debug problems with being in a wrong directory.
-Solution: When 'verbose' is 5 or higher report directory changes.
-Files: src/os_unix.c, src/os_unix.h, src/proto/os_unix.pro
-
-Patch 7.2.233 (extra part of 7.2.232)
-Problem: Cannot debug problems with being in a wrong directory.
-Solution: When 'verbose' is 5 or higher report directory changes.
-Files: src/os_msdos.c, src/os_mswin.c, src/os_riscos.c, src/os_mac.h
-
-Patch 7.2.234
-Problem: It is not possible to ignore file names without a suffix.
-Solution: Use an empty entry in 'suffixes' for file names without a dot.
-Files: runtime/doc/cmdline.txt, src/misc1.c
-
-Patch 7.2.235
-Problem: Using CTRL-O z= in Insert mode has a delay before redrawing.
-Solution: Reset msg_didout and msg_scroll.
-Files: src/misc1.c, src/spell.c
-
-Patch 7.2.236
-Problem: Mac: Compiling with Ruby doesn't always work.
-Solution: In configure filter out the --arch argument (Bjorn Winckler)
-Files: src/configure.in, src/auto/configure
-
-Patch 7.2.237
-Problem: Crash on exit when window icon not set.
-Solution: Copy terminal name when using it for the icon name.
-Files: src/os_unix.c
-
-Patch 7.2.238
-Problem: Leaking memory when setting term to "builtin_dumb".
-Solution: Free memory when resetting term option t_Co.
-Files: src/option.c, src/proto/option.pro, src/term.c
-
-Patch 7.2.239
-Problem: Using :diffpatch twice or when patching fails causes memory
- corruption and/or a crash. (Bryan Venteicher)
-Solution: Detect missing output file. Avoid using non-existing buffer.
-Files: src/diff.c
-
-Patch 7.2.240
-Problem: Crash when using find/replace dialog repeatedly. (Michiel
- Hartsuiker)
-Solution: Avoid doing the operation while busy or recursively. Also refuse
- replace when text is locked.
-Files: src/gui.c
-
-Patch 7.2.241
-Problem: When using a combination of ":bufdo" and "doautoall" we may end up
- in the wrong directory. (Ajit Thakkar)
- Crash when triggering an autocommand in ":vimgrep". (Yukihiro
- Nakadaira)
-Solution: Clear w_localdir and globaldir when using the aucmd_win.
- Use a separate flag to decide aucmd_win needs to be restored.
-Files: src/fileio.c, src/globals.h, src/structs.h
-
-Patch 7.2.242
-Problem: Setting 'lazyredraw' causes the cursor column to be recomputed.
- (Tom Link)
-Solution: Only recompute the cursor column for a boolean option if changes
- the cursor position.
-Files: src/option.c
-
-Patch 7.2.243
-Problem: Memory leak when using :vimgrep and resizing. (Dominique Pelle)
-Solution: Free memory for aucmd_win when resizing and don't allocate it
- twice.
-Files: src/screen.c
-
-Patch 7.2.244
-Problem: When 'enc' is utf-8 and 'fenc' is latin1, writing a non-latin1
- character gives a conversion error without any hint what is wrong.
-Solution: When known add the line number to the error message.
-Files: src/fileio.c
-
-Patch 7.2.245
-Problem: When 'enc' is "utf-16" and 'fenc' is "utf-8" writing a file does
- conversion while none should be done. (Yukihiro Nakadaira) When
- 'fenc' is empty the file is written as utf-8 instead of utf-16.
-Solution: Do proper comparison of encodings, taking into account that all
- Unicode values for 'enc' use utf-8 internally.
-Files: src/fileio.c
-
-Patch 7.2.246
-Problem: Cscope home page link is wrong.
-Solution: Update the URL. (Sergey Khorev)
-Files: runtime/doc/if_cscop.txt
-
-Patch 7.2.247
-Problem: Mzscheme interface minor problem.
-Solution: Better error message when build fails. (Sergey Khorev)
-Files: src/if_mzsch.c
-
-Patch 7.2.248 (extra)
-Problem: Mzscheme interface building minor problems.
-Solution: Update Win32 makefiles. (Sergey Khorev)
-Files: src/Make_cyg.mak, src/Make_ming.mak, src/Make_mvc.mak
-
-Patch 7.2.249
-Problem: The script to check .po files can't handle '%' in plural forms.
-Solution: Remove "Plural-Forms:" from the checked string.
-Files: src/po/check.vim
-
-Patch 7.2.250 (extra)
-Problem: Possible buffer overflow.
-Solution: Compute the remaining space. (Dominique Pelle)
-Files: src/GvimExt/gvimext.cpp
-
-Patch 7.2.251 (after 7.2.044)
-Problem: Compiler adds invalid memory bounds check.
-Solution: Remove _FORTIFY_SOURCE=2 from CFLAGS. (Dominique Pelle)
-Files: src/auto/configure, src/configure.in
-
-Patch 7.2.252
-Problem: When using a multi-byte 'enc' the 'iskeyword' option cannot
- contain characters above 128.
-Solution: Use mb_ptr2char_adv().
-Files: src/charset.c
-
-Patch 7.2.253
-Problem: Netbeans interface: getLength always uses current buffer.
-Solution: Use ml_get_buf() instead of ml_get(). (Xavier de Gaye)
-Files: src/netbeans.c
-
-Patch 7.2.254
-Problem: Compiler warning for assigning size_t to int.
-Solution: Use size_t for the variable. (George Reilly)
-Files: src/fileio.c
-
-Patch 7.2.255 (after 7.2.242)
-Problem: Setting 'rightleft', 'linebreak' and 'wrap' may cause cursor to be
- in wrong place.
-Solution: Recompute the cursor column for these options.
-Files: src/option.c
-
-Patch 7.2.256
-Problem: When 'guifont' was not set GTK font dialog doesn't have a default.
- (Andreas Metzler)
-Solution: Set default to DEFAULT_FONT. (James Vega)
-Files: src/gui_gtk_x11.c
-
-Patch 7.2.257
-Problem: With GTK 2.17 lots of assertion error messages.
-Solution: Remove check for static gravity. (Sebastian Droege)
-Files: src/gui_gtk_f.c
-
-Patch 7.2.258
-Problem: v:beval_col and b:beval_text are wrong in UTF-8 text. (Tony
- Mechelynck)
-Solution: Use byte number instead of character number for the column.
-Files: src/ui.c
-
-Patch 7.2.259
-Problem: exists() doesn't work properly for an empty aucmd group.
-Solution: Change how au_exists() handles a missing pattern. Also add a
- test for this. (Bob Hiestand)
-Files: src/fileio.c, src/testdir/Makefile, src/testdir/test67.in,
- src/testdir/test67.ok
-
-Patch 7.2.260 (extra part of 7.2.259)
-Problem: exists() doesn't work properly for empty aucmd group.
-Solution: Change how au_exists() handles a missing pattern. Also add a
- test for this. (Bob Hiestand)
-Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
- src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
- src/testdir/Make_vms.mms
-
-Patch 7.2.261
-Problem: When deleting lines with a specific folding configuration E38 may
- appear. (Shahaf)
-Solution: When adjusting nested folds for deleted lines take into account
- that they don't start at the top of the enclosing fold.
-Files: src/fold.c
-
-Patch 7.2.262
-Problem: When using custom completion for a user command the pattern string
- goes beyond the cursor position. (Hari Krishna Dara)
-Solution: Truncate the string at the cursor position.
-Files: src/ex_getln.c, src/structs.h
-
-Patch 7.2.263
-Problem: GTK2: when using the -geom argument with an offset from the right
- edge and the size is smaller than the default, the Vim window is
- not positioned properly.
-Solution: Use another function to set the size. (Vitaly Minko)
-Files: src/gui_gtk_x11.c
-
-Patch 7.2.264
-Problem: GTK2: When the Vim window is maximized setting 'columns' or
- 'lines' doesn't work.
-Solution: Unmaximize the window before setting the size. (Vitaly Minko)
-Files: src/gui.c, src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro
-
-Patch 7.2.265
-Problem: When using ":silent broken" inside try/catch silency may persist.
- (dr-dr xp)
-Solution: Set msg_silent when there is an error and it's bigger than the
- saved value.
-Files: src/ex_docmd.c
-
-Patch 7.2.266
-Problem: When an expression abbreviation is triggered, the typed character
- is unknown.
-Solution: Make the typed character available in v:char.
-Files: runtime/doc/map.txt, src/eval.c, src/getchar.c, src/ops.c,
- src/proto/eval.pro
-
-Patch 7.2.267
-Problem: Crash for narrow window and double-width character.
-Solution: Check for zero width. (Taro Muraoka)
-Files: src/charset.c
-
-Patch 7.2.268
-Problem: Crash when using Python to set cursor beyond end of line.
- (winterTTr)
-Solution: Check the column to be valid.
-Files: src/if_python.c
-
-Patch 7.2.269
-Problem: Many people struggle to find out why Vim startup is slow.
-Solution: Add the --startuptime command line flag.
-Files: runtime/doc/starting.txt, src/globals.h, src/feature.h,
- src/main.c, src/macros.h
-
-Patch 7.2.270
-Problem: Using ":@c" when the c register contains a CR causes the rest to
- be executed later. (Dexter Douglas)
-Solution: Don't check for typeahead to start with ':', keep executing
- commands until all added typeahead has been used.
-Files: src/ex_docmd.c
-
-Patch 7.2.271
-Problem: Using freed memory in Motif GUI version when making a choice.
-Solution: Free memory only after using it. (Dominique Pelle)
-Files: src/gui_xmdlg.c
-
-Patch 7.2.272
-Problem: "_.svz" is not recognized as a swap file. (David M. Besonen)
-Solution: Accept .s[uvw][a-z] as a swap file name extension.
-Files: src/memline.c
-
-Patch 7.2.273
-Problem: Crash with redir to unknown array. (Christian Brabandt)
-Solution: Don't assign the redir result when there was an error.
-Files: src/eval.c
-
-Patch 7.2.274
-Problem: Syntax folding doesn't work properly when adding a comment.
-Solution: Fix it and add a test. (Lech Lorens)
-Files: src/fold.c, src/testdir/test45.in, src/testdir/test45.ok
-
-Patch 7.2.275
-Problem: Warning for unused argument and comparing signed and unsigned.
-Solution: Add type cast.
-Files: src/memline.c
-
-Patch 7.2.276
-Problem: Crash when setting 'isprint' to a small bullet. (Raul Coronado)
-Solution: Check for the character to be < 256. Also make it possible to
- specify a range of multi-byte characters. (Lech Lorens)
-Files: src/charset.c
-
-Patch 7.2.277
-Problem: CTRL-Y in a diff'ed window may move the cursor outside of the
- window. (Lech Lorens)
-Solution: Limit the number of filler lines to the height of the window.
- Don't reset filler lines to zero for an empty buffer.
-Files: src/move.c
-
-Patch 7.2.278
-Problem: Using magic number in the folding code.
-Solution: Use the defined MAX_LEVEL.
-Files: src/fold.c
-
-Patch 7.2.279
-Problem: Invalid memory read with visual mode "r". (Dominique Pelle)
-Solution: Make sure the cursor position is valid. Don't check the cursor
- position but the position being used. And make sure we get the
- right line.
-Files: src/misc2.c, src/ops.c
-
-Patch 7.2.280
-Problem: A redraw in a custom statusline with %! may cause a crash.
- (Yukihiro Nakadaira)
-Solution: Make a copy of 'statusline'. Also fix typo in function name
- redraw_custom_statusline. (partly by Dominique Pelle)
-Files: src/screen.c
-
-Patch 7.2.281
-Problem: 'cursorcolumn' highlighting is wrong in diff mode.
-Solution: Adjust the column computation. (Lech Lorens)
-Files: src/screen.c
-
-Patch 7.2.282
-Problem: A fold can't be closed.
-Solution: Initialize fd_small to MAYBE. (Lech Lorens)
-Files: src/fold.c
-
-Patch 7.2.283
-Problem: Changing font while the window is maximized doesn't keep the
- window maximized.
-Solution: Recompute number of lines and columns after changing font. (James
- Vega)
-Files: src/gui_gtk_x11.c
-
-Patch 7.2.284
-Problem: When editing the same buffer in two windows, one with folding,
- display may be wrong after changes.
-Solution: Call set_topline() to take care of side effects. (Lech Lorens)
-Files: src/misc1.c
-
-Patch 7.2.285 (after 7.2.169)
-Problem: CTRL-U in Insert mode also deletes indent. (Andrey Voropaev)
-Solution: Fix mistake made in patch 7.2.169.
-Files: src/edit.c
-
-Patch 7.2.286 (after 7.2.269)
-Problem: The "--startuptime=<file>" argument is not consistent with other
- arguments.
-Solution: Use "--startuptime <file>". Added the +startuptime feature.
-Files: runtime/doc/eval.txt, runtime/doc/starting.txt,
- runtime/doc/various.txt, src/eval.c, src/main.c, src/version.c
-
-Patch 7.2.287
-Problem: Warning from gcc 3.4 about uninitialized variable.
-Solution: Move assignment outside of #ifdef.
-Files: src/if_perl.xs
-
-Patch 7.2.288
-Problem: Python 2.6 pyconfig.h redefines macros.
-Solution: Undefine the macros before including pyconfig.h.
-Files: src/if_python.c
-
-Patch 7.2.289
-Problem: Checking wrong struct member.
-Solution: Change tb_buf to tb_noremap. (Dominique Pelle)
-Files: src/getchar.c
-
-Patch 7.2.290
-Problem: Not freeing memory from ":lmap", ":xmap" and ":menutranslate".
-Solution: Free the memory when exiting. (Dominique Pelle)
-Files: src/misc2.c
-
-Patch 7.2.291
-Problem: Reading uninitialised memory in arabic mode.
-Solution: Use utfc_ptr2char_len() rather than utfc_ptr2char(). (Dominique
- Pelle)
-Files: src/screen.c
-
-Patch 7.2.292
-Problem: Block right-shift doesn't work properly with multi-byte encoding
- and 'list' set.
-Solution: Add the missing "else". (Lech Lorens)
-Files: src/ops.c
-
-Patch 7.2.293
-Problem: When setting 'comments' option it may be used in a wrong way.
-Solution: Don't increment after skipping over digits. (Yukihiro Nakadaira)
-Files: src/misc1.c
-
-Patch 7.2.294
-Problem: When using TEMPDIRS dir name could get too long.
-Solution: Overwrite tail instead of appending each time. Use mkdtemp() when
- available. (James Vega)
-Files: src/auto/configure, src/config.h.in, src/configure.in, src/fileio.c
-
-Patch 7.2.295
-Problem: When using map() on a List the index is not known.
-Solution: Set v:key to the index. (Hari Krishna Dara)
-Files: runtime/doc/eval.txt, src/eval.c
-
-Patch 7.2.296
-Problem: Help message about startuptime is wrong. (Dominique Pelle)
-Solution: Remove the equal sign.
-Files: src/main.c
-
-Patch 7.2.297
-Problem: Reading freed memory when writing ":reg" output to a register.
- (Dominique Pelle)
-Solution: Skip the register being written to.
-Files: src/ops.c
-
-Patch 7.2.298
-Problem: ":vimgrep" crashes when there is an autocommand that sets a
- window-local variable.
-Solution: Initialize the w: hashtab for re-use. (Yukihiro Nakadaira)
-Files: src/fileio.c
-
-Patch 7.2.299
-Problem: Crash when comment middle is longer than start.
-Solution: Fix size computation. (Lech Lorens)
-Files: src/misc1.c
-
-Patch 7.2.300
-Problem: Vim doesn't close file descriptors when forking and executing
- another command, e.g., ":shell".
-Solution: Use FD_CLOEXEC when available. (James Vega)
-Files: auto/configure, src/config.h.in, src/configure.in,
- src/ex_cmdds2.c, src/fileio.c, src/memfile.c, src/memline.c
-
-Patch 7.2.301
-Problem: Formatting is wrong when 'tw' is set to a small value.
-Solution: Fix it and add tests. Also fix behavior of "1" in 'fo'. (Yukihiro
- Nakadaira)
-Files: src/edit.c, src/testdir/Makefile, src/testdir/test68.in,
- src/testdir/test68.ok, src/testdir/test69.in,
- src/testdir/test69,ok
-
-Patch 7.2.302 (extra part of 7.2.301)
-Problem: Formatting wrong with small 'tw' value.
-Solution: Add build rules for tests.
-Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
- src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
- src/testdir/Make_vms.mms
-
-Patch 7.2.303 (after 7.2.294)
-Problem: Can't build on MS-Windows.
-Solution: Add #ifdef around vim_settempdir(). (James Vega)
-Files: src/fileio.c
-
-Patch 7.2.304
-Problem: Compiler warning for bad pointer cast.
-Solution: Use another variable for int pointer.
-Files: src/ops.c
-
-Patch 7.2.305
-Problem: Recursively redrawing causes a memory leak. (Dominique Pelle)
-Solution: Disallow recursive screen updating.
-Files: src/screen.c
-
-Patch 7.2.306
-Problem: shellescape("10%%", 1) only escapes first %. (Christian Brabandt)
-Solution: Don't copy the character after the escaped one.
-Files: src/misc2.c
-
-Patch 7.2.307
-Problem: Crash with a very long syntax match statement. (Guy Gur Ari)
-Solution: When the offset does not fit in the two bytes available give an
- error instead of continuing with invalid pointers.
-Files: src/regexp.c
-
-Patch 7.2.308
-Problem: When using a regexp in the "\=" expression of a substitute
- command, submatch() returns empty strings for further lines.
- (Clockwork Jam)
-Solution: Save and restore the line number and line count when calling
- reg_getline().
-Files: src/regexp.c
-
-Patch 7.2.309 (after 7.2.308)
-Problem: Warning for missing function prototype. (Patrick Texier)
-Solution: Add the prototype.
-Files: src/regexp.c
-
-Patch 7.2.310
-Problem: When a filetype plugin in ~/.vim/ftdetect uses ":setfiletype" and
- the file starts with a "# comment" it gets "conf" filetype.
-Solution: Check for "conf" filetype after using ftdetect plugins.
-Files: runtime/filetype.vim
-
-Patch 7.2.311
-Problem: Can't compile with FreeMiNT.
-Solution: Change #ifdef for limits.h. (Alan Hourihane)
-Files: src/fileio.c
-
-Patch 7.2.312
-Problem: iconv() returns an invalid character sequence when conversion
- fails. It should return an empty string. (Yongwei Wu)
-Solution: Be more strict about invalid characters in the input.
-Files: src/mbyte.c
-
-Patch 7.2.313
-Problem: Command line completion doesn't work after "%:h" and similar.
-Solution: Expand these items before doing the completion.
-Files: src/ex_getln.c, src/misc1.c, src/proto/misc1.pro
-
-Patch 7.2.314
-Problem: Missing function in small build.
-Solution: Always include concat_str.
-Files: src/misc1.c
-
-Patch 7.2.315
-Problem: Python libs can't be found on 64 bit system.
-Solution: Add lib64 to the list of directories. (Michael Henry)
-Files: src/auto/configure, src/configure.in
-
-Patch 7.2.316
-Problem: May get multiple _FORTIFY_SOURCE arguments. (Tony Mechelynck)
-Solution: First remove all these arguments and then add the one we want.
- (Dominique Pelle)
-Files: src/auto/configure, src/configure.in
-
-Patch 7.2.317
-Problem: Memory leak when adding a highlight group with unprintable
- characters, resulting in E669.
-Solution: Free the memory. And fix a few typos. (Dominique Pelle)
-Files: src/syntax.c
-
-Patch 7.2.318
-Problem: Wrong locale value breaks floating point numbers for gvim.
-Solution: Set the locale again after doing GUI inits. (Dominique Pelle)
-Files: src/main.c
-
-Patch 7.2.319
-Problem: Motif: accessing freed memory when cancelling font dialog.
-Solution: Destroy the widget only after accessing it. (Dominique Pelle)
-Files: src/gui_xmdlg.c
-
-Patch 7.2.320
-Problem: Unused function in Mzscheme interface.
-Solution: Remove the function and what depends on it. (Dominique Pelle)
-Files: src/if_mzsch.c, src/proto/if_mzsch.pro
-
-Patch 7.2.321
-Problem: histadd() and searching with "*" fails to add entry to history
- when it is empty.
-Solution: Initialize the history. (Lech Lorens)
-Files: src/eval.c, src/normal.c
-
-Patch 7.2.322
-Problem: Wrong indenting in virtual replace mode with CTRL-Y below a short
- line.
-Solution: Check for character to be NUL. (suggested by Lech Lorens)
-Files: src/edit.c
-
-Patch 7.2.323 (extra)
-Problem: Balloon evaluation crashes on Win64.
-Solution: Change pointer types. (Sergey Khorev)
-Files: src/gui_w32.c
-
-Patch 7.2.324
-Problem: A negative column argument in setpos() may cause a crash.
-Solution: Check for invalid column number. (James Vega)
-Files: src/eval.c, src/misc2.c
-
-Patch 7.2.325
-Problem: A stray "w" in the startup vimrc file causes the edited file to be
- replaced with an empty file. (Stone Kang).
-Solution: Do not write a buffer when it has never been loaded.
-Files: src/fileio.c
-
-Patch 7.2.326
-Problem: Win32: $HOME doesn't work when %HOMEPATH% is not defined.
-Solution: Use "\" for %HOMEPATH% when it is not defined.
-Files: src/misc1.c
-
-Patch 7.2.327
-Problem: Unused functions in Workshop.
-Solution: Add "#if 0" and minor cleanup. (Dominique Pelle)
-Files: src/workshop.c, src/integration.c, src/integration.h
-
-Patch 7.2.328
-Problem: has("win64") does not return 1 on 64 bit MS-Windows version.
-Solution: Also check for _WIN64 besides WIN64.
-Files: src/eval.c
-
-Patch 7.2.329
-Problem: "g_" doesn't position cursor correctly when in Visual mode and
- 'selection' is "exclusive". (Ben Fritz)
-Solution: Call adjust_for_sel().
-Files: src/normal.c
-
-Patch 7.2.330
-Problem: Tables for Unicode case operators are outdated.
-Solution: Add a Vim script for generating the tables. Include tables for
- Unicode 5.2.
-Files: runtime/tools/README.txt, runtime/tools/unicode.vim, src/mbyte.c
-
-Patch 7.2.331
-Problem: Can't interrupt "echo list" for a very long list.
-Solution: Call line_breakcheck() in list_join().
-Files: src/eval.c
-
-Patch 7.2.332
-Problem: Crash when spell correcting triggers an autocommand that reloads
- the buffer.
-Solution: Make a copy of the line to be modified. (Dominique Pelle)
-Files: src/spell.c
-
-Patch 7.2.333
-Problem: Warnings from static code analysis.
-Solution: Small changes to various lines. (Dominique Pelle)
-Files: src/buffer.c, src/edit.c, src/ex_getln.c, src/fileio.c,
- src/if_cscope.c, src/netbeans.c, src/ops.c, src/quickfix.c,
- src/syntax.c, src/ui.c
-
-Patch 7.2.334
-Problem: Postponing keys in Netbeans interface does not work properly.
-Solution: Store the key string instead of the number. Avoid an infinite
- loop. (Mostly by Xavier de Gaye)
-Files: src/netbeans.c, src/proto/netbeans.pro
-
-Patch 7.2.335
-Problem: The CTRL-] command escapes too many characters.
-Solution: Use a different list of characters to be escaped. (Sergey Khorev)
-Files: src/normal.c
-
-Patch 7.2.336
-Problem: MzScheme interface can't evaluate an expression.
-Solution: Add mzeval(). (Sergey Khorev)
-Files: runtime/doc/eval.txt, runtime/doc/if_mzsch.txt,
- runtime/doc/usr_41.txt, src/eval.c, src/if_mzsch.c,
- src/proto/eval.pro, src/proto/if_mzsch.pro,
- src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
- src/testdir/Makefile, src/testdir/main.aap, src/testdir/test1.in,
- src/testdir/test70.in, src/testdir/test70.ok
-
-Patch 7.2.337
-Problem: The :compiler command doesn't function properly when invoked in a
- function.
-Solution: Add "g:" before "current_compiler". (Yukihiro Nakadaira)
-Files: src/ex_cmds2.c
-
-Patch 7.2.338 (after 7.2.300)
-Problem: Part of FD_CLOEXEC change is missing.
-Solution: Include source file skipped because of typo.
-Files: src/ex_cmds2.c
-
-Patch 7.2.339 (after 7.2.269)
-Problem: Part of --startuptime patch is missing.
-Solution: Add check for time_fd.
-Files: src/ex_cmds2.c
-
-Patch 7.2.340
-Problem: Gcc warning for condition that can never be true. (James Vega)
-Solution: Use start_lvl instead flp->lvl.
-Files: src/fold.c
-
-Patch 7.2.341
-Problem: Popup menu wraps to next line when double-wide character doesn't
- fit. (Jiang Ma)
-Solution: Display a ">" instead. (Dominique Pelle)
-Files: src/screen.c
-
-Patch 7.2.342
-Problem: Popup menu displayed wrong in 'rightleft' mode when there are
- multi-byte characters.
-Solution: Adjust the column computations. (Dominique Pelle)
-Files: src/popupmnu.c
-
-Patch 7.2.343 (after 7.2.338)
-Problem: Can't compile on Win32.
-Solution: Insert the missing '|'.
-Files: src/ex_cmds2.c
-
-Patch 7.2.344 (after 7.2.343)
-Problem: Can't compile on some systems
-Solution: Move the #ifdef outside of the mch_open macro. (Patrick Texier)
-Files: src/ex_cmds2.c
-
-Patch 7.2.345
-Problem: Tab line is not updated when the value of 'bt' is changed.
-Solution: Call redraw_titles(). (Lech Lorens)
-Files: src/option.c
-
-Patch 7.2.346
-Problem: Repeating a command with @: causes a mapping to be applied twice.
-Solution: Do not remap characters inserted in the typeahead buffer. (Kana
- Natsuno)
-Files: src/ops.c
-
-Patch 7.2.347
-Problem: Crash when executing <expr> mapping redefines that same mapping.
-Solution: Save the values used before evaluating the expression.
-Files: src/getchar.c
-
-Patch 7.2.348 (after 7.2.330)
-Problem: Unicode double-width characters are not up-to date.
-Solution: Produce the double-width table like the others.
-Files: runtime/tools/unicode.vim, src/mbyte.c
-
-Patch 7.2.349
-Problem: CTRL-W gf doesn't put the new tab in the same place as "tab split"
- and "gf". (Tony Mechelynck)
-Solution: Store the tab number in cmdmod.tab.
-Files: src/window.c
-
-Patch 7.2.350
-Problem: Win32: When changing font the window may jump from the secondary
- to the primary screen. (Michael Wookey)
-Solution: When the screen position was negative don't correct it to zero.
-Files: src/gui.c
-
-Patch 7.2.351 (after 7.2.347)
-Problem: Can't build with some compilers.
-Solution: Move the #ifdef outside of a macro. Cleanup the code.
-Files: src/getchar.c
-
-Patch 7.2.352 (extra)
-Problem: Win64: Vim doesn't work when cross-compiled with MingW libraries.
-Solution: Always return TRUE for the WM_NCCREATE message. (Andy Kittner)
-Files: src/gui_w48.c
-
-Patch 7.2.353
-Problem: No command line completion for ":profile".
-Solution: Complete the subcommand and file name.
-Files: src/ex_docmd.c, src/ex_cmds2.c, src/ex_getln.c,
- src/proto/ex_cmds2.pro, src/vim.h
-
-Patch 7.2.354
-Problem: Japanese single-width double-byte characters not handled correctly.
-Solution: Put 0x8e in ScreenLines[] and the second byte in ScreenLines2[].
- (partly by Kikuchan)
-Files: src/screen.c
-
-Patch 7.2.355
-Problem: Computing the cursor column in validate_cursor_col() is wrong when
- line numbers are used and 'n' is not in 'cpoptions', causing the
- popup menu to be positioned wrong.
-Solution: Correctly use the offset. (partly by Dominique Pelle)
-Files: src/move.c
-
-Patch 7.2.356
-Problem: When 'foldmethod' is changed not all folds are closed as expected.
-Solution: In foldUpdate() correct the start position and reset fd_flags when
- w_foldinvalid is set. (Lech Lorens)
-Files: src/fold.c
-
-Patch 7.2.357
-Problem: When changing 'fileformat' from/to "mac" and there is a CR in the
- text the display is wrong.
-Solution: Redraw the text when 'fileformat' is changed. (Ben Schmidt)
-Files: src/option.c
-
-Patch 7.2.358
-Problem: Compiler warnings on VMS. (Zoltan Arpadffy)
-Solution: Pass array itself instead its address. Return a value.
-Files: src/gui_gtk_x11.c, src/os_unix.c
-
-Patch 7.2.359
-Problem: Crash when using the Netbeans join command.
-Solution: Make sure the ml_flush_line() function is not used recursively.
- (Xavier de Gaye)
-Files: src/memline.c
-
-Patch 7.2.360
-Problem: Ruby on MS-Windows: can't use sockets.
-Solution: Call NtInitialize() during initialization. (Ariya Mizutani)
-Files: src/if_ruby.c
-
-Patch 7.2.361
-Problem: Ruby 1.9 is not supported.
-Solution: Add Ruby 1.9 support. (Masaki Suketa)
-Files: src/Makefile, src/auto/configure, src/configure.in, src/if_ruby.c
-
-Patch 7.2.362 (extra, after 7.2.352)
-Problem: Win64: Vim doesn't work when cross-compiled with MingW libraries.
-Solution: Instead of handling WM_NCCREATE, create wide text area window
- class if the parent window iw side. (Sergey Khorev)
-Files: src/gui_w32.c, src/gui_w48.c
-
-Patch 7.2.363
-Problem: Can't dynamically load Perl 5.10.
-Solution: Add the function Perl_croak_xs_usage. (Sergey Khorev)
-Files: src/if_perl.xs
-
-Patch 7.2.364 (extra)
-Problem: Can't build gvimext.dll on Win 7 x64 using MinGW (John Marriott)
-Solution: Check if _MSC_VER is defined. (Andy Kittner)
-Files: src/GvimExt/gvimext.h
-
-Patch 7.2.365 (extra)
-Problem: MS-Windows with MingW: "File->Save As" does not work. (John
- Marriott)
-Solution: Correctly fill in structure size. (Andy Kittner)
-Files: src/gui_w48.c
-
-Patch 7.2.366
-Problem: CTRL-B doesn't go back to the first line of the buffer.
-Solution: Avoid an overflow when adding MAXCOL.
-Files: src/move.c
-
-Patch 7.2.367
-Problem: "xxd -r -p" doesn't work as documented.
-Solution: Skip white space. (James Vega)
-Files: src/xxd/xxd.c
-
-Patch 7.2.368 (after 7.2.361)
-Problem: Ruby interface: Appending line doesn't work. (Michael Henry)
-Solution: Reverse check for NULL line. (James Vega)
-Files: src/if_ruby.c
-
-Patch 7.2.369
-Problem: Error message is not easy to understand.
-Solution: Add quotes. (SungHyun Nam)
-Files: src/ex_cmds2.c
-
-Patch 7.2.370 (after 7.2.356)
-Problem: A redraw may cause folds to be closed.
-Solution: Revert part of the previous patch. Add a test. (Lech Lorens)
-Files: src/diff.c, src/fold.c, src/option.c, src/testdir/test45.in,
- src/testdir/test45.ok
-
-Patch 7.2.371
-Problem: Build problems on Tandem NonStop.
-Solution: A few changes to #ifdefs (Joachim Schmitz)
-Files: src/auto/configure, src/configure.in, src/config.h.in, src/vim.h,
- src/if_cscope.c, src/osdef1.h.in, src/tag.c
-
-Patch 7.2.372 (extra)
-Problem: Cross-compiling GvimExt and xxd doesn't work.
-Solution: Change the build files. (Markus Heidelberg)
-Files: src/INSTALLpc.txt, src/GvimExt/Make_ming.mak, src/Make_cyg.mak,
- src/Make_ming.mak, src/xxd/Make_cyg.mak
-
-Patch 7.2.373
-Problem: Gcc 4.5 adds more error messages. (Chris Indy)
-Solution: Update default 'errorformat'.
-Files: src/option.h
-
-Patch 7.2.374
-Problem: Ruby eval() doesn't understand Vim types.
-Solution: Add the vim_to_ruby() function. (George Gensure)
-Files: src/eval.c, src/if_ruby.c
-
-Patch 7.2.375
-Problem: ml_get errors when using ":bprevious" in a BufEnter autocmd.
- (Dominique Pelle)
-Solution: Clear w_valid when entering another buffer.
-Files: src/buffer.c
-
-Patch 7.2.376
-Problem: ml_get error when using SiSU syntax. (Nathan Thomas)
-Solution: If the match ends below the last line move it to the end of the
- last line.
-Files: src/syntax.c
-
-Patch 7.2.377 (extra, after 7.2.372)
-Problem: Misplaced assignment. Duplicate build line for gvimext.dll.
-Solution: Move setting CROSS_COMPILE to before ifneq. Remove the wrong
- build line. (Markus Heidelberg)
-Files: src/Make_ming.mak
-
-Patch 7.2.378
-Problem: C function declaration indented too much. (Rui)
-Solution: Don't see a line containing { or } as a type. (Matt Wozniski)
-Files: src/misc1.c
-
-Patch 7.2.379
-Problem: 'eventignore' is set to an invalid value inside ":doau". (Antony
- Scriven)
-Solution: Don't include the leading comma when the option was empty.
-Files: src/fileio.c
-
-Patch 7.2.380 (after 7.2.363)
-Problem: Perl interface builds with 5.10.1 but not with 5.10.0.
-Solution: Change the #ifdefs. (Sergey Khorev)
-Files: src/if_perl.xs
-
-Patch 7.2.381
-Problem: No completion for :behave.
-Solution: Add :behave completion. Minor related fixes. (Dominique Pelle)
-Files: src/ex_docmd.c, src/ex_getln.c, src/proto/ex_docmd.pro, src/vim.h
-
-Patch 7.2.382
-Problem: Accessing freed memory when closing the cmdline window when
- 'bufhide' is set to "wipe".
-Solution: Check if the buffer still exists before invoking close_buffer()
- (Dominique Pelle)
-Files: src/ex_getln.c
-
-Patch 7.2.383
-Problem: Vim doesn't build cleanly with MSVC 2010.
-Solution: Change a few types. (George Reilly)
-Files: src/ex_cmds2.c, src/if_python.c, src/syntax.c
-
-Patch 7.2.384 (extra)
-Problem: Vim doesn't build properly with MSVC 2010.
-Solution: Add the nmake version to the build file. (George Reilly)
-Files: src/Make_mvc.mak, src/testdir/Make_dos.mak
-
-Patch 7.2.385
-Problem: When in the command line window dragging status line only works
- for last-but-one window. (Jean Johner)
-Solution: Remove the code that disallows this.
-Files: src/ui.c
-
-Patch 7.2.386
-Problem: Focus hack for KDE 3.1 causes problems for other window managers.
-Solution: Remove the hack. (forwarded by Joel Bradshaw)
-Files: src/gui_gtk.c
-
-Patch 7.2.387
-Problem: Ruby with MingW still doesn't build all versions.
-Solution: More #ifdefs for the Ruby code. (Sergey Khorev)
-Files: src/if_ruby.c
-
-Patch 7.2.388 (extra part of 7.2.387)
-Problem: Ruby with MingW still doesn't build all versions.
-Solution: Different approach to build file. (Sergey Khorev)
-Files: src/Make_ming.mak
-
-Patch 7.2.389
-Problem: synIDattr() cannot return the font.
-Solution: Support the "font" argument. (Christian Brabandt)
-Files: runtime/doc/eval.txt, src/eval.c, src/syntax.c
-
-Patch 7.2.390
-Problem: In some situations the popup menu can be displayed wrong.
-Solution: Remove the popup menu if the cursor moved. (Lech Lorens)
-Files: src/edit.c
-
-Patch 7.2.391
-Problem: Internal alloc(0) error when doing "CTRL-V $ c". (Martti Kuparinen)
-Solution: Fix computations in getvcol(). (partly by Lech Lorens)
-Files: src/charset.c, src/memline.c
-
-Patch 7.2.392
-Problem: Netbeans hangs reading from a socket at the maximum block size.
-Solution: Use select() or poll(). (Xavier de Gaye)
-Files: src/vim.h, src/os_unixx.h, src/if_xcmdsrv.c, src/netbeans.c
-
-Patch 7.2.393
-Problem: Mac: Can't build with different Xcode developer tools directory.
-Solution: make "Developer" directory name configurable. (Rainer Muller)
-Files: src/configure.in, src/auto/configure
-
-Patch 7.2.394
-Problem: .lzma and .xz files are not supported.
-Solution: Recognize .lzma and .xz files so that they can be edited.
-Files: runtime/plugin/gzip.vim
-
-Patch 7.2.395
-Problem: In help CTRL=] on g?g? escapes the ?, causing it to fail. (Tony
- Mechelynck)
-Solution: Don't escape ? for a help command. (Sergey Khorev)
-Files: src/normal.c
-
-Patch 7.2.396
-Problem: Get E38 errors. (Dasn)
-Solution: Set cursor to line 1 instead of 0. (Dominique Pelle)
-Files: src/popupmnu.c
-
-Patch 7.2.397
-Problem: Redundant check for w_lines_valid.
-Solution: Remove the if. (Lech Lorens)
-Files: src/fold.c
-
-Patch 7.2.398
-Problem: When moving windows the cursor ends up in the wrong line.
-Solution: Set the window width and height properly. (Lech Lorens)
-Files: src/window.c
-
-Patch 7.2.399 (extra, after 7.2.388)
-Problem: Cannot compile on MingW.
-Solution: Move ifneq to separate line. (Vlad Sandrini, Dominique Pelle)
-Files: src/Make_ming.mak
-
-Patch 7.2.400 (after 7.2.387)
-Problem: Dynamic Ruby is not initialised properly for version 1.9.1.
- Ruby cannot create strings from NULL.
-Solution: Cleanup #ifdefs. Handle NULL like an empty string. Add
- ruby_init_stack. (Sergey Khorev)
-Files: src/if_ruby.c
-
-Patch 7.2.401
-Problem: ":e dir<Tab>" with 'wildmode' set to "list" doesn't highlight
- directory names with a space. (Alexandre Provencio)
-Solution: Remove the backslash before checking if the name is a directory.
- (Dominique Pelle)
-Files: src/ex_getln.c
-
-Patch 7.2.402
-Problem: This gives a #705 error: let X = function('haslocaldir')
- let X = function('getcwd')
-Solution: Don't give E705 when the name is found in the hashtab. (Sergey
- Khorev)
-Files: src/eval.c
-
-Patch 7.2.403 (after 7.2.400)
-Problem: Compiler warning for pointer type. (Tony Mechelynck)
-Solution: Move type cast to the right place.
-Files: src/if_ruby.c
-
-Patch 7.2.404
-Problem: Pointers for composing characters are not properly initialized.
-Solution: Compute the size of the pointer, not what it points to. (Yukihiro
- Nakadaira)
-Files: src/screen.c
-
-Patch 7.2.405
-Problem: When built with small features the matching text is not
- highlighted for ":s/pat/repl/c".
-Solution: Remove the #ifdef for IncSearch. (James Vega)
-Files: src/syntax.c
-
-Patch 7.2.406
-Problem: Patch 7.2.119 introduces uninit mem read. (Dominique Pelle)
-Solution: Only used ScreeenLinesC when ScreeenLinesUC is not zero. (Yukihiro
- Nakadaira) Also clear ScreeenLinesC when allocating.
-Files: src/screen.c
-
-Patch 7.2.407
-Problem: When using an expression in ":s" backslashes in the result are
- dropped. (Sergey Goldgaber, Christian Brabandt)
-Solution: Double backslashes.
-Files: src/regexp.c
-
-Patch 7.2.408
-Problem: With ":g/the/s/foo/bar/" the '[ and '] marks can be set to a line
- that was not changed.
-Solution: Only set '[ and '] marks when a substitution was done.
-Files: src/ex_cmds.c
-
-Patch 7.2.409
-Problem: Summary of number of substitutes is incorrect for ":folddo". (Jean
- Johner)
-Solution: Reset sub_nsubs and sub_nlines in global_exe().
-Files: src/ex_cmds.c
-
-Patch 7.2.410
-Problem: Highlighting directories for completion doesn't work properly.
-Solution: Don't halve backslashes when not needed, expanded "~/".
- (Dominique Pelle)
-Files: src/ex_getln.c
-
-Patch 7.2.411
-Problem: When parsing 'cino' a comma isn't skipped properly.
-Solution: Skip the comma. (Lech Lorens)
-Files: src/misc1.c
-
-Patch 7.2.412
-Problem: [ or ] followed by mouse click doesn't work.
-Solution: Reverse check for key being a mouse event. (Dominique Pelle)
-Files: src/normal.c
-
-Patch 7.2.413
-Problem: Large file support is incorrect.
-Solution: Add AC_SYS_LARGEFILE to configure. (James Vega)
-Files: src/configure.in, src/config.h.in, src/auto/configure
-
-Patch 7.2.414
-Problem: CTRK-K <space> <space> does not produce 0xa0 as expected. (Tony
- Mechelynck)
-Solution: Remove the Unicode range 0xe000 - 0xefff from digraphs, these are
- not valid characters.
-Files: src/digraph.c
-
-Patch 7.2.415
-Problem: Win32: Can't open a remote file when starting Vim.
-Solution: Don't invoke cygwin_conv_path() for URLs. (Tomoya Adachi)
-Files: src/main.c
-
-Patch 7.2.416
-Problem: Logtalk.dict is not installed.
-Solution: Add it to the install target. (Markus Heidelberg)
-Files: src/Makefile
-
-Patch 7.2.417
-Problem: When 'shell' has an argument with a slash then 'shellpipe' is not
- set properly. (Britton Kerin)
-Solution: Assume there are no spaces in the path, arguments follow.
-Files: src/option.c
-
-Patch 7.2.418
-Problem: Vim tries to set the background or foreground color in a terminal
- to -1. (Graywh) Happens with ":hi Normal ctermbg=NONE".
-Solution: When resetting the foreground or background color don't set the
- color, let the clear screen code do that.
-Files: src/syntax.c
-
-Patch 7.2.419
-Problem: Memory leak in Motif when clicking on "Search Vim Help".
-Solution: Free string returned by XmTextGetString(). (Dominique Pelle)
-Files: src/gui_motif.c
-
-Patch 7.2.420
-Problem: ":argedit" does not accept "++enc=utf8" as documented. (Dominique
- Pelle)
-Solution: Add the ARGOPT flag to ":argedit".
-Files: src/ex_cmds.h
-
-Patch 7.2.421
-Problem: Folds are sometimes not updated properly and there is no way to
- force an update.
-Solution: Make "zx" and "zX" recompute folds (suggested by Christian
- Brabandt)
-Files: src/normal.c
-
-Patch 7.2.422
-Problem: May get E763 when using spell dictionaries.
-Solution: Avoid utf-8 case folded character to be truncated to 8 bits and
- differ from latin1. (Dominique Pelle)
-Files: src/spell.c
-
-Patch 7.2.423
-Problem: Crash when assigning s: to variable. (Yukihiro Nakadaira)
-Solution: Make ga_scripts contain pointer to scriptvar_T instead of
- scriptvar_T itself. (Dominique Pelle)
-Files: src/eval.c
-
-Patch 7.2.424
-Problem: ":colorscheme" without an argument doesn't do anything.
-Solution: Make it echo the current color scheme name. (partly by Christian
- Brabandt)
-Files: runtime/doc/syntax.txt, src/ex_cmds.h, src/ex_docmd.c
-
-Patch 7.2.425
-Problem: Some compilers complain about fourth EX() argument.
-Solution: Add cast to long_u.
-Files: src/ex_cmds.h
-
-Patch 7.2.426
-Problem: Commas in 'langmap' are not always handled correctly.
-Solution: Require commas to be backslash escaped. (James Vega)
-Files: src/option.c
-
-Patch 7.2.427
-Problem: The swapfile is created using the destination of a symlink, but
- recovery doesn't follow symlinks.
-Solution: When recovering, resolve symlinks. (James Vega)
-Files: src/memline.c
-
-Patch 7.2.428
-Problem: Using setqflist([]) to clear the error list doesn't work properly.
-Solution: Set qf_nonevalid to TRUE when appropriate. (Christian Brabandt)
-Files: src/quickfix.c
-
-Patch 7.2.429
-Problem: A file that exists but access is denied may result in a "new file"
- message. E.g. when its directory is unreadable.
-Solution: Specifically check for ENOENT to decide a file doesn't exist.
- (partly by James Vega)
-Files: src/fileio.c
-
-Patch 7.2.430
-Problem: The ++bad argument is handled wrong, resulting in an invalid
- memory access.
-Solution: Use the bad_char field only for the replacement character, add
- bad_char_idx to store the position. (Dominique Pelle)
-Files: src/eval.c, src/ex_cmds.h, src/ex_docmd.c
-
-Patch 7.2.431
-Problem: ":amenu" moves the cursor when in Insert mode.
-Solution: Use CTRL-\ CTRL-O instead of CTRL-O. (Christian Brabandt)
-Files: src/menu.c
-
-Patch 7.2.432
-Problem: When menus are translated they can only be found by the translated
- name. That makes ":emenu" difficult to use.
-Solution: Store the untranslated name and use it for completion and :emenu.
- (Liang Peng (Bezetek James), Edward L. Fox)
-Files: src/menu.c, src/structs.h
-
-Patch 7.2.433
-Problem: Can't use cscope with QuickFixCmdPre and QuickFixCmdPost.
-Solution: Add cscope support for these autocmd events. (Bryan Venteicher)
-Files: runtime/doc/autocmd.txt, src/if_cscope.c
-
-Patch 7.2.434 (after 7.2.432)
-Problem: Compilation fails without the multi-lang feature.
-Solution: Add #ifdefs. (John Marriott)
-Files: src/menu.c
-
-Patch 7.2.435 (after 7.2.430)
-Problem: Crash when using bad_char_idx uninitialized. (Patrick Texier)
-Solution: Don't use bad_char_idx, reproduce the ++bad argument from bad_char.
-Files: src/eval.c, src/ex_cmds.h, src/ex_docmd.c
-
-Patch 7.2.436
-Problem: Reproducible crash in syntax HL. (George Reilly, Dominique Pelle)
-Solution: Make sst_stacksize an int instead of short. (Dominique Pelle)
-Files: src/structs.h
-
-Patch 7.2.437 (after 7.2.407)
-Problem: When "\\\n" appears in the expression result the \n doesn't result
- in a line break. (Andy Wokula)
-Solution: Also replace a \n after a backslash into \r.
-Files: src/regexp.c
-
-Patch 7.2.438 (after 7.2.427)
-Problem: "vim -r" crashes.
-Solution: Don't use NULL pointer argument.
-Files: src/memline.c
-
-Patch 7.2.439
-Problem: Invalid memory access when doing thesaurus completion and
- 'infercase' is set.
-Solution: Use the minimal length of completed word and replacement.
- (Dominique Pelle)
-Files: src/edit.c
-
-Patch 7.2.440
-Problem: Calling a function through a funcref, where the function deletes
- the funcref, leads to an invalid memory access.
-Solution: Make a copy of the function name. (Lech Lorens)
-Files: src/eval.c, src/testdir/test34.in, src/testdir/test34.ok
-
-Patch 7.2.441
-Problem: When using ":earlier" undo information may be wrong.
-Solution: When changing alternate branches also adjust b_u_oldhead.
-Files: src/undo.c
-
-Patch 7.2.442 (after 7.2.201)
-Problem: Copy/paste with OpenOffice doesn't work.
-Solution: Do not offer the HTML target when it is not supported. (James
- Vega)
-Files: src/gui_gtk_x11.c, src/option.c, src/proto/gui_gtk_x11.pro
-
-Patch 7.2.443
-Problem: Using taglist() on a tag file with duplicate fields generates an
- internal error. (Peter Odding)
-Solution: Check for duplicate field names.
-Files: src/eval.c, src/proto/eval.pro, src/tag.c
-
-Patch 7.2.444 (after 7.2.442)
-Problem: Can't build with GTK 1, gtk_selection_clear_targets() is not
- available. (Patrick Texier)
-Solution: Don't change the targets for GTK 1, set them once.
-Files: src/gui_gtk_x11.c, src/option.c
-
-Patch 7.2.445
-Problem: Crash when using undo/redo and a FileChangedRO autocmd event that
- reloads the buffer. (Dominique Pelle)
-Solution: Do not allow autocommands while performing and undo or redo.
-Files: src/misc1.c, src/undo.c
-
-Patch 7.2.446
-Problem: Crash in GUI when closing the last window in a tabpage. (ryo7000)
-Solution: Remove the tabpage from the list before freeing the window.
-Files: src/window.c
-
-When writing a file, switching tab pages and selecting a word the file write
-message would be displayed again. This happened in Insert mode and with
-'cmdheight' set to 2.
-
-When using ":lang" to set a locale that uses a comma for decimal separator and
-using GTK floating point numbers stop working. Use gtk_disable_setlocale().
-(James Vega)
-
-"g8" didn't produce the right value on a NUL. (Dominique Pelle)
-
-Use BASEMODLIBS instead of MODLIBS for Python configuration to pick up the
-right compiler flags. (Michael Bienia)
-
-Window title was not updated after dropping a file on Vim. (Hari G)
-
-synstack() did not return anything when just past the end of the line. Useful
-when using the cursor position in Insert mode.
-
-When entering a digraph or special character after a line that fits the window
-the '?' or '^' on the next line is not redrawn. (Ian Kelling)
-
-Composing characters in |:s| substitute text were dropped.
-
-|exists()| was causing an autoload script to be loaded.
-
-Filter out -pthread for cproto.
-
-Make CTRL-L in command line mode respect 'ignorecase' and 'smartcase'. (Martin
-Toft)
-
-Spell menu moved the cursor, causing Copy not to work. Spell replacement
-didn't work in 'compatible' mode.
-
-Various small fixes from Dominique Pelle.
-
-Fix that :mksession may generate "2argu" even though there is no such
-argument. (Peter Odding)
-
-Fixes for time in clipboard request. Also fix ownership. (David Fries)
-
-Fixed completion of file names with '%' and '*'.
-
-Fixed MSVC makefile use of /Wp64 flag.
-
-Correct use of long instead of off_t for file size. (James Vega)
-
-Add a few #ifdefs to exclude functions that are not used. (Dominique Pelle)
-
-Remove old and unused method to allocate memory for undo.
-
-Fix definition of UINT_PTR for 64 bit systems.
-
-Some versions of Ruby redefine rb_str_new2 to rb_str_new_cstr.
-
-Window title not updated after file dropped.
-
-Fixed crash for ":find" completion, might also happen in other path expansion
-usage.
-
-When 'searchhl' causes a hang make CTRL-C disable 'searchhl'.
-
-When resetting both 'title' and 'icon' the title would be set after a shell
-command.
-
-Reset 'title' and 'icon' in test47 to avoid the xterm title getting messed up.
-
-Fix for compiler warning about function prototype in pty.c.
-
-Added 'window' to the options window.
-
-Fixed: errors for allocating zero bytes when profiling an empty function.
-
-Remove -arch flag from build flags for Perl. (Bjorn Wickler)
-
-Fix 'autochdir' not showing up in :options window. (Dominique Pelle)
-
-Fix: test 69 didn't work on MS-Windows. Test 72 beeped too often.
-
-Avoid illegal memory access in spell suggestion. (Dominique Pelle)
-Fix: crash in spell checking with a 0x300 character.
-
-Avoid that running tests changes viminfo.
-
-Fix: changing case of a character removed combining characters.
-Fixed: CTRL-R in Insert mode doesn't insert composing characters.
-
-Added the WOW64 flag to OLE registration, for 64 bit Windows systems.
-
-Various fixes for coverity warnings.
-
-Fix compile warnings, esp. for 64-bit systems. (Mike Williams)
-
-Fix: :redir to a dictionary that is changed before ":redir END" causes a
-memory access error.
-
-Fix: terminal title not properly restored when there are multi-byte
-characters. (partly by James Vega)
-
-Set 'wrapscan' when checking the .po files. (Mike Williams)
-
-Win32: Put quotes around the gvim.exe path for the "Open with" menu entry.
-
-On MS-Windows sometimes files with number 4913 or higher are left behind.
-
-'suffixesadd' was used for finding tags file.
-
-Removed unused code.
-
-Improved positioning of combining characters in GTK.
-
-Made test 11 pass when there is no gzip program. (John Beckett)
-
-Changed readfile() to ignore byte order marks, unless in binary mode.
-
-On MS-Windows completion of shell commands didn't work.
-
-An unprintable multi-byte character at the start of the screen line caused the
-following text to be drawn at the wrong position.
-
-Got ml_get errors when using undo with 'virtualedit'.
-
-Call gui_mch_update() before triggering GuiEnter autocmd. (Ron Aaron)
-
-Unix "make install" installed a few Amiga .info files.
-
-Disallow setting 'ambiwidth' to "double" when 'listchars' or 'fillchars'
-contains a character that would become double width.
-
-Set 'wrapscan' when checking the .po files. (Mike Williams)
-
-Fixed: using expression in command line may cause a crash.
-
-Avoid warnings from the clang compiler. (Dominique Pelle)
-
-Fix: Include wchar.h in charset.c for towupper().
-
-Fixed: Using ":read file" in an empty buffer when 'compatible' is set caused
-an error. Was caused by patch 7.2.132.
-
-Make the references to features in the help more consistent. (Sylvain Hitier)
-
-==============================================================================
-VERSION 7.4 *version-7.4* *version7.4*
-
-This section is about improvements made between version 7.3 and 7.4.
-
-This release has hundreds of bug fixes and there are a few new features. The
-most notable new features are:
-
-- New regexp engine |new-regexp-engine|
-- A more pythonic Python interface |better-python-interface|
-
-
-New regexp engine *new-regexp-engine*
------------------
-
-What is now called the "old" regexp engine uses a backtracking algorithm. It
-tries to match the pattern with the text in one way, and when that fails it
-goes back and tries another way. This works fine for simple patterns, but
-complex patterns can be very slow on longer text.
-
-The new engine uses a state machine. It tries all possible alternatives at
-the current character and stores the possible states of the pattern. This is
-a bit slower for simple patterns, but much faster for complex patterns and
-long text.
-
-Most notably, syntax highlighting for Javascript and XML files with long lines
-is now working fine. Previously Vim could get stuck.
-
-More information here: |two-engines|
-
-
-Better Python interface *better-python-interface*
------------------------
-
-Added |python-bindeval| function. Unlike |python-eval| this one returns
-|python-Dictionary|, |python-List| and |python-Function| objects for
-dictionaries lists and functions respectively in place of their Python
-built-in equivalents (or None if we are talking about function references).
- For simple types this function returns Python built-in types and not only
-Python `str()` like |python-eval| does. On Python 3 it will return `bytes()`
-objects in place of `str()` ones avoiding possibility of UnicodeDecodeError.
- Interface of new objects mimics standard Python `dict()` and `list()`
-interfaces to some extent. Extent will be improved in the future.
-
-Added special |python-vars| objects also available for |python-buffer| and
-|python-window|. They ease access to VimL variables from Python.
-
-Now you no longer need to alter `sys.path` to import your module: special
-hooks are responsible for importing from {rtp}/python2, {rtp}/python3 and
-{rtp}/pythonx directories (for Python 2, Python 3 and both respectively).
-See |python-special-path|.
-
-Added possibility to work with |tabpage|s through |python-tabpage| object.
-
-Added automatic conversion of Vim errors and exceptions to Python
-exceptions.
-
-Changed the behavior of the |python-buffers| object: it now uses buffer numbers
-as keys in place of the index of the buffer in the internal buffer list.
-This should not break anything as the only way to get this index was
-iterating over |python-buffers|.
-
-Added |:pydo| and |:py3do| commands.
-
-Added the |pyeval()| and |py3eval()| functions.
-
-Now in all places which previously accepted `str()` objects, `str()` and
-`unicode()` (Python 2) or `bytes()` and `str()` (Python 3) are accepted.
-
-|python-window| has gained `.col` and `.row` attributes that are currently
-the only way to get internal window positions.
-
-Added or fixed support for `dir()` in Vim Python objects.
-
-
-Changed *changed-7.4*
--------
-
-Old Python versions (≤2.2) are no longer supported. Building with them did
-not work anyway.
-
-Options:
- Added ability to automatically save the selection into the system
- clipboard when using non-GUI version of Vim (autoselectplus in
- 'clipboard'). Also added ability to use the system clipboard as
- default register (previously only primary selection could be used).
- (Ivan Krasilnikov, Christian Brabandt, Bram Moolenaar)
-
- Added a special 'shiftwidth' value that makes 'sw' follow 'tabstop'.
- As indenting via 'indentexpr' became tricky |shiftwidth()| function
- was added. Also added equivalent special value to 'softtabstop'
- option. (Christian Brabandt, so8res)
-
- Show absolute number in number column when 'relativenumber' option is
- on. Now there are four combinations with 'number' and
- 'relativenumber'. (Christian Brabandt)
-
-Commands:
- |:diffoff| now saves the local values of some settings and restores
- them in place of blindly resetting them to the defaults. (Christian
- Brabandt)
-
-Other:
- Lua interface now also uses userdata binded to Vim structures. (Taro
- Muraoka, Luis Carvalho)
-
- glob() and autocommand patterns used to work with the undocumented
- "\{n,m\}" item from a regexp. "\{" is now used for a literal "{", as
- this is normal in shell file patterns. Now used "\\\{n,m\}" to get
- "\{n,m}" in the regexp pattern.
-
-Added *added-7.4*
------
-
-Various syntax, indent and other plugins were added.
-
-Added support for |Lists| and |Dictionaries| in |viminfo|. (Christian
-Brabandt)
-
-Functions:
- Bitwise functions: |and()|, |or()|, |invert()|, |xor()|.
-
- Added |luaeval()| function. (Taro Muraoka, Luis Carvalho)
-
- Added |sha256()| function. (Tyru, Hirohito Higashi)
-
- Added |wildmenumode()| function. (Christian Brabandt)
-
- Debugging functions: |screenattr()|, |screenchar()|, |screencol()|,
- |screenrow()|. (Simon Ruderich, Bram Moolenaar)
-
- Added ability to use |Dictionary-function|s for |sort()|ing, via
- optional third argument. (Nikolay Pavlov)
-
- Added special |expand()| argument that expands to the current line
- number.
-
- Made it possible to force |char2nr()| to always give unicode codepoints
- regardless of current encoding. (Yasuhiro Matsumoto)
-
- Made it possible for functions generating file list generate |List|
- and not NL-separated string. (e.g. |glob()|, |expand()|) (Christian
- Brabandt)
-
- Functions that obtain variables from the specific window, tabpage or
- buffer scope dictionary can now return specified default value in
- place of empty string in case variable is not found. (|gettabvar()|,
- |getwinvar()|, |getbufvar()|) (Shougo Matsushita, Hirohito Higashi)
-
-Autocommands:
- Added |InsertCharPre| event launched before inserting character.
- (Jakson A. Aquino)
-
- Added |CompleteDone| event launched after finishing completion in
- insert mode. (idea by Florian Klein)
-
- Added |QuitPre| event launched when commands that can either close Vim
- or only some window(s) are launched.
-
- Added |TextChanged| and |TextChangedI| events launched when text is
- changed.
-
-Commands:
- |:syntime| command useful for debugging.
-
- Made it possible to remove all signs from the current buffer using
- |:sign-unplace|. (Christian Brabandt)
-
- Added |:language| autocompletion. (Dominique Pelle)
-
- Added more |:command-complete| completion types: |:behave| suboptions,
- color schemes, compilers, |:cscope| suboptions, files from 'path',
- |:history| suboptions, locale names, |:syntime| suboptions, user
- names. (Dominique Pelle)
-
- Added |:map-nowait| creating mapping which when having lhs that is the
- prefix of another mapping’s lhs will not allow Vim to wait for user to
- type more characters to resolve ambiguity, forcing Vim to take the
- shorter alternative: one with <nowait>.
-
-Options:
- Made it possible to ignore case when completing: 'wildignorecase'.
-
- Added ability to delete comment leader when using |J| by `j` flag in
- 'formatoptions' (|fo-table|). (Lech Lorens)
-
- Added ability to control indentation inside namespaces: |cino-N|.
- (Konstantin Lepa)
-
- Added ability to control alignment inside `if` condition separately
- from alignment inside function arguments: |cino-k|. (Lech Lorens)
-
-Other:
- Improved support for cmd.exe. (Ben Fritz, Bram Moolenaar)
-
- Added |v:windowid| variable containing current window number in GUI
- Vim. (Christian J. Robinson, Lech Lorens)
-
- Added rxvt-unicode and SGR mouse support. (Yiding Jia, Hayaki Saito)
-
-
-All changes in 7.4 *fixed-7.4*
-------------------
-
-Patch 7.3.001
-Problem: When editing "src/main.c" and 'path' set to "./proto",
- ":find e<C-D" shows ./proto/eval.pro instead of eval.pro.
-Solution: Check for path separator when comparing names. (Nazri Ramliy)
-Files: src/misc1.c
-
-Patch 7.3.002
-Problem: ":find" completion doesn't work when halfway an environment
- variable. (Dominique Pelle)
-Solution: Only use in-path completion when expanding file names. (Nazri
- Ramliy)
-Files: src/ex_docmd.c
-
-Patch 7.3.003
-Problem: Crash with specific BufWritePost autocmd. (Peter Odding)
-Solution: Don't free the quickfix title twice. (Lech Lorens)
-Files: src/quickfix.c
-
-Patch 7.3.004
-Problem: Crash when using very long regexp. (Peter Odding)
-Solution: Reset reg_toolong. (Carlo Teubner)
-Files: src/regexp.c
-
-Patch 7.3.005
-Problem: Crash when using undotree(). (Christian Brabandt)
-Solution: Increase the list reference count. Add a test for undotree()
- (Lech Lorens)
-Files: src/eval.c, src/testdir/Makefile, src/testdir/test61.in
-
-Patch 7.3.006
-Problem: Can't build some multi-byte code with C89.
-Solution: Move code to after declarations. (Joachim Schmitz)
-Files: src/mbyte.c, src/spell.c
-
-Patch 7.3.007
-Problem: Python code defines global "buffer". Re-implements a grow-array.
-Solution: Use a grow-array instead of coding the same functionality. Handle
- out-of-memory situation properly.
-Files: src/if_py_both.h
-
-Patch 7.3.008
-Problem: 'cursorbind' is kept in places where 'scrollbind' is reset.
-Solution: Reset 'cursorbind'.
-Files: src/buffer.c, src/diff.c, src/ex_cmds.c, src/ex_cmds2.c,
- src/ex_docmd.c, src/ex_getln.c, src/if_cscope.c, src/macros.h,
- src/quickfix.c, src/search.c, src/tag.c, src/window.c
-
-Patch 7.3.009
-Problem: Win32: Crash on Windows when using a bad argument for strftime().
- (Christian Brabandt)
-Solution: Use the bad_param_handler(). (Mike Williams)
-Files: src/os_win32.c
-
-Patch 7.3.010
-Problem: Mac GUI: Missing break statements.
-Solution: Add the break statements. (Dominique Pelle)
-Files: src/gui_mac.c
-
-Patch 7.3.011
-Problem: X11 clipboard doesn't work in Athena/Motif GUI. First selection
- after a shell command doesn't work.
-Solution: When using the GUI use XtLastTimestampProcessed() instead of
- changing a property. (partly by Toni Ronkko)
- When executing a shell command disown the selection.
-Files: src/ui.c, src/os_unix.c
-
-Patch 7.3.012
-Problem: Problems building with MingW.
-Solution: Adjust the MingW makefiles. (Jon Maken)
-Files: src/Make_ming.mak, src/GvimExt/Make_ming.mak
-
-Patch 7.3.013
-Problem: Dynamic loading with Ruby doesn't work for 1.9.2.
-Solution: Handle rb_str2cstr differently. Also support dynamic loading on
- Unix. (Jon Maken)
-Files: src/if_ruby.c
-
-Patch 7.3.014
-Problem: Ending a line in a backslash inside an ":append" or ":insert"
- command in Ex mode doesn't work properly. (Ray Frush)
-Solution: Halve the number of backslashes, only insert a NUL after an odd
- number of backslashes.
-Files: src/ex_getln.c
-
-Patch 7.3.015
-Problem: Test is using error message that no longer exists.
-Solution: Change E106 to E121. (Dominique Pelle)
-Files: src/testdir/test49.vim
-
-Patch 7.3.016
-Problem: Netbeans doesn't work under Athena.
-Solution: Support Athena, just like Motif. (Xavier de Gaye)
-Files: runtime/doc/netbeans.txt, src/gui.c, src/main.c, src/netbeans.c
-
-Patch 7.3.017
-Problem: smatch reports errors.
-Solution: Fix the reported errors. (Dominique Pelle)
-Files: src/spell.c, src/syntax.c
-
-Patch 7.3.018 (after 7.3.012)
-Problem: Missing argument to windres in MingW makefiles.
-Solution: Add the argument that was wrapped in the patch. (Jon Maken)
-Files: src/Make_ming.mak, src/GvimExt/Make_ming.mak
-
-Patch 7.3.019
-Problem: ":nbstart" can fail silently.
-Solution: Give an error when netbeans is not supported by the GUI. (Xavier
- de Gaye)
-Files: src/netbeans.c
-
-Patch 7.3.020
-Problem: Cursor position wrong when joining multiple lines and
- 'formatoptions' contains "a". (Moshe Kamensky)
-Solution: Adjust cursor position for skipped indent. (Carlo Teubner)
-Files: src/ops.c, src/testdir/test68.in, src/testdir/test68.ok
-
-Patch 7.3.021
-Problem: Conflict for defining Boolean in Mac header files.
-Solution: Define NO_X11_INCLUDES. (Rainer Muller)
-Files: src/os_macosx.m, src/vim.h
-
-Patch 7.3.022
-Problem: When opening a new window the 'spellcapcheck' option is cleared.
-Solution: Copy the correct option value. (Christian Brabandt)
-Files: src/option.c
-
-Patch 7.3.023
-Problem: External program may hang when it tries to write to the tty.
-Solution: Don't close the slave tty until after the child exits. (Nikola
- Knezevic)
-Files: src/os_unix.c
-
-Patch 7.3.024
-Problem: Named signs do not use a negative number as intended.
-Solution: Fix the numbering of named signs. (Xavier de Gaye)
-Files: src/ex_cmds.c
-
-Patch 7.3.025
-Problem: ":mksession" does not square brackets escape file name properly.
-Solution: Improve escaping of file names. (partly by Peter Odding)
-Files: src/ex_docmd.c
-
-Patch 7.3.026
-Problem: CTRL-] in a help file doesn't always work. (Tony Mechelynck)
-Solution: Don't escape special characters. (Carlo Teubner)
-Files: src/normal.c
-
-Patch 7.3.027
-Problem: Opening a file on a network share is very slow.
-Solution: When fixing file name case append "\*" to directory, server and
- network share names. (David Anderson, John Beckett)
-Files: src/os_win32.c
-
-Patch 7.3.028 (after 7.3.024)
-Problem: Signs don't show up. (Charles Campbell)
-Solution: Don't use negative numbers. Also assign a number to signs that
- have a name of all digits to avoid using a sign number twice.
-Files: src/ex_cmds.c
-
-Patch 7.3.029
-Problem: ":sort n" sorts lines without a number as number zero. (Beeyawned)
-Solution: Make lines without a number sort before lines with a number. Also
- fix sorting negative numbers.
-Files: src/ex_cmds.c, src/testdir/test57.in, src/testdir/test57.ok
-
-Patch 7.3.030
-Problem: Cannot store Dict and List in viminfo file.
-Solution: Add support for this. (Christian Brabandt)
-Files: runtime/doc/options.txt, src/eval.c, src/testdir/Make_amiga.mak,
- src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
- src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
- src/testdir/Makefile, src/testdir/main.aap, src/testdir/test74.in,
- src/testdir/test74.ok
-
-Patch 7.3.031
-Problem: Can't pass the X window ID to another application.
-Solution: Add v:windowid. (Christian J. Robinson, Lech Lorens)
-Files: runtime/doc/eval.txt, src/eval.c, src/gui.c, src/vim.h,
- src/os_unix.c
-
-Patch 7.3.032
-Problem: maparg() doesn't return the flags, such as <buffer>, <script>,
- <silent>. These are needed to save and restore a mapping.
-Solution: Improve maparg(). (also by Christian Brabandt)
-Files: runtime/doc/eval.txt, src/eval.c, src/getchar.c, src/gui_w48.c,
- src/message.c, src/proto/getchar.pro, src/proto/message.pro,
- src/structs.h src/testdir/test75.in, src/testdir/test75.ok
-
-Patch 7.3.033 (after 7.3.032)
-Problem: Can't build without FEAT_LOCALMAP.
-Solution: Add an #ifdef. (John Marriott)
-Files: src/getchar.c
-
-Patch 7.3.034
-Problem: Win32: may be loading .dll from the wrong directory.
-Solution: Go to the Vim executable directory when opening a library.
-Files: src/gui_w32.c, src/if_lua.c, src/if_mzsch.c, src/if_perl.xs,
- src/if_python.c, src/if_python3.c, src/if_ruby.c, src/mbyte.c,
- src/os_mswin.c, src/os_win32.c, src/proto/os_win32.pro
-
-Patch 7.3.035 (after 7.3.034)
-Problem: Stray semicolon after if statement. (Hari G)
-Solution: Remove the semicolon.
-Files: src/os_win32.c
-
-Patch 7.3.036
-Problem: Win32 GUI: When building without menus, the font for dialogs and
- tab page headers also changes.
-Solution: Define USE_SYSMENU_FONT always. (Harig G.)
-Files: src/gui_w32.c
-
-Patch 7.3.037
-Problem: Compiler warnings for loss of data. (Mike Williams)
-Solution: Add type casts.
-Files: src/if_py_both.h, src/getchar.c, src/os_win32.c
-
-Patch 7.3.038
-Problem: v:windowid isn't set on MS-Windows.
-Solution: Set it to the window handle. (Chris Sutcliffe)
-Files: runtime/doc/eval.txt, src/gui_w32.c
-
-Patch 7.3.039
-Problem: Crash when using skk.vim plugin.
-Solution: Get length of expression evaluation result only after checking for
- NULL. (Noriaki Yagi, Dominique Pelle)
-Files: src/ex_getln.c
-
-Patch 7.3.040
-Problem: Comparing strings while ignoring case goes beyond end of the
- string when there are illegal bytes. (Dominique Pelle)
-Solution: Explicitly check for illegal bytes.
-Files: src/mbyte.c
-
-Patch 7.3.041
-Problem: Compiler warning for accessing mediumVersion. (Tony Mechelynck)
-Solution: Use the pointer instead of the array itself. (Dominique Pelle)
-Files: src/version.c
-
-Patch 7.3.042
-Problem: No spell highlighting when re-using an empty buffer.
-Solution: Clear the spell checking info only when clearing the options for a
- buffer. (James Vega)
-Files: src/buffer.c
-
-Patch 7.3.043
-Problem: Can't load Ruby dynamically on Unix.
-Solution: Adjust the configure script. (James Vega)
-Files: src/Makefile, src/config.h.in, src/configure.in,
- src/auto/configure, src/if_ruby.c
-
-Patch 7.3.044
-Problem: The preview window opened by the popup menu is larger than
- specified with 'previewheight'. (Benjamin Haskell)
-Solution: Use 'previewheight' if it's set and smaller.
-Files: src/popupmnu.c
-
-Patch 7.3.045
-Problem: Compiler warning for uninitialized variable.
-Solution: Initialize the variable always.
-Files: src/getchar.c
-
-Patch 7.3.046 (after 7.3.043)
-Problem: Can't build Ruby on MS-Windows.
-Solution: Add #ifdef, don't use WIN3264 before including vim.h.
-Files: src/if_ruby.c
-
-Patch 7.3.047 (after 7.3.032)
-Problem: Missing makefile updates for test 75.
-Solution: Update the makefiles.
-Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
- src/testdir/Makefile, src/testdir/Make_ming.mak,
- src/testdir/Make_os2.mak, src/testdir/Make_vms.mms
-
-Patch 7.3.048
-Problem: ":earlier 1f" doesn't work after loading undo file.
-Solution: Set b_u_save_nr_cur when loading an undo file. (Christian
- Brabandt)
- Fix only showing time in ":undolist"
-Files: src/undo.c
-
-Patch 7.3.049
-Problem: PLT has rebranded their Scheme to Racket.
-Solution: Add support for Racket 5.x. (Sergey Khorev)
-Files: src/Make_cyg.mak, src/Make_ming.mak, src/Make_mvc.mak,
- src/auto/configure, src/configure.in, src/if_mzsch.c
-
-Patch 7.3.050
-Problem: The link script is clumsy.
-Solution: Use the --as-needed linker option if available. (Kirill A.
- Shutemov)
-Files: src/Makefile, src/auto/configure, src/config.mk.in,
- src/configure.in, src/link.sh
-
-Patch 7.3.051
-Problem: Crash when $PATH is empty.
-Solution: Check for vim_getenv() returning NULL. (Yasuhiro Matsumoto)
-Files: src/ex_getln.c, src/os_win32.c
-
-Patch 7.3.052
-Problem: When 'completefunc' opens a new window all kinds of errors follow.
- (Xavier Deguillard)
-Solution: When 'completefunc' goes to another window or buffer and when it
- deletes text abort completion. Add a test for 'completefunc'.
-Files: src/edit.c, src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
- src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
- src/testdir/Make_vms.mms, src/testdir/Makefile,
- src/testdir/test76.in, src/testdir/test76.ok
-
-Patch 7.3.053
-Problem: complete() function doesn't reset complete direction. Can't use
- an empty string in the list of matches.
-Solution: Set compl_direction to FORWARD. Add "empty" key to allow empty
- words. (Kikuchan)
-Files: src/edit.c
-
-Patch 7.3.054
-Problem: Can define a user command for :Print, but it doesn't work. (Aaron
- Thoma)
-Solution: Let user command :Print overrule the builtin command (Christian
- Brabandt) Disallow :X and :Next as a user defined command.
-Files: src/ex_docmd.c
-
-Patch 7.3.055
-Problem: Recursively nested lists and dictionaries cause a near-endless
- loop when comparing them with a copy. (ZyX)
-Solution: Limit recursiveness in a way that non-recursive structures can
- still be nested very deep.
-Files: src/eval.c, src/testdir/test55.in, src/testdir/test55.ok
-
-Patch 7.3.056
-Problem: "getline" argument in do_cmdline() shadows global.
-Solution: Rename the argument.
-Files: src/ex_docmd.c
-
-Patch 7.3.057
-Problem: Segfault with command line abbreviation. (Randy Morris)
-Solution: Don't retrigger the abbreviation when abandoning the command line.
- Continue editing the command line after the error.
-Files: src/ex_getln.c
-
-Patch 7.3.058
-Problem: Error "code converter not found" when loading Ruby script.
-Solution: Load Gem module. (Yasuhiro Matsumoto)
-Files: src/if_ruby.c
-
-Patch 7.3.059
-Problem: Netbeans: Problem with recursively handling messages for Athena
- and Motif.
-Solution: Call netbeans_parse_messages() in the main loop, like it's done
- for GTK. (Xavier de Gaye)
-Files: src/gui_x11.c, src/netbeans.c
-
-Patch 7.3.060
-Problem: Netbeans: crash when socket is disconnected unexpectedly.
-Solution: Don't cleanup when a read fails, put a message in the queue and
- disconnect later. (Xavier de Gaye)
-Files: src/netbeans.c
-
-Patch 7.3.061
-Problem: Remote ":drop" does not respect 'autochdir'. (Peter Odding)
-Solution: Don't restore the directory when 'autochdir' is set. (Benjamin
- Fritz)
-Files: src/main.c
-
-Patch 7.3.062
-Problem: Python doesn't work properly when installed in another directory
- than expected.
-Solution: Figure out home directory in configure and use Py_SetPythonHome()
- at runtime. (Roland Puntaier)
-Files: src/configure.in, src/auto/configure, src/if_python.c,
- src/if_python3.c
-
-Patch 7.3.063
-Problem: Win32: Running a filter command makes Vim lose focus.
-Solution: Use SW_SHOWMINNOACTIVE instead of SW_SHOWMINIMIZED. (Hong Xu)
-Files: src/os_win32.c
-
-Patch 7.3.064
-Problem: Win32: ":dis +" shows nothing, but "+p does insert text.
-Solution: Display the * register, since that's what will be inserted.
- (Christian Brabandt)
-Files: src/globals.h, src/ops.c
-
-Patch 7.3.065
-Problem: Can't get current line number in a source file.
-Solution: Add the <slnum> item, similar to <sfile>.
-Files: src/ex_docmd.c
-
-Patch 7.3.066
-Problem: Crash when changing to another window while in a :vimgrep command.
- (Christian Brabandt)
-Solution: When wiping out the dummy before, remove it from aucmd_win.
-Files: src/quickfix.c
-
-Patch 7.3.067 (after 7.3.058)
-Problem: Ruby: Init_prelude is not always available.
-Solution: Remove use of Init_prelude. (Yasuhiro Matsumoto)
-Files: src/if_ruby.c
-
-Patch 7.3.068
-Problem: Using freed memory when doing ":saveas" and an autocommand sets
- 'autochdir'. (Kevin Klement)
-Solution: Get the value of fname again after executing autocommands.
-Files: src/ex_cmds.c
-
-Patch 7.3.069
-Problem: GTK: pressing Enter in inputdialog() doesn't work like clicking OK
- as documented.
-Solution: call gtk_entry_set_activates_default(). (Britton Kerin)
-Files: src/gui_gtk.c
-
-Patch 7.3.070
-Problem: Can set environment variables in the sandbox, could be abused.
-Solution: Disallow it.
-Files: src/eval.c
-
-Patch 7.3.071
-Problem: Editing a file in a window that's in diff mode resets 'diff'
- but not cursor binding.
-Solution: Reset cursor binding in two more places.
-Files: src/quickfix.c, src/option.c
-
-Patch 7.3.072
-Problem: Can't complete file names while ignoring case.
-Solution: Add 'wildignorecase'.
-Files: src/ex_docmd.c, src/ex_getln.c, src/misc1.c, src/option.c,
- src/option.h, src/vim.h, src/runtime/options.txt
-
-Patch 7.3.073
-Problem: Double free memory when netbeans command follows DETACH.
-Solution: Only free the node when owned. (Xavier de Gaye)
-Files: src/netbeans.c
-
-Patch 7.3.074
-Problem: Can't use the "+ register like "* for yank and put.
-Solution: Add "unnamedplus" to the 'clipboard' option. (Ivan Krasilnikov)
-Files: runtime/doc/options.txt, src/eval.c, src/globals.h, src/ops.c,
- src/option.c
-
-Patch 7.3.075 (after 7.3.072)
-Problem: Missing part of 'wildignorecase'
-Solution: Also adjust expand()
-Files: src/eval.c
-
-Patch 7.3.076
-Problem: Clang warnings for dead code.
-Solution: Remove it. (Carlo Teubner)
-Files: src/gui_gtk.c, src/if_ruby.c, src/misc2.c, src/netbeans.c,
- src/spell.c
-
-Patch 7.3.077
-Problem: When updating crypt of swapfile fails there is no error message.
- (Carlo Teubner)
-Solution: Add the error message.
-Files: src/memline.c
-
-Patch 7.3.078
-Problem: Warning for unused variable.
-Solution: Adjust #ifdefs.
-Files: src/ops.c
-
-Patch 7.3.079
-Problem: Duplicate lines in makefile.
-Solution: Remove the lines. (Hong Xu)
-Files: src/Make_mvc.mak
-
-Patch 7.3.080
-Problem: Spell doesn't work on VMS.
-Solution: Use different file names. (Zoltan Bartos, Zoltan Arpadffy)
-Files: src/spell.c
-
-Patch 7.3.081
-Problem: Non-printable characters in 'statusline' cause trouble. (ZyX)
-Solution: Use transstr(). (partly by Caio Ariede)
-Files: src/screen.c
-
-Patch 7.3.082
-Problem: Leaking file descriptor when hostname doesn't exist.
-Solution: Remove old debugging lines.
-Files: src/netbeans.c
-
-Patch 7.3.083
-Problem: When a read() or write() is interrupted by a signal it fails.
-Solution: Add read_eintr() and write_eintr().
-Files: src/fileio.c, src/proto/fileio.pro, src/memfile.c, src/memline.c,
- src/os_unix.c, src/undo.c, src/vim.h
-
-Patch 7.3.084
-Problem: When splitting the window, the new one scrolls with the cursor at
- the top.
-Solution: Compute w_fraction before setting the new height.
-Files: src/window.c
-
-Patch 7.3.085 (after 7.3.083)
-Problem: Inconsistency with preproc symbols. void * computation.
-Solution: Include vimio.h from vim.h. Add type cast.
-Files: src/eval.c, src/ex_cmds.c, src/ex_cmds2.c, src/fileio.c,
- src/if_cscope.c, src/if_sniff.c, src/main.c, src/memfile.c,
- src/memline.c, src/netbeans.c, src/os_msdos.c, src/os_mswin.c,
- src/os_win16.c, src/os_win32.c, src/spell.c, src/tag.c,
- src/undo.c, src/vim.h
-
-Patch 7.3.086
-Problem: When using a mapping with an expression and there was no count,
- v:count has the value of the previous command. (ZyX)
-Solution: Also set v:count and v:count1 before getting the character that
- could be a command or a count.
-Files: src/normal.c
-
-Patch 7.3.087
-Problem: EINTR is not always defined.
-Solution: Include errno.h in vim.h.
-Files: src/if_cscope.c, src/if_tcl.c, src/integration.c, src/memline.c,
- src/os_mswin.c, src/os_win16.c, src/os_win32.c, src/vim.h,
- src/workshop.c
-
-Patch 7.3.088
-Problem: Ruby can't load Gems sometimes, may cause a crash.
-Solution: Undefine off_t. Use ruby_process_options(). (Yasuhiro Matsumoto)
-Files: src/if_ruby.c
-
-Patch 7.3.089
-Problem: Compiler warning on 64 bit MS-Windows.
-Solution: Add type cast. (Mike Williams)
-Files: src/netbeans.c
-
-Patch 7.3.090
-Problem: Wrong help text for Cscope.
-Solution: Adjust the help text for "t". (Dominique Pelle)
-Files: src/if_cscope.c
-
-Patch 7.3.091
-Problem: "vim -w foo" writes special key codes for removed escape
- sequences. (Josh Triplett)
-Solution: Don't write K_IGNORE codes.
-Files: src/getchar.c, src/misc1.c, src/term.c, src/vim.h
-
-Patch 7.3.092
-Problem: Resizing the window when exiting.
-Solution: Don't resize when exiting.
-Files: src/term.c
-
-Patch 7.3.093
-Problem: New DLL dependencies in MingW with gcc 4.5.0.
-Solution: Add STATIC_STDCPLUS, LDFLAGS and split up WINDRES. (Guopeng Wen)
-Files: src/GvimExt/Make_ming.mak, src/Make_ming.mak
-
-Patch 7.3.094
-Problem: Using abs() requires type cast to int.
-Solution: Use labs() so that the value remains long. (Hong Xu)
-Files: src/screen.c
-
-Patch 7.3.095
-Problem: Win32: In Chinese tear-off menu doesn't work. (Weasley)
-Solution: Use menu_name_equal(). (Alex Jakushev)
-Files: src/menu.c
-
-Patch 7.3.096
-Problem: "gvim -nb" is not interruptible. Leaking file descriptor on
- netbeans connection error.
-Solution: Check for CTRL-C typed. Free file descriptor. (Xavier de Gaye)
-Files: src/netbeans.c
-
-Patch 7.3.097
-Problem: Using ":call" inside "if 0" does not see that a function returns a
- Dict and gives error for "." as string concatenation.
-Solution: Use eval0() to skip over the expression. (Yasuhiro Matsumoto)
-Files: src/eval.c
-
-Patch 7.3.098
-Problem: Function that ignores error still causes called_emsg to be set.
- E.g. when expand() fails the status line is disabled.
-Solution: Move check for emsg_not_now() up. (James Vega)
-Files: src/message.c
-
-Patch 7.3.099
-Problem: Crash when splitting a window with zero height. (Yukihiro
- Nakadaira)
-Solution: Don't set the fraction in a window with zero height.
-Files: src/window.c
-
-Patch 7.3.100
-Problem: When using :normal v:count isn't set.
-Solution: Call normal_cmd() with toplevel set to TRUE.
-Files: src/ex_docmd.c
-
-Patch 7.3.101
-Problem: ino_t defined with wrong size.
-Solution: Move including auto/config.h before other includes. (Marius
- Geminas)
-Files: src/if_ruby.c, src/if_lua.c
-
-Patch 7.3.102
-Problem: When using ":make", typing the next command and then getting the
- "reload" prompt the next command is (partly) eaten by the reload
- prompt.
-Solution: Accept ':' as a special character at the reload prompt to accept
- the default choice and execute the command.
-Files: src/eval.c, src/fileio.c, src/gui.c, src/gui_xmdlg.c,
- src/memline.c, src/message.c, src/proto/message.pro,
- src/gui_athena.c, src/gui_gtk.c, src/gui_mac.c, src/gui_motif.c,
- src/gui_photon.c, src/gui_w16.c, src/gui_w32.c, src/os_mswin.c
- src/proto/gui_athena.pro, src/proto/gui_gtk.pro,
- src/proto/gui_mac.pro, src/proto/gui_motif.pro,
- src/proto/gui_photon.pro, src/proto/gui_w16.pro,
- src/proto/gui_w32.pro
-
-Patch 7.3.103
-Problem: Changing 'fileformat' and then using ":w" in an empty file sets
- the 'modified' option.
-Solution: In unchanged() don't ignore 'ff' for an empty file.
-Files: src/misc1.c, src/option.c, src/proto/option.pro, src/undo.c
-
-Patch 7.3.104
-Problem: Conceal: using Tab for cchar causes problems. (ZyX)
-Solution: Do not accept a control character for cchar.
-Files: src/syntax.c
-
-Patch 7.3.105
-Problem: Can't get the value of "b:changedtick" with getbufvar().
-Solution: Make it work. (Christian Brabandt)
-Files: src/eval.c
-
-Patch 7.3.106
-Problem: When 'cursorbind' is set another window may scroll unexpectedly
- when 'scrollbind' is also set. (Xavier Wang)
-Solution: Don't call update_topline() if 'scrollbind' is set.
-Files: src/move.c
-
-Patch 7.3.107
-Problem: Year number for :undolist can be confused with month or day.
-Solution: Change "%y" to "%Y".
-Files: src/undo.c
-
-Patch 7.3.108
-Problem: Useless check for NULL when calling vim_free().
-Solution: Remove the check. (Dominique Pelle)
-Files: src/eval.c, src/ex_cmds.c, src/os_win32.c
-
-Patch 7.3.109
-Problem: Processing new Esperanto spell file fails and crashes Vim.
- (Dominique Pelle)
-Solution: When running out of memory give an error. Handle '?' in
- COMPOUNDRULE properly.
-Files: src/spell.c
-
-Patch 7.3.110
-Problem: The "nbsp" item in 'listchars' isn't used for ":list".
-Solution: Make it work. (Christian Brabandt)
-Files: src/message.c
-
-Patch 7.3.111 (after 7.3.100)
-Problem: Executing a :normal command in 'statusline' evaluation causes the
- cursor to move. (Dominique Pelle)
-Solution: When updating the cursor for 'cursorbind' allow the cursor beyond
- the end of the line. When evaluating 'statusline' temporarily
- reset 'cursorbind'.
-Files: src/move.c, src/screen.c
-
-Patch 7.3.112
-Problem: Setting 'statusline' to "%!'asdf%' reads uninitialized memory.
-Solution: Check for NUL after %.
-Files: src/buffer.c
-
-Patch 7.3.113
-Problem: Windows: Fall back directory for creating temp file is wrong.
-Solution: Use "." instead of empty string. (Hong Xu)
-Files: src/fileio.c
-
-Patch 7.3.114
-Problem: Potential problem in initialization when giving an error message
- early.
-Solution: Initialize 'verbosefile' empty. (Ben Schmidt)
-Files: src/option.h
-
-Patch 7.3.115
-Problem: Vim can crash when tmpnam() returns NULL.
-Solution: Check for NULL. (Hong Xu)
-Files: src/fileio.c
-
-Patch 7.3.116
-Problem: 'cursorline' is displayed too short when there are concealed
- characters and 'list' is set. (Dennis Preiser)
-Solution: Check for 'cursorline' when 'list' is set. (Christian Brabandt)
-Files: src/screen.c
-
-Patch 7.3.117
-Problem: On some systems --as-needed does not work, because the "tinfo"
- library is included indirectly from "ncurses". (Charles Campbell)
-Solution: In configure prefer using "tinfo" instead of "ncurses".
-Files: src/configure.in, src/auto/configure
-
-Patch 7.3.118
-Problem: Ruby uses SIGVTALARM which makes Vim exit. (Alec Tica)
-Solution: Ignore SIGVTALARM. (Dominique Pelle)
-Files: src/os_unix.c
-
-Patch 7.3.119
-Problem: Build problem on Mac. (Nicholas Stallard)
-Solution: Use "extern" instead of "EXTERN" for p_vfile.
-Files: src/option.h
-
-Patch 7.3.120
-Problem: The message for an existing swap file is too long to fit in a 25
- line terminal.
-Solution: Make the message shorter. (Chad Miller)
-Files: src/memline.c
-
-Patch 7.3.121
-Problem: Complicated 'statusline' causes a crash. (Christian Brabandt)
-Solution: Check that the number of items is not too big.
-Files: src/buffer.c
-
-Patch 7.3.122
-Problem: Having auto/config.mk in the repository causes problems.
-Solution: Remove auto/config.mk from the distribution. In the toplevel
- Makefile copy it from the "dist" file.
-Files: Makefile, src/Makefile, src/auto/config.mk
-
-Patch 7.3.123
-Problem: ml_get error when executing register being recorded into, deleting
- lines and 'conceallevel' is set. (ZyX)
-Solution: Don't redraw a line for concealing when it doesn't exist.
-Files: src/main.c
-
-Patch 7.3.124
-Problem: When writing a file in binary mode it may be missing the final EOL
- if a file previously read was missing the EOL. (Kevin Goodsell)
-Solution: Move the write_no_eol_lnum into the buffer struct.
-Files: src/structs.h, src/fileio.c, src/globals.h, src/os_unix.c
-
-Patch 7.3.125
-Problem: MSVC: Problem with quotes in link argument.
-Solution: Escape backslashes and quotes. (Weasley)
-Files: src/Make_mvc.mak
-
-Patch 7.3.126
-Problem: Compiler warning for signed pointer.
-Solution: Use unsigned int argument for sscanf().
-Files: src/blowfish.c
-
-Patch 7.3.127
-Problem: Compiler complains about comma.
-Solution: Remove comma after last enum element.
-Files: src/ex_cmds2.c
-
-Patch 7.3.128
-Problem: Another compiler warning for signed pointer.
-Solution: Use unsigned int argument for sscanf().
-Files: src/mark.c
-
-Patch 7.3.129
-Problem: Using integer like a boolean.
-Solution: Nicer check for integer being non-zero.
-Files: src/tag.c
-
-Patch 7.3.130
-Problem: Variable misplaced in #ifdef.
-Solution: Move clipboard_event_time outside of #ifdef.
-Files: src/gui_gtk_x11.c
-
-Patch 7.3.131
-Problem: Including errno.h too often.
-Solution: Don't include errno.h in Unix header file.
-Files: src/os_unix.h
-
-Patch 7.3.132
-Problem: C++ style comments.
-Solution: Change to C comments.
-Files: src/if_python3.c
-
-Patch 7.3.133
-Problem: When using encryption it's not clear what method was used.
-Solution: In the file message show "blowfish" when using blowfish.
-Files: src/fileio.c
-
-Patch 7.3.134
-Problem: Drag-n-drop doesn't work in KDE Dolphin.
-Solution: Add GDK_ACTION_MOVE flag. (Florian Degner)
-Files: src/gui_gtk_x11.c
-
-Patch 7.3.135
-Problem: When there is no previous substitute pattern, the previous search
- pattern is used. The other way around doesn't work.
-Solution: When there is no previous search pattern, use the previous
- substitute pattern if possible. (Christian Brabandt)
-Files: src/search.c
-
-Patch 7.3.136
-Problem: Duplicate include of assert.h.
-Solution: Remove it.
-Files: src/if_cscope.c
-
-Patch 7.3.137 (after 7.3.091)
-Problem: When 'lazyredraw' is set the screen may not be updated. (Ivan
- Krasilnikov)
-Solution: Call update_screen() before waiting for input.
-Files: src/misc1.c, src/getchar.c
-
-Patch 7.3.138
-Problem: ":com" changes the multi-byte text of :echo. (Dimitar Dimitrov)
-Solution: Search for K_SPECIAL as a byte, not a character. (Ben Schmidt)
-Files: src/ex_docmd.c
-
-Patch 7.3.139 (after 7.3.137)
-Problem: When 'lazyredraw' is set ":ver" output can't be read.
-Solution: Don't redraw the screen when at a prompt or command line.
-Files: src/getchar.c, src/message.c, src/misc1.c
-
-Patch 7.3.140
-Problem: Crash when drawing the "$" at end-of-line for list mode just after
- the window border and 'cursorline' is set.
-Solution: Don't check for 'cursorline'. (Quentin Carbonneaux)
-Files: src/screen.c
-
-Patch 7.3.141
-Problem: When a key code is not set get a confusing error message.
-Solution: Change the error message to say the key code is not set.
-Files: src/option.c, runtime/doc/options.txt
-
-Patch 7.3.142
-Problem: Python stdout doesn't have a flush() method, causing an import to
- fail.
-Solution: Add a dummy flush() method. (Tobias Columbus)
-Files: src/if_py_both.h
-
-Patch 7.3.143
-Problem: Memfile is not tested sufficiently. Looking up blocks in a
- memfile is slow when there are many blocks.
-Solution: Add high level test and unittest. Adjust the number of hash
- buckets to the number of blocks. (Ivan Krasilnikov)
-Files: Filelist, src/Makefile, src/main.c, src/memfile.c,
- src/memfile_test.c src/structs.h src/testdir/Make_amiga.mak,
- src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
- src/testdir/Make_os2.mak, src/testdir/Make_vms.mak,
- src/testdir/Makefile, src/testdir/test77.in, src/testdir/test77.ok
-
-Patch 7.3.144
-Problem: Crash with ":python help(dir)". (Kearn Holliday)
-Solution: Fix the way the type is set on objects. (Tobias Columbus)
-Files: src/if_python.c
-
-Patch 7.3.145 (after 7.3.144)
-Problem: Can't build with Python dynamically loading.
-Solution: Add dll_PyType_Ready.
-Files: src/if_python.c
-
-Patch 7.3.146
-Problem: It's possible to assign to a read-only member of a dict.
- It's possible to create a global variable "0". (ZyX)
- It's possible to add a v: variable with ":let v:.name = 1".
-Solution: Add check for dict item being read-only.
- Check the name of g: variables.
- Disallow adding v: variables.
-Files: src/eval.c
-
-Patch 7.3.147 (after 7.3.143)
-Problem: Can't build on HP-UX.
-Solution: Remove an unnecessary backslash. (John Marriott)
-Files: src/Makefile
-
-Patch 7.3.148
-Problem: A syntax file with a huge number of items or clusters causes weird
- behavior, a hang or a crash. (Yukihiro Nakadaira)
-Solution: Check running out of IDs. (partly by Ben Schmidt)
-Files: src/syntax.c
-
-Patch 7.3.149
-Problem: The cursor disappears after the processing of the 'setDot'
- netbeans command when vim runs in a terminal.
-Solution: Show the cursor after a screen update. (Xavier de Gaye)
-Files: src/netbeans.c
-
-Patch 7.3.150
-Problem: readline() does not return the last line when the NL is missing.
- (Hong Xu)
-Solution: When at the end of the file Also check for a previous line.
-Files: src/eval.c
-
-Patch 7.3.151 (after 7.3.074)
-Problem: When "unnamedplus" is in 'clipboard' the selection is sometimes
- also copied to the star register.
-Solution: Avoid copy to the star register when undesired. (James Vega)
-Files: src/ops.c
-
-Patch 7.3.152
-Problem: Xxd does not check for errors from library functions.
-Solution: Add error checks. (Florian Zumbiehl)
-Files: src/xxd/xxd.c
-
-Patch 7.3.153 (after 7.3.152)
-Problem: Compiler warning for ambiguous else, missing prototype.
-Solution: Add braces. (Dominique Pelle) Add prototype for die().
-Files: src/xxd/xxd.c
-
-Patch 7.3.154 (after 7.3.148)
-Problem: Can't compile with tiny features. (Tony Mechelynck)
-Solution: Move #define outside of #ifdef.
-Files: src/syntax.c
-
-Patch 7.3.155
-Problem: Crash when using map(), filter() and remove() on v:. (ZyX)
- Also for extend(). (Yukihiro Nakadaira)
-Solution: Mark v: as locked. Also correct locking error messages.
-Files: src/eval.c
-
-Patch 7.3.156
-Problem: Tty names possibly left unterminated.
-Solution: Use vim_strncpy() instead of strncpy().
-Files: src/pty.c
-
-Patch 7.3.157
-Problem: Superfluous assignment.
-Solution: Remove assignment.
-Files: src/misc1.c
-
-Patch 7.3.158
-Problem: Might use uninitialized memory in C indenting.
-Solution: Init arrays to empty.
-Files: src/misc1.c
-
-Patch 7.3.159
-Problem: Using uninitialized pointer when out of memory.
-Solution: Check for NULL return value.
-Files: src/mbyte.c
-
-Patch 7.3.160
-Problem: Unsafe string copying.
-Solution: Use vim_strncpy() instead of strcpy(). Use vim_strcat() instead
- of strcat().
-Files: src/buffer.c, src/ex_docmd.c, src/hardcopy.c, src/menu.c,
- src/misc1.c, src/misc2.c, src/proto/misc2.pro, src/netbeans.c,
- src/os_unix.c, src/spell.c, src/syntax.c, src/tag.c
-
-Patch 7.3.161
-Problem: Items on the stack may be too big.
-Solution: Make items static or allocate them.
-Files: src/eval.c, src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c,
- src/fileio.c, src/hardcopy.c, src/quickfix.c, src/main.c,
- src/netbeans.c, src/spell.c, src/tag.c, src/vim.h, src/xxd/xxd.c
-
-Patch 7.3.162
-Problem: No error message when assigning to a list with an index out of
- range. (Yukihiro Nakadaira)
-Solution: Add the error message.
-Files: src/eval.c
-
-Patch 7.3.163
-Problem: For the default of 'shellpipe' "mksh" and "pdksh" are not
- recognized.
-Solution: Recognize these shell names.
-Files: src/option.c
-
-Patch 7.3.164
-Problem: C-indenting: a preprocessor statement confuses detection of a
- function declaration.
-Solution: Ignore preprocessor lines. (Lech Lorens) Also recognize the style
- to put a comma before the argument name.
-Files: src/misc1.c, testdir/test3.in, testdir/test3.ok
-
-Patch 7.3.165
-Problem: ":find" completion does not escape spaces in a directory name.
- (Isz)
-Solution: Add backslashes for EXPAND_FILES_IN_PATH. (Carlo Teubner)
-Files: src/ex_getln.c
-
-Patch 7.3.166
-Problem: Buffer on the stack may be too big
-Solution: Allocate the space.
-Files: src/option.c
-
-Patch 7.3.167
-Problem: When using the internal grep QuickFixCmdPost is not triggered.
- (Yukihiro Nakadaira)
-Solution: Change the place where autocommands are triggered.
-Files: src/quickfix.c
-
-Patch 7.3.168
-Problem: When the second argument of input() contains a CR the text up to
- that is used without asking the user. (Yasuhiro Matsumoto)
-Solution: Change CR, NL and ESC in the text to a space.
-Files: src/getchar.c
-
-Patch 7.3.169
-Problem: Freeing memory already freed, warning from static code analyzer.
-Solution: Initialize pointers to NULL, correct use of "mustfree". (partly by
- Dominique Pelle)
-Files: src/mis1.c
-
-Patch 7.3.170
-Problem: VMS Makefile for testing was not updated for test77.
-Solution: Add test77 to the Makefile.
-Files: src/testdir/Make_vms.mms
-
-Patch 7.3.171
-Problem: When the clipboard isn't supported: ":yank*" gives a confusing
- error message.
-Solution: Specifically mention that the register name is invalid.
- (Jean-Rene David)
-Files: runtime/doc/change.txt, src/ex_docmd.c, src/globals.h
-
-Patch 7.3.172
-Problem: MS-Windows: rename() might delete the file if the name differs but
- it's actually the same file.
-Solution: Use the file handle to check if it's the same file. (Yukihiro
- Nakadaira)
-Files: src/if_cscope.c, src/fileio.c, src/os_win32.c,
- src/proto/os_win32.pro, src/vim.h
-
-Patch 7.3.173
-Problem: After using setqflist() to make the quickfix list empty ":cwindow"
- may open the window anyway. Also after ":vimgrep".
-Solution: Correctly check whether the list is empty. (Ingo Karkat)
-Files: src/quickfix.c
-
-Patch 7.3.174
-Problem: When Exuberant ctags binary is exctags it's not found.
-Solution: Add configure check for exctags. (Hong Xu)
-Files: src/configure.in, src/auto/configure
-
-Patch 7.3.175
-Problem: When 'colorcolumn' is set locally to a window, ":new" opens a
- window with the same highlighting but 'colorcolumn' is empty.
- (Tyru)
-Solution: Call check_colorcolumn() after clearing and copying options.
- (Christian Brabandt)
-Files: src/buffer.c
-
-Patch 7.3.176
-Problem: Ruby linking doesn't work properly on Mac OS X.
-Solution: Fix the configure check for Ruby. (Bjorn Winckler)
-Files: src/configure.in, src/auto/configure
-
-Patch 7.3.177
-Problem: MS-Windows: mkdir() doesn't work properly when 'encoding' is
- "utf-8".
-Solution: Convert to utf-16. (Yukihiro Nakadaira)
-Files: src/os_win32.c, src/os_win32.h, src/proto/os_win32.pro
-
-Patch 7.3.178
-Problem: C-indent doesn't handle code right after { correctly.
-Solution: Fix detecting unterminated line. (Lech Lorens)
-Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
-
-Patch 7.3.179
-Problem: C-indent doesn't handle colon in string correctly.
-Solution: Skip the string. (Lech Lorens)
-Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
-
-Patch 7.3.180
-Problem: When both a middle part of 'comments' matches and an end part, the
- middle part was used erroneously.
-Solution: After finding the middle part match continue looking for a better
- end part match. (partly by Lech Lorens)
-Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
-
-Patch 7.3.181
-Problem: When repeating the insert of CTRL-V or a digraph the display may
- not be updated correctly.
-Solution: Only call edit_unputchar() after edit_putchar(). (Lech Lorens)
-Files: src/edit.c
-
-Patch 7.3.182 (after 7.3.180)
-Problem: Compiler warning for uninitialized variable.
-Solution: Add dummy initializer.
-Files: src/misc1.c
-
-Patch 7.3.183 (after 7.3.174)
-Problem: When Exuberant ctags binary is exuberant-ctags it's not found.
-Solution: Add configure check for exuberant-ctags.
-Files: src/configure.in, src/auto/configure
-
-Patch 7.3.184
-Problem: Static code analysis errors in riscOS.
-Solution: Make buffer size bigger. (Dominique Pelle)
-Files: src/gui_riscos.c
-
-Patch 7.3.185
-Problem: ":windo g/pattern/q" closes windows and reports "N more lines".
- (Tim Chase)
-Solution: Remember what buffer ":global" started in. (Jean-Rene David)
-Files: src/ex_cmds.c
-
-Patch 7.3.186
-Problem: When 'clipboard' contains "unnamed" or "unnamedplus" the value of
- v:register is wrong for operators without a specific register.
-Solution: Adjust the register according to 'clipboard'. (Ingo Karkat)
-Files: src/normal.c
-
-Patch 7.3.187
-Problem: The RISC OS port has obvious errors and is not being maintained.
-Solution: Remove the RISC OS files and code.
-Files: src/ascii.h, src/eval.c, src/ex_cmds.c, src/ex_cmds2.c,
- src/ex_docmd.c, src/fileio.c, src/globals.h, src/gui.c, src/gui.h,
- src/main.c, src/memfile.c, src/memline.c, src/misc1.c,
- src/proto.h, src/quickfix.c, src/search.c, src/structs.h,
- src/term.c, src/termlib.c, src/version.c, src/vim.h,
- src/gui_riscos.h, src/os_riscos.h, src/gui_riscos.c,
- src/os_riscos.c, runtime/doc/os_risc.txt
-
-Patch 7.3.188
-Problem: More RISC OS files to remove.
-Solution: Remove them. Update the file list.
-Files: src/proto/gui_riscos.pro, src/proto/os_riscos.pro, Filelist
-
-Patch 7.3.189 (after 7.3.186)
-Problem: Can't build without +clipboard feature. (Christian Ebert)
-Solution: Add the missing #ifdef.
-Files: src/normal.c
-
-Patch 7.3.190
-Problem: When there is a "containedin" syntax argument highlighting may be
- wrong. (Radek)
-Solution: Reset current_next_list. (Ben Schmidt)
-Files: src/syntax.c
-
-Patch 7.3.191
-Problem: Still some RISC OS stuff to remove.
-Solution: Remove files and lines. (Hong Xu)
- Remove the 'osfiletype' option code.
-Files: README_extra.txt, src/Make_ro.mak, src/INSTALL, src/Makefile,
- src/buffer.c, src/eval.c, src/feature.h, src/option.c,
- src/option.h, src/structs.h, src/version.c, src/pty.c, Filelist
-
-Patch 7.3.192
-Problem: Ex command ":s/ \?/ /g" splits multi-byte characters into bytes.
- (Dominique Pelle)
-Solution: Advance over whole character instead of one byte.
-Files: src/ex_cmds.c
-
-Patch 7.3.193
-Problem: In the command line window ":close" doesn't work properly. (Tony
- Mechelynck)
-Solution: Use Ctrl_C instead of K_IGNORE for cmdwin_result. (Jean-Rene
- David)
-Files: src/ex_docmd.c, src/ex_getln.c
-
-Patch 7.3.194
-Problem: When "b" is a symlink to directory "a", resolve("b/") doesn't
- result in "a/". (ZyX)
-Solution: Remove the trailing slash. (Jean-Rene David)
-Files: src/eval.c
-
-Patch 7.3.195
-Problem: "} else" causes following lines to be indented too much. (Rouben
- Rostamian)
-Solution: Better detection for the "else". (Lech Lorens)
-Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
-
-Patch 7.3.196
-Problem: Can't intercept a character that is going to be inserted.
-Solution: Add the InsertCharPre autocommand event. (Jakson A. Aquino)
-Files: runtime/doc/autocmd.txt, runtime/doc/eval.txt,
- runtime/doc/map.txt, src/edit.c, src/eval.c, src/fileio.c,
- src/vim.h
-
-Patch 7.3.197
-Problem: When a QuickfixCmdPost event removes all errors, Vim still tries
- to jump to the first error, resulting in E42.
-Solution: Get the number of error after the autocmd event. (Mike Lundy)
-Files: src/quickfix.c
-
-Patch 7.3.198
-Problem: No completion for ":lang".
-Solution: Get locales to complete from. (Dominique Pelle)
-Files: src/eval.c, src/ex_cmds2.c, src/ex_getln.c,
- src/proto/ex_cmds2.pro, src/proto/ex_getln.pro, src/vim.h
-
-Patch 7.3.199
-Problem: MS-Windows: Compilation problem of OLE with MingW compiler.
-Solution: Put #ifdef around declarations. (Guopeng Wen)
-Files: src/if_ole.h
-
-Patch 7.3.200 (after 7.3.198)
-Problem: CTRL-D doesn't complete :lang.
-Solution: Add the missing part of the change. (Dominique Pelle)
-Files: src/ex_docmd.c
-
-Patch 7.3.201 (after 7.3.195)
-Problem: "} else" still causes following lines to be indented too much.
-Solution: Better detection for the "else" block. (Lech Lorens)
-Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
-
-Patch 7.3.202
-Problem: Cannot influence the indent inside a namespace.
-Solution: Add the "N" 'cino' parameter. (Konstantin Lepa)
-Files: runtime/doc/indent.txt, src/misc1.c, src/testdir/test3.in,
- src/testdir/test3.ok
-
-Patch 7.3.203
-Problem: MS-Windows: Can't run an external command without a console window.
-Solution: Support ":!start /b cmd". (Xaizek)
-Files: runtime/doc/os_win32.txt, src/os_win32.c
-
-Patch 7.3.204 (after 7.3.201)
-Problem: Compiler warning.
-Solution: Add type cast. (Mike Williams)
-Files: src/misc1.c
-
-Patch 7.3.205
-Problem: Syntax "extend" doesn't work correctly.
-Solution: Avoid calling check_state_ends() recursively (Ben Schmidt)
-Files: src/syntax.c
-
-Patch 7.3.206
-Problem: 64bit MS-Windows compiler warning.
-Solution: Use HandleToLong() instead of type cast. (Mike Williams)
-Files: src/gui_w32.c
-
-Patch 7.3.207
-Problem: Can't compile with MSVC with pentium4 and 64 bit.
-Solution: Only use SSE2 for 32 bit. (Mike Williams)
-Files: src/Make_mvc.mak
-
-Patch 7.3.208
-Problem: Early terminated if statement.
-Solution: Remove the semicolon. (Lech Lorens)
-Files: src/gui_mac.c
-
-Patch 7.3.209
-Problem: MSVC Install instructions point to wrong batch file.
-Solution: Add a batch file for use with MSVC 10.
-Files: src/msvc2010.bat, src/INSTALLpc.txt, Filelist
-
-Patch 7.3.210
-Problem: Can't always find the file when using cscope.
-Solution: Add the 'cscoperelative' option. (Raghavendra D Prabhu)
-Files: runtime/doc/if_cscop.txt, runtime/doc/options.txt,
- src/if_cscope.c
-
-Patch 7.3.211 (after 7.3.210)
-Problem: Compiler warning.
-Solution: Add type cast.
-Files: src/if_cscope.c
-
-Patch 7.3.212
-Problem: With Python 3.2 ":py3" fails.
-Solution: Move PyEval_InitThreads() to after Py_Initialize(). (Roland
- Puntaier) Check abiflags in configure. (Andreas Behr)
-Files: src/if_python3.c, src/auto/configure, src/configure.in
-
-Patch 7.3.213
-Problem: Javascript object literal is not indented correctly.
-Solution: Make a special case for when "J1" is in 'cino'. (Luc Deschenaux)
-Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
-
-Patch 7.3.214
-Problem: The text displayed by ":z-" isn't exactly like old Vi.
-Solution: Add one to the start line number. (ChangZhuo Chen)
-Files: src/ex_cmds.c
-
-Patch 7.3.215 (after 7.3.210)
-Problem: Wrong file names in previous patch. (Toothpik)
-Solution: Include the option changes.
-Files: src/option.c, src/option.h
-
-Patch 7.3.216
-Problem: When recovering a file a range of lines is missing. (Charles Jie)
-Solution: Reset the index when advancing to the next pointer block. Add a
- test to verify recovery works.
-Files: src/memline.c, src/testdir/test78.in, src/testdir/test78.ok,
- src/testdir/Makefile, src/testdir/Make_amiga.mak,
- src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
- src/testdir/Make_os2.mak, src/testdir/Make_vms.mms
-
-Patch 7.3.217
-Problem: Inside an "if" a ":wincmd" causes problems.
-Solution: When skipping commands let ":wincmd" skip over its argument.
-Files: src/ex_docmd.c
-
-Patch 7.3.218 (after 7.3.212)
-Problem: Tiny configuration problem with Python 3.
-Solution: Add abiflags in one more place. (Andreas Behr)
-Files: src/auto/configure, src/configure.in
-
-Patch 7.3.219
-Problem: Can't compile with GTK on Mac.
-Solution: Add some #ifdef trickery. (Ben Schmidt)
-Files: src/os_mac_conv.c, src/os_macosx.m, src/vim.h
-
-Patch 7.3.220
-Problem: Python 3: vim.error is a 'str' instead of an 'Exception' object,
- so 'except' or 'raise' it causes a 'SystemError' exception.
- Buffer objects do not support slice assignment.
- When exchanging text between Vim and Python, multibyte texts become
- garbage or cause Unicode Exceptions, etc.
- 'py3file' tries to read in the file as Unicode, sometimes causes
- UnicodeDecodeException
-Solution: Fix the problems. (lilydjwg)
-Files: src/if_py_both.h, src/if_python.c, src/if_python3.c
-
-Patch 7.3.221
-Problem: Text from the clipboard is sometimes handled as linewise, but not
- consistently.
-Solution: Assume the text is linewise when it ends in a CR or NL.
-Files: src/gui_gtk_x11.c, src/gui_mac.c, src/ops.c, src/os_msdos.c,
- src/os_mswin.c, src/os_qnx.c, src/ui.c
-
-Patch 7.3.222
-Problem: Warning for building GvimExt.
-Solution: Comment-out the DESCRIPTION line. (Mike Williams)
-Files: src/GvimExt/gvimext.def, src/GvimExt/gvimext_ming.def
-
-Patch 7.3.223
-Problem: MingW cross compilation doesn't work with tiny features.
-Solution: Move acp_to_enc(), enc_to_utf16() and utf16_to_enc() outside of
- "#ifdef CLIPBOARD". Fix typo in makefile.
-Files: src/Make_ming.mak, src/os_mswin.c
-
-Patch 7.3.224
-Problem: Can't pass dict to sort function.
-Solution: Add the optional {dict} argument to sort(). (ZyX)
-Files: runtime/doc/eval.txt, src/eval.c
-
-Patch 7.3.225
-Problem: Using "\n" in a substitute inside ":s" does not result in a line
- break.
-Solution: Change behavior inside vim_regexec_nl(). Add tests. (Motoya
- Kurotsu)
-Files: src/regexp.c, src/testdir/test79.in, src/testdir/test79.ok,
- src/testdir/test80.in, src/testdir/test80.ok,
- src/testdir/Makefile, src/testdir/Make_amiga.mak,
- src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
- src/testdir/Make_os2.mak, src/testdir/Make_vms.mms
-
-Patch 7.3.226
-Problem: On a 64 bit system "syn sync fromstart" is very slow. (Bjorn
- Steinbrink)
-Solution: Store the state when starting to parse from the first line.
-Files: src/syntax.c
-
-Patch 7.3.227 (after 7.3.221)
-Problem: Mac OS doesn't have the linewise clipboard fix.
-Solution: Also change the Mac OS file. (Bjorn Winckler)
-Files: src/os_macosx.m
-
-Patch 7.3.228
-Problem: "2gj" does not always move to the correct position.
-Solution: Get length of line after moving to a next line. (James Vega)
-Files: src/normal.c
-
-Patch 7.3.229
-Problem: Using fork() makes gvim crash on Mac when build with
- CoreFoundation.
-Solution: Disallow fork() when __APPLE__ is defined. (Hisashi T Fujinaka)
-Files: src/gui.c
-
-Patch 7.3.230
-Problem: ":wundo" and ":rundo" don't unescape their argument. (Aaron
- Thoma)
-Solution: Use FILE1 instead of XFILE.
-Files: src/ex_cmds.h
-
-Patch 7.3.231
-Problem: Runtime file patches failed.
-Solution: Redo the patches made against the patched files instead of the
- files in the mercurial repository.
-Files: runtime/doc/indent.txt, runtime/doc/os_win32.txt
-
-Patch 7.3.232
-Problem: Python doesn't compile without +multi_byte
-Solution: Use "latin1" when MULTI_BYTE is not defined.
-Files: src/if_py_both.h
-
-Patch 7.3.233
-Problem: ":scriptnames" and ":breaklist" show long file names.
-Solution: Shorten to use "~/" when possible. (Jean-Rene David)
-Files: src/ex_cmds2.c
-
-Patch 7.3.234
-Problem: With GTK menu may be popping down.
-Solution: Use event time instead of GDK_CURRENT_TIME. (Hong Xu)
-Files: src/gui.c, src/gui.h, src/gui_gtk.c, src/gui_gtk_x11.c
-
-Patch 7.3.235
-Problem: ";" gets stuck on a "t" command, it's not useful.
-Solution: Add the ';' flag in 'cpo'. (Christian Brabandt)
-Files: runtime/doc/motion.txt, runtime/doc/options.txt, src/option.h,
- src/search.c src/testdir/test81.in, src/testdir/test81.ok,
- src/testdir/Makefile, src/testdir/Make_amiga.mak,
- src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
- src/testdir/Make_os2.mak, src/testdir/Make_vms.mms
-
-Patch 7.3.236 (after 7.3.232)
-Problem: Python 3 doesn't compile without +multi_byte
-Solution: Use "latin1" when MULTI_BYTE is not defined. (lilydjwg)
-Files: src/if_python3.c
-
-Patch 7.3.237
-Problem: "filetype" completion doesn't work on Windows. (Yue Wu)
-Solution: Don't use a glob pattern for the directories, use a list of
- directories. (Dominique Pelle)
-Files: src/ex_getln.c
-
-Patch 7.3.238
-Problem: Compiler warning for conversion.
-Solution: Add type cast. (Mike Williams)
-Files: src/ex_getln.c
-
-Patch 7.3.239
-Problem: Python corrects the cursor column without taking 'virtualedit'
- into account. (lilydjwg)
-Solution: Call check_cursor_col_win().
-Files: src/if_py_both.h, src/mbyte.c, src/misc2.c, src/normal.c,
- src/proto/mbyte.pro, src/proto/misc2.pro
-
-Patch 7.3.240
-Problem: External commands can't use pipes on MS-Windows.
-Solution: Implement pipes and use them when 'shelltemp' isn't set. (Vincent
- Berthoux)
-Files: src/eval.c, src/ex_cmds.c, src/misc2.c, src/os_unix.c,
- src/os_win32.c, src/proto/misc2.pro, src/ui.c
-
-Patch 7.3.241
-Problem: Using CTRL-R CTRL-W on the command line may insert only part of
- the word.
-Solution: Use the cursor position instead of assuming it is at the end of
- the command. (Tyru)
-Files: src/ex_getln.c
-
-Patch 7.3.242
-Problem: Illegal memory access in after_pathsep().
-Solution: Check that the pointer is not at the start of the file name.
- (Dominique Pelle)
-Files: src/misc2.c
-
-Patch 7.3.243
-Problem: Illegal memory access in readline().
-Solution: Swap the conditions. (Dominique Pelle)
-Files: src/eval.c
-
-Patch 7.3.244
-Problem: MS-Windows: Build problem with old compiler. (John Beckett)
-Solution: Only use HandleToLong() when available. (Mike Williams)
-Files: src/gui_w32.c
-
-Patch 7.3.245
-Problem: Python 3.2 libraries not correctly detected.
-Solution: Add the suffix to the library name. (Niclas Zeising)
-Files: src/auto/configure, src/configure.in
-
-Patch 7.3.246 (after 7.3.235)
-Problem: Repeating "f4" in "4444" skips one 4.
-Solution: Check the t_cmd flag. (Christian Brabandt)
-Files: src/search.c
-
-Patch 7.3.247
-Problem: Running tests changes the users viminfo file. Test for patch
- 7.3.246 missing.
-Solution: Add "nviminfo" to the 'viminfo' option. Include the test.
-Files: src/testdir/test78.in, src/testdir/test81.in
-
-Patch 7.3.248
-Problem: PC Install instructions missing install instructions.
-Solution: Step-by-step explanation. (Michael Soyka)
-Files: src/INSTALLpc.txt
-
-Patch 7.3.249
-Problem: Wrong indenting for array initializer.
-Solution: Detect '}' in a better way. (Lech Lorens)
-Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
-
-Patch 7.3.250
-Problem: Python: Errors in Unicode characters not handled nicely.
-Solution: Add the surrogateescape error handler. (lilydjwg)
-Files: src/if_python3.c
-
-Patch 7.3.251
-Problem: "gH<Del>" deletes the current line, except when it's the last
- line.
-Solution: Set the "include" flag to indicate the last line is to be deleted.
-Files: src/normal.c, src/ops.c
-
-Patch 7.3.252 (after 7.3.247)
-Problem: Tests fail. (David Northfield)
-Solution: Add missing update for .ok file.
-Files: src/testdir/test81.ok
-
-Patch 7.3.253
-Problem: "echo 'abc' > ''" returns 0 or 1, depending on 'ignorecase'.
- Checks in mb_strnicmp() for illegal and truncated bytes are
- wrong. Should not assume that byte length is equal before case
- folding.
-Solution: Add utf_safe_read_char_adv() and utf_strnicmp(). Add a test for
- this. (Ivan Krasilnikov)
-Files: src/mbyte.c src/testdir/test82.in, src/testdir/test82.ok,
- src/testdir/Makefile, src/testdir/Make_amiga.mak,
- src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
- src/testdir/Make_os2.mak, src/testdir/Make_vms.mms
-
-Patch 7.3.254
-Problem: The coladd field is not reset when setting the line number for a
- ":call" command.
-Solution: Reset it.
-Files: src/eval.c
-
-Patch 7.3.255
-Problem: When editing a file such as "File[2010-08-15].vim" an E16 error is
- given. (Manuel Stol)
-Solution: Don't give an error for failing to compile the regexp.
-Files: src/ex_docmd.c, src/misc1.c, src/vim.h
-
-Patch 7.3.256
-Problem: Javascript indenting not sufficiently tested.
-Solution: Add more tests. (Luc Deschenaux) Mark the lines that are indented
- wrong.
-Files: src/testdir/test3.in, src/testdir/test3.ok
-
-Patch 7.3.257
-Problem: Not all completions are available to user commands.
-Solution: Add "color", "compiler", "file_in_path" and "locale". (Dominique
- Pelle)
-Files: src/ex_docmd.c, runtime/doc/map.txt
-
-Patch 7.3.258
-Problem: MS-Windows: The edit with existing vim context menu entries can be
- unwanted.
-Solution: Let a registry entry disable them. (Jerome Vuarand)
-Files: src/GvimExt/gvimext.cpp
-
-Patch 7.3.259
-Problem: Equivalence classes only work for latin characters.
-Solution: Add the Unicode equivalence characters. (Dominique Pelle)
-Files: runtime/doc/pattern.txt, src/regexp.c, src/testdir/test44.in,
- src/testdir/test44.ok
-
-Patch 7.3.260
-Problem: CursorHold triggers on an incomplete mapping. (Will Gray)
-Solution: Don't trigger CursorHold when there is typeahead.
-Files: src/fileio.c
-
-Patch 7.3.261
-Problem: G++ error message erroneously recognized as error.
-Solution: Ignore "In file included from" line also when it ends in a colon.
- (Fernando Castillo)
-Files: src/option.h
-
-Patch 7.3.262
-Problem: Photon code style doesn't match Vim style.
-Solution: Clean up some of it. (Elias Diem)
-Files: src/gui_photon.c
-
-Patch 7.3.263
-Problem: Perl and Tcl have a few code style problems.
-Solution: Clean it up. (Elias Diem)
-Files: src/if_perl.xs, src/if_tcl.c
-
-Patch 7.3.264
-Problem: When the current directory name contains wildcard characters, such
- as "foo[with]bar", the tags file can't be found. (Jeremy
- Erickson)
-Solution: When searching for matching files also match without expanding
- wildcards. This is a bit of a hack.
-Files: src/vim.h, src/misc1.c, src/misc2.c
-
-Patch 7.3.265
-Problem: When storing a pattern in search history there is no proper check
- for the separator character.
-Solution: Pass the separator character to in_history(). (Taro Muraoka)
-Files: src/ex_getln.c
-
-Patch 7.3.266
-Problem: In Gvim with iBus typing space in Insert mode doesn't work.
-Solution: Clear xim_expected_char after checking it.
-Files: src/mbyte.c
-
-Patch 7.3.267
-Problem: Ruby on Mac OS X 10.7 may crash.
-Solution: Avoid alloc(0). (Bjorn Winckler)
-Files: src/if_ruby.c
-
-Patch 7.3.268
-Problem: Vim freezes when executing an external command with zsh.
-Solution: Use O_NOCTTY both in the master and slave. (Bjorn Winckler)
-Files: src/os_unix.c
-
-Patch 7.3.269
-Problem: 'shellcmdflag' only works with one flag.
-Solution: Split into multiple arguments. (Gary Johnson)
-Files: src/os_unix.c
-
-Patch 7.3.270
-Problem: Illegal memory access.
-Solution: Swap conditions. (Dominique Pelle)
-Files: src/ops.c
-
-Patch 7.3.271
-Problem: Code not following Vim coding style.
-Solution: Fix the style. (Elias Diem)
-Files: src/gui_photon.c
-
-Patch 7.3.272
-Problem: ":put =list" does not add an empty line for a trailing empty
- item.
-Solution: Add a trailing NL when turning a list into a string.
-Files: src/eval.c
-
-Patch 7.3.273
-Problem: A BOM in an error file is seen as text. (Aleksey Baibarin)
-Solution: Remove the BOM from the text before evaluating. (idea by Christian
- Brabandt)
-Files: src/quickfix.c, src/mbyte.c, src/proto/mbyte.pro,
- src/testdir/test10.in
-
-Patch 7.3.274
-Problem: With concealed characters tabs do not have the right size.
-Solution: Use VCOL_HLC instead of vcol. (Eiichi Sato)
-Files: src/screen.c
-
-Patch 7.3.275
-Problem: MS-Windows: When using a black background some screen updates
- cause the window to flicker.
-Solution: Add WS_CLIPCHILDREN to CreateWindow(). (René Aguirre)
-Files: src/gui_w32.c
-
-Patch 7.3.276
-Problem: GvimExt sets $LANG in the wrong way.
-Solution: Save the environment and use it for gvim. (Yasuhiro Matsumoto)
-Files: src/GvimExt/gvimext.cpp
-
-Patch 7.3.277
-Problem: MS-Windows: some characters do not show in dialogs.
-Solution: Use the wide methods when available. (Yanwei Jia)
-Files: src/gui_w32.c, src/gui_w48.c, src/os_mswin.c, src/os_win32.c,
- src/os_win32.h
-
-Patch 7.3.278
-Problem: Passing the file name to open in VisVim doesn't work.
-Solution: Adjust the index and check for end of buffer. (Jiri Sedlak)
-Files: src/VisVim/Commands.cpp
-
-Patch 7.3.279
-Problem: With GTK, when gvim is full-screen and a tab is opened and using a
- specific monitor configuration the window is too big.
-Solution: Adjust the window size like on MS-Windows. (Yukihiro Nakadaira)
-Files: src/gui.c, src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro
-
-Patch 7.3.280
-Problem: ":lmake" does not update the quickfix window title.
-Solution: Update the title. (Lech Lorens)
-Files: src/quickfix.c, src/testdir/test10.in, src/testdir/test10.ok
-
-Patch 7.3.281
-Problem: After using "expand('%:8')" the buffer name is changed.
-Solution: Make a copy of the file name before shortening it.
-Files: src/eval.c
-
-Patch 7.3.282
-Problem: When using input() and :echo in a loop the displayed text is
- incorrect. (Benjamin Fritz)
-Solution: Only restore the cursor position when there is a command line.
- (Ben Schmidt)
-Files: src/ex_getln.c
-
-Patch 7.3.283
-Problem: An expression mapping with a multi-byte character containing a
- 0x80 byte gets messed up. (ZyX)
-Solution: Unescape the expression before evaluating it (Yukihiro Nakadaira)
-Files: src/getchar.c
-
-Patch 7.3.284
-Problem: The str2special() function doesn't handle multi-byte characters
- properly.
-Solution: Recognize multi-byte characters. (partly by Vladimir Vichniakov)
-Files: src/getchar.c, src/message.c, src/misc2.c
-
-Patch 7.3.285 (after 7.3.284)
-Problem: Mapping <Char-123> no longer works.
-Solution: Properly check for "char-". Add a test for it.
-Files: src/misc2.c, src/testdir/test75.in, src/testdir/test75.ok
-
-Patch 7.3.286
-Problem: Crash when using "zd" on a large number of folds. (Sam King)
-Solution: Recompute pointer after reallocating array. Move fewer entries
- when making room.
-Files: src/fold.c
-
-Patch 7.3.287
-Problem: Can't compile with MSVC and tiny options.
-Solution: Move variables and #ifdefs. (Sergey Khorev)
-Files: src/os_win32.c
-
-Patch 7.3.288
-Problem: has('python') may give an error message for not being able to load
- the library after using python3.
-Solution: Only give the error when the verbose argument is true.
-Files: src/if_python.c, src/if_python3.c
-
-Patch 7.3.289
-Problem: Complete function isn't called when the leader changed.
-Solution: Call ins_compl_restart() when the leader changed. (Taro Muraoka)
-Files: src/edit.c
-
-Patch 7.3.290
-Problem: When a BufWriteCmd autocommand resets 'modified' this doesn't
- change older buffer states to be marked as 'modified' like
- ":write" does. (Yukihiro Nakadaira)
-Solution: When the BufWriteCmd resets 'modified' then adjust the undo
- information like ":write" does.
-Files: src/fileio.c
-
-Patch 7.3.291
-Problem: Configure doesn't work properly with Python3.
-Solution: Put -ldl before $LDFLAGS. Add PY3_NO_RTLD_GLOBAL. (Roland
- Puntaier)
-Files: src/config.h.in, src/auto/configure, src/configure.in
-
-Patch 7.3.292
-Problem: Crash when using fold markers and selecting a visual block that
- includes a folded line and goes to end of line. (Sam Lidder)
-Solution: Check for the column to be MAXCOL. (James Vega)
-Files: src/screen.c
-
-Patch 7.3.293
-Problem: MSVC compiler has a problem with non-ASCII characters.
-Solution: Avoid non-ASCII characters. (Hong Xu)
-Files: src/ascii.h, src/spell.c
-
-Patch 7.3.294 (after 7.3.289)
-Problem: Patch 289 causes more problems than it solves.
-Solution: Revert the patch until a better solution is found.
-Files: src/edit.c
-
-Patch 7.3.295
-Problem: When filtering text with an external command Vim may not read all
- the output.
-Solution: When select() is interrupted loop and try again. (James Vega)
-Files: src/os_unix.c
-
-Patch 7.3.296
-Problem: When writing to an external command a zombie process may be left
- behind.
-Solution: Wait on the process. (James Vega)
-Files: src/os_unix.c
-
-Patch 7.3.297
-Problem: Can't load Perl 5.14 dynamically.
-Solution: Add code in #ifdefs. (Charles Cooper)
-Files: if_perl.xs
-
-Patch 7.3.298
-Problem: Built-in colors are different from rgb.txt.
-Solution: Adjust the color values. (Benjamin Haskell)
-Files: src/gui_photon.c, src/gui_w48.c
-
-Patch 7.3.299
-Problem: Source code not in Vim style.
-Solution: Adjust the style. (Elias Diem)
-Files: src/gui_photon.c
-
-Patch 7.3.300
-Problem: Python doesn't parse multi-byte argument correctly.
-Solution: Use "t" instead of "s". (lilydjwg)
-Files: src/if_py_both.h
-
-Patch 7.3.301
-Problem: When 'smartindent' and 'copyindent' are set a Tab is used even
- though 'expandtab' is set.
-Solution: Do not insert Tabs. Add a test. (Christian Brabandt)
-Files: src/misc1.c, src/testdir/test19.in, src/testdir/test19.ok
-
-Patch 7.3.302 (after 7.3.301)
-Problem: Test 19 fails without 'smartindent' and +eval.
-Solution: Don't use ":exe". Source small.vim.
-Files: src/testdir/test19.in
-
-Patch 7.3.303 (after 7.3.296)
-Problem: Compilation error.
-Solution: Correct return type from int to pid_t. (Danek Duvall)
-Files: src/os_unix.c
-
-Patch 7.3.304
-Problem: Strawberry Perl doesn't work on MS-Windows.
-Solution: Use xsubpp if needed. (Yasuhiro Matsumoto)
-Files: src/Make_ming.mak, src/Make_mvc.mak
-
-Patch 7.3.305
-Problem: Auto-loading a function while editing the command line causes
- scrolling up the display.
-Solution: Don't set msg_scroll when defining a function and the user is not
- typing. (Yasuhiro Matsumoto)
-Files: src/eval.c
-
-Patch 7.3.306
-Problem: When closing a window there is a chance that deleting a scrollbar
- triggers a GUI resize, which uses the window while it is not in a
- valid state.
-Solution: Set the buffer pointer to NULL to be able to detect the invalid
- situation. Fix a few places that used the buffer pointer
- incorrectly.
-Files: src/buffer.c, src/ex_cmds.c, src/term.c, src/window.c
-
-Patch 7.3.307
-Problem: Python 3 doesn't support slice assignment.
-Solution: Implement slices. (Brett Overesch, Roland Puntaier)
-Files: src/if_python3.c
-
-Patch 7.3.308
-Problem: Writing to 'verbosefile' has problems, e.g. for :highlight.
-Solution: Do not use a separate verbose_write() function but write with the
- same code that does redirecting. (Yasuhiro Matsumoto)
-Files: src/message.c
-
-Patch 7.3.309 (after 7.3.307)
-Problem: Warnings for pointer types.
-Solution: Change PySliceObject to PyObject.
-Files: src/if_python3.c
-
-Patch 7.3.310
-Problem: Code not following Vim style.
-Solution: Fix the style. (Elias Diem)
-Files: src/gui_photon.c
-
-Patch 7.3.311 (replaces 7.3.289)
-Problem: Complete function isn't called when the leader changed.
-Solution: Allow the complete function to return a dictionary with a flag
- that indicates ins_compl_restart() is to be called when the leader
- changes. (Taro Muraoka)
-Files: runtime/insert.txt, src/edit.c, src/eval.c, src/proto/eval.pro
-
-Patch 7.3.312 (after 7.3.306)
-Problem: Can't compile with tiny features.
-Solution: Add #ifdef around win_valid().
-Files: src/buffer.c
-
-Patch 7.3.313 (after 7.3.307)
-Problem: One more warning when compiling with dynamic Python 3.
-Solution: Change PySliceObject to PyObject.
-Files: src/if_python3.c
-
-Patch 7.3.314 (after 7.3.304)
-Problem: Missing parenthesis.
-Solution: Add it. (Benjamin R. Haskell)
-Files: src/Make_mvc.mak
-
-Patch 7.3.315
-Problem: Opening a window before forking causes problems for GTK.
-Solution: Fork first, create the window in the child and report back to the
- parent process whether it worked. If successful the parent exits,
- if unsuccessful the child exits and the parent continues in the
- terminal. (Tim Starling)
-Files: src/gui.c
-
-Patch 7.3.316 (after 7.3.306)
-Problem: Crash when 'colorcolumn' is set and closing buffer.
-Solution: Check for w_buffer to be NULL. (Yasuhiro Matsumoto)
-Files: src/option.c
-
-Patch 7.3.317
-Problem: Calling debug.debug() in Lua may cause Vim to hang.
-Solution: Add a better debug method. (Rob Hoelz, Luis Carvalho)
-Files: src/if_lua.c
-
-Patch 7.3.318
-Problem: "C" on the last line deletes that line if it's blank.
-Solution: Only delete the last line for a delete operation. (James Vega)
-Files: src/ops.c
-
-Patch 7.3.319 (after 7.3.311)
-Problem: Redobuff doesn't always include changes of the completion leader.
-Solution: Insert backspaces as needed. (idea by Taro Muraoka)
-Files: src/edit.c
-
-Patch 7.3.320
-Problem: When a 0xa0 character is in a sourced file the error message for
- unrecognized command does not show the problem.
-Solution: Display 0xa0 as <a0>.
-Files: src/ex_docmd.c
-
-Patch 7.3.321
-Problem: Code not following Vim style.
-Solution: Fix the style. (Elias Diem)
-Files: src/os_qnx.c
-
-Patch 7.3.322
-Problem: #ifdef for PDP_RETVAL doesn't work, INT_PTR can be a typedef.
-Solution: Check the MSC version and 64 bit flags. (Sergiu Dotenco)
-Files: src/os_mswin.c
-
-Patch 7.3.323
-Problem: The default 'errorformat' does not ignore some "included from"
- lines.
-Solution: Add a few more patterns. (Ben Boeckel)
-Files: src/option.h
-
-Patch 7.3.324 (after 7.3.237)
-Problem: Completion for ":compiler" shows color scheme names.
-Solution: Fix the directory name. (James Vega)
-Files: src/ex_getln.c
-
-Patch 7.3.325
-Problem: A duplicated function argument gives an internal error.
-Solution: Give a proper error message. (based on patch by Tyru)
-Files: src/eval.c
-
-Patch 7.3.326
-Problem: MingW 4.6 no longer supports the -mno-cygwin option.
-Solution: Split the Cygwin and MingW makefiles. (Matsushita Shougo)
-Files: src/GvimExt/Make_cyg.mak, src/GvimExt/Make_ming.mak,
- src/Make_cyg.mak, src/Make_ming.mak, src/xxd/Make_ming.mak,
- Filelist
-
-Patch 7.3.327
-Problem: When jumping to a help tag a closed fold doesn't open.
-Solution: Save and restore KeyTyped. (Yasuhiro Matsumoto)
-Files: src/ex_cmds.c
-
-Patch 7.3.328
-Problem: When command line wraps the cursor may be displayed wrong when
- there are multi-byte characters.
-Solution: Position the cursor before drawing the text. (Yasuhiro Matsumoto)
-Files: src/ex_getln.c
-
-Patch 7.3.329
-Problem: When skipping over code from ":for" to ":endfor" get an error for
- calling a dict function. (Yasuhiro Matsumoto)
-Solution: Ignore errors when skipping over :call command.
-Files: src/ex_docmd.c, src/eval.c
-
-Patch 7.3.330
-Problem: When longjmp() is invoked if the X server gives an error the state
- is not properly restored.
-Solution: Reset vgetc_busy. (Yukihiro Nakadaira)
-Files: src/main.c
-
-Patch 7.3.331
-Problem: "vit" selects wrong text when a tag name starts with the same text
- as an outer tag name. (Ben Fritz)
-Solution: Add "\>" to the pattern to check for word boundary.
-Files: src/search.c
-
-Patch 7.3.332 (after 7.3.202)
-Problem: Indent after "public:" is not increased in C++ code. (Lech Lorens)
-Solution: Check for namespace after the regular checks. (partly by Martin
- Gieseking)
-Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
-
-Patch 7.3.333
-Problem: Using "." to repeat a Visual delete counts the size in bytes, not
- characters. (Connor Lane Smith)
-Solution: Store the virtual column numbers instead of byte positions.
-Files: src/normal.c
-
-Patch 7.3.334
-Problem: Latest MingW about XSUBPP referencing itself. (Gongqian Li)
-Solution: Rename the first use to XSUBPPTRY.
-Files: src/Make_ming.mak
-
-Patch 7.3.335
-Problem: When 'imdisable' is reset from an autocommand in Insert mode it
- doesn't take effect.
-Solution: Call im_set_active() in Insert mode. (Taro Muraoka)
-Files: src/option.c
-
-Patch 7.3.336
-Problem: When a tags file specifies an encoding different from 'enc' it
- may hang and using a pattern doesn't work.
-Solution: Convert the whole line. Continue reading the header after the
- SORT tag. Add test83. (Yukihiro Nakadaira)
-Files: src/tag.c, src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
- src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
- src/testdir/Make_vms.mms, src/testdir/Makefile,
- src/testdir/test83-tags2, src/testdir/test83-tags3,
- src/testdir/test83.in, src/testdir/test83.ok
-
-Patch 7.3.337 (after 7.3.295)
-Problem: Screen doesn't update after resizing the xterm until a character
- is typed.
-Solution: When the select call is interrupted check do_resize. (Taylor
- Hedberg)
-Files: src/os_unix.c
-
-Patch 7.3.338
-Problem: Using getchar() in an expression mapping doesn't work well.
-Solution: Don't save and restore the typeahead. (James Vega)
-Files: src/getchar.c, src/testdir/test34.ok
-
-Patch 7.3.339
-Problem: "make shadow" doesn't link all test files.
-Solution: Add a line in Makefile and Filelist.
-Files: src/Makefile, Filelist
-
-Patch 7.3.340
-Problem: When 'verbosefile' is set ftplugof.vim can give an error.
-Solution: Only remove filetypeplugin autocommands when they exist. (Yasuhiro
- Matsumoto)
-Files: runtime/ftplugof.vim
-
-Patch 7.3.341
-Problem: Local help files are only listed in help.txt, not in translated
- help files.
-Solution: Also find translated help files. (Yasuhiro Matsumoto)
-Files: src/ex_cmds.c
-
-Patch 7.3.342
-Problem: Code not in Vim style.
-Solution: Fix the style. (Elias Diem)
-Files: src/os_amiga.c, src/os_mac_conv.c, src/os_win16.c
-
-Patch 7.3.343
-Problem: No mouse support for urxvt.
-Solution: Implement urxvt mouse support, also for > 252 columns. (Yiding
- Jia)
-Files: src/feature.h, src/keymap.h, src/option.h, src/os_unix.c,
- src/term.c, src/version.c
-
-Patch 7.3.344
-Problem: Problem with GUI startup related to XInitThreads.
-Solution: Use read() and write() instead of fputs() and fread(). (James
- Vega)
-Files: src/gui.c
-
-Patch 7.3.345
-Problem: When switching language with ":lang" the window title doesn't
- change until later.
-Solution: Update the window title right away. (Dominique Pelle)
-Files: src/ex_cmds2.c
-
-Patch 7.3.346
-Problem: It's hard to test netbeans commands.
-Solution: Process netbeans commands after :sleep. (Xavier de Gaye)
-Files: runtime/doc/netbeans.txt, src/ex_docmd.c, src/netbeans.c
-
-Patch 7.3.347
-Problem: When dropping text from a browser on Vim it receives HTML even
- though "html" is excluded from 'clipboard'. (Andrei Avk)
-Solution: Fix the condition for TARGET_HTML.
-Files: src/gui_gtk_x11.c
-
-Patch 7.3.348
-Problem: "call range(1, 947948399)" causes a crash. (ZyX)
-Solution: Avoid a loop in the out of memory message.
-Files: src/misc2.c
-
-Patch 7.3.349
-Problem: When running out of memory during startup trying to open a
- swapfile will loop forever.
-Solution: Let findswapname() set dirp to NULL if out of memory.
-Files: src/memline.c
-
-Patch 7.3.350
-Problem: Block of code after ":lua << EOF" may not work. (Paul Isambert)
-Solution: Recognize the ":lua" command, skip to EOF.
-Files: src/eval.c
-
-Patch 7.3.351
-Problem: Text formatting uses start of insert position when it should not.
- (Peter Wagenaar)
-Solution: Do not use Insstart when intentionally formatting.
-Files: src/edit.c
-
-Patch 7.3.352
-Problem: When completing methods dict functions and script-local functions
- get in the way.
-Solution: Sort function names starting with "<" to the end. (Yasuhiro
- Matsumoto)
-Files: src/ex_getln.c
-
-Patch 7.3.353 (after 7.3.343)
-Problem: Missing part of the urxvt patch.
-Solution: Add the change in term.c
-Files: src/term.c
-
-Patch 7.3.354
-Problem: ":set backspace+=eol" doesn't work when 'backspace' has a
- backwards compatible value of 2.
-Solution: Convert the number to a string. (Hirohito Higashi)
-Files: src/option.c
-
-Patch 7.3.355
-Problem: GTK warnings when using netrw.vim. (Ivan Krasilnikov)
-Solution: Do not remove the beval event handler twice.
-Files: src/option.c
-
-Patch 7.3.356
-Problem: Using "o" with 'cindent' set may freeze Vim. (lolilolicon)
-Solution: Skip over {} correctly. (Hari G)
-Files: src/misc1.c
-
-Patch 7.3.357
-Problem: Compiler warning in MS-Windows console build.
-Solution: Adjust return type of PrintHookProc(). (Mike Williams)
-Files: src/os_mswin.c
-
-Patch 7.3.358 (after 7.3.353)
-Problem: Mouse support doesn't work properly.
-Solution: Add HMT_URXVT. (lilydjwg, James McCoy)
-Files: src/term.c
-
-Patch 7.3.359
-Problem: Command line completion shows dict functions.
-Solution: Skip dict functions for completion. (Yasuhiro Matsumoto)
-Files: src/eval.c
-
-Patch 7.3.360
-Problem: Interrupting the load of an autoload function may cause a crash.
-Solution: Do not use the hashitem when not valid. (Yukihiro Nakadaira)
-Files: src/eval.c
-
-Patch 7.3.361
-Problem: Accessing memory after it is freed when EXITFREE is defined.
-Solution: Don't access curwin when firstwin is NULL. (Dominique Pelle)
-Files: src/buffer.c
-
-Patch 7.3.362
-Problem: ml_get error when using ":g" with folded lines.
-Solution: Adjust the line number for changed_lines(). (Christian Brabandt)
-Files: src/ex_cmds.c
-
-Patch 7.3.363
-Problem: C indenting is wrong after #endif followed by a semicolon.
-Solution: Add special handling for a semicolon in a line by itself. (Lech
- Lorens)
-Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
-
-Patch 7.3.364 (after 7.3.353)
-Problem: Can't compile on HP-UX. (John Marriott)
-Solution: Only use TTYM_URXVT when it is defined.
-Files: src/term.c
-
-Patch 7.3.365
-Problem: Crash when using a large Unicode character in a file that has
- syntax highlighting. (ngollan)
-Solution: Check for going past the end of the utf tables. (Dominique Pelle)
-Files: src/mbyte.c
-
-Patch 7.3.366
-Problem: A tags file with an extremely long name causes errors.
-Solution: Ignore tags that are too long. (Arno Renevier)
-Files: src/tag.c
-
-Patch 7.3.367
-Problem: :wundo and :rundo use a wrong checksum.
-Solution: Include the last line when computing the hash. (Christian Brabandt)
-Files: src/undo.c
-
-Patch 7.3.368
-Problem: Gcc complains about redefining _FORTIFY_SOURCE.
-Solution: Undefine it before redefining it.
-Files: src/Makefile, src/configure.in, src/auto/configure
-
-Patch 7.3.369
-Problem: When compiled with Gnome get an error message when using --help.
-Solution: Don't fork. (Ivan Krasilnikov)
-Files: src/main.c
-
-Patch 7.3.370
-Problem: Compiler warns for unused variable in Lua interface.
-Solution: Remove the variable.
-Files: src/if_lua.c
-
-Patch 7.3.371
-Problem: Crash in autocomplete. (Greg Weber)
-Solution: Check not going over allocated buffer size.
-Files: src/misc2.c
-
-Patch 7.3.372
-Problem: When using a command line mapping to <Up> with file name
- completion to go one directory up, 'wildchar' is inserted.
- (Yasuhiro Matsumoto)
-Solution: Set the KeyTyped flag.
-Files: src/ex_getln.c
-
-Patch 7.3.373 (after 7.3.366)
-Problem: A tags file with an extremely long name may cause an infinite loop.
-Solution: When encountering a long name switch to linear search.
-Files: src/tag.c
-
-Patch 7.3.374
-Problem: ++encoding does not work properly.
-Solution: Recognize ++encoding before ++enc. (Charles Cooper)
-Files: src/ex_docmd.c
-
-Patch 7.3.375
-Problem: Duplicate return statement.
-Solution: Remove the superfluous one. (Dominique Pelle)
-Files: src/gui_mac.c
-
-Patch 7.3.376
-Problem: Win32: Toolbar repainting does not work when the mouse pointer
- hovers over a button.
-Solution: Call DefWindowProc() when not handling an event. (Sergiu Dotenco)
-Files: src/gui_w32.c
-
-Patch 7.3.377
-Problem: No support for bitwise AND, OR, XOR and invert.
-Solution: Add and(), or(), invert() and xor() functions.
-Files: src/eval.c, src/testdir/test49.in, src/testdir/test65.in,
- src/testdir/test65.ok, runtime/doc/eval.txt
-
-Patch 7.3.378
-Problem: When cross-compiling the check for uint32_t fails.
-Solution: Only give a warning message. (Maksim Melnikau)
-Files: src/configure.in, src/auto/configure
-
-Patch 7.3.379
-Problem: C-indenting wrong for static enum.
-Solution: Skip over "static". (Lech Lorens)
-Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
-
-Patch 7.3.380
-Problem: C-indenting wrong for a function header.
-Solution: Skip to the start paren. (Lech Lorens)
-Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
-
-Patch 7.3.381
-Problem: Configure silently skips interfaces that won't work.
-Solution: Add the --enable-fail_if_missing argument. (Shlomi Fish)
-Files: src/Makefile, src/configure.in, src/auto/configure
-
-Patch 7.3.382 (after 7.3.376)
-Problem: IME characters are inserted twice.
-Solution: Do not call DefWindowProc() if the event was handled. (Yasuhiro
- Matsumoto)
-Files: src/gui_w32.c
-
-Patch 7.3.383
-Problem: For EBCDIC pound sign is defined as 't'.
-Solution: Correctly define POUND.
-Files: src/ascii.h
-
-Patch 7.3.384
-Problem: Mapping CTRL-K in Insert mode breaks CTRL-X CTRL-K for dictionary
- completion.
-Solution: Add CTRL-K to the list of recognized keys. (James McCoy)
-Files: src/edit.c
-
-Patch 7.3.385
-Problem: When using an expression mapping on the command line the cursor
- ends up in the wrong place. (Yasuhiro Matsumoto)
-Solution: Save and restore msg_col and msg_row when evaluating the
- expression.
-Files: src/getchar.
-
-Patch 7.3.386
-Problem: Test 83 fails when iconv does not support cp932. (raf)
-Solution: Test if conversion works. (Yukihiro Nakadaira)
-Files: src/testdir/test83.in
-
-Patch 7.3.387 (after 7.3.386)
-Problem: Test 83 may fail for some encodings.
-Solution: Set 'encoding' to utf-8 earlier.
-Files: src/testdir/test83.in
-
-Patch 7.3.388
-Problem: Crash on exit when EXITFREE is defined and using tiny features.
-Solution: Check for NULL window pointer. (Dominique Pelle)
-Files: src/buffer.c
-
-Patch 7.3.389
-Problem: After typing at a prompt the "MORE" message appears too soon.
-Solution: reset lines_left in msg_end_prompt(). (Eswald)
-Files: src/message.c
-
-Patch 7.3.390
-Problem: Using NULL buffer pointer in a window.
-Solution: Check for w_buffer being NULL in more places. (Bjorn Winckler)
-Files: src/ex_cmds.c, src/quickfix.c, src/window.c
-
-Patch 7.3.391
-Problem: Can't check if the XPM_W32 feature is enabled.
-Solution: Add xpm_w32 to the list of features. (kat)
-Files: src/eval.c
-
-Patch 7.3.392
-Problem: When setting 'undofile' while the file is already loaded but
- unchanged, try reading the undo file. (Andy Wokula)
-Solution: Compute a checksum of the text when 'undofile' is set. (Christian
- Brabandt)
-Files: src/option.c, src/testdir/test72.in, src/testdir/test72.ok
-
-Patch 7.3.393
-Problem: Win32: When resizing Vim it is always moved to the primary monitor
- if the secondary monitor is on the left.
-Solution: Use the nearest monitor. (Yukihiro Nakadaira)
-Files: src/gui_w32.c
-
-Patch 7.3.394
-Problem: When placing a mark while starting up a screen redraw messes up
- the screen. (lith)
-Solution: Don't redraw while still starting up. (Christian Brabandt)
-Files: src/screen.c
-
-Patch 7.3.395 (after 7.3.251)
-Problem: "dv?bar" in the last line deletes too much and breaks undo.
-Solution: Only adjust the cursor position when it's after the last line of
- the buffer. Add a test. (Christian Brabandt)
-Files: src/ops.c, src/testdir/test43.in, src/testdir/test43.ok
-
-Patch 7.3.396
-Problem: After forcing an operator to be characterwise it can still become
- linewise when spanning whole lines.
-Solution: Don't make the operator linewise when motion_force was set.
- (Christian Brabandt)
-Files: src/ops.c
-
-Patch 7.3.397
-Problem: ":helpgrep" does not work properly when 'encoding' is not utf-8 or
- latin1.
-Solution: Convert non-ascii lines to 'encoding'. (Yasuhiro Matsumoto)
-Files: src/quickfix.c, src/spell.c, src/misc2.c, src/proto/misc2.pro
-
-Patch 7.3.398
-Problem: When creating more than 10 location lists and adding items one by
- one a previous location may be used. (Audrius Kažukauskas)
-Solution: Clear the location list completely when adding the tenth one.
-Files: src/quickfix.c
-
-Patch 7.3.399
-Problem: ":cd" doesn't work when the path contains wildcards. (Yukihiro
- Nakadaira)
-Solution: Ignore wildcard errors when the EW_NOTWILD flag is used.
-Files: src/misc1.c
-
-Patch 7.3.400
-Problem: Compiler warnings for shadowed variables.
-Solution: Remove or rename the variables.
-Files: src/charset.c, src/digraph.c, src/edit.c, src/eval.c, src/fold.c,
- src/getchar.c, src/message.c, src/misc2.c, src/move.c,
- src/netbeans.c, src/option.c, src/os_unix.c, src/screen.c,
- src/search.c, src/spell.c, src/syntax.c, src/tag.c, src/window.c
-
-Patch 7.3.401
-Problem: A couple more shadowed variables.
-Solution: Rename the variables.
-Files: src/netbeans.c
-
-Patch 7.3.402
-Problem: When jumping to the first error a line of the buffer is sometimes
- redrawn on top of the list of errors.
-Solution: Do not call update_topline_redraw() if the display was scrolled
- up.
-Files: src/quickfix.c
-
-Patch 7.3.403
-Problem: ":helpgrep" does not trigger QuickFixCmd* autocommands.
-Solution: Trigger the autocommands. (Christian Brabandt)
-Files: src/quickfix.c
-
-Patch 7.3.404
-Problem: When a complete function uses refresh "always" redo will not work
- properly.
-Solution: Do not reset compl_leader when compl_opt_refresh_always is set.
- (Yasuhiro Matsumoto)
-Files: src/edit.c
-
-Patch 7.3.405
-Problem: When xterm gets back the function keys it may delete the urxvt
- mouse termcap code.
-Solution: Check for the whole code, not just the start. (Egmont Koblinger)
-Files: src/keymap.h, src/misc2.c, src/term.c
-
-Patch 7.3.406
-Problem: Multi-byte characters in b:browsefilter are not handled correctly.
-Solution: First use convert_filter() normally and then convert to wide
- characters. (Taro Muraoka)
-Files: src/gui_w48.c
-
-Patch 7.3.407
-Problem: ":12verbose call F()" may duplicate text while trying to truncate.
- (Thinca)
-Solution: Only truncate when there is not enough room. Also check the byte
- length of the buffer.
-Files: src/buffer.c, src/eval.c, src/ex_getln.c, src/message.c,
- src/proto/message.pro
-
-Patch 7.3.408 (after 7.3.406)
-Problem: Missing declaration.
-Solution: Add the declaration. (John Marriott)
-Files: src/gui_w48.c
-
-Patch 7.3.409
-Problem: The license in pty.c is unclear.
-Solution: Add a comment about the license.
-Files: src/pty.c
-
-Patch 7.3.410
-Problem: Compiler error for // comment. (Joachim Schmitz)
-Solution: Turn into /* comment */.
-Files: src/message.c
-
-Patch 7.3.411
-Problem: Pasting in Visual mode using the "" register does not work. (John
- Beckett)
-Solution: Detect that the write is overwriting the pasted register.
- (Christian Brabandt)
-Files: src/normal.c
-
-Patch 7.3.412
-Problem: Storing a float in a session file has an additional '&'.
-Solution: Remove the '&'. (Yasuhiro Matsumoto)
-Files: src/eval.c
-
-Patch 7.3.413
-Problem: Build warnings on MS-Windows.
-Solution: Add type casts. (Mike Williams)
-Files: src/ex_getln.c, src/message.c, src/term.c
-
-Patch 7.3.414
-Problem: Using CTRL-A on "000" drops the leading zero, while on "001" it
- doesn't.
-Solution: Detect "000" as an octal number. (James McCoy)
-Files: src/charset.c
-
-Patch 7.3.415 (after 7.3.359)
-Problem: Completion of functions stops once a dictionary is encountered.
- (James McCoy)
-Solution: Return an empty string instead of NULL.
-Files: src/eval.c
-
-Patch 7.3.416 (after 7.3.415)
-Problem: Compiler warning for wrong pointer.
-Solution: Add type cast.
-Files: src/eval.c
-
-Patch 7.3.417 (after 7.3.395)
-Problem: Test 43 fails with a tiny build.
-Solution: Only run test 43 with at least a small build.
-Files: src/testdir/test43.in
-
-Patch 7.3.418
-Problem: When a user complete function returns -1 an error message is
- given.
-Solution: When -2 is returned stop completion silently. (Yasuhiro Matsumoto)
-Files: src/edit.
-
-Patch 7.3.419
-Problem: DBCS encoding in a user command does not always work.
-Solution: Skip over DBCS characters. (Yasuhiro Matsumoto)
-Files: src/ex_docmd.c
-
-Patch 7.3.420
-Problem: "it" and "at" don't work properly with a dash in the tag name.
-Solution: Require a space to match the tag name. (Christian Brabandt)
-Files: src/search.c
-
-Patch 7.3.421
-Problem: Get E832 when setting 'undofile' in vimrc and there is a file to
- be edited on the command line. (Toothpik)
-Solution: Do not try reading the undo file for a file that wasn't loaded.
-Files: src/option.c
-
-Patch 7.3.422
-Problem: Python 3 does not have __members__.
-Solution: Add "name" and "number" in another way. (lilydjwg)
-Files: src/if_py_both.h, src/if_python3.c
-
-Patch 7.3.423
-Problem: Small mistakes in comments, proto and indent.
-Solution: Fix the mistakes.
-Files: src/ex_cmds2.c, src/structs.h, src/ui.c, src/proto/ex_docmd.pro
-
-Patch 7.3.424
-Problem: Win16 version missing some functions.
-Solution: Add #defines for the functions.
-Files: src/gui_w16.c
-
-Patch 7.3.425 (after 7.3.265)
-Problem: Search history lines are duplicated. (Edwin Steiner)
-Solution: Convert separator character from space to NUL.
-Files: src/ex_getln.c
-
-Patch 7.3.426
-Problem: With '$' in 'cpoptions' the $ is not displayed in the first
- column.
-Solution: Use -1 instead of 0 as a special value. (Hideki Eiraku and
- Hirohito Higashi)
-Files: src/edit.c, src/globals.h, src/move.c, src/screen.c, src/search.c
-
-Patch 7.3.427
-Problem: readfile() can be slow with long lines.
-Solution: Use realloc() instead of alloc(). (John Little)
-Files: src/eval.c
-
-Patch 7.3.428
-Problem: Win32: an xpm file without a mask crashes Vim.
-Solution: Fail when the mask is missing. (Dave Bodenstab)
-Files: src/xpm_w32.c
-
-Patch 7.3.429
-Problem: When 'cpoptions' includes "E" "c0" in the first column is an
- error. The redo register is then set to the erroneous command.
-Solution: Do not set the redo register if the command fails because of an
- empty region. (Hideki Eiraku)
-Files: src/getchar.c, src/normal.c, src/proto/getchar.pro
-
-Patch 7.3.430
-Problem: When a custom filetype detection uses "augroup END" the conf
- fileytpe detection does not have the filetypedetect group.
-Solution: Always end the group and include filetypedetect in the conf
- autocommand. (Lech Lorens)
-Files: runtime/filetype.vim
-
-Patch 7.3.431
-Problem: Fetching a key at a prompt may be confused by escape sequences.
- Especially when getting a prompt at a VimEnter autocommand.
- (Alex Efros)
-Solution: Properly handle escape sequences deleted by check_termcode().
-Files: src/getchar.c, src/misc1.c, src/term.c, src/proto/term.pro
-
-Patch 7.3.432
-Problem: ACLs are not supported for ZFS or NFSv4 on Solaris.
-Solution: Add configure check and code. (Danek Duvall)
-Files: src/configure.in, src/auto/configure, src/config.h.in,
- src/os_unix.c
-
-Patch 7.3.433
-Problem: Using continued lines in a Vim script can be slow.
-Solution: Instead of reallocating for every line use a growarray. (Yasuhiro
- Matsumoto)
-Files: src/ex_cmds2.c
-
-Patch 7.3.434
-Problem: Using join() can be slow.
-Solution: Compute the size of the result before allocation to avoid a lot of
- allocations and copies. (Taro Muraoka)
-Files: src/eval.c
-
-Patch 7.3.435
-Problem: Compiler warning for unused variable.
-Solution: Move the variable inside #ifdef.
-Files: src/ex_cmds2.c
-
-Patch 7.3.436
-Problem: Compiler warnings for types on Windows.
-Solution: Add type casts. (Mike Williams)
-Files: src/eval.c
-
-Patch 7.3.437
-Problem: Continue looping inside FOR_ALL_TAB_WINDOWS even when already done.
-Solution: Use goto instead of break. (Hirohito Higashi)
-Files: src/fileio.c, src/globals.h
-
-Patch 7.3.438
-Problem: There is no way to avoid ":doautoall" reading modelines.
-Solution: Add the <nomodeline> argument. Adjust documentation.
-Files: src/fileio.c, runtime/doc/autocmd.txt
-
-Patch 7.3.439
-Problem: Compiler warnings to size casts in Perl interface.
-Solution: Use XS macros. (James McCoy)
-Files: src/if_perl.xs, src/typemap
-
-Patch 7.3.440
-Problem: Vim does not support UTF8_STRING for the X selection.
-Solution: Add UTF8_STRING atom support. (Alex Efros) Use it only when
- 'encoding' is set to Unicode.
-Files: src/ui.c
-
-Patch 7.3.441
-Problem: Newer versions of MzScheme (Racket) require earlier (trampolined)
- initialisation.
-Solution: Call mzscheme_main() early in main(). (Sergey Khorev)
-Files: src/Make_mvc.mak, src/if_mzsch.c, src/main.c,
- src/proto/if_mzsch.pro
-
-Patch 7.3.442 (after 7.3.438)
-Problem: Still read modelines for ":doautocmd".
-Solution: Move check for <nomodeline> to separate function.
-Files: src/fileio.c, src/ex_docmd.c, src/proto/fileio.pro,
- runtime/doc/autocmd.txt
-
-Patch 7.3.443
-Problem: MS-Windows: 'shcf' and 'shellxquote' defaults are not very good.
-Solution: Make a better guess when 'shell' is set to "cmd.exe". (Ben Fritz)
-Files: src/option.c, runtime/doc/options.txt
-
-Patch 7.3.444
-Problem: ":all!" and ":sall!" give error E477, even though the
- documentation says these are valid commands.
-Solution: Support the exclamation mark. (Hirohito Higashi)
-Files: src/ex_cmds.h, src/testdir/test31.in, src/testdir/test31.ok
-
-Patch 7.3.445 (after 7.3.443)
-Problem: Can't properly escape commands for cmd.exe.
-Solution: Default 'shellxquote' to '('. Append ')' to make '(command)'.
- No need to use "/s" for 'shellcmdflag'.
-Files: src/misc2.c, src/option.c, src/os_win32.c
-
-Patch 7.3.446 (after 7.3.445)
-Problem: Win32: External commands with special characters don't work.
-Solution: Add the 'shellxescape' option.
-Files: src/misc2.c, src/option.c, src/option.h, runtime/doc/options.txt
-
-Patch 7.3.447 (after 7.3.446)
-Problem: Win32: External commands with "start" do not work.
-Solution: Unescape part of the command. (Yasuhiro Matsumoto)
-Files: src/os_win32.c
-
-Patch 7.3.448 (after 7.3.447)
-Problem: Win32: Still a problem with "!start /b".
-Solution: Escape only '|'. (Yasuhiro Matsumoto)
-Files: src/os_win32.c
-
-Patch 7.3.449
-Problem: Crash when a BufWinLeave autocommand closes the only other window.
- (Daniel Hunt)
-Solution: Abort closing a buffer when it becomes the only one.
-Files: src/buffer.c, src/proto/buffer.pro, src/ex_cmds.c, src/ex_getln.c,
- src/misc2.c, src/quickfix.c, src/window.c, src/proto/window.pro
-
-Patch 7.3.450 (after 7.3.448)
-Problem: Win32: Still a problem with "!start /b".
-Solution: Fix pointer use. (Yasuhiro Matsumoto)
-Files: src/os_win32.c
-
-Patch 7.3.451
-Problem: Tcl doesn't work on 64 MS-Windows.
-Solution: Make it work. (Dave Bodenstab)
-Files: src/Make_mvc.mak, src/if_tcl.c
-
-Patch 7.3.452
-Problem: Undo broken when pasting close to the last line. (Andrey Radev)
-Solution: Use a flag to remember if the deleted included the last line.
- (Christian Brabandt)
-Files: src/ops.c
-
-Patch 7.3.453
-Problem: Pasting in the command line is slow.
-Solution: Don't redraw if there is another character to read. (Dominique
- Pelle)
-Files: src/ex_getln.c
-
-Patch 7.3.454
-Problem: Re-allocating memory slows Vim down.
-Solution: Use realloc() in ga_grow(). (Dominique Pelle)
-Files: src/misc2.c
-
-Patch 7.3.455
-Problem: Using many continuation lines can be slow.
-Solution: Adjust the reallocation size to the current length.
-Files: src/ex_cmds2.c
-
-Patch 7.3.456
-Problem: ":tab drop file" has several problems, including moving the
- current window and opening a new tab for a file that already has a
- window.
-Solution: Refactor ":tab drop" handling. (Hirohito Higashi)
-Files: src/buffer.c, src/testdir/test62.in, src/testdir/test62.ok
-
-Patch 7.3.457
-Problem: When setting $VIMRUNTIME later the directory for fetching
- translated messages is not adjusted.
-Solution: Put bindtextdomain() in vim_setenv().
-Files: src/misc1.c
-
-Patch 7.3.458
-Problem: Crash when calling smsg() during startup.
-Solution: Don't use 'shortmess' when it is not set yet.
-Files: src/option.c
-
-Patch 7.3.459
-Problem: Win32: Warnings for type conversion.
-Solution: Add type casts. (Mike Williams)
-Files: src/misc2.c, src/os_win32.c
-
-Patch 7.3.460
-Problem: Win32: UPX does not compress 64 bit binaries.
-Solution: Mention and add the alternative: mpress. (Dave Bodenstab)
-Files: src/INSTALLpc.txt, src/Make_ming.mak
-
-Patch 7.3.461
-Problem: The InsertCharPre autocommand event is not triggered during
- completion and when typing several characters quickly.
-Solution: Also trigger InsertCharPre during completion. Do not read ahead
- when an InsertCharPre autocommand is defined. (Yasuhiro Matsumoto)
-Files: src/edit.c, src/fileio.c, src/proto/fileio.pro
-
-Patch 7.3.462
-Problem: When using ":loadview" folds may be closed unexpectedly.
-Solution: Take into account foldlevel. (Xavier de Gaye)
-Files: src/fold.c
-
-Patch 7.3.463
-Problem: When using ":s///c" the cursor is moved away from the match.
- (Lawman)
-Solution: Don't move the cursor when do_ask is set. (Christian Brabandt)
-Files: src/ex_cmds.c
-
-Patch 7.3.464
-Problem: Compiler warning for sprintf.
-Solution: Put the length in a variable. (Dominique Pelle)
-Files: src/version.c
-
-Patch 7.3.465
-Problem: Cannot get file name with newline from glob().
-Solution: Add argument to glob() and expand() to indicate they must return a
- list. (Christian Brabandt)
-Files: runtime/doc/eval.txt, src/eval.c, src/ex_getln.c, src/vim.h
-
-Patch 7.3.466
-Problem: Get ml_get error hen ":behave mswin" was used and selecting
- several lines. (A. Sinan Unur)
-Solution: Adjust the end of the operation. (Christian Brabandt)
-Files: src/ops.c
-
-Patch 7.3.467
-Problem: Cursor positioned wrong at the command line when regaining focus
- and using some input method.
-Solution: Do not position the cursor in command line mode.
-Files: src/mbyte.c
-
-Patch 7.3.468
-Problem: For some compilers the error file is not easily readable.
-Solution: Use QuickFixCmdPre for more commands. (Marcin Szamotulski)
-Files: runtime/doc/autocmd.txt, src/quickfix.c
-
-Patch 7.3.469
-Problem: Compiler warning for unused argument without some features.
-Solution: Add UNUSED.
-Files: src/buffer.c
-
-Patch 7.3.470
-Problem: Test 62 fails when compiled without GUI and X11.
-Solution: Don't test :drop when it is not supported.
-Files: src/testdir/test62.in
-
-Patch 7.3.471
-Problem: Can't abort listing placed signs.
-Solution: Check "got_int". (Christian Brabandt)
-Files: src/buffer.c, src/ex_cmds.c
-
-Patch 7.3.472
-Problem: Crash when using ":redraw" in a BufEnter autocommand and
- switching to another tab. (驼峰)
-Solution: Move triggering the autocommands to after correcting the
- option values. Also check the row value to be out of bounds.
- (Christian Brabandt, Sergey Khorev)
-Files: src/screen.c, src/window.c
-
-Patch 7.3.473
-Problem: 'cursorbind' does not work correctly in combination with
- 'virtualedit' set to "all".
-Solution: Copy coladd. (Gary Johnson)
-Files: src/move.c
-
-Patch 7.3.474
-Problem: Perl build with gcc 4 fails.
-Solution: Remove XS() statements. (Yasuhiro Matsumoto)
-Files: src/if_perl.xs
-
-Patch 7.3.475
-Problem: In a terminal with few colors the omnicomplete menu may be hard to
- see when using the default colors.
-Solution: Use more explicit colors. (suggested by Alex Henrie)
-Files: src/syntax.c
-
-Patch 7.3.476
-Problem: When selecting a block, using "$" to include the end of each line
- and using "A" and typing a backspace strange things happen.
- (Yuangchen Xie)
-Solution: Avoid using a negative length. (Christian Brabandt)
-Files: src/ops.c
-
-Patch 7.3.477
-Problem: Using ":echo" to output enough lines to scroll, then using "j" and
- "k" at the more prompt, displays the command on top of the output.
- (Marcin Szamotulski)
-Solution: Put the output below the command. (Christian Brabandt)
-Files: src/eval.c
-
-Patch 7.3.478
-Problem: Memory leak using the ':rv!' command when reading dictionary or
- list global variables i.e. with 'viminfo' containing !.
-Solution: Free the typeval. (Dominique Pelle)
-Files: src/eval.c
-
-Patch 7.3.479
-Problem: When 'cursorline' is set the line number highlighting can't be set
- separately.
-Solution: Add "CursorLineNr". (Howard Buchholz)
-Files: src/option.c, src/screen.c, src/syntax.c, src/vim.h
-
-Patch 7.3.480
-Problem: When using ":qa" and there is a changed buffer picking the buffer
- to jump to is not very good.
-Solution: Consider current and other tab pages. (Hirohito Higashi)
-Files: src/ex_cmds2.c
-
-Patch 7.3.481
-Problem: Changing 'virtualedit' in an operator function to "all" does not
- have the desired effect. (Aaron Bohannon)
-Solution: Save, reset and restore virtual_op when executing an operator
- function.
-Files: src/normal.c
-
-Patch 7.3.482
-Problem: With 'cursorbind' set moving up/down does not always keep the same
- column.
-Solution: Set curswant appropriately. (Gary Johnson)
-Files: src/move.c
-
-Patch 7.3.483 (after 7.3.477)
-Problem: More prompt shows up too often.
-Solution: Instead of adding a line break, only start a new line in the
- message history. (Christian Brabandt)
-Files: src/eval.c, src/message.c, src/proto/message.pro
-
-Patch 7.3.484
-Problem: The -E and --echo-wid command line arguments are not mentioned in
- "vim --help".
-Solution: Add the help lines. (Dominique Pelle)
-Files: src/main.c
-
-Patch 7.3.485
-Problem: When building Vim LDFLAGS isn't passed on to building xxd.
-Solution: Pass the LDFLAGS value. (James McCoy)
-Files: src/Makefile
-
-Patch 7.3.486
-Problem: Build error with mingw64 on Windows 7.
-Solution: Avoid the step of going through vimres.res. (Guopeng Wen)
-Files: src/Make_ming.mak
-
-Patch 7.3.487
-Problem: When setting 'timeoutlen' or 'ttimeoutlen' the column for vertical
- movement is reset unnecessarily.
-Solution: Do not set w_set_curswant for every option. Add a test for this.
- (Kana Natsuno) Add the P_CURSWANT flag for options.
-Files: src/option.c, src/testdir/test84.in, src/testdir/test84.ok,
- src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
- src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
- src/testdir/Make_vms.mms, src/testdir/Makefile
-
-Patch 7.3.488
-Problem: ":help!" in a help file does not work as documented.
-Solution: When in a help file don't give an error message. (thinca)
-Files: src/ex_cmds.c
-
-Patch 7.3.489
-Problem: CTRL-] in Insert mode does not expand abbreviation when used in a
- mapping. (Yichao Zhou)
-Solution: Special case using CTRL-]. (Christian Brabandt)
-Files: src/getchar.c, src/edit.c
-
-Patch 7.3.490
-Problem: Member confusion in Lua interface.
-Solution: Fix it. Add luaeval(). (Taro Muraoka, Luis Carvalho)
-Files: runtime/doc/if_lua.txt, src/eval.c, src/if_lua.c,
- src/proto/if_lua.pro
-
-Patch 7.3.491
-Problem: No tests for Lua.
-Solution: Add some simple tests for Lua. (Luis Carvalho)
-Files: src/testdir/test1.in, src/testdir/test85.in, src/testdir/test85.ok
- src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
- src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
- src/testdir/Make_vms.mms, src/testdir/Makefile
-
-Patch 7.3.492
-Problem: Can't indent conditions separately from function arguments.
-Solution: Add the 'k' flag in 'cino'. (Lech Lorens)
-Files: runtime/doc/indent.txt, src/misc1.c, src/testdir/test3.in,
- src/testdir/test3.ok
-
-Patch 7.3.493 (after 7.3.492)
-Problem: Two unused variables.
-Solution: Remove them. (Hong Xu)
-Files: src/misc1.c
-
-Patch 7.3.494 (after 7.3.491)
-Problem: Can't compile with Lua 5.1 or dynamic Lua.
-Solution: Fix dll_ methods. Fix luado(). (Muraoka Taro, Luis Carvalho)
-Files: src/if_lua.c
-
-Patch 7.3.495 (after 7.3.492)
-Problem: Compiler warnings.
-Solution: Add function declaration. Remove "offset" argument.
-Files: src/misc1.c
-
-Patch 7.3.496
-Problem: MS-DOS: When "diff" trips over difference in line separators some
- tests fail.
-Solution: Make some .ok files use unix line separators. (David Pope)
-Files: src/testdir/Make_dos.mak, src/testdir/Make_ming.mak
-
-Patch 7.3.497
-Problem: Crash when doing ":python print" and compiled with gcc and
- the optimizer enabled.
-Solution: Avoid the crash, doesn't really fix the problem. (Christian
- Brabandt)
-Files: src/if_py_both.h
-
-Patch 7.3.498
-Problem: The behavior of the "- register changes depending on value of
- the 'clipboard' option. (Szamotulski)
-Solution: Also set the "- register when the register is "*" or "+".
- (Christian Brabandt)
-Files: src/ops.c
-
-Patch 7.3.499
-Problem: When using any interface language when Vim is waiting for a child
- process it gets confused by a child process started through the
- interface.
-Solution: Always used waitpid() instead of wait(). (Yasuhiro Matsumoto)
-Files: src/os_unix.c
-
-Patch 7.3.500
-Problem: Ming makefile unconditionally sets WINVER.
-Solution: Only defined when not already defined. (Yasuhiro Matsumoto)
-Files: src/Make_ming.mak
-
-Patch 7.3.501
-Problem: Error for "flush" not being defined when using Ruby command.
-Solution: Defined "flush" as a no-op method. (Kent Sibilev)
-Files: src/if_ruby.c
-
-Patch 7.3.502
-Problem: Netbeans insert halfway a line actually appends to the line.
-Solution: Insert halfway the line. (Brian Victor)
-Files: src/netbeans.c
-
-Patch 7.3.503 (after 7.3.501)
-Problem: Warning for unused argument.
-Solution: Add UNUSED.
-Files: src/if_ruby.c
-
-Patch 7.3.504
-Problem: Commands in help files are not highlighted.
-Solution: Allow for commands in backticks. Adjust CTRL-] to remove the
- backticks.
-Files: src/ex_cmds.c
-
-Patch 7.3.505
-Problem: Test 11 fails on MS-Windows in some versions.
-Solution: Fix #ifdefs for whether filtering through a pipe is possible. Move
- setting b_no_eol_lnum back to where it was before patch 7.3.124.
- (David Pope)
-Files: src/feature.h, src/eval.c, src/ex_cmds.c, src/fileio.c
-
-Patch 7.3.506
-Problem: GTK gives an error when selecting a non-existent file.
-Solution: Add a handler to avoid the error. (Christian Brabandt)
-Files: src/gui_gtk.c
-
-Patch 7.3.507
-Problem: When exiting with unsaved changes, selecting an existing file in
- the file dialog, there is no dialog to ask whether the existing
- file should be overwritten. (Felipe G. Nievinski)
-Solution: Call check_overwrite() before writing. (Christian Brabandt)
-Files: src/ex_cmds.c, src/ex_cmds2.c, src/proto/ex_cmds.pro
-
-Patch 7.3.508
-Problem: Default for v:register is not set.
-Solution: Init v:register in eval_init(). Correct for 'clipboard' before the
- main loop. (Ingo Karkat)
-Files: src/eval.c, src/main.c
-
-Patch 7.3.509
-Problem: ":vimgrep" fails when 'autochdir' is set.
-Solution: A more generic solution for changing directory. (Ben Fritz)
-Files: src/quickfix.c
-
-Patch 7.3.510
-Problem: Test 77 fails on Solaris 7. (Michael Soyka)
-Solution: Replace any tabs with spaces.
-Files: src/testdir/test77.in
-
-Patch 7.3.511
-Problem: Using a FileReadCmd autocommand that does ":e! {file}" may cause a
- crash. (Christian Brabandt)
-Solution: Properly restore curwin->w_s.
-Files: src/fileio.c
-
-Patch 7.3.512
-Problem: undofile() returns a useless name when passed an empty string.
-Solution: Return an empty string. (Christian Brabandt)
-Files: src/eval.c
-
-Patch 7.3.513
-Problem: Cannot use CTRL-E and CTRL-Y with "r".
-Solution: Make CTRL-E and CTRL-Y work like in Insert mode. (Christian
- Brabandt)
-Files: src/edit.c, src/normal.c, src/proto/edit.pro
-
-Patch 7.3.514
-Problem: No completion for :history command.
-Solution: Add the completion and update the docs. Also fix ":behave"
- completion. (Dominique Pelle)
-Files: runtime/doc/cmdline.txt, runtime/doc/map.txt, src/ex_docmd.c,
- src/ex_getln.c, src/vim.h
-
-Patch 7.3.515
-Problem: 'wildignorecase' only applies to the last part of the path.
-Solution: Also ignore case for letters earlier in the path.
-Files: src/misc1.c
-
-Patch 7.3.516
-Problem: extend(o, o) may crash Vim.
-Solution: Fix crash and add test. (Thinca and Hirohito Higashi)
-Files: src/eval.c, src/testdir/test55.in, src/testdir/test55.ok
-
-Patch 7.3.517
-Problem: Crash when using "vipvv". (Alexandre Provencio)
-Solution: Don't let the text length become negative.
-Files: src/ops.c
-
-Patch 7.3.518
-Problem: When 'encoding' is a double-byte encoding ":helptags" may not find
- tags correctly.
-Solution: Use vim_strbyte() instead of vim_strchr(). (Yasuhiro Matsumoto)
-Files: src/ex_cmds.c
-
-Patch 7.3.519
-Problem: When completefunction returns it cannot indicate end of completion
- mode.
-Solution: Recognize completefunction returning -3. (Matsushita Shougo)
-Files: src/edit.c
-
-Patch 7.3.520
-Problem: Gvim starts up slow on Ubuntu 12.04.
-Solution: Move the call to gui_mch_init_check() to after fork(). (Yasuhiro
- Matsumoto) Do check $DISPLAY being set.
-Files: src/gui.c, src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro
-
-Patch 7.3.521
-Problem: Using "z=" on a multi-byte character may cause a crash.
-Solution: Don't use strlen() on an int pointer.
-Files: src/spell.c
-
-Patch 7.3.522
-Problem: Crash in vim_realloc() when using MEM_PROFILE.
-Solution: Avoid using a NULL argument. (Dominique Pelle)
-Files: src/eval.c
-
-Patch 7.3.523
-Problem: ":diffupdate" doesn't check for files changed elsewhere.
-Solution: Add the ! flag. (Christian Brabandt)
-Files: runtime/doc/diff.txt, src/diff.c, src/ex_cmds.h
-
-Patch 7.3.524 (after 7.3.523)
-Problem: Missing comma.
-Solution: Add the comma.
-Files: src/version.c
-
-Patch 7.3.525
-Problem: Compiler warning on 64 bit MS-Windows.
-Solution: Add type cast. (Mike Williams)
-Files: src/ex_getln.c
-
-Patch 7.3.526
-Problem: Confusing indenting for #ifdef.
-Solution: Remove and add indent. (Elias Diem)
-Files: src/normal.c
-
-Patch 7.3.527
-Problem: Clang complains about non-ASCII characters in a string.
-Solution: Change to \x88 form. (Dominique Pelle)
-Files: src/charset.c
-
-Patch 7.3.528
-Problem: Crash when closing last window in a tab. (Alex Efros)
-Solution: Use common code in close_last_window_tabpage(). (Christian
- Brabandt)
-Files: src/window.c
-
-Patch 7.3.529
-Problem: Using a count before "v" and "V" does not work (Kikyous)
-Solution: Make the count select that many characters or lines. (Christian
- Brabandt)
-Files: src/normal.c
-
-Patch 7.3.530 (after 7.3.520)
-Problem: Gvim does not work when 'guioptions' includes "f". (Davido)
-Solution: Call gui_mch_init_check() when running GUI in the foreground.
- (Yasuhiro Matsumoto)
-Files: src/gui.c
-
-Patch 7.3.531 (after 7.3.530)
-Problem: GUI does not work on MS-Windows.
-Solution: Add the missing #ifdef. (Patrick Avery)
-Files: src/gui.c
-
-Patch 7.3.532
-Problem: Compiler warning from Clang.
-Solution: Use a different way to point inside a string. (Dominique Pelle)
-Files: src/syntax.c
-
-Patch 7.3.533
-Problem: Memory leak when writing undo file.
-Solution: Free the ACL. (Dominique Pelle)
-Files: src/undo.c
-
-Patch 7.3.534 (after 7.3.461)
-Problem: When using an InsertCharPre autocommand autoindent fails.
-Solution: Proper handling of v:char. (Alexey Radkov)
-Files: src/edit.c
-
-Patch 7.3.535
-Problem: Many #ifdefs for MB_MAXBYTES.
-Solution: Also define MB_MAXBYTES without the +multi_byte feature. Fix
- places where the buffer didn't include space for a NUL byte.
-Files: src/arabic.c, src/edit.c, src/eval.c, src/getchar.c, src/mbyte.c,
- src/misc1.c, src/screen.c, src/spell.c, src/vim.h
-
-Patch 7.3.536
-Problem: When spell checking the German sharp s is not seen as a word
- character. (Aexl Bender)
-Solution: In utf_islower() return true for the sharp s. Note: also need
- updated spell file for this to take effect.
-Files: src/mbyte.c
-
-Patch 7.3.537
-Problem: Unnecessary call to init_spell_chartab().
-Solution: Delete the call.
-Files: src/spell.c
-
-Patch 7.3.538
-Problem: 'efm' does not handle Tabs in pointer lines.
-Solution: Add Tab support. Improve tests. (Lech Lorens)
-Files: src/quickfix.c, src/testdir/test10.in, src/testdir/test10.ok
-
-Patch 7.3.539
-Problem: Redrawing a character on the command line does not work properly
- for multi-byte characters.
-Solution: Count the number of bytes in a character. (Yukihiro Nakadaira)
-Files: src/ex_getln.c
-
-Patch 7.3.540
-Problem: Cursor is left on the text instead of the command line.
-Solution: Don't call setcursor() in command line mode.
-Files: src/getchar.c
-
-Patch 7.3.541
-Problem: When joining lines comment leaders need to be removed manually.
-Solution: Add the 'j' flag to 'formatoptions'. (Lech Lorens)
-Files: runtime/doc/change.txt, src/edit.c, src/ex_docmd.c, src/misc1.c,
- src/normal.c, src/ops.c, src/option.h, src/proto/misc1.pro,
- src/proto/ops.pro, src/search.c, src/testdir/test29.in,
- src/testdir/test29.ok
-
-Patch 7.3.542 (after 7.3.506)
-Problem: Function is sometimes unused.
-Solution: Add #ifdef.
-Files: src/gui_gtk.c
-
-Patch 7.3.543
-Problem: The cursor is in the wrong line after using ":copen". (John
- Beckett)
-Solution: Invoke more drastic redraw method.
-Files: src/eval.c
-
-Patch 7.3.544
-Problem: There is no good way to close a quickfix window when closing the
- last ordinary window.
-Solution: Add the QuitPre autocommand.
-Files: src/ex_docmd.c, src/fileio.c, src/vim.h
-
-Patch 7.3.545
-Problem: When closing a window or buffer autocommands may close it too,
- causing problems for where the autocommand was invoked from.
-Solution: Add the w_closing and b_closing flags. When set disallow ":q" and
- ":close" to prevent recursive closing.
-Files: src/structs.h, src/buffer.c, src/ex_docmd.c, src/window.c
-
-Patch 7.3.546
-Problem: Bogus line break.
-Solution: Remove the line break.
-Files: src/screen.c
-
-Patch 7.3.547 (after 7.3.541)
-Problem: Compiler warning for uninitialized variable.
-Solution: Initialize it.
-Files: src/ops.c
-
-Patch 7.3.548
-Problem: Compiler warning on 64 bit Windows.
-Solution: Add type cast. (Mike Williams)
-Files: src/ops.c
-
-Patch 7.3.549
-Problem: In 'cinoptions' "0s" is interpreted as one shiftwidth. (David
- Pineau)
-Solution: Use the zero as zero. (Lech Lorens)
-Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
-
-Patch 7.3.550 (after 7.3.541)
-Problem: With "j" in 'formatoptions' a list leader is not removed. (Gary
- Johnson)
-Solution: Don't ignore the start of a three part comment. (Lech Lorens)
-Files: src/ops.c, src/testdir/test29.in, src/testdir/test29.ok
-
-Patch 7.3.551
-Problem: When using :tablose a TabEnter autocommand is triggered too early.
- (Karthick)
-Solution: Don't trigger *Enter autocommands before closing the tab.
- (Christian Brabandt)
-Files: src/buffer.c, src/eval.c, src/ex_cmds2.c, src/fileio.c,
- src/proto/window.pro, src/window.c
-
-Patch 7.3.552
-Problem: Formatting inside comments does not use the "2" flag in
- 'formatoptions'.
-Solution: Support the "2" flag. (Tor Perkins)
-Files: src/vim.h, src/ops.c, src/edit.c, src/misc1.c,
- src/testdir/test68.in, src/testdir/test68.ok
-
-Patch 7.3.553
-Problem: With double-width characters and 'listchars' containing "precedes"
- the text is displayed one cell off.
-Solution: Check for double-width character being overwritten by the
- "precedes" character. (Yasuhiro Matsumoto)
-Files: src/screen.c
-
-Patch 7.3.554 (after 7.3.551)
-Problem: Compiler warning for unused argument.
-Solution: Add UNUSED.
-Files: src/window.c
-
-Patch 7.3.555
-Problem: Building on IBM z/OS fails.
-Solution: Adjust configure. Use the QUOTESED value from config.mk instead of
- the hard coded one in Makefile. (Stephen Bovy)
-Files: src/configure.in, src/auto/configure, src/Makefile
-
-Patch 7.3.556
-Problem: Compiler warnings on 64 bit Windows.
-Solution: Add type casts. (Mike Williams)
-Files: src/misc1.c
-
-Patch 7.3.557
-Problem: Crash when an autocommand wipes out a buffer when it is hidden.
-Solution: Restore the current window when needed. (Christian Brabandt)
-Files: src/buffer.c
-
-Patch 7.3.558
-Problem: Memory access error. (Gary Johnson)
-Solution: Allocate one more byte. (Dominique Pelle)
-Files: src/misc1.c
-
-Patch 7.3.559
-Problem: home_replace() does not work with 8.3 filename.
-Solution: Make ":p" expand 8.3 name to full path. (Yasuhiro Matsumoto)
-Files: src/eval.c, src/misc1.c
-
-Patch 7.3.560
-Problem: Get an error for a locked argument in extend().
-Solution: Initialize the lock flag for a dictionary. (Yukihiro Nakadaira)
-Files: src/eval.c
-
-Patch 7.3.561
-Problem: Using refresh: always in a complete function breaks the "."
- command. (Val Markovic)
-Solution: Add match leader to the redo buffer. (Yasuhiro Matsumoto)
-Files: src/edit.c
-
-Patch 7.3.562
-Problem: ":profdel" should not work when the +profile feature is disabled.
-Solution: Call ex_ni(). (Yasuhiro Matsumoto)
-Files: src/ex_cmds2.c
-
-Patch 7.3.563 (after 7.3.557)
-Problem: Can't build with tiny features.
-Solution: Add #ifdef.
-Files: src/buffer.c
-
-Patch 7.3.564 (after 7.3.559)
-Problem: Warning for pointer conversion.
-Solution: Add type cast.
-Files: src/misc1.c
-
-Patch 7.3.565
-Problem: Can't generate proto file for Python 3.
-Solution: Add PYTHON3_CFLAGS to LINT_CFLAGS.
-Files: src/Makefile
-
-Patch 7.3.566 (after 7.3.561)
-Problem: Redo after completion does not work correctly when refresh: always
- is not used. (Raymond Ko)
-Solution: Check the compl_opt_refresh_always flag. (Christian Brabandt)
-Files: src/edit.c
-
-Patch 7.3.567
-Problem: Missing copyright notice.
-Solution: Add Vim copyright notice. (Taro Muraoka)
-Files: src/dehqx.py
-
-Patch 7.3.568
-Problem: Bad indents for #ifdefs.
-Solution: Add and remove spaces. (Elias Diem)
-Files: src/globals.h
-
-Patch 7.3.569
-Problem: Evaluating Vim expression in Python is insufficient.
-Solution: Add vim.bindeval(). Also add pyeval() and py3eval(). (ZyX)
-Files: runtime/doc/eval.txt, runtime/doc/if_pyth.txt, src/eval.c,
- src/if_lua.c, src/if_py_both.h, src/if_python.c, src/if_python3.c,
- src/proto/eval.pro, src/proto/if_python.pro,
- src/proto/if_python3.pro, src/testdir/Make_amiga.mak,
- src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
- src/testdir/Make_os2.mak, src/testdir/Makefile,
- src/testdir/test86.in, src/testdir/test86.ok,
- src/testdir/test87.in, src/testdir/test87.ok
-
-Patch 7.3.570
-Problem: ":vimgrep" does not obey 'wildignore'.
-Solution: Apply 'wildignore' and 'suffixes' to ":vimgrep". (Ingo Karkat)
-Files: src/ex_cmds2.c, src/proto/ex_cmds2.pro, src/quickfix.c, src/spell.c
-
-Patch 7.3.571
-Problem: Duplicated condition.
-Solution: Remove one. (Dominique Pelle)
-Files: src/os_win32.c
-
-Patch 7.3.572
-Problem: Duplicate statement in if and else. (Dominique Pelle)
-Solution: Remove the condition and add a TODO.
-Files: src/gui_xmebw.c
-
-Patch 7.3.573
-Problem: Using array index before bounds checking.
-Solution: Swap the parts of the condition. (Dominique Pelle)
-Files: src/ops.c
-
-Patch 7.3.574
-Problem: When pasting a register in the search command line a CTRL-L
- character is not pasted. (Dominique Pelle)
-Solution: Escape the CTRL-L. (Christian Brabandt)
-Files: src/ex_getln.c
-
-Patch 7.3.575
-Problem: "ygt" tries to yank instead of giving an error. (Daniel Mueller)
-Solution: Check for a pending operator.
-Files: src/normal.c
-
-Patch 7.3.576
-Problem: Formatting of lists inside comments is not right yet.
-Solution: Use another solution and add a test. (Tor Perkins)
-Files: src/edit.c, src/misc1.c, src/testdir/test68.in,
- src/testdir/test69.ok
-
-Patch 7.3.577
-Problem: Size of memory does not fit in 32 bit unsigned.
-Solution: Use Kbyte instead of byte. Call GlobalMemoryStatusEx() instead of
- GlobalMemoryStatus() when available.
-Files: src/misc2.c, src/option.c, src/os_amiga.c, src/os_msdos.c,
- src/os_win16.c, src/os_win32.c
-
-Patch 7.3.578
-Problem: Misplaced declaration.
-Solution: Move declaration to start of block.
-Files: src/if_py_both.h
-
-Patch 7.3.579 (after 7.3.569)
-Problem: Can't compile with Python 2.5.
-Solution: Use PyCObject when Capsules are not available.
-Files: src/if_py_both.h, src/if_python.c, src/if_python3.c
-
-Patch 7.3.580
-Problem: Warning on 64 bit MS-Windows.
-Solution: Add type cast. (Mike Williams)
-Files: src/if_py_both.h
-
-Patch 7.3.581
-Problem: Problems compiling with Python.
-Solution: Pick UCS2 or UCS4 function at runtime. (lilydjwg)
-Files: src/if_python.c
-
-Patch 7.3.582 (after 7.3.576)
-Problem: Missing parts of the test OK file.
-Solution: Add the missing parts.
-Files: src/testdir/test68.ok
-
-Patch 7.3.583
-Problem: PyObject_NextNotImplemented is not defined before Python 2.7.
- (Danek Duvall)
-Solution: Add #ifdefs.
-Files: src/if_python.c
-
-Patch 7.3.584
-Problem: PyCObject is not always defined.
-Solution: Use PyObject instead.
-Files: src/if_py_both.h, src/if_python.c
-
-Patch 7.3.585
-Problem: Calling changed_bytes() too often.
-Solution: Move changed_bytes() out of a loop. (Tor Perkins)
-Files: src/edit.c
-
-Patch 7.3.586
-Problem: When compiling with Cygwin or MingW MEMORYSTATUSEX is not defined.
-Solution: Set the default for WINVER to 0x0500.
-Files: src/Make_ming.mak, src/Make_cyg.mak
-
-Patch 7.3.587
-Problem: Compiler warning for local var shadowing global var.
-Solution: Rename the var and move it to an inner block. (Christian Brabandt)
-Files: src/buffer.c
-
-Patch 7.3.588
-Problem: Crash on NULL pointer.
-Solution: Fix the immediate problem by checking for NULL. (Lech Lorens)
-Files: src/window.c
-
-Patch 7.3.589
-Problem: Crash when $HOME is not set.
-Solution: Check for a NULL pointer. (Chris Webb)
-Files: src/misc1.c
-
-Patch 7.3.590
-Problem: The '< and '> marks cannot be set directly.
-Solution: Allow setting '< and '>. (Christian Brabandt)
-Files: src/mark.c
-
-Patch 7.3.591
-Problem: Can only move to a tab by absolute number.
-Solution: Move a number of tabs to the left or the right. (Lech Lorens)
-Files: runtime/doc/tabpage.txt, src/ex_cmds.h, src/ex_docmd.c,
- src/testdir/test62.in, src/testdir/test62.ok, src/window.c
-
-Patch 7.3.592
-Problem: Vim on GTK does not support g:browsefilter.
-Solution: Add a GtkFileFilter to the file chooser. (Christian Brabandt)
-Files: src/gui_gtk.c
-
-Patch 7.3.593
-Problem: No easy way to decide if b:browsefilter will work.
-Solution: Add the browsefilter feature.
-Files: src/gui_gtk.c, src/eval.c, src/vim.h
-
-Patch 7.3.594
-Problem: The X command server doesn't work perfectly. It sends an empty
- reply for as-keys requests.
-Solution: Remove duplicate ga_init2(). Do not send a reply for as-keys
- requests. (Brian Burns)
-Files: src/if_xcmdsrv.c
-
-Patch 7.3.595
-Problem: The X command server responds slowly
-Solution: Change the loop that waits for replies. (Brian Burns)
-Files: src/if_xcmdsrv.c
-
-Patch 7.3.596
-Problem: Can't remove all signs for a file or buffer.
-Solution: Support "*" for the sign id. (Christian Brabandt)
-Files: runtime/doc/sign.txt, src/buffer.c, src/ex_cmds.c,
- src/proto/buffer.pro
-
-Patch 7.3.597
-Problem: 'clipboard' "autoselect" only applies to the * register. (Sergey
- Vakulenko)
-Solution: Make 'autoselect' work for the + register. (Christian Brabandt)
- Add the "autoselectplus" option in 'clipboard' and the "P" flag in
- 'guioptions'.
-Files: runtime/doc/options.txt, src/normal.c, src/ops.c, src/screen.c,
- src/ui.c, src/globals.h, src/proto/ui.pro, src/option.h, src/gui.c
-
-Patch 7.3.598
-Problem: Cannot act upon end of completion. (Taro Muraoka)
-Solution: Add an autocommand event that is triggered when completion has
- finished. (Idea by Florian Klein)
-Files: src/edit.c, src/fileio.c, src/vim.h
-
-Patch 7.3.599 (after 7.3.597)
-Problem: Missing change in one file.
-Solution: Patch for changed clip_autoselect().
-Files: src/option.c
-
-Patch 7.3.600
-Problem: <f-args> is not expanded properly with DBCS encoding.
-Solution: Skip over character instead of byte. (Yukihiro Nakadaira)
-Files: src/ex_docmd.c
-
-Patch 7.3.601
-Problem: Bad code style.
-Solution: Insert space, remove parens.
-Files: src/farsi.c
-
-Patch 7.3.602
-Problem: Missing files in distribution.
-Solution: Update the list of files.
-Files: Filelist
-
-Patch 7.3.603
-Problem: It is possible to add replace builtin functions by calling
- extend() on g:.
-Solution: Add a flag to a dict to indicate it is a scope. Check for
- existing functions. (ZyX)
-Files: src/buffer.c, src/eval.c, src/proto/eval.pro, src/structs.h,
- src/testdir/test34.in, src/testdir/test34.ok, src/window.c
-
-Patch 7.3.604
-Problem: inputdialog() doesn't use the cancel argument in the console.
- (David Fishburn)
-Solution: Use the third argument. (Christian Brabandt)
-Files: src/eval.c
-
-Patch 7.3.605 (after 7.3.577)
-Problem: MS-Windows: Can't compile with older compilers. (Titov Anatoly)
-Solution: Add #ifdef for MEMORYSTATUSEX.
-Files: src/os_win32.c
-
-Patch 7.3.606
-Problem: CTRL-P completion has a problem with multi-byte characters.
-Solution: Check for next character being NUL properly. (Yasuhiro Matsumoto)
-Files: src/search.c, src/macros.h
-
-Patch 7.3.607
-Problem: With an 8 color terminal the selected menu item is black on black,
- because darkGrey as bg is the same as black.
-Solution: Swap fg and bg colors. (James McCoy)
-Files: src/syntax.c
-
-Patch 7.3.608
-Problem: winrestview() does not always restore the view correctly.
-Solution: Call win_new_height() and win_new_width(). (Lech Lorens)
-Files: src/eval.c, src/proto/window.pro, src/window.c
-
-Patch 7.3.609
-Problem: File names in :checkpath! output are garbled.
-Solution: Check for \zs in the pattern. (Lech Lorens)
-Files: src/search.c, src/testdir/test17.in, src/testdir/test17.ok
-
-Patch 7.3.610
-Problem: Cannot operate on the text that a search pattern matches.
-Solution: Add the "gn" and "gN" commands. (Christian Brabandt)
-Files: runtime/doc/index.txt, runtime/doc/visual.txt, src/normal.c,
- src/proto/search.pro, src/search.c, src/testdir/test53.in,
- src/testdir/test53.ok
-
-Patch 7.3.611
-Problem: Can't use Vim dictionary as self argument in Python.
-Solution: Fix the check for the "self" argument. (ZyX)
-Files: src/if_py_both.h
-
-Patch 7.3.612
-Problem: Auto formatting messes up text when 'fo' contains "2". (ZyX)
-Solution: Decrement "less_cols". (Tor Perkins)
-Files: src/misc1.c, src/testdir/test68.in, src/testdir/test68.ok
-
-Patch 7.3.613
-Problem: Including Python's config.c in the build causes trouble. It is
- not clear why it was there.
-Solution: Omit the config file. (James McCoy)
-Files: src/Makefile, src/auto/configure, src/configure.in
-
-Patch 7.3.614
-Problem: Number argument gets turned into a number while it should be a
- string.
-Solution: Add flag to the call_vim_function() call. (Yasuhiro Matsumoto)
-Files: src/edit.c, src/eval.c, src/proto/eval.pro
-
-Patch 7.3.615
-Problem: Completion for a user command does not recognize backslash before
- a space.
-Solution: Recognize escaped characters. (Yasuhiro Matsumoto)
-Files: src/ex_docmd.c
-
-Patch 7.3.616 (after 7.3.610)
-Problem: Can't compile without +visual.
-Solution: Add #ifdef.
-Files: src/normal.c
-
-Patch 7.3.617 (after 7.3.615)
-Problem: Hang on completion.
-Solution: Skip over the space. (Yasuhiro Matsumoto)
-Files: src/ex_docmd.c
-
-Patch 7.3.618 (after 7.3.616)
-Problem: Still doesn't compile with small features.
-Solution: Move current_search() out of #ifdef. (Dominique Pelle)
-Files: src/normal.c, src/search.c
-
-Patch 7.3.619
-Problem: When executing a shell command Vim may become slow to respond.
-Solution: Don't wait after every processed message. (idea by Yasuhiro
- Matsumoto)
-Files: src/os_win32.c
-
-Patch 7.3.620
-Problem: Building with recent Ruby on Win32 doesn't work.
-Solution: Add a separate argument for the API version. (Yasuhiro Matsumoto)
-Files: src/Make_ming.mak, src/Make_mvc.mak
-
-Patch 7.3.621
-Problem: Compiler warnings on 64 bit windows.
-Solution: Add type casts. (Mike Williams)
-Files: src/ex_docmd.c, src/search.c
-
-Patch 7.3.622
-Problem: XPM library for Win32 can't be found.
-Solution: Suggest using the one from the Vim ftp site.
-Files: src/Make_mvc.mak
-
-Patch 7.3.623
-Problem: Perl 5.14 commands crash Vim on MS-Windows.
-Solution: Use perl_get_sv() instead of GvSV(). (Raymond Ko)
-Files: src/if_perl.xs
-
-Patch 7.3.624
-Problem: When cancelling input() it returns the third argument. That should
- only happen for inputdialog().
-Solution: Check if inputdialog() was used. (Hirohito Higashi)
-Files: src/eval.c
-
-Patch 7.3.625
-Problem: "gn" does not handle zero-width matches correctly.
-Solution: Handle zero-width patterns specially. (Christian Brabandt)
-Files: src/search.c
-
-Patch 7.3.626
-Problem: Python interface doesn't build with Python 2.4 or older.
-Solution: Define Py_ssize_t. (Benjamin Bannier)
-Files: src/if_py_both.h
-
-Patch 7.3.627
-Problem: When using the "n" flag with the ":s" command a \= substitution
- will not be evaluated.
-Solution: Do perform the evaluation, so that a function can be invoked at
- every matching position without changing the text. (Christian
- Brabandt)
-Files: src/ex_cmds.c
-
-Patch 7.3.628
-Problem: ":open" does not allow for a !, which results in a confusing error
- message. (Shawn Wilson)
-Solution: Allow ! on ":open". (Christian Brabandt)
-Files: src/ex_cmds.h
-
-Patch 7.3.629
-Problem: There is no way to make 'shiftwidth' follow 'tabstop'.
-Solution: When 'shiftwidth' is zero use the value of 'tabstop'. (Christian
- Brabandt)
-Files: src/edit.c, src/ex_getln.c, src/fold.c, src/misc1.c, src/ops.c,
- src/option.c, src/proto/option.pro
-
-Patch 7.3.630
-Problem: "|" does not behave correctly when 'virtualedit' is set.
-Solution: Call validate_virtcol(). (David Bürgin)
-Files: src/normal.c
-
-Patch 7.3.631
-Problem: Cannot complete user names.
-Solution: Add user name completion. (Dominique Pelle)
-Files: runtime/doc/map.txt, src/auto/configure, src/config.h.in,
- src/configure.in, src/ex_docmd.c, src/ex_getln.c, src/misc1.c,
- src/misc2.c, src/proto/misc1.pro, src/vim.h
-
-Patch 7.3.632
-Problem: Cannot select beyond 222 columns with the mouse in xterm.
-Solution: Add support for SGR mouse tracking. (Hayaki Saito)
-Files: runtime/doc/options.txt, src/feature.h, src/keymap.h, src/misc2.c,
- src/option.h, src/os_unix.c, src/term.c, src/version.c
-
-Patch 7.3.633
-Problem: Selection remains displayed as selected after selecting another
- text.
-Solution: Call xterm_update() before select(). (Andrew Pimlott)
-Files: src/os_unix.c
-
-Patch 7.3.634
-Problem: Month/Day format for undo is confusing. (Marcin Szamotulski)
-Solution: Always use Year/Month/Day, should work for everybody.
-Files: src/undo.c
-
-Patch 7.3.635
-Problem: Issue 21: System call during startup sets 'lines' to a wrong
- value. (Karl Yngve)
-Solution: Don't set the shell size while the GUI is still starting up.
- (Christian Brabandt)
-Files: src/ui.c
-
-Patch 7.3.636 (after 7.3.625)
-Problem: Not all zero-width matches handled correctly for "gn".
-Solution: Move zero-width detection to a separate function. (Christian
- Brabandt)
-Files: src/search.c
-
-Patch 7.3.637
-Problem: Cannot catch the error caused by a foldopen when there is no fold.
- (ZyX, Issue 48)
-Solution: Do not break out of the loop early when inside try/catch.
- (Christian Brabandt) Except when there is a syntax error.
-Files: src/ex_docmd.c, src/globals.h
-
-Patch 7.3.638
-Problem: Unnecessary redraw of the previous character.
-Solution: Check if the character is double-width. (Jon Long)
-Files: src/screen.c
-
-Patch 7.3.639
-Problem: It's not easy to build Vim on Windows with XPM support.
-Solution: Include the required files, they are quite small. Update the
- MSVC makefile to use them. Binary files are in the next patch.
- (Sergey Khorev)
-Files: src/xpm/COPYRIGHT, src/xpm/README.txt, src/xpm/include/simx.h,
- src/xpm/include/xpm.h, src/Make_mvc.mak, src/bigvim.bat,
- src/bigvim64.bat, Filelist
-
-Patch 7.3.640
-Problem: It's not easy to build Vim on Windows with XPM support.
-Solution: Binary files for 7.3.639. (Sergey Khorev)
-Files: src/xpm/x64/lib/libXpm.lib, src/xpm/x86/lib/libXpm.a,
- src/xpm/x86/lib/libXpm.lib
-
-Patch 7.3.641
-Problem: ":mkview" uses ":normal" instead of ":normal!" for folds. (Dan)
-Solution: Add the bang. (Christian Brabandt)
-Files: src/fold.c
-
-Patch 7.3.642
-Problem: Segfault with specific autocommands. Was OK after 7.3.449 and
- before 7.3.545. (Richard Brown)
-Solution: Pass TRUE for abort_if_last in the call to close_buffer().
- (Christian Brabandt)
-Files: src/window.c
-
-Patch 7.3.643 (after 7.3.635)
-Problem: MS-Windows: When starting gvim maximized 'lines' and 'columns' are
- wrong. (Christian Robinson)
-Solution: Move the check for gui.starting from ui_get_shellsize() to
- check_shellsize().
-Files: src/ui.c, src/term.c
-
-Patch 7.3.644
-Problem: Dead code for BeOS GUI.
-Solution: Remove unused __BEOS__ stuff.
-Files: src/gui.c
-
-Patch 7.3.645
-Problem: No tests for patch 7.3.625 and 7.3.637.
-Solution: Add more tests for the "gn" command and try/catch. (Christian
- Brabandt)
-Files: src/testdir/test53.in, src/testdir/test53.ok,
- src/testdir/test55.in, src/testdir/test55.ok
-
-Patch 7.3.646
-Problem: When reloading a buffer the undo file becomes unusable unless ":w"
- is executed. (Dmitri Frank)
-Solution: After reloading the buffer write the undo file. (Christian
- Brabandt)
-Files: src/fileio.c
-
-Patch 7.3.647
-Problem: "gnd" doesn't work correctly in Visual mode.
-Solution: Handle Visual mode differently in "gn". (Christian Brabandt)
-Files: src/search.c, src/testdir/test53.in, src/testdir/test53.ok
-
-Patch 7.3.648
-Problem: Crash when using a very long file name. (ZyX)
-Solution: Properly check length of buffer space.
-Files: src/buffer.c
-
-Patch 7.3.649
-Problem: When 'clipboard' is set to "unnamed" small deletes end up in the
- numbered registers. (Ingo Karkat)
-Solution: Use the original register name to decide whether to put a delete
- in a numbered register. (Christian Brabandt)
-Files: src/ops.c
-
-Patch 7.3.650
-Problem: Completion after ":help \{-" gives an error message and messes up
- the command line.
-Solution: Cancel the tag search if the pattern can't be compiled. (Yasuhiro
- Matsumoto)
-Files: src/tag.c
-
-Patch 7.3.651
-Problem: Completion after ":help \{-" gives an error message.
-Solution: Prepend a backslash.
-Files: src/ex_cmds.c
-
-Patch 7.3.652
-Problem: Workaround for Python crash isn't perfect.
-Solution: Change the type of the length argument. (Sean Estabrooks)
-Files: src/if_py_both.h
-
-Patch 7.3.653
-Problem: MingW needs build rule for included XPM files. Object directory
- for 32 and 64 builds is the same, also for MSVC.
-Solution: Add MingW build rule to use included XPM files. Add the CPU or
- architecture to the object directory name. (Sergey Khorev)
-Files: src/Make_ming.mak, src/Make_mvc.mak, src/xpm/README.txt
-
-Patch 7.3.654
-Problem: When creating a Vim dictionary from Python objects an empty key
- might be used.
-Solution: Do not use empty keys, throw an IndexError. (ZyX)
-Files: src/if_py_both.h
-
-Patch 7.3.655
-Problem: 64 bit MingW xpm .a file is missing.
-Solution: Add the file. (Sergey Khorev)
-Files: src/xpm/x64/lib/libXpm.a
-
-Patch 7.3.656
-Problem: Internal error in :pyeval.
-Solution: Handle failed object conversion. (ZyX)
-Files: src/if_python.c, src/if_python3.c
-
-Patch 7.3.657
-Problem: Python bindings silently truncate string values containing NUL.
-Solution: Fail when a string contains NUL. (ZyX)
-Files: src/if_python.c, src/if_python3.c
-
-Patch 7.3.658
-Problem: NUL bytes truncate strings when converted from Python.
-Solution: Handle truncation as an error. (ZyX)
-Files: src/if_py_both.h, src/if_python3.c
-
-Patch 7.3.659
-Problem: Recent Python changes are not tested.
-Solution: Add tests for Python bindings. (ZyX)
-Files: src/testdir/test86.in, src/testdir/test86.ok,
- src/testdir/test87.in, src/testdir/test87.ok
-
-Patch 7.3.660
-Problem: ":help !" jumps to help for ":!".
-Solution: Adjust check for tag header line. (Andy Wokula)
-Files: src/tag.c
-
-Patch 7.3.661 (after 7.3.652)
-Problem: SEGV in Python code.
-Solution: Initialize len to zero. Use the right function depending on
- version. (Maxim Philippov)
-Files: src/if_py_both.h, src/if_python.c, src/if_python3.c
-
-Patch 7.3.662
-Problem: Can't build Ruby interface with Ruby 1.9.3.
-Solution: Add missing functions. (V. Ondruch)
-Files: src/if_ruby.c
-
-Patch 7.3.663
-Problem: End of color scheme name not clear in E185. (Aaron Lewis)
-Solution: Put the name in single quotes.
-Files: src/ex_docmd.c
-
-Patch 7.3.664
-Problem: Buffer overflow in unescaping text. (Raymond Ko)
-Solution: Limit check for multi-byte character to 4 bytes.
-Files: src/mbyte.c
-
-Patch 7.3.665
-Problem: MSVC 11 is not supported. (Raymond Ko)
-Solution: Recognize MSVC 11. (Gary Willoughby)
-Files: src/Make_mvc.mak
-
-Patch 7.3.666
-Problem: With MSVC 11 Win32.mak is not found.
-Solution: Add the SDK_INCLUDE_DIR variable. (Raymond Ko)
-Files: src/Make_mvc.mak
-
-Patch 7.3.667
-Problem: Unused variables in Perl interface.
-Solution: Adjust #ifdefs.
-Files: src/if_perl.xs
-
-Patch 7.3.668
-Problem: Building with Perl loaded dynamically still uses static library.
-Solution: Adjust use of PL_thr_key. (Ken Takata)
-Files: src/if_perl.xs
-
-Patch 7.3.669
-Problem: When building with Cygwin loading Python dynamically fails.
-Solution: Use DLLLIBRARY instead of INSTSONAME. (Ken Takata)
-Files: src/configure.in, src/auto/configure
-
-Patch 7.3.670
-Problem: Python: memory leaks when there are exceptions.
-Solution: Add DICTKEY_UNREF in the right places. (ZyX)
-Files: src/if_py_both.h
-
-Patch 7.3.671
-Problem: More Python code can be shared between Python 2 and 3.
-Solution: Move code to if_py_both.h. (ZyX)
-Files: src/if_py_both.h, src/if_python.c, src/if_python3.c
-
-Patch 7.3.672
-Problem: Not possible to lock/unlock lists in Python interface.
-Solution: Add .locked and .scope attributes. (ZyX)
-Files: runtime/doc/if_pyth.txt, src/if_py_both.h, src/if_python.c,
- src/if_python3.c, src/testdir/test86.in, src/testdir/test86.ok,
- src/testdir/test87.in, src/testdir/test87.ok
-
-Patch 7.3.673
-Problem: Using "gN" while 'selection' is "exclusive" misses one character.
- (Ben Fritz)
-Solution: Check the direction when compensating for exclusive selection.
- (Christian Brabandt)
-Files: src/search.c
-
-Patch 7.3.674
-Problem: Can't compile with Lua/dyn on Cygwin.
-Solution: Adjust configure to use the right library name. (Ken Takata)
-Files: src/configure.in, src/auto/configure
-
-Patch 7.3.675
-Problem: Using uninitialized memory with very long file name.
-Solution: Put NUL after text when it is truncated. (ZyX)
-Files: src/buffer.c
-
-Patch 7.3.676
-Problem: Ruby compilation on Windows 32 bit doesn't work.
-Solution: Only use some functions for 64 bit. (Ken Takata)
-Files: src/if_ruby.c
-
-Patch 7.3.677
-Problem: buf_spname() is used inconsistently.
-Solution: Make the return type a char_u pointer. Check the size of the
- returned string.
-Files: src/buffer.c, src/proto/buffer.pro, src/ex_cmds2.c,
- src/ex_docmd.c, src/memline.c, src/screen.c
-
-Patch 7.3.678
-Problem: Ruby .so name may not be correct.
-Solution: Use the LIBRUBY_SO entry from the config. (Vit Ondruch)
-Files: src/configure.in, src/auto/configure
-
-Patch 7.3.679
-Problem: Ruby detection uses Config, newer Ruby versions use RbConfig.
-Solution: Detect the need to use RbConfig. (Vit Ondruch)
-Files: src/configure.in, src/auto/configure
-
-Patch 7.3.680
-Problem: Some files missing in the list of distributed files.
-Solution: Add lines for new files.
-Files: Filelist
-
-Patch 7.3.681 (after 7.3.680)
-Problem: List of distributed files picks up backup files.
-Solution: Make tutor patterns more specific.
-Files: Filelist
-
-Patch 7.3.682 (after 7.3.677)
-Problem: Compiler complains about incompatible types.
-Solution: Remove type casts. (hint by Danek Duvall)
-Files: src/edit.c
-
-Patch 7.3.683
-Problem: ":python" may crash when vimbindeval() returns None.
-Solution: Check for v_string to be NULL. (Yukihiro Nakadaira)
-Files: src/if_py_both.h
-
-Patch 7.3.684
-Problem: "make test" does not delete lua.vim.
-Solution: Add lua.vim to the clean target. (Simon Ruderich)
-Files: src/testdir/Makefile, src/testdir/Make_dos.mak,
- src/testdir/Make_ming.mak, src/testdir/Make_vms.mms
-
-Patch 7.3.685
-Problem: No test for what patch 7.3.673 fixes.
-Solution: Add a test. (Christian Brabandt)
-Files: src/testdir/test53.in, src/testdir/test53.ok
-
-Patch 7.3.686
-Problem: Using CTRL-\ e mappings is useful also when entering an
- expression, but it doesn't work. (Marcin Szamotulski)
-Solution: Allow using CTRL-\ e when entering an expression if it was not
- typed.
-Files: src/ex_getln.c
-
-Patch 7.3.687
-Problem: Test 16 fails when $DISPLAY is not set.
-Solution: Skip the test when $DISPLAY is not set.
-Files: src/testdir/test16.in
-
-Patch 7.3.688
-Problem: Python 3.3 is not supported.
-Solution: Add Python 3.3 support (Ken Takata)
-Files: src/if_python3.c
-
-Patch 7.3.689
-Problem: MzScheme and Lua may use a NULL string.
-Solution: Use an empty string instead of NULL. (Yukihiro Nakadaira)
-Files: src/if_lua.c, src/if_mzsch.c
-
-Patch 7.3.690
-Problem: When the current directory name is exactly the maximum path length
- Vim may crash.
-Solution: Only add "/" when there is room. (Danek Duvall)
-Files: src/os_unix.c
-
-Patch 7.3.691
-Problem: State specific to the Python thread is discarded.
-Solution: Keep state between threads. (Paul)
-Files: src/if_python.c
-
-Patch 7.3.692
-Problem: Can't build GTK version with GTK 2.0.
-Solution: Put GtkFileFilter declaration in the right place. (Yegappan
- Lakshmanan)
-Files: src/gui_gtk.c
-
-Patch 7.3.693
-Problem: Can't make 'softtabstop' follow 'shiftwidth'.
-Solution: When 'softtabstop' is negative use the value of 'shiftwidth'.
- (so8res)
-Files: src/edit.c, src/option.c, src/proto/option.pro
-
-Patch 7.3.694
-Problem: Now that 'shiftwidth' may use the value of 'tabstop' it is not so
- easy to use in indent files.
-Solution: Add the shiftwidth() function. (so8res)
-Files: runtime/doc/eval.txt, src/eval.c
-
-Patch 7.3.695
-Problem: Balloon cannot show multi-byte text.
-Solution: Properly deal with multi-byte characters. (Dominique Pelle)
-Files: src/gui_beval.c, src/ui.c
-
-Patch 7.3.696
-Problem: Message about added spell language can be wrong.
-Solution: Give correct message. Add g:menutrans_set_lang_to to allow for
- translation. (Jiri Sedlak)
-Files: runtime/menu.vim
-
-Patch 7.3.697
-Problem: Leaking resources when setting GUI font.
-Solution: Free the font. (Ken Takata)
-Files: src/syntax.c
-
-Patch 7.3.698
-Problem: Python 3 does not preserve state between commands.
-Solution: Preserve the state. (Paul Ollis)
-Files: src/if_python.c, src/if_python3.c
-
-Patch 7.3.699
-Problem: When 'ttymouse' is set to "sgr" manually, it is overruled by
- automatic detection.
-Solution: Do not use automatic detection when 'ttymouse' was set manually.
- (Hayaki Saito)
-Files: src/term.c
-
-Patch 7.3.700
-Problem: Cannot detect URXVT and SGR mouse support.
-Solution: add +mouse_urxvt and +mouse_sgr. (Hayaki Saito)
-Files: src/feature.h, src/eval.c
-
-Patch 7.3.701
-Problem: MS-Windows: Crash with stack overflow when setting 'encoding'.
-Solution: Handle that loading the iconv library may be called recursively.
- (Jiri Sedlak)
-Files: src/os_win32.c
-
-Patch 7.3.702
-Problem: Nmake from VS6 service pack 6 is not recognized.
-Solution: Detect the version number. (Jiri Sedlak)
-Files: src/Make_mvc.mak
-
-Patch 7.3.703
-Problem: When 'undofile' is reset the hash is computed unnecessarily.
-Solution: Only compute the hash when the option was set. (Christian Brabandt)
-Files: src/option.c
-
-Patch 7.3.704
-Problem: Repeating "cgn" does not always work correctly.
-Solution: Also fetch the operator character. (Christian Brabandt)
-Files: src/normal.c
-
-Patch 7.3.705
-Problem: Mouse features are not sorted properly. (Tony Mechelynck)
-Solution: Put the mouse features in alphabetical order.
-Files: src/version.c
-
-Patch 7.3.706 (after 7.3.697)
-Problem: Can't build Motif version.
-Solution: Fix wrongly named variable. (Ike Devolder)
-Files: src/syntax.c
-
-Patch 7.3.707 (after 7.3.701)
-Problem: Problems loading a library for a file name with non-latin
- characters.
-Solution: Use wide system functions when possible. (Ken Takata)
-Files: src/os_win32.c, src/os_win32.h
-
-Patch 7.3.708
-Problem: Filler lines above the first line may be hidden when opening Vim.
-Solution: Change how topfill is computed. (Christian Brabandt)
-Files: src/diff.c, src/testdir/test47.in, src/testdir/test47.ok
-
-Patch 7.3.709
-Problem: Compiler warning for unused argument.
-Solution: Add UNUSED.
-Files: src/eval.c
-
-Patch 7.3.710 (after 7.3.704)
-Problem: Patch 7.3.704 breaks "fn".
-Solution: Add check for ca.cmdchar. (Christian Brabandt)
-Files: src/normal.c
-
-Patch 7.3.711 (after 7.3.688)
-Problem: vim.current.buffer is not available. (lilydjwg)
-Solution: Use py3_PyUnicode_AsUTF8 instead of py3_PyUnicode_AsUTF8String.
- (Ken Takata)
-Files: src/if_python3.c
-
-Patch 7.3.712
-Problem: Nmake from VS2010 SP1 is not recognized.
-Solution: Add the version number. (Ken Takata)
-Files: src/Make_mvc.mak
-
-Patch 7.3.713
-Problem: printf() can only align to bytes, not characters.
-Solution: Add the "S" item. (Christian Brabandt)
-Files: runtime/doc/eval.txt, src/message.c
-
-Patch 7.3.714
-Problem: Inconsistency: :set can be used in the sandbox, but :setlocal and
- :setglobal cannot. (Michael Henry)
-Solution: Fix the flags for :setlocal and :setglobal. (Christian Brabandt)
-Files: src/ex_cmds.h
-
-Patch 7.3.715
-Problem: Crash when calling setloclist() in BufUnload autocmd. (Marcin
- Szamotulski)
-Solution: Set w_llist to NULL when it was freed. Also add a test.
- (Christian Brabandt)
-Files: src/quickfix.c, src/testdir/test49.ok, src/testdir/test49.vim
-
-Patch 7.3.716
-Problem: Error on exit when using Python 3.
-Solution: Remove PythonIO_Fini(). (Roland Puntaier)
-Files: src/if_python3.c
-
-Patch 7.3.717
-Problem: When changing the font size, only MS-Windows limits the window
- size.
-Solution: Also limit the window size on other systems. (Roland Puntaier)
-Files: src/gui.c
-
-Patch 7.3.718
-Problem: When re-using the current buffer the buffer-local options stay.
-Solution: Re-initialize the buffer-local options. (Christian Brabandt)
-Files: src/buffer.c
-
-Patch 7.3.719
-Problem: Cannot run new version of cproto, it fails on missing include
- files.
-Solution: Add lots of #ifndef PROTO
-Files: src/os_amiga.c, src/os_amiga.h, src/gui_w16.c, src/gui_w48.c,
- src/gui_w32.c, src/vimio.h, src/os_msdos.c, src/os_msdos.h,
- src/os_win16.h, src/os_win16.c, src/os_win32.h, src/os_win32.c,
- src/os_mswin.c, src/gui_photon.c, src/os_unix.h, src/os_beos.c,
- src/os_beos.h
-
-Patch 7.3.720
-Problem: Proto files are outdated.
-Solution: Update the newly generated proto files.
-Files: src/proto/digraph.pro, src/proto/fold.pro, src/proto/misc1.pro,
- src/proto/move.pro, src/proto/screen.pro, src/proto/search.pro,
- src/proto/os_win32.pro, src/proto/os_mswin.pro,
- src/proto/os_beos.pro
-
-Patch 7.3.721
-Problem: Ruby interface defines local functions globally.
-Solution: Make the functions static.
-Files: src/if_ruby.c
-
-Patch 7.3.722
-Problem: Perl flags may contain "-g", which breaks "make proto".
-Solution: Filter out the "-g" flag for cproto. (Ken Takata)
-Files: src/Makefile
-
-Patch 7.3.723
-Problem: Various tiny problems.
-Solution: Various tiny fixes.
-Files: src/gui_mac.c, src/xpm_w32.c, src/netbeans.c, src/sha256.c,
- src/if_sniff.c, README.txt
-
-Patch 7.3.724
-Problem: Building with Ruby and Tcl on MS-Windows 64 bit does not work.
-Solution: Remove Ruby and Tcl from the big MS-Windows build.
-Files: src/bigvim64.bat
-
-Patch 7.3.725
-Problem: :aboveleft and :belowright have no effect on :copen.
-Solution: Check for cmdmod.split. (Christian Brabandt)
-Files: src/quickfix.c
-
-Patch 7.3.726
-Problem: Typos and duplicate info in README.
-Solution: Fix the text.
-Files: README.txt
-
-Patch 7.3.727
-Problem: Can't always find Win32.mak when building GvimExt.
-Solution: Use same mechanism as in Make_mvc.mak. (Cade Foster)
-Files: src/GvimExt/Makefile
-
-Patch 7.3.728
-Problem: Cannot compile with MzScheme interface on Ubuntu 12.10.
-Solution: Find the collects directory under /usr/share.
-Files: src/configure.in, src/auto/configure
-
-Patch 7.3.729
-Problem: Building with Ruby fails on some systems.
-Solution: Remove "static" and add #ifndef PROTO. (Ken Takata)
-Files: src/if_ruby.c
-
-Patch 7.3.730
-Problem: Crash in PHP file when using syntastic. (Ike Devolder)
-Solution: Avoid using NULL pointer. (Christian Brabandt)
-Files: src/quickfix.c
-
-Patch 7.3.731
-Problem: Py3Init_vim() is exported unnecessarily.
-Solution: Make it static. (Ken Takata)
-Files: src/if_python3.c
-
-Patch 7.3.732
-Problem: Compiler warnings for function arguments.
-Solution: Use inteptr_t instead of long.
-Files: src/if_mzsch.c, src/main.c
-
-Patch 7.3.733
-Problem: Tests fail when including MzScheme.
-Solution: Change #ifdefs for vim_main2().
-Files: src/main.c
-
-Patch 7.3.734
-Problem: Cannot put help files in a sub-directory.
-Solution: Make :helptags work for sub-directories. (Charles Campbell)
-Files: src/ex_cmds.c
-
-Patch 7.3.735
-Problem: Cannot build Ruby 1.9 with MingW or Cygwin.
-Solution: Add another include directory. (Ken Takata)
-Files: src/Make_cyg.mak, src/Make_ming.mak
-
-Patch 7.3.736
-Problem: File name completion in input() escapes white space. (Frederic
- Hardy)
-Solution: Do not escape white space. (Christian Brabandt)
-Files: src/ex_getln.c
-
-Patch 7.3.737
-Problem: When using do_cmdline() recursively did_endif is not reset,
- causing messages to be overwritten.
-Solution: Reset did_endif. (Christian Brabandt)
-Files: src/ex_docmd.c
-
-Patch 7.3.738 (after 7.3.730)
-Problem: Unused function argument.
-Solution: Remove it. (Christian Brabandt)
-Files: src/quickfix.c
-
-Patch 7.3.739
-Problem: Computing number of lines may have an integer overflow.
-Solution: Check for MAXCOL explicitly. (Dominique Pelle)
-Files: src/move.c
-
-Patch 7.3.740
-Problem: IOC tool complains about undefined behavior for int.
-Solution: Change to unsigned int. (Dominique Pelle)
-Files: src/hashtab.c, src/misc2.c
-
-Patch 7.3.741 (after 7.3.737)
-Problem: Tiny build fails.
-Solution: Move #ifdef. (Ike Devolder)
-Files: src/ex_docmd.c
-
-Patch 7.3.742
-Problem: Leaking memory when :vimgrep restores the directory.
-Solution: Free the allocated memory. (Christian Brabandt)
-Files: src/quickfix.c
-
-Patch 7.3.743 (after 7.3.741)
-Problem: Tiny build still fails.
-Solution: Add #else in the right place.
-Files: src/ex_docmd.c
-
-Patch 7.3.744
-Problem: 64 bit compiler warning.
-Solution: Add type cast. (Mike Williams)
-Files: src/ex_cmds.c
-
-Patch 7.3.745
-Problem: Automatically setting 'ttymouse' doesn't work.
-Solution: Reset the "option was set" flag when using the default.
-Files: src/option.c, src/proto/option.pro, src/term.c
-
-Patch 7.3.746
-Problem: Memory leaks when using location lists.
-Solution: Set qf_title to something. (Christian Brabandt)
-Files: src/eval.c, src/quickfix.c
-
-Patch 7.3.747
-Problem: When characters are concealed text aligned with tabs are no longer
- aligned, e.g. at ":help :index".
-Solution: Compensate space for tabs for concealed characters. (Dominique
- Pelle)
-Files: src/screen.c
-
-Patch 7.3.748
-Problem: Cannot properly test conceal mode.
-Solution: Add the screencol() and screenrow() functions. Use them in
- test88. (Simon Ruderich)
-Files: runtime/doc/eval.txt, src/eval.c, src/proto/screen.pro,
- src/screen.c, src/testdir/Make_amiga.mak,
- src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
- src/testdir/Make_os2.mak, src/testdir/Make_vms.mms
- src/testdir/Makefile, src/testdir/test88.in,
- src/testdir/test88.ok,
-
-Patch 7.3.749
-Problem: Python interface doesn't build without the multi-byte feature.
-Solution: Add #ifdef. (Ken Takata)
-Files: src/if_py_both.h
-
-Patch 7.3.750
-Problem: The justify macro does not always work correctly.
-Solution: Fix off-by-one error (James McCoy)
-Files: runtime/macros/justify.vim
-
-Patch 7.3.751
-Problem: Test 61 is flaky, it fails once in a while.
-Solution: When it fails retry once.
-Files: src/testdir/Makefile
-
-Patch 7.3.752
-Problem: Test 49 script file doesn't fold properly.
-Solution: Add a colon.
-Files: src/testdir/test49.vim
-
-Patch 7.3.753
-Problem: When there is a QuitPre autocommand using ":q" twice does not work
- for exiting when there are more files to edit.
-Solution: Do not decrement quitmore in an autocommand. (Techlive Zheng)
-Files: src/ex_docmd.c, src/fileio.c, src/proto/fileio.pro
-
-Patch 7.3.754
-Problem: Latest nmake is not recognized.
-Solution: Add nmake version 11.00.51106.1. (Raymond Ko)
-Files: src/Make_mvc.mak
-
-Patch 7.3.755
-Problem: Autoconf doesn't find Python 3 if it's called "python".
-Solution: Search for "python2" and "python3" first, then "python".
-Files: src/configure.in, src/auto/configure
-
-Patch 7.3.756
-Problem: A location list can get a wrong count in :lvimgrep.
-Solution: Check if the list was changed by autocommands. (mostly by
- Christian Brabandt)
-Files: src/quickfix.c
-
-Patch 7.3.757
-Problem: Issue 96: May access freed memory when a put command triggers
- autocommands. (Dominique Pelle)
-Solution: Call u_save() before getting y_array.
-Files: src/ops.c
-
-Patch 7.3.758
-Problem: Matchit plugin does not handle space in #ifdef.
-Solution: Change matching pattern to allow spaces. (Mike Morearty)
-Files: runtime/macros/matchit.vim
-
-Patch 7.3.759
-Problem: MS-Windows: Updating the tabline is slow when there are many tabs.
-Solution: Disable redrawing while performing the update. (Arseny Kapoulkine)
-Files: src/gui_w48.c
-
-Patch 7.3.760
-Problem: dv_ deletes the white space before the line.
-Solution: Move the cursor to the first non-white. (Christian Brabandt)
-Files: src/normal.c, src/testdir/test19.in, src/testdir/test19.ok
-
-Patch 7.3.761
-Problem: In Visual mode a "-p does not work. (Marcin Szamotulski)
-Solution: Avoid writing to "- before putting it. (Christian Brabandt)
-Files: src/normal.c, src/testdir/test48.in, src/testdir/test48.ok
-
-Patch 7.3.762 (after 7.3.759)
-Problem: On some systems the tabline is not redrawn.
-Solution: Call RedrawWindow(). (Charles Peacech)
-Files: src/gui_w48.c
-
-Patch 7.3.763
-Problem: Jumping to a mark does not open a fold if it is in the same line.
- (Wiktor Ruben)
-Solution: Also compare the column after the jump. (Christian Brabandt)
-Files: src/normal.c
-
-Patch 7.3.764
-Problem: Not all message translation files are installed.
-Solution: Also install the converted files.
-Files: src/po/Makefile
-
-Patch 7.3.765
-Problem: Segfault when doing "cclose" on BufUnload in a python function.
- (Sean Reifschneider)
-Solution: Skip window with NULL buffer. (Christian Brabandt)
-Files: src/main.c, src/window.c
-
-Patch 7.3.766
-Problem: ":help cpo-*" jumps to the wrong place.
-Solution: Make it equivalent to ":help cpo-star".
-Files: src/ex_cmds.c
-
-Patch 7.3.767
-Problem: (Win32) The _errno used for iconv may be the wrong one.
-Solution: Use the _errno from iconv.dll. (Ken Takata)
-Files: src/mbyte.c
-
-Patch 7.3.768
-Problem: settabvar() and setwinvar() may move the cursor.
-Solution: Save and restore the cursor position when appropriate. (idea by
- Yasuhiro Matsumoto)
-Files: src/edit.c
-
-Patch 7.3.769
-Problem: 'matchpairs' does not work with multi-byte characters.
-Solution: Make it work. (Christian Brabandt)
-Files: src/misc1.c, src/option.c, src/proto/option.pro, src/search.c,
- src/testdir/test69.in, src/testdir/test69.ok
-
-Patch 7.3.770
-Problem: Vim.h indentation is inconsistent.
-Solution: Adjust the indentation. (Elias Diem)
-Files: src/vim.h
-
-Patch 7.3.771 (after 7.3.769)
-Problem: Uninitialized variable. (Yasuhiro Matsumoto)
-Solution: Set x2 to -1.
-Files: src/option.c
-
-Patch 7.3.772
-Problem: Cursor is at the wrong location and below the end of the file
- after doing substitutions with confirm flag: %s/x/y/c
- (Dominique Pelle)
-Solution: Update the cursor position. (Christian Brabandt & Dominique)
-Files: src/ex_cmds.c
-
-Patch 7.3.773 (after 7.3.767)
-Problem: Crash when OriginalFirstThunk is zero.
-Solution: Skip items with OriginalFirstThunk not set. (Ken Takata)
-Files: src/mbyte.c
-
-Patch 7.3.774
-Problem: Tiny GUI version misses console dialog feature.
-Solution: Define FEAT_CON_DIALOG when appropriate. (Christian Brabandt)
-Files: src/feature.h, src/gui.h
-
-Patch 7.3.775
-Problem: Cygwin and Mingw builds miss dependency on gui_w48.c.
-Solution: Add a build rule. (Ken Takata)
-Files: src/Make_cyg.mak, src/Make_ming.mak
-
-Patch 7.3.776
-Problem: ml_get error when searching, caused by curwin not matching curbuf.
-Solution: Avoid changing curbuf. (Lech Lorens)
-Files: src/charset.c, src/eval.c, src/mark.c, src/proto/charset.pro,
- src/proto/mark.pro, src/regexp.c, src/syntax.c,
-
-Patch 7.3.777
-Problem: When building with Gnome locale gets reset.
-Solution: Set locale after gnome_program_init(). (Christian Brabandt)
-Files: src/gui_gtk_x11.c
-
-Patch 7.3.778
-Problem: Compiler error for adding up two pointers. (Titov Anatoly)
-Solution: Add a type cast. (Ken Takata)
-Files: src/mbyte.c
-
-Patch 7.3.779
-Problem: Backwards search lands in wrong place when started on a multibyte
- character.
-Solution: Do not set extra_col for a backwards search. (Sung Pae)
-Files: src/search.c, src/testdir/test44.in, src/testdir/test44.ok
-
-Patch 7.3.780
-Problem: char2nr() and nr2char() always use 'encoding'.
-Solution: Add argument to use utf-8 characters. (Yasuhiro Matsumoto)
-Files: runtime/doc/eval.txt, src/eval.c
-
-Patch 7.3.781
-Problem: Drawing with 'guifontwide' can be slow.
-Solution: Draw multiple characters at a time. (Taro Muraoka)
-Files: src/gui.c
-
-Patch 7.3.782
-Problem: Windows: IME composition may use a wrong font.
-Solution: Use 'guifontwide' for IME when it is set. (Taro Muraoka)
-Files: runtime/doc/options.txt, src/gui.c, src/gui_w48.c,
- src/proto/gui_w16.pro, src/proto/gui_w32.pro
-
-Patch 7.3.783
-Problem: Crash when mark is not set. (Dominique Pelle)
-Solution: Check for NULL.
-Files: src/normal.c
-
-Patch 7.3.784 (after 7.3.781)
-Problem: Error when 'guifontwide' has a comma.
-Solution: Use gui.wide_font. (Taro Muraoka)
-Files: src/gui_w48.c
-
-Patch 7.3.785 (after 7.3.776)
-Problem: Crash with specific use of search pattern.
-Solution: Initialize reg_buf to curbuf.
-Files: src/regexp.c
-
-Patch 7.3.786
-Problem: Python threads don't run in the background (issue 103).
-Solution: Move the statements to manipulate thread state.
-Files: src/if_python.c
-
-Patch 7.3.787
-Problem: With 'relativenumber' set it is not possible to see the absolute
- line number.
-Solution: For the cursor line show the absolute line number instead of a
- zero. (Nazri Ramliy)
-Files: src/screen.c
-
-Patch 7.3.788
-Problem: When only using patches build fails on missing nl.po.
-Solution: Create an empty nl.po file.
-Files: src/po/Makefile
-
-Patch 7.3.789 (after 7.3.776)
-Problem: "\k" in regexp does not work in other window.
-Solution: Use the right buffer. (Yukihiro Nakadaira)
-Files: src/mbyte.c, src/proto/mbyte.pro, src/regexp.c
-
-Patch 7.3.790
-Problem: After reloading a buffer the modelines are not processed.
-Solution: call do_modelines(). (Ken Takata)
-Files: src/fileio.c
-
-Patch 7.3.791
-Problem: MzScheme interface doesn't work properly.
-Solution: Make it work better. (Sergey Khorev)
-Files: runtime/doc/if_mzsch.txt, src/configure.in, src/auto/configure,
- src/eval.c, src/if_mzsch.c, src/if_mzsch.h, src/Make_ming.mak,
- src/Make_mvc.mak, src/os_unix.c, src/proto/eval.pro,
- src/testdir/test70.in, src/testdir/test70.ok
-
-Patch 7.3.792
-Problem: ":substitute" works differently without confirmation.
-Solution: Do not change the text when asking for confirmation, only display
- it.
-Files: src/ex_cmds.c
-
-Patch 7.3.793 (after 7.3.792)
-Problem: New interactive :substitute behavior is not tested.
-Solution: Add tests. (Christian Brabandt)
-Files: src/testdir/test80.in, src/testdir/test80.ok
-
-Patch 7.3.794
-Problem: Tiny build fails. (Tony Mechelynck)
-Solution: Adjust #ifdefs.
-Files: src/charset.c
-
-Patch 7.3.795
-Problem: MzScheme does not build with tiny features.
-Solution: Add #ifdefs. Also add UNUSED to avoid warnings. And change
- library ordering.
-Files: src/if_mzsch.c, src/Makefile
-
-Patch 7.3.796
-Problem: "/[^\n]" does match at a line break.
-Solution: Make it do the same as "/.". (Christian Brabandt)
-Files: src/regexp.c, src/testdir/test79.in, src/testdir/test79.ok
-
-Patch 7.3.797 (after 7.3.792)
-Problem: Compiler warning for size_t to int conversion. (Skeept)
-Solution: Add type casts.
-Files: src/ex_cmds.c
-
-Patch 7.3.798 (after 7.3.791)
-Problem: MzScheme: circular list does not work correctly.
-Solution: Separate Mac-specific code from generic code. (Sergey Khorev)
-Files: src/if_mzsch.c, src/testdir/test70.in
-
-Patch 7.3.799
-Problem: The color column is not correct when entering a buffer. (Ben
- Fritz)
-Solution: Call check_colorcolumn() if 'textwidth' changed. (Christian
- Brabandt)
-Files: src/buffer.c
-
-Patch 7.3.800
-Problem: The " mark is not adjusted when inserting lines. (Roland Eggner)
-Solution: Adjust the line number. (Christian Brabandt)
-Files: src/mark.c
-
-Patch 7.3.801
-Problem: ":window set nu?" displays the cursor line. (Nazri Ramliy)
-Solution: Do not update the cursor line when conceallevel is zero or the
- screen has scrolled. (partly by Christian Brabandt)
-Files: src/window.c
-
-Patch 7.3.802
-Problem: After setting 'isk' to a value ending in a comma appending to the
- option fails.
-Solution: Disallow a trailing comma for 'isk' and similar options.
-Files: src/charset.c
-
-Patch 7.3.803 (after 7.3.792)
-Problem: Substitute with confirmation and then "q" does not replace
- anything. (John McGowan)
-Solution: Do not break the loop, skip to the end.
-Files: src/ex_cmds.c, src/testdir/test80.in, src/testdir/test80.ok
-
-Patch 7.3.804 (after 7.3.799)
-Problem: Compiler warning for tiny build. (Tony Mechelynck)
-Solution: Add #ifdefs around variable.
-Files: src/buffer.c
-
-Patch 7.3.805
-Problem: Lua version 5.2 is not detected properly on Arch Linux.
-Solution: Adjust autoconf. (lilydjwg)
-Files: src/configure.in, src/auto/configure
-
-Patch 7.3.806
-Problem: Compiler warnings in Perl code when building with Visual studio
- 2012. (skeept)
-Solution: Add type casts. (Christian Brabandt, 2013 Jan 30)
-Files: src/if_perl.xs
-
-Patch 7.3.807
-Problem: Popup menu does not work properly with the preview window, folds
- and 'cursorcolumn'.
-Solution: Redraw the popup menu after redrawing windows. (Christian
- Brabandt)
-Files: src/screen.c
-
-Patch 7.3.808
-Problem: Python threads still do not work properly.
-Solution: Fix both Python 2 and 3. Add tests. (Ken Takata)
-Files: src/if_python.c, src/if_python3.c, src/testdir/test86.in,
- src/testdir/test86.ok, src/testdir/test87.in,
- src/testdir/test87.ok
-
-Patch 7.3.809
-Problem: The dosinst.c program has a buffer overflow. (Thomas Gwae)
-Solution: Ignore $VIMRUNTIME if it is too long.
-Files: src/dosinst.c
-
-Patch 7.3.810
-Problem: 'relativenumber' is reset unexpectedly. (François Ingelrest)
-Solution: After an option was reset also reset the global value. Add a test.
- (Christian Brabandt)
-Files: src/option.c, src/testdir/Make_amiga.mak,
- src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
- src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
- src/testdir/Makefile, src/testdir/test89.in,
- src/testdir/test89.ok
-
-Patch 7.3.811
-Problem: Useless termresponse parsing for SGR mouse.
-Solution: Skip the parsing. (Hayaki Saito)
-Files: src/term.c
-
-Patch 7.3.812
-Problem: When 'indentexpr' moves the cursor "curswant" not restored.
-Solution: Restore "curswant". (Sung Pae)
-Files: src/misc1.c
-
-Patch 7.3.813
-Problem: The CompleteDone event is not triggered when there are no pattern
- matches. (Jianjun Mao)
-Solution: Trigger the event. (Christian Brabandt)
-Files: src/edit.c
-
-Patch 7.3.814
-Problem: Can't input multibyte characters on Win32 console if 'encoding' is
- different from current codepage.
-Solution: Use convert_input_safe() instead of convert_input(). Make
- string_convert_ext() return an error for incomplete input. (Ken
- Takata)
-Files: src/mbyte.c, src/os_win32.c
-
-Patch 7.3.815
-Problem: Building with Cygwin and Ruby doesn't work.
-Solution: Copy some things from the MingW build file. (Ken Takata)
-Files: src/Make_cyg.mak
-
-Patch 7.3.816
-Problem: Can't compute a hash.
-Solution: Add the sha256() function. (Tyru, Hirohito Higashi)
-Files: runtime/doc/eval.txt, src/eval.c, src/proto/sha256.pro,
- src/sha256.c, src/testdir/test90.in, src/testdir/test90.ok,
- src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
- src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
- src/testdir/Make_vms.mms, src/testdir/Makefile
-
-Patch 7.3.817
-Problem: Test 89 fails with tiny and small features.
-Solution: Add sourcing small.vim.
-Files: src/testdir/test89.in
-
-Patch 7.3.818
-Problem: When test 40 fails because of a bad build it may leave files
- behind that cause it to fail later.
-Solution: Let the file names start with "X".
-Files: src/testdir/test40.in
-
-Patch 7.3.819
-Problem: Compiling without +eval and with Python isn't working.
-Solution: Add the eval feature when building with Python.
-Files: src/if_py_both.h, src/feature.h, src/eval.c, src/ex_docmd.c,
- src/normal.c, src/ex_docmd.c, src/gui_gtk_x11.c
-
-Patch 7.3.820
-Problem: Build errors and warnings when building with small features and
- Lua, Perl or Ruby.
-Solution: Add #ifdefs and UNUSED.
-Files: src/if_perl.xs, src/if_lua.c, src/if_ruby.c
-
-Patch 7.3.821
-Problem: Build with OLE and Cygwin is broken. (Steve Hall)
-Solution: Select static or shared stdc library. (Ken Takata)
-Files: src/Make_cyg.mak
-
-Patch 7.3.822 (after 7.3.799)
-Problem: Crash when accessing freed buffer.
-Solution: Get 'textwidth' in caller of enter_buffer(). (Christian Brabandt)
-Files: src/buffer.c
-
-Patch 7.3.823 (after 7.3.821)
-Problem: Building with Cygwin: '-lsupc++' is not needed.
-Solution: Remove it. (Ken Takata)
-Files: src/Make_cyg.mak
-
-Patch 7.3.824
-Problem: Can redefine builtin functions. (ZyX)
-Solution: Disallow adding a function to g:.
-Files: src/eval.c
-
-Patch 7.3.825
-Problem: With Python errors are not always clear.
-Solution: Print the stack trace, unless :silent is used. (ZyX)
-Files: src/if_python3.c, src/if_python.c
-
-Patch 7.3.826
-Problem: List of features in :version output is hard to read.
-Solution: Make columns. (Nazri Ramliy)
-Files: src/version.c
-
-Patch 7.3.827 (after 7.3.825)
-Problem: Python tests fail.
-Solution: Adjust the output for the stack trace.
-Files: src/testdir/test86.in, src/testdir/test86.ok,
- src/testdir/test87.ok
-
-Patch 7.3.828
-Problem: Mappings are not aware of wildmenu mode.
-Solution: Add wildmenumode(). (Christian Brabandt)
-Files: src/eval.c, runtime/doc/eval.txt
-
-Patch 7.3.829
-Problem: When compiled with the +rightleft feature 'showmatch' also shows a
- match for the opening paren. When 'revins' is set the screen may
- scroll.
-Solution: Only check the opening paren when the +rightleft feature was
- enabled. Do not show a match that is not visible. (partly by
- Christian Brabandt)
-Files: src/search.c
-
-Patch 7.3.830
-Problem: :mksession confuses bytes, columns and characters when positioning
- the cursor.
-Solution: Use w_virtcol with "|" instead of w_cursor.col with "l".
-Files: src/ex_docmd.c
-
-Patch 7.3.831
-Problem: Clumsy to handle the situation that a variable does not exist.
-Solution: Add default value to getbufvar() et al. (Shougo Matsushita,
- Hirohito Higashi)
-Files: runtime/doc/eval.txt, src/eval.c src/testdir/test91.in,
- src/testdir/test91.ok, src/testdir/Make_amiga.mak,
- src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
- src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
- src/testdir/Makefile
-
-Patch 7.3.832
-Problem: Compiler warning.
-Solution: Add type cast. (Mike Williams)
-Files: src/version.c
-
-Patch 7.3.833
-Problem: In the terminal the scroll wheel always scrolls the active window.
-Solution: Scroll the window under the mouse pointer, like in the GUI.
- (Bradie Rao)
-Files: src/edit.c, src/normal.c
-
-Patch 7.3.834
-Problem: Ruby 2.0 has a few API changes.
-Solution: Add handling of Ruby 2.0. (Yasuhiro Matsumoto)
-Files: src/if_ruby.c
-
-Patch 7.3.835
-Problem: "xxd -i" fails on an empty file.
-Solution: Do output the closing } for an empty file. (partly by Lawrence
- Woodman)
-Files: src/xxd/xxd.c
-
-Patch 7.3.836
-Problem: Clipboard does not work on Win32 when compiled with Cygwin.
-Solution: Move the Win32 clipboard code to a separate file and use it when
- building with os_unix.c. (Frodak Baksik, Ken Takata)
-Files: src/Make_bc5.mak, src/Make_cyg.mak, src/Make_ivc.mak,
- src/Make_ming.mak, src/Make_mvc.mak, src/Make_w16.mak,
- src/Makefile, src/config.h.in, src/configure.in,
- src/auto/configure, src/feature.h, src/globals.h, src/mbyte.c,
- src/os_mswin.c, src/os_unix.c, src/os_win32.c, src/proto.h,
- src/proto/os_mswin.pro, src/proto/winclip.pro, src/term.c,
- src/vim.h, src/winclip.c
-
-Patch 7.3.837 (after 7.3.826)
-Problem: Empty lines in :version output when 'columns' is 320.
-Solution: Simplify the logic of making columns. (Nazri Ramliy, Roland
- Eggner)
-Files: src/version.c
-
-Patch 7.3.838 (after 7.3.830)
-Problem: Insufficient testing for mksession.
-Solution: Add tests. (mostly by Roland Eggner)
-Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
- src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
- src/testdir/Make_vms.mms, src/testdir/Makefile,
- src/testdir/test92.in, src/testdir/test92.ok,
- src/testdir/test93.in, src/testdir/test93.ok,
- src/ex_docmd.c
-
-Patch 7.3.839
-Problem: Some files missing in the list of distributed files.
-Solution: Add lines for new files.
-Files: Filelist
-
-Patch 7.3.840
-Problem: "\@<!" in regexp does not work correctly with multi-byte
- characters, especially cp932.
-Solution: Move column to start of multi-byte character. (Yasuhiro Matsumoto)
-Files: src/regexp.c
-
-Patch 7.3.841
-Problem: When a "cond ? one : two" expression has a subscript it is not
- parsed correctly. (Andy Wokula)
-Solution: Handle a subscript also when the type is unknown. (Christian
- Brabandt)
-Files: src/eval.c
-
-Patch 7.3.842
-Problem: Compiler warning for signed/unsigned pointer.
-Solution: Add type cast. (Christian Brabandt)
-Files: src/eval.c
-
-Patch 7.3.843 (after 7.3.841)
-Problem: Missing test file changes.
-Solution: Change the tests.
-Files: src/testdir/test49.vim, src/testdir/test49.ok
-
-Patch 7.3.844
-Problem: Enum is not indented correctly with "public" etc.
-Solution: Skip "public", "private" and "protected". (Hong Xu)
-Files: src/misc1.c
-
-Patch 7.3.845 (after 7.3.844)
-Problem: Enum indenting is not tested.
-Solution: Add tests. (Hong Xu)
-Files: src/testdir/test3.in, src/testdir/test3.ok
-
-Patch 7.3.846
-Problem: Missing proto files.
-Solution: Add the files.
-Files: Filelist, src/proto/os_beos.pro
-
-Patch 7.3.847
-Problem: Test 55 fails when messages are translated.
-Solution: Set language to C. (Ken Takata)
-Files: src/testdir/test55.in
-
-Patch 7.3.848
-Problem: Can't build with Ruby 2.0 when using MinGW x64 or MSVC10.
-Solution: Fix it. Also detect RUBY_PLATFORM and RUBY_INSTALL_NAME for x64.
- (Ken Takata)
-Files: src/Make_cyg.mak, src/Make_ming.mak, src/if_ruby.c
-
-Patch 7.3.849
-Problem: ":g//" gives "Pattern not found error" with E486. Should not use
- the error number, it's not a regular error message.
-Solution: Use a normal message. (David Bürgin)
-Files: src/ex_cmds.c
-
-Patch 7.3.850
-Problem: ":vimgrep //" matches everywhere.
-Solution: Make it use the previous search pattern. (David Bürgin)
-Files: runtime/doc/quickfix.txt, src/quickfix.c
-
-Patch 7.3.851
-Problem: Using an empty pattern with :sort silently continues when there is
- no previous search pattern.
-Solution: Give an error message. (David Bürgin)
-Files: src/ex_cmds.c
-
-Patch 7.3.852
-Problem: system() breaks clipboard text. (Yukihiro Nakadaira)
-Solution: Use Xutf8TextPropertyToTextList(). (Christian Brabandt)
- Also do not put the text in the clip buffer if conversion fails.
-Files: src/ui.c, src/ops.c
-
-Patch 7.3.853
-Problem: Using "ra" in multiple lines on multi-byte characters leaves a few
- characters not replaced.
-Solution: Adjust the end column only in the last line. (Yasuhiro Matsumoto)
-Files: src/testdir/test69.in, src/testdir/test69.ok, src/ops.c
-
-Patch 7.3.854
-Problem: After using backspace in insert mode completion, CTRL-N and CTRL-P
- do not highlight the right entry. (Olivier Teuliere)
-Solution: Set the current item to the shown item after using backspace.
-Files: src/edit.c
-
-Patch 7.3.855
-Problem: Compiler warnings.
-Solution: Add type casts. (Mike Williams)
-Files: src/misc1.c
-
-Patch 7.3.856
-Problem: When calling system() multi-byte clipboard contents is garbled.
-Solution: Save and restore the clipboard contents. (Yukihiro Nakadaira)
-Files: src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro, src/ops.c,
- src/proto/ops.pro, src/os_unix.c, src/proto/ui.pro, src/ui.c
-
-Patch 7.3.857
-Problem: The QuitPre autocommand event does not trigger for :qa and :wq.
-Solution: Trigger the event. (Tatsuro Fujii)
-Files: src/ex_docmd.c
-
-Patch 7.3.858
-Problem: "gv" selects the wrong area after some operators.
-Solution: Save and restore the type of selection. (Christian Brabandt)
-Files: src/testdir/test66.in, src/testdir/test66.ok, src/normal.c
-
-Patch 7.3.859
-Problem: 'ambiwidth' must be set by the user.
-Solution: Detects East Asian ambiguous width (UAX #11) state of the terminal
- at the start-up time and 'ambiwidth' accordingly. (Hayaki Saito)
-Files: src/main.c, src/option.c, src/term.c, src/term.h,
- src/proto/term.pro
-
-Patch 7.3.860
-Problem: When using --remote-expr try/catch does not work. (Andrey Radev)
-Solution: Set emsg_silent instead of emsg_skip.
-Files: src/main.c
-
-Patch 7.3.861
-Problem: ":setlocal number" clears global value of 'relativenumber'.
-Solution: Do it properly. (Markus Heidelberg)
-Files: src/testdir/test89.in, src/testdir/test89.ok, src/option.c
-
-Patch 7.3.862
-Problem: Dragging the status line can be slow.
-Solution: Look ahead and drop the drag event if there is a next one.
-Files: src/eval.c, src/misc1.c, src/proto/misc1.pro, src/normal.c
-
-Patch 7.3.863 (after 7.3.859)
-Problem: Problem with 'ambiwidth' detection for ANSI terminal.
-Solution: Work around not recognizing a term response. (Hayaki Saito)
-Files: src/term.c
-
-Patch 7.3.864 (after 7.3.862)
-Problem: Can't build without the mouse feature.
-Solution: Add an #ifdef. (Ike Devolder)
-Files: src/misc1.c
-
-Patch 7.3.865 (after 7.3.862)
-Problem: Mouse position may be wrong.
-Solution: Let vungetc() restore the mouse position.
-Files: src/getchar.c
-
-Patch 7.3.866
-Problem: Not serving the X selection during system() isn't nice.
-Solution: When using fork() do not loose the selection, keep serving it.
- Add a loop similar to handling I/O. (Yukihiro Nakadaira)
-Files: src/os_unix.c
-
-Patch 7.3.867
-Problem: Matchparen does not update match when using auto-indenting.
- (Marc Aldorasi)
-Solution: Add the TextChanged and TextChangedI autocommand events.
-Files: runtime/plugin/matchparen.vim, src/main.c, src/edit.c,
- src/globals.h, src/vim.h, src/fileio.c, src/proto/fileio.pro,
- runtime/doc/autocmd.txt
-
-Patch 7.3.868
-Problem: When at the hit-return prompt and using "k" while no text has
- scrolled off screen, then using "j", an empty line is displayed.
-Solution: Only act on "k" when text scrolled off screen. Also accept
- page-up and page-down. (cptstubing)
-Files: src/message.c
-
-Patch 7.3.869
-Problem: bufwinnr() matches buffers in other tabs.
-Solution: For bufwinnr() and ? only match buffers in the current tab.
- (Alexey Radkov)
-Files: src/buffer.c, src/diff.c, src/eval.c, src/ex_docmd.c,
- src/if_perl.xs, src/proto/buffer.pro
-
-Patch 7.3.870
-Problem: Compiler warnings when using MingW 4.5.3.
-Solution: Do not use MAKEINTRESOURCE. Adjust #if. (Ken Takata)
-Files: src/gui_w32.c, src/gui_w48.c, src/os_mswin.c, src/os_win32.c,
- src/os_win32.h
-
-Patch 7.3.871
-Problem: search('^$', 'c') does not use the empty match under the cursor.
-Solution: Special handling of the 'c' flag. (Christian Brabandt)
- Add tests.
-Files: src/search.c, src/testdir/test14.in, src/testdir/test14.ok
-
-Patch 7.3.872
-Problem: On some systems case of file names is always ignored, on others
- never.
-Solution: Add the 'fileignorecase' option to control this at runtime.
- Implies 'wildignorecase'.
-Files: src/buffer.c, src/edit.c, src/ex_cmds2.c, src/ex_getln.c,
- src/fileio.c, src/misc1.c, src/misc2.c, src/option.c,
- src/option.h, src/vim.h, runtime/doc/options.txt
-
-Patch 7.3.873
-Problem: Cannot easily use :s to make title case.
-Solution: Have "\L\u" result in title case. (James McCoy)
-Files: src/regexp.c, src/testdir/test79.in, src/testdir/test79.ok,
- src/testdir/test80.in, src/testdir/test80.ok
-
-Patch 7.3.874
-Problem: Comparing file names does not handle multi-byte characters
- properly.
-Solution: Implement multi-byte handling.
-Files: src/misc1.c, src/misc2.c
-
-Patch 7.3.875 (after 7.3.866)
-Problem: Build problem with some combination of features.
-Solution: Use FEAT_XCLIPBOARD instead of FEAT_CLIPBOARD.
-Files: src/os_unix.c
-
-Patch 7.3.876
-Problem: #if indents are off.
-Solution: Insert a space where appropriate. (Taro Muraoka)
-Files: src/gui.c
-
-Patch 7.3.877 (after 7.3.871)
-Problem: Forward searching with search() is broken.
-Solution: Fix it and add tests. (Sung Pae)
-Files: src/search.c, src/testdir/test14.in, src/testdir/test14.ok
-
-Patch 7.3.878
-Problem: 'fileignorecase' is missing in options window and quickref.
-Solution: Add the option.
-Files: runtime/optwin.vim, runtime/doc/quickref.txt
-
-Patch 7.3.879
-Problem: When using an ex command in operator pending mode, using Esc to
- abort the command still executes the operator. (David Bürgin)
-Solution: Clear the operator when the ex command fails. (Christian Brabandt)
-Files: src/normal.c
-
-Patch 7.3.880
-Problem: When writing viminfo, old history lines may replace lines written
- more recently by another Vim instance.
-Solution: Mark history entries that were read from viminfo and overwrite
- them when merging with the current viminfo.
-Files: src/ex_getln.c
-
-Patch 7.3.881
-Problem: Python list does not work correctly.
-Solution: Fix it and add a test. (Yukihiro Nakadaira)
-Files: src/testdir/test86.in, src/testdir/test86.ok, src/if_py_both.h
-
-Patch 7.3.882
-Problem: CursorHold may trigger after receiving the termresponse.
-Solution: Set the did_cursorhold flag. (Hayaki Saito)
-Files: src/term.c
-
-Patch 7.3.883 (after 7.3.880)
-Problem: Can't build with some combination of features.
-Solution: Adjust #ifdefs.
-Files: src/ex_getln.c
-
-Patch 7.3.884
-Problem: Compiler warning for variable shadowing another. (John Little)
-Solution: Rename the variable. (Christian Brabandt)
-Files: src/term.c
-
-Patch 7.3.885
-Problem: Double free for list and dict in Lua. (Shougo Matsu)
-Solution: Do not unref list and dict. (Yasuhiro Matsumoto)
-Files: src/if_lua.c
-
-Patch 7.3.886
-Problem: Can't build with multi-byte on Solaris 10.
-Solution: Add #ifdef X_HAVE_UTF8_STRING. (Laurent Blume)
-Files: src/ui.c
-
-Patch 7.3.887
-Problem: No tests for Visual mode operators, what 7.3.879 fixes.
-Solution: Add a new test file. (David Bürgin)
-Files: src/testdir/test94.in, src/testdir/test94.ok,
- src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
- src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
- src/testdir/Make_vms.mms, src/testdir/Makefile
-
-Patch 7.3.888
-Problem: Filename completion with 'fileignorecase' does not work for
- multi-byte characters.
-Solution: Make 'fileignorecase' work properly. (Hirohito Higashi)
-Files: src/misc2.c
-
-Patch 7.3.889
-Problem: Can't build with Ruby 2.0 on a 64 bit system.
-Solution: Define rb_fix2int and rb_num2int. (Kohei Suzuki)
-Files: src/if_ruby.c
-
-Patch 7.3.890
-Problem: Test 79 fails on Windows. (Michael Soyka)
-Solution: Add comment below line causing an error.
-Files: src/testdir/test79.in
-
-Patch 7.3.891
-Problem: Merging viminfo history doesn't work well.
-Solution: Don't stop when one type of history is empty. Don't merge history
- when writing viminfo.
-Files: src/ex_getln.c
-
-Patch 7.3.892 (after 7.3.891)
-Problem: Still merging problems for viminfo history.
-Solution: Do not merge lines when writing, don't write old viminfo lines.
-Files: src/ex_getln.c, src/ex_cmds.c, src/proto/ex_getln.pro
-
-Patch 7.3.893
-Problem: Crash when using b:, w: or t: after closing the buffer, window or
- tabpage.
-Solution: Allocate the dictionary instead of having it part of the
- buffer/window/tabpage struct. (Yukihiro Nakadaira)
-Files: src/buffer.c, src/eval.c, src/fileio.c, src/structs.h,
- src/window.c, src/proto/eval.pro
-
-Patch 7.3.894
-Problem: Using wrong RUBY_VER causing Ruby build to break.
-Solution: Correct the RUBY_VER value. (Yongwei Wu)
-Files: src/bigvim.bat
-
-Patch 7.3.895
-Problem: Valgrind error in test 91. (Issue 128)
-Solution: Pass scope name to find_var_in_ht().
-Files: src/eval.c
-
-Patch 7.3.896
-Problem: Memory leaks in Lua interface.
-Solution: Fix the leaks, add tests. (Yukihiro Nakadaira)
-Files: src/testdir/test85.in, src/testdir/test85.ok, src/if_lua.c
-
-Patch 7.3.897
-Problem: Configure doesn't always find the shared library.
-Solution: Change the configure script. (Ken Takata)
-Files: src/configure.in, src/auto/configure
-
-Patch 7.3.898
-Problem: Memory leak reported by valgrind in test 91.
-Solution: Only use default argument when needed.
-Files: src/eval.c, src/testdir/test91.in, src/testdir/test91.ok
-
-Patch 7.3.899
-Problem: #if indents are off.
-Solution: Fix the indents.
-Files: src/os_unix.c
-
-Patch 7.3.900
-Problem: Not obvious that some mouse features are mutual-exclusive.
-Solution: Add a comment.
-Files: src/feature.h
-
-Patch 7.3.901
-Problem: Outdated comment, ugly condition.
-Solution: Update a few comments, break line.
-Files: src/getchar.c, src/misc1.c, src/undo.c
-
-Patch 7.3.902
-Problem: When deleting last buffer in other tab the tabline is not updated.
-Solution: Set the redraw_tabline flag. (Yukihiro Nakadaira)
-Files: src/window.c
-
-Patch 7.3.903 (after 7.3.892)
-Problem: Crash on exit writing viminfo. (Ron Aaron)
-Solution: Check for the history to be empty.
-Files: src/ex_getln.c
-
-Patch 7.3.904 (after 7.3.893)
-Problem: Using memory freed by the garbage collector.
-Solution: Mark items in aucmd_win as used.
-Files: src/eval.c
-
-Patch 7.3.905 (after 7.3.903)
-Problem: Crash when writing viminfo. (Ron Aaron)
-Solution: Prevent freed history info to be used.
-Files: src/ex_getln.c
-
-Patch 7.3.906
-Problem: The "sleep .2" for running tests does not work on Solaris.
-Solution: Fall back to using "sleep 1". (Laurent Blume)
-Files: src/testdir/Makefile
-
-Patch 7.3.907
-Problem: Python uses IndexError when a dict key is not found.
-Solution: Use KeyError instead. (ZyX)
-Files: src/if_py_both.h, src/if_python3.c, src/if_python.c,
- src/testdir/test86.ok, src/testdir/test87.ok
-
-Patch 7.3.908
-Problem: Possible crash when using a list in Python.
-Solution: Return early if the list is NULL. (ZyX)
-Files: src/if_py_both.h
-
-Patch 7.3.909
-Problem: Duplicate Python code.
-Solution: Move more items to if_py_both.h. (ZyX) Also avoid compiler
- warnings for missing initializers.
-Files: src/if_py_both.h, src/if_python3.c, src/if_python.c
-
-Patch 7.3.910
-Problem: Python code in #ifdef branches with only minor differences.
-Solution: Merge the #ifdef branches. (ZyX)
-Files: src/if_py_both.h, src/if_python.c
-
-Patch 7.3.911
-Problem: Python: Access to Vim variables is not so easy.
-Solution: Define vim.vars and vim.vvars. (ZyX)
-Files: runtime/doc/if_pyth.txt, src/eval.c, src/globals.h,
- src/if_py_both.h, src/if_python3.c, src/if_python.c,
- src/testdir/test86.in, src/testdir/test86.ok,
- src/testdir/test87.in, src/testdir/test87.ok
-
-Patch 7.3.912
-Problem: Typing a ":" command at the hit-enter dialog does not work if the
- "file changed" dialog happens next.
-Solution: Check for changed files before giving the hit-enter dialog.
-Files: src/message.c
-
-Patch 7.3.913 (after 7.3.905)
-Problem: Still a crash when writing viminfo.
-Solution: Add checks for NULL pointers. (Ron Aaron)
-Files: src/ex_getln.c
-
-Patch 7.3.914
-Problem: ~/.viminfo is messed up when running tests.
-Solution: Set the viminfo filename.
-Files: src/testdir/test89.in, src/testdir/test94.in
-
-Patch 7.3.915
-Problem: When reading a file with encoding conversion fails at the end the
- next encoding in 'fencs' is not used.
-Solution: Retry with another encoding when possible. (Taro Muraoka)
-Files: src/fileio.c
-
-Patch 7.3.916
-Problem: Using freed memory when pasting with the mouse (Issue 130).
-Solution: Get the byte value early. (hint by Dominique Pelle)
-Files: src/buffer.c
-
-Patch 7.3.917
-Problem: When a path ends in a backslash appending a comma has the wrong
- effect.
-Solution: Replace a trailing backslash with a slash. (Nazri Ramliy)
-Files: src/misc1.c, src/testdir/test73.in, src/testdir/test73.ok
-
-Patch 7.3.918
-Problem: Repeating an Ex command after using a Visual motion does not work.
-Solution: Check for an Ex command being used. (David Bürgin)
-Files: src/normal.c
-
-Patch 7.3.919 (after 7.3.788)
-Problem: An empty nl.po file does not work with an old msgfmt.
-Solution: Put a single # in the file. (Laurent Blume)
-Files: src/po/Makefile
-
-Patch 7.3.920
-Problem: Compiler warning for size_t to int.
-Solution: Add a type cast. (Mike Williams)
-Files: src/misc1.c
-
-Patch 7.3.921 (after 7.3.697)
-Problem: Trying to create a fontset handle when 'guifontset' is not set.
-Solution: Add curly braces around the code block. (Max Kirillov)
-Files: src/syntax.c
-
-Patch 7.3.922
-Problem: No test for what 7.3.918 fixes.
-Solution: Add a test. (David Bürgin)
-Files: src/testdir/test94.in, src/testdir/test94.ok
-
-Patch 7.3.923
-Problem: Check for X11 header files fails on Solaris.
-Solution: Only use -Werror for gcc. (Laurent Blume)
-Files: src/configure.in, src/auto/configure
-
-Patch 7.3.924
-Problem: Python interface can't easily access options.
-Solution: Add vim.options, vim.window.options and vim.buffer.options. (ZyX)
-Files: runtime/doc/if_pyth.txt, src/eval.c, src/if_py_both.h,
- src/if_python.c, src/if_python3.c, src/option.c,
- src/proto/eval.pro, src/proto/option.pro, src/testdir/test86.in,
- src/testdir/test86.ok, src/testdir/test87.in,
- src/testdir/test87.ok, src/vim.h
-
-Patch 7.3.925
-Problem: Typos in source files.
-Solution: Fix the typos. (Ken Takata)
-Files: runtime/plugin/matchparen.vim, runtime/tools/vim_vs_net.cmd,
- src/GvimExt/gvimext.cpp, src/INSTALLvms.txt, src/Make_cyg.mak,
- src/Make_mvc.mak, src/Make_sas.mak, src/Make_vms.mms,
- src/Make_w16.mak, src/Makefile, src/VisVim/OleAut.cpp,
- src/VisVim/README_VisVim.txt, src/auto/configure, src/buffer.c,
- src/configure.in, src/diff.c, src/dosinst.c, src/edit.c,
- src/eval.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_eval.c,
- src/farsi.c, src/feature.h, src/fileio.c, src/glbl_ime.cpp,
- src/gui.c, src/gui_athena.c, src/gui_beval.c, src/gui_gtk_x11.c,
- src/gui_mac.c, src/gui_motif.c, src/gui_photon.c, src/gui_w16.c,
- src/gui_w32.c, src/gui_w48.c, src/gui_xmebw.c, src/gui_xmebwp.h,
- src/hardcopy.c, src/if_cscope.c, src/if_mzsch.c, src/if_ole.cpp,
- src/if_perl.xs, src/if_py_both.h, src/if_python.c,
- src/if_python3.c, src/if_ruby.c, src/main.aap, src/mbyte.c,
- src/memfile.c, src/memline.c, src/misc1.c, src/misc2.c,
- src/nbdebug.c, src/normal.c, src/ops.c, src/os_amiga.c,
- src/os_mac.h, src/os_msdos.c, src/os_mswin.c, src/os_win16.h,
- src/os_win32.c, src/os_win32.h, src/quickfix.c, src/screen.c,
- src/search.c, src/spell.c, src/structs.h, src/syntax.c,
- src/window.c, vimtutor.com
-
-
-Patch 7.3.926
-Problem: Autocommands are triggered by setwinvar() et al. Missing BufEnter
- on :tabclose. Duplicate WinEnter on :tabclose. Wrong order of
- events for :tablose and :tabnew.
-Solution: Fix these autocommand events. (ZyX)
-Files: runtime/doc/eval.txt, src/buffer.c, src/eval.c, src/ex_cmds2.c,
- src/fileio.c, src/proto/window.pro, src/testdir/test62.in,
- src/testdir/test62.ok, src/window.c
-
-Patch 7.3.927
-Problem: Missing combining characters when putting text in a register.
-Solution: Include combining characters. (David Bürgin)
-Files: src/getchar.c, src/testdir/test44.in, src/testdir/test44.ok
-
-Patch 7.3.928 (after 7.3.924)
-Problem: Can't build with strict C compiler.
-Solution: Move declaration to start of block. (Taro Muraoka)
-Files: src/if_py_both.h
-
-Patch 7.3.929 (after 7.3.924)
-Problem: Compiler warning for unused variable. Not freeing unused string.
-Solution: Remove the variable. Clear the options.
-Files: src/option.c
-
-Patch 7.3.930
-Problem: MSVC 2012 update is not recognized.
-Solution: Update the version in the makefile. (Raymond Ko)
-Files: src/Make_mvc.mak
-
-Patch 7.3.931
-Problem: No completion for :xmap and :smap. (Yukihiro Nakadaira)
-Solution: Add the case statements. (Christian Brabandt)
-Files: src/ex_docmd.c
-
-Patch 7.3.932
-Problem: Compiler warning for uninitialized variable. (Tony Mechelynck)
-Solution: Initialize the variable.
-Files: src/option.c
-
-Patch 7.3.933
-Problem: Ruby on Mac crashes due to GC failure.
-Solution: Init the stack from main(). (Hiroshi Shirosaki)
-Files: src/main.c, src/if_ruby.c, src/proto/if_ruby.pro
-
-Patch 7.3.934
-Problem: E381 and E380 make the user think nothing happened.
-Solution: Display the message indicating what error list is now active.
- (Christian Brabandt)
-Files: src/quickfix.c
-
-Patch 7.3.935 (after 7.3.933)
-Problem: Ruby: Init stack works differently on 64 bit systems.
-Solution: Handle 64 bit systems and also static library. (Yukihiro
- Nakadaira)
-Files: src/if_ruby.c
-
-Patch 7.3.936 (after 7.3.935)
-Problem: Ruby 1.8: Missing piece for static linking on 64 bit systems.
-Solution: Define ruby_init_stack() (Hiroshi Shirosaki)
- Also fix preprocessor indents.
-Files: src/if_ruby.c
-
-Patch 7.3.937
-Problem: More can be shared between Python 2 and 3.
-Solution: Move code to if_py_both.h. (ZyX)
-Files: src/if_python.c, src/if_python3.c, src/if_py_both.h
-
-Patch 7.3.938
-Problem: Python: not easy to get to window number.
-Solution: Add vim.window.number. (ZyX)
-Files: runtime/doc/if_pyth.txt, src/if_py_both.h, src/proto/window.pro,
- src/window.c
-
-Patch 7.3.939
-Problem: Using Py_BuildValue is inefficient sometimes.
-Solution: Use PyLong_FromLong(). (ZyX)
-Files: src/if_py_both.h
-
-Patch 7.3.940
-Problem: Python: Can't get position of window.
-Solution: Add window.row and window.col. (ZyX)
-Files: runtime/doc/if_pyth.txt, src/if_py_both.h
-
-Patch 7.3.941
-Problem: Stuff in if_py_both.h is ordered badly.
-Solution: Reorder by type. (ZyX)
-Files: src/if_py_both.h, src/if_python.c
-
-Patch 7.3.942
-Problem: Python: SEGV in Buffer functions.
-Solution: Call CheckBuffer() at the right time. (ZyX)
-Files: src/if_py_both.h, src/if_python.c, src/if_python3.c
-
-Patch 7.3.943
-Problem: Python: Negative indices were failing.
-Solution: Fix negative indices. Add tests. (ZyX)
-Files: src/if_py_both.h, src/if_python3.c, src/testdir/test86.in,
- src/testdir/test86.ok, src/testdir/test87.in,
- src/testdir/test87.ok
-
-Patch 7.3.944
-Problem: External program receives the termrespone.
-Solution: Insert a delay and discard input. (Hayaki Saito)
-Files: src/term.c
-
-Patch 7.3.945
-Problem: Python: List of buffers is not very useful.
-Solution: Make vim.buffers a map. No iterator yet. (ZyX)
-Files: runtime/doc/if_pyth.txt, src/if_py_both.h, src/if_python3.c,
- src/if_python.c, src/testdir/test86.ok, src/testdir/test87.ok
-
-Patch 7.3.946
-Problem: Sometimes get stuck in waiting for cursor position report,
- resulting in keys starting with <Esc>[ not working.
-Solution: Only wait for more characters after <Esc>[ if followed by '?', '>'
- or a digit.
-Files: src/term.c
-
-Patch 7.3.947
-Problem: Python: No iterator for vim.list and vim.bufferlist.
-Solution: Add the iterators. Also fix name of FunctionType. Add tests for
- vim.buffers. (ZyX)
-Files: runtime/doc/if_pyth.txt, src/eval.c, src/if_py_both.h,
- src/if_python3.c, src/if_python.c, src/proto/eval.pro,
- src/testdir/test86.in, src/testdir/test86.ok,
- src/testdir/test87.in, src/testdir/test87.ok
-
-Patch 7.3.948
-Problem: Cannot build with Python 2.2
-Solution: Make Python interface work with Python 2.2
- Make 2.2 the first supported version. (ZyX)
-Files: src/if_py_both.h, src/if_python3.c, src/if_python.c,
- src/testdir/test86.in, src/testdir/test86.ok,
- src/testdir/test87.ok, src/configure.in, src/auto/configure
-
-Patch 7.3.949
-Problem: Python: no easy access to tabpages.
-Solution: Add vim.tabpages and vim.current.tabpage. (ZyX)
-Files: runtime/doc/if_pyth.txt, src/if_py_both.h, src/if_python3.c,
- src/if_python.c, src/proto/if_python3.pro,
- src/proto/if_python.pro, src/proto/window.pro, src/structs.h,
- src/window.c
-
-Patch 7.3.950
-Problem: Python: Stack trace printer can't handle messages.
-Solution: Make KeyErrors use PyErr_SetObject. (ZyX)
-Files: src/if_py_both.h, src/if_python3.c, src/if_python.c
-
-Patch 7.3.951
-Problem: Python exceptions have problems.
-Solution: Change some IndexErrors to TypeErrors. Make “line number out of
- range†an IndexError. Make “unable to get option value†a
- RuntimeError. Make all PyErr_SetString messages start with
- lowercase letter and use _(). (ZyX)
-Files: src/if_py_both.h, src/if_python3.c, src/if_python.c,
- src/testdir/test86.ok, src/testdir/test87.ok
-
-Patch 7.3.952
-Problem: Python: It's not easy to change window/buffer/tabpage.
-Solution: Add ability to assign to vim.current.{tabpage,buffer,window}.
- (ZyX)
-Files: runtime/doc/if_pyth.txt, src/if_py_both.h
-
-Patch 7.3.953
-Problem: Python: string exceptions are deprecated.
-Solution: Make vim.error an Exception subclass. (ZyX)
-Files: src/if_python.c, src/if_python3.c
-
-Patch 7.3.954
-Problem: No check if PyObject_IsTrue fails.
-Solution: Add a check for -1 value. (ZyX)
-Files: src/if_py_both.h
-
-Patch 7.3.955
-Problem: Python: Not enough tests.
-Solution: Add tests for vim.{current,window*,tabpage*}. (ZyX)
-Files: src/testdir/test86.in, src/testdir/test86.ok,
- src/testdir/test87.in, src/testdir/test87.ok
-
-Patch 7.3.956
-Problem: Python vim.bindeval() causes SIGABRT.
-Solution: Make pygilstate a local variable. (Yukihiro Nakadaira)
-Files: src/if_py_both.h, src/if_python.c, src/if_python3.c
-
-Patch 7.3.957
-Problem: Python does not have a "do" command like Perl or Lua.
-Solution: Add the ":py3do" command. (Lilydjwg)
-Files: runtime/doc/if_pyth.txt, src/ex_cmds.h, src/ex_docmd.c,
- src/if_python3.c, src/proto/if_python3.pro
-
-Patch 7.3.958
-Problem: Python: Iteration destructor not set.
-Solution: Put IterDestructor to use. (ZyX)
-Files: src/if_py_both.c
-
-Patch 7.3.959 (after 7.3.957)
-Problem: Missing error number.
-Solution: Assign an error number.
-Files: src/if_python3.c
-
-Patch 7.3.960
-Problem: Compiler warning for unused variable.
-Solution: Put declaration in #ifdef.
-Files: src/window.c
-
-Patch 7.3.961
-Problem: Tests 86 and 87 fail when using another language than English.
-Solution: Set the language to C in the test. (Dominique Pelle)
-Files: src/testdir/test86.in, src/testdir/test87.in,
- src/testdir/test87.ok
-
-Patch 7.3.962
-Problem: Python tests are not portable.
-Solution: Use shiftwidth instead of iminsert. (ZyX)
-Files: src/testdir/test86.in, src/testdir/test86.ok,
- src/testdir/test87.in, src/testdir/test87.ok
-
-Patch 7.3.963
-Problem: Setting curbuf without curwin causes trouble.
-Solution: Add switch_buffer() and restore_buffer(). Block autocommands to
- avoid trouble.
-Files: src/eval.c, src/proto/eval.pro, src/proto/window.pro,
- src/if_py_both.h, src/window.c, src/testdir/test86.ok
-
-Patch 7.3.964
-Problem: Python: not so easy to access tab pages.
-Solution: Add window.tabpage, make window.number work with non-current tab
- pages. (ZyX)
-Files: runtime/doc/if_pyth.txt, src/if_py_both.h, src/if_python3.c,
- src/if_python.c, src/testdir/test86.ok, src/testdir/test87.ok
-
-Patch 7.3.965
-Problem: Python garbage collection not working properly.
-Solution: Add support for garbage collection. (ZyX)
-Files: src/if_py_both.h
-
-Patch 7.3.966
-Problem: There is ":py3do" but no ":pydo".
-Solution: Add the ":pydo" command. (Lilydjwg)
-Files: runtime/doc/if_pyth.txt, src/ex_cmds.h, src/ex_docmd.c,
- src/if_py_both.h, src/if_python.c, src/if_python3.c,
- src/proto/if_python.pro
-
-Patch 7.3.967 (after 7.3.965)
-Problem: Build fails on Mac OSX. (Greg Novack)
-Solution: Undefine clear().
-Files: src/if_py_both.h
-
-Patch 7.3.968
-Problem: Multi-byte support is only available when compiled with "big"
- features.
-Solution: Include multi-byte by default, with "normal" features.
-Files: src/feature.h
-
-Patch 7.3.969
-Problem: Can't build with Python 3 and without Python 2.
-Solution: Adjust #ifdef. (Xavier de Gaye)
-Files: src/window.c
-
-Patch 7.3.970
-Problem: Syntax highlighting can be slow.
-Solution: Include the NFA regexp engine. Add the 'regexpengine' option to
- select which one is used. (various authors, including Ken Takata,
- Andrei Aiordachioaie, Russ Cox, Xiaozhou Liua, Ian Young)
-Files: src/Make_cyg.mak, src/Make_ming.mak, src/Make_mvc.mak,
- src/Makefile, src/regexp.c, src/regexp.h, src/regexp_nfa.c,
- src/structs.h, src/testdir/Makefile, src/testdir/test64.in,
- src/testdir/test64.ok, Filelist, runtime/doc/pattern.txt,
- runtime/doc/option.txt, src/option.c, src/option.h,
- src/testdir/test95.in, src/testdir/test95.ok,
- src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
- src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
- src/testdir/Make_vms.mms, src/testdir/Makefile
-
-Patch 7.3.971
-Problem: No support for VS2012 static code analysis.
-Solution: Add the ANALYZE option. (Mike Williams)
-Files: src/Make_mvc.mak
-
-Patch 7.3.972
-Problem: Cursor not restored after InsertEnter autocommand if it moved to
- another line.
-Solution: Also restore if the saved line number is still valid. Allow
- setting v:char to skip restoring.
-Files: src/edit.c, runtime/doc/autocmd.txt
-
-Patch 7.3.973
-Problem: Compiler warnings. Crash on startup. (Tony Mechelynck)
-Solution: Change EMSG2 to EMSGN. Make array one character longer.
-Files: src/regexp_nfa.c
-
-Patch 7.3.974
-Problem: Can't build with ruby 1.8.5.
-Solution: Only use ruby_init_stack() when RUBY_INIT_STACK is defined.
- (Yukihiro Nakadaira)
-Files: src/if_ruby.c
-
-Patch 7.3.975
-Problem: Crash in regexp parsing.
-Solution: Correctly compute the end of allocated memory.
-Files: src/regexp_nfa.c
-
-Patch 7.3.976
-Problem: Can't build on HP-UX.
-Solution: Remove modern initialization. (John Marriott)
-Files: src/regexp_nfa.c
-
-Patch 7.3.977
-Problem: Compiler warnings on 64 bit Windows.
-Solution: Add type casts. (Mike Williams) Also fix some white space and
- uncomment what was commented-out for testing.
-Files: src/regexp_nfa.c
-
-Patch 7.3.978
-Problem: Regexp debug logs don't have a good name.
-Solution: Use clear names and make it possible to write logs for the old and
- new engines separately. (Taro Muraoka)
-Files: src/regexp.c, src/regexp_nfa.c
-
-Patch 7.3.979
-Problem: Complex NFA regexp doesn't work.
-Solution: Set actual state stack end instead of using an arbitrary number.
- (Yasuhiro Matsumoto)
-Files: src/regexp_nfa.c
-
-Patch 7.3.980
-Problem: Regexp logs may contain garbage. Character classes don't work
- correctly for multi-byte characters.
-Solution: Check for end of post list. Only use "is" functions for
- characters up to 255. (Ken Takata)
-Files: src/regexp_nfa.c
-
-Patch 7.3.981
-Problem: In the old regexp engine \i, \I, \f and \F don't work on
- multi-byte characters.
-Solution: Dereference pointer properly.
-Files: src/regexp.c, src/testdir/test64.in, src/testdir/test64.ok
-
-Patch 7.3.982
-Problem: In the new regexp engine \p does not work on multi-byte
- characters.
-Solution: Don't point to an integer but the characters.
-Files: src/regexp_nfa.c, src/testdir/test95.in, src/testdir/test95.ok
-
-Patch 7.3.983
-Problem: Unnecessary temp variable.
-Solution: Remove the variable.
-Files: src/regexp_nfa.c
-
-Patch 7.3.984
-Problem: A Visual mapping that uses CTRL-G works differently when started
- from Insert mode. (Ein Brown)
-Solution: Reset old_mapped_len when handling typed text in Select mode.
-Files: src/normal.c
-
-Patch 7.3.985
-Problem: GTK vim not started as gvim doesn't set WM_CLASS property to a
- useful value.
-Solution: Call g_set_prgname() on startup. (James McCoy)
-Files: src/gui_gtk_x11.c
-
-Patch 7.3.986
-Problem: Test 95 doesn't pass when 'encoding' isn't utf-8. (Yasuhiro
- Matsumoto)
-Solution: Force 'encoding' to be utf-8.
-Files: src/testdir/test95.in
-
-Patch 7.3.987
-Problem: No easy to run an individual test. Tests 64 fails when
- 'encoding' is not utf-8.
-Solution: Add individual test targets to the Makefile. Move some lines from
- test 64 to 95.
-Files: src/Makefile, src/testdir/test64.in, src/testdir/test64.ok,
- src/testdir/test95.in, src/testdir/test95.ok
-
-Patch 7.3.988
-Problem: New regexp engine is slow.
-Solution: Break out of the loop when the state list is empty.
-Files: src/regexp_nfa.c
-
-Patch 7.3.989
-Problem: New regexp engine compares negative numbers to character.
-Solution: Add missing case statements.
-Files: src/regexp_nfa.c
-
-Patch 7.3.990
-Problem: Memory leak in new regexp engine.
-Solution: Jump to end of function to free memory. (Dominique Pelle)
-Files: src/regexp_nfa.c
-
-Patch 7.3.991
-Problem: More can be shared by Python 2 and 3.
-Solution: Move more stuff to if_py_both. (ZyX)
-Files: src/if_py_both.h, src/if_python3.c, src/if_python.c,
- src/testdir/test87.ok
-
-Patch 7.3.992
-Problem: Python: Too many type casts.
-Solution: Change argument types. (ZyX)
-Files: src/if_py_both.h, src/if_python3.c, src/if_python.c
-
-Patch 7.3.993
-Problem: Python: Later patch does things slightly differently.
-Solution: Adjusted argument type changes. (ZyX)
-Files: src/if_py_both.h, src/if_python3.c, src/if_python.c
-
-Patch 7.3.994
-Problem: Python: using magic constants.
-Solution: Use descriptive values for ml_flags. (ZyX)
-Files: src/if_py_both.h, src/if_python3.c
-
-Patch 7.3.995
-Problem: Python: Module initialization is duplicated.
-Solution: Move to shared file. (ZyX)
-Files: src/if_py_both.h, src/if_python3.c, src/if_python.c
-
-Patch 7.3.996
-Problem: Python: Can't check types of what is returned by bindeval().
-Solution: Add vim.List, vim.Dictionary and vim.Function types. (ZyX)
-Files: runtime/doc/if_pyth.txt, src/if_py_both.h, src/testdir/test86.in,
- src/testdir/test86.ok, src/testdir/test87.in,
- src/testdir/test87.ok
-
-Patch 7.3.997
-Problem: Vim and Python exceptions are different.
-Solution: Make Vim exceptions be Python exceptions. (ZyX)
-Files: src/if_py_both.h, src/testdir/test86.in, src/testdir/test86.ok,
- src/testdir/test87.in, src/testdir/test87.ok
-
-Patch 7.3.998
-Problem: Python: garbage collection issues.
-Solution: Fix the GC issues: Use proper DESTRUCTOR_FINISH: avoids negative
- refcounts, use PyObject_GC_* for objects with tp_traverse and
- tp_clear, add RangeTraverse and RangeClear, use Py_XDECREF in some
- places. (ZyX)
-Files: src/if_py_both.h, src/if_python3.c, src/if_python.c
-
-Patch 7.3.999
-Problem: New regexp engine sets curbuf temporarily.
-Solution: Use reg_buf instead, like the old engine.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1000 (whoa!)
-Problem: Typo in char value causes out of bounds access.
-Solution: Fix character value. (Klemens Baum)
-Files: src/regexp.c
-
-Patch 7.3.1001
-Problem: Duplicate condition in if.
-Solution: Remove one condition.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1002
-Problem: Valgrind errors for Python interface.
-Solution: Fix memory leaks when running tests. (ZyX)
-Files: src/if_py_both.h
-
-Patch 7.3.1003
-Problem: Python interface does not compile with Python 2.2
-Solution: Fix thread issues and True/False. (ZyX)
-Files: src/if_py_both.h, src/if_python3.c, src/if_python.c,
- src/testdir/test86.in, src/testdir/test86.ok,
- src/testdir/test87.in, src/testdir/test87.ok
-
-Patch 7.3.1004
-Problem: No error when option could not be set.
-Solution: Report an error. (ZyX)
-Files: src/if_py_both.h, src/option.c, src/proto/option.pro,
- src/testdir/test86.ok, src/testdir/test87.ok
-
-Patch 7.3.1005
-Problem: Get stuck on regexp "\n*" and on "%s/^\n\+/\r".
-Solution: Fix handling of matching a line break. (idea by Hirohito Higashi)
-Files: src/regexp_nfa.c
-
-Patch 7.3.1006
-Problem: NFA engine not used for "\_[0-9]".
-Solution: Enable this, fixed in patch 1005.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1007
-Problem: Can't build on Minix 3.2.1.
-Solution: Add a condition to an #ifdef. (Gautam Tirumala)
-Files: src/memfile.c
-
-Patch 7.3.1008
-Problem: Test 95 fails on MS-Windows.
-Solution: Set 'nomore'. Change \i to \f. Change multi-byte character to
- something that is not matching \i. (Ken Takata)
-Files: src/testdir/test95.in, src/testdir/test95.ok
-
-Patch 7.3.1009
-Problem: Compiler warning for ambiguous else.
-Solution: Add curly braces.
-Files: src/if_py_both.h
-
-Patch 7.3.1010
-Problem: New regexp: adding \Z makes every character match.
-Solution: Only apply ireg_icombine for composing characters.
- Also add missing change from patch 1008. (Ken Takata)
-Files: src/regexp_nfa.c, src/testdir/test95.in, src/testdir/test95.ok
-
-Patch 7.3.1011
-Problem: New regexp engine is inefficient with multi-byte characters.
-Solution: Handle a character at a time instead of a byte at a time. Also
- make \Z partly work.
-Files: src/regexp_nfa.c, src/testdir/test95.in, src/testdir/test95.ok
-
-Patch 7.3.1012
-Problem: \Z does not work properly with the new regexp engine.
-Solution: Make \Z work. Add tests.
-Files: src/regexp_nfa.c, src/testdir/test95.in, src/testdir/test95.ok
-
-Patch 7.3.1013
-Problem: New regexp logging is a bit messy.
-Solution: Consistently use #defines, add explanatory comment. (Taro Muraoka)
-Files: src/regexp_nfa.c
-
-Patch 7.3.1014
-Problem: New regexp state dump is hard to read.
-Solution: Make the state dump more pretty. (Taro Muraoka)
-Files: src/regexp_nfa.c
-
-Patch 7.3.1015
-Problem: New regexp engine: Matching composing characters is wrong.
-Solution: Fix matching composing characters.
-Files: src/regexp_nfa.c, src/testdir/test95.in, src/testdir/test95.ok
-
-Patch 7.3.1016
-Problem: Unused field in nfa_state.
-Solution: Remove lastthread.
-Files: src/regexp.h, src/regexp_nfa.c
-
-Patch 7.3.1017
-Problem: Zero width match changes length of match.
-Solution: For a zero width match put new states in the current position in
- the state list.
-Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok,
- src/regexp.h
-
-Patch 7.3.1018
-Problem: New regexp engine wastes memory.
-Solution: Allocate prog with actual number of states, not estimated maximum
- number of sates.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1019
-Problem: These do not work with the new regexp engine: \%o123, \%x123,
- \%d123, \%u123 and \%U123.
-Solution: Implement these items.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1020
-Problem: Not all patterns are tested with auto / old / new engine.
-Solution: Test patterns with three values of 'regexpengine'.
-Files: src/testdir/test64.in, src/testdir/test64.ok,
- src/testdir/test95.in, src/testdir/test95.ok
-
-Patch 7.3.1021
-Problem: New regexp engine does not ignore order of composing chars.
-Solution: Ignore composing chars order.
-Files: src/regexp_nfa.c, src/testdir/test95.in, src/testdir/test95.ok
-
-Patch 7.3.1022
-Problem: Compiler warning for shadowed variable. (John Little)
-Solution: Move declaration, rename variables.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1023
-Problem: Searching for composing char only and using \Z has different
- results.
-Solution: Make it match the composing char, matching everything is not
- useful.
-Files: src/regexp_nfa.c, src/testdir/test95.in, src/testdir/test95.ok
-
-Patch 7.3.1024
-Problem: New regexp: End of matching pattern not set correctly. (Cesar
- Romani)
-Solution: Quit the loop after finding the match. Store nfa_has_zend in the
- program.
-Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok,
- src/regexp.h
-
-Patch 7.3.1025
-Problem: New regexp: not matching newline in string. (Marc Weber)
-Solution: Check for "\n" character.
-Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
-
-Patch 7.3.1026
-Problem: New regexp: pattern that includes a new-line matches too early.
- (john McGowan)
-Solution: Do not start searching in the second line.
-Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
-
-Patch 7.3.1027
-Problem: New regexp performance: Calling no_Magic() very often.
-Solution: Remove magicness inline.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1028
-Problem: New regexp performance: Copying a lot of position state.
-Solution: Only copy the sub-expressions that are being used.
-Files: src/regexp_nfa.c, src/regexp.h
-
-Patch 7.3.1029
-Problem: New regexp performance: Unused position state being copied.
-Solution: Keep track of which positions are actually valid.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1030 (after 7.3.1028)
-Problem: Can't build for debugging.
-Solution: Fix struct member names.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1031
-Problem: Compiler warnings for shadowed variable. (John Little)
-Solution: Move the variable declarations to the scope where they are used.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1032
-Problem: "\ze" is not supported by the new regexp engine.
-Solution: Make "\ze" work.
-Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
-
-Patch 7.3.1033
-Problem: "\1" .. "\9" are not supported in the new regexp engine.
-Solution: Implement them. Add a few more tests.
-Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok,
- src/regexp.h
-
-Patch 7.3.1034
-Problem: New regexp code using strange multi-byte code.
-Solution: Use the normal code to advance and backup pointers.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1035
-Problem: Compiler warning on 64 bit windows.
-Solution: Add type cast. (Mike Williams)
-Files: src/if_py_both.h
-
-Patch 7.3.1036
-Problem: Can't build on HP-UX.
-Solution: Give the union a name. (John Marriott)
-Files: src/regexp_nfa.c
-
-Patch 7.3.1037
-Problem: Look-behind matching is very slow on long lines.
-Solution: Add a byte limit to how far back an attempt is made.
-Files: src/regexp.c, src/regexp_nfa.c, src/testdir/test64.in,
- src/testdir/test64.ok
-
-Patch 7.3.1038
-Problem: Crash when using Cscope.
-Solution: Avoid negative argument to vim_strncpy(). (Narendran
- Gopalakrishnan)
-Files: src/if_cscope.c
-
-Patch 7.3.1039
-Problem: New regexp engine does not support \%23c, \%<23c and the like.
-Solution: Implement them. (partly by Yasuhiro Matsumoto)
-Files: src/regexp.h, src/regexp_nfa.c, src/testdir/test64.in,
- src/testdir/test64.ok
-
-Patch 7.3.1040
-Problem: Python: Problems with debugging dynamic build.
-Solution: Python patch 1. (ZyX)
-Files: src/if_python.c, src/if_python3.c
-
-Patch 7.3.1041
-Problem: Python: Invalid read valgrind errors.
-Solution: Python patch 2: defer DICTKEY_UNREF until key is no longer needed.
- (ZyX)
-Files: src/if_py_both.h
-
-Patch 7.3.1042
-Problem: Python: can't assign to vim.Buffer.name.
-Solution: Python patch 3. (ZyX)
-Files: runtime/doc/if_pyth.txt, src/ex_cmds.c, src/if_py_both.h,
- src/if_python3.c, src/if_python.c, src/proto/ex_cmds.pro,
- src/testdir/test86.in, src/testdir/test86.ok,
- src/testdir/test87.in, src/testdir/test87.ok
-
-Patch 7.3.1043
-Problem: Python: Dynamic compilation with 2.3 fails.
-Solution: Python patch 4. (ZyX)
-Files: src/if_python.c
-
-Patch 7.3.1044
-Problem: Python: No {Buffer,TabPage,Window}.valid attributes.
-Solution: Python patch 5: add .valid (ZyX)
-Files: src/if_py_both.h, src/if_python3.c, src/if_python.c,
- src/testdir/test86.in, src/testdir/test86.ok,
- src/testdir/test87.in, src/testdir/test87.ok
-
-Patch 7.3.1045
-Problem: Python: No error handling for VimToPython function.
-Solution: Python patch 6. (ZyX)
-Files: src/if_py_both.h
-
-Patch 7.3.1046
-Problem: Python: Using Py_BuildValue for building strings.
-Solution: Python patch 7 and 7.5: Replace Py_BuildValue with
- PyString_FromString. (ZyX)
-Files: src/if_py_both.h
-
-Patch 7.3.1047
-Problem: Python: dir() does not work properly.
-Solution: Python patch 8. Add __dir__ method to all objects with custom
- tp_getattr supplemented by __members__ attribute for at least
- python-2* versions. __members__ is not mentioned in python-3*
- dir() output even if it is accessible. (ZyX)
-Files: src/if_py_both.h, src/if_python3.c, src/if_python.c,
- src/testdir/test86.in, src/testdir/test86.ok,
- src/testdir/test87.in, src/testdir/test87.ok
-
-Patch 7.3.1048
-Problem: Python: no consistent naming.
-Solution: Python patch 9: Rename d to dict and lookupDict to lookup_dict.
- (ZyX)
-Files: src/if_py_both.h
-
-Patch 7.3.1049
-Problem: Python: no consistent naming
-Solution: Python patch 10: Rename DICTKEY_GET_NOTEMPTY to DICTKEY_GET. (ZyX)
-Files: src/if_py_both.h
-
-Patch 7.3.1050
-Problem: Python: Typo in pyiter_to_tv.
-Solution: Python patch 11. (ZyX)
-Files: src/if_py_both.h
-
-Patch 7.3.1051
-Problem: Python: possible memory leaks.
-Solution: Python patch 12: fix the leaks (ZyX)
-Files: src/if_py_both.h
-
-Patch 7.3.1052
-Problem: Python: possible SEGV and negative refcount.
-Solution: Python patch 13: Fix IterIter function. (ZyX)
-Files: src/if_py_both.h
-
-Patch 7.3.1053
-Problem: Python: no flag for types with tp_traverse+tp_clear.
-Solution: Python patch 14: Add Py_TPFLAGS_HAVE_GC. (ZyX)
-Files: src/if_py_both.h
-
-Patch 7.3.1054 (after 7.3.1042)
-Problem: Can't build without the +autocmd feature. (Elimar Riesebieter)
-Solution: Fix use of buf and curbuf.
-Files: src/ex_cmds.c, src/testdir/test86.ok, src/testdir/test87.ok
-
-Patch 7.3.1055
-Problem: Negated collection does not match newline.
-Solution: Handle newline differently. (Hiroshi Shirosaki)
-Files: src/regexp_nfa.c, src/testdir/test64.ok, src/testdir/test64.in
-
-Patch 7.3.1056
-Problem: Python: possible memory leaks.
-Solution: Python patch 15. (ZyX) Fix will follow later.
-Files: src/eval.c, src/if_py_both.h, src/proto/eval.pro
-
-Patch 7.3.1057
-Problem: Python: not enough compatibility.
-Solution: Python patch 16: Make OutputWritelines support any sequence object
- (ZyX) Note: tests fail
-Files: src/if_py_both.h, src/testdir/test86.in, src/testdir/test86.ok,
- src/testdir/test87.in, src/testdir/test87.ok
-
-Patch 7.3.1058
-Problem: Call of funcref does not succeed in other script.
-Solution: Python patch 17: add get_expanded_name(). (ZyX)
-Files: src/eval.c, src/proto/eval.pro
-
-Patch 7.3.1059
-Problem: Python: Using fixed size buffers.
-Solution: Python patch 18: Use python's own formatter. (ZyX)
-Files: src/if_py_both.h, src/if_python3.c, src/if_python.c
-
-Patch 7.3.1060
-Problem: Python: can't repr() a function.
-Solution: Python patch 19: add FunctionRepr(). (ZyX)
-Files: src/if_py_both.h
-
-Patch 7.3.1061
-Problem: Python: Dictionary is not standard.
-Solution: Python patch 20: Add standard methods and fields. (ZyX)
-Files: runtime/doc/if_pyth.txt, src/eval.c, src/if_py_both.h,
- src/if_python3.c, src/if_python.c, src/proto/eval.pro,
- src/testdir/test86.in, src/testdir/test86.ok,
- src/testdir/test87.in, src/testdir/test87.ok
-
-Patch 7.3.1062
-Problem: Python: List is not standard.
-Solution: Python patch 21: Add standard methods and fields. (ZyX)
-Files: src/if_py_both.h, src/testdir/test86.in, src/testdir/test86.ok,
- src/testdir/test87.in, src/testdir/test87.ok
-
-Patch 7.3.1063
-Problem: Python: Function is not standard.
-Solution: Python patch 22: make Function subclassable. (ZyX)
-Files: src/eval.c, src/if_py_both.h, src/proto/eval.pro,
- src/testdir/test86.in, src/testdir/test86.ok,
- src/testdir/test87.in, src/testdir/test87.ok
-
-Patch 7.3.1064
-Problem: Python: insufficient error checking.
-Solution: Python patch 23. (ZyX)
-Files: src/if_py_both.h
-
-Patch 7.3.1065
-Problem: Python: key mapping is not standard.
-Solution: Python patch 24: use PyMapping_Keys. (ZyX)
-Files: src/if_py_both.h, src/if_python3.c, src/if_python.c
-
-Patch 7.3.1066
-Problem: Python: Insufficient exception and error testing.
-Solution: Python patch 25. (ZyX)
-Files: src/testdir/test86.in, src/testdir/test86.ok,
- src/testdir/test87.in, src/testdir/test87.ok
-
-Patch 7.3.1067
-Problem: Python: documentation lags behind.
-Solution: Python patch 26. (ZyX)
-Files: runtime/doc/if_pyth.txt
-
-Patch 7.3.1068
-Problem: Python: Script is auto-loaded on function creation.
-Solution: Python patch 27. (ZyX)
-Files: src/eval.c, src/if_py_both.h, src/proto/eval.pro,
- src/testdir/test86.ok, src/testdir/test87.ok, src/vim.h
-
-Patch 7.3.1069
-Problem: Python: memory leaks.
-Solution: Python patch 28: Purge out DICTKEY_CHECK_EMPTY macros. (ZyX)
-Files: src/if_py_both.h
-
-Patch 7.3.1070
-Problem: Vim crashes in Python tests. Compiler warning for unused function.
-Solution: Disable the tests for now. Move the function.
-Files: src/if_py_both.h, src/if_python.c, src/testdir/test86.in,
- src/testdir/test87.in
-
-Patch 7.3.1071
-Problem: New regexp engine: backreferences don't work correctly.
-Solution: Add every possible start/end position on the state stack.
-Files: src/regexp_nfa.c, src/regexp.h, src/testdir/test64.in,
- src/testdir/test64.ok
-
-Patch 7.3.1072
-Problem: Compiler warning for uninitialized variable.
-Solution: Initialize it.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1073
-Problem: New regexp engine may run out of states.
-Solution: Allocate states dynamically. Also make the test report errors.
-Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok,
- src/testdir/test95.in
-
-Patch 7.3.1074
-Problem: Compiler warning for printf format. (Manuel Ortega)
-Solution: Add type casts.
-Files: src/if_py_both.h
-
-Patch 7.3.1075
-Problem: Compiler warning for storing a long_u in an int.
-Solution: Declare the number as an int. (Mike Williams)
-Files: src/regexp_nfa.c
-
-Patch 7.3.1076
-Problem: New regexp engine: \@= and \& don't work.
-Solution: Make these items work. Add column info to logging.
-Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
-
-Patch 7.3.1077
-Problem: Python: Allocating dict the wrong way, causing a crash.
-Solution: Use py_dict_alloc(). Fix some exception problems. (ZyX)
-Files: src/if_py_both.h
-
-Patch 7.3.1078
-Problem: New regexp engine: \@! doesn't work.
-Solution: Implement the negated version of \@=.
-Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
-
-Patch 7.3.1079
-Problem: Test 87 fails.
-Solution: Fix the test for Python 3.3. (ZyX) Make it pass on 32 bit systems.
-Files: src/testdir/test87.in, src/testdir/test87.ok
-
-Patch 7.3.1080
-Problem: Test 86 fails.
-Solution: Comment out the parts that don't work. Make it pass on 32 bit
- systems.
-Files: src/testdir/test86.in, src/testdir/test86.ok
-
-Patch 7.3.1081
-Problem: Compiler warnings on 64-bit Windows.
-Solution: Change variable types. (Mike Williams)
-Files: src/if_py_both.h, src/regexp_nfa.c
-
-Patch 7.3.1082
-Problem: New regexp engine: Problem with \@= matching.
-Solution: Save and restore nfa_match.
-Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
-
-Patch 7.3.1083
-Problem: New regexp engine: Does not support \%^ and \%$.
-Solution: Support matching start and end of file.
-Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
-
-Patch 7.3.1084
-Problem: New regexp engine: only accepts up to \{,10}.
-Solution: Remove upper limit. Remove dead code with NFA_PLUS.
-Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
-
-Patch 7.3.1085
-Problem: New regexp engine: Non-greedy multi doesn't work.
-Solution: Implement \{-}.
-Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
-
-Patch 7.3.1086
-Problem: Old regexp engine accepts illegal range, new one doesn't.
-Solution: Also accept the illegal range with the new engine.
-Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
-
-Patch 7.3.1087
-Problem: A leading star is not seen as a normal char when \{} follows.
-Solution: Save and restore the parse state properly.
-Files: src/regexp.c, src/regexp_nfa.c, src/testdir/test64.in,
- src/testdir/test64.ok
-
-Patch 7.3.1088
-Problem: New regexp engine: \@<= and \@<! are not implemented.
-Solution: Implement look-behind matching. Fix off-by-one error in old
- regexp engine.
-Files: src/regexp.c, src/regexp_nfa.c, src/testdir/test64.in,
- src/testdir/test64.ok
-
-Patch 7.3.1089
-Problem: Tests 86 and 87 fail on MS-Windows. (Ken Takata)
-Solution: Fix platform-specific stuff. (ZyX)
-Files: src/testdir/test86.in, src/testdir/test86.ok,
- src/testdir/test87.in, src/testdir/test87.ok
-
-Patch 7.3.1090
-Problem: New regexp engine does not support \z1 .. \z9 and \z(.
-Solution: Implement the syntax submatches.
-Files: src/regexp.h, src/regexp_nfa.c
-
-Patch 7.3.1091
-Problem: New regexp engine: no error when using \z1 or \z( where it does
- not work.
-Solution: Give an error message.
-Files: src/regexp.c, src/regexp_nfa.c
-
-Patch 7.3.1092
-Problem: Can't build with regexp debugging. NFA debug output shows wrong
- pattern.
-Solution: Fix debugging code for recent changes. Add the pattern to the
- program.
-Files: src/regexp_nfa.c, src/regexp.h
-
-Patch 7.3.1093
-Problem: New regexp engine: When a sub expression is empty \1 skips a
- character.
-Solution: Make \1 try the current position when the match is empty.
-Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
-
-Patch 7.3.1094
-Problem: New regexp engine: Attempts to match "^" at every character.
-Solution: Only try "^" at the start of a line.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1095
-Problem: Compiler warnings for shadowed variables. (Christian Brabandt)
-Solution: Rename new_state() to alloc_state(). Remove unnecessary
- declaration.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1096
-Problem: Python: popitem() was not defined in a standard way.
-Solution: Remove the argument from popitem(). (ZyX)
-Files: runtime/doc/if_pyth.txt, src/if_py_both.h, src/testdir/test86.in,
- src/testdir/test86.ok, src/testdir/test87.in,
- src/testdir/test87.ok
-
-Patch 7.3.1097
-Problem: Python: a few recently added items are not documented.
-Solution: Update the documentation. (ZyX)
-Files: runtime/doc/if_pyth.txt
-
-Patch 7.3.1098
-Problem: Python: Possible memory leaks
-Solution: Add Py_XDECREF() calls. (ZyX)
-Files: src/if_py_both.h
-
-Patch 7.3.1099
-Problem: Python: Changing directory with os.chdir() causes problems for
- Vim's notion of directories.
-Solution: Add vim.chdir() and vim.fchdir(). (ZyX)
-Files: runtime/doc/if_pyth.txt, src/ex_docmd.c, src/if_py_both.h,
- src/if_python3.c, src/if_python.c, src/proto/ex_docmd.pro,
- src/testdir/test86.in, src/testdir/test86.ok,
- src/testdir/test87.in, src/testdir/test87.ok
-
-Patch 7.3.1100
-Problem: Python: a few more memory problems.
-Solution: Add and remove Py_XDECREF(). (ZyX)
-Files: src/if_py_both.h, src/testdir/test86.in, src/testdir/test86.ok,
- src/testdir/test87.in, src/testdir/test87.ok
-
-Patch 7.3.1101
-Problem: Configure doesn't find Python 3 on Ubuntu 13.04.
-Solution: First try distutils.sysconfig. Also fix some indents. (Ken
- Takata)
-Files: src/configure.in, src/auto/configure
-
-Patch 7.3.1102
-Problem: Completion of ":py3do" and ":py3file" does not work after ":py3".
-Solution: Make completion work. (Taro Muraoka)
-Files: src/ex_docmd.c
-
-Patch 7.3.1103
-Problem: New regexp engine: overhead in saving and restoring.
-Solution: Make saving and restoring list IDs faster. Don't copy or check \z
- subexpressions when they are not used.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1104
-Problem: New regexp engine does not handle "~".
-Solution: Add support for "~".
-Files: src/regexp_nfa.c, src/testdir/test24.in, src/testdir/test24.ok
-
-Patch 7.3.1105
-Problem: New regexp engine: too much code in one function. Dead code.
-Solution: Move the recursive nfa_regmatch call to a separate function.
- Remove the dead code.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1106
-Problem: New regexp engine: saving and restoring lastlist in the states
- takes a lot of time.
-Solution: Use a second lastlist value for the first recursive call.
-Files: src/regexp.h, src/regexp_nfa.c
-
-Patch 7.3.1107
-Problem: Compiler warnings for unused variables.
-Solution: Put the variables inside #ifdef.
-Files: src/regexp.c, src/regexp_nfa.c
-
-Patch 7.3.1108
-Problem: Error message for os.fchdir() (Charles Peacech)
-Solution: Clear the error. (ZyX)
-Files: src/if_py_both.h
-
-Patch 7.3.1109
-Problem: Building on MS-Windows doesn't see changes in if_py_both.h.
-Solution: Add a dependency. (Ken Takata)
-Files: src/Make_bc5.mak, src/Make_cyg.mak, src/Make_ming.mak,
- src/Make_mvc.mak
-
-Patch 7.3.1110
-Problem: New regexp matching: Using \@= and the like can be slow.
-Solution: Decide whether to first try matching the zero-width part or what
- follows, whatever is more likely to fail.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1111
-Problem: nfa_recognize_char_class() implementation is inefficient.
-Solution: Use bits in an int instead of chars in a string. (Dominique Pelle)
-Files: src/regexp_nfa.c, src/testdir/test36.in, src/testdir/test36.ok
-
-Patch 7.3.1112
-Problem: New regexp engine: \%V not supported.
-Solution: Implement \%V. Add tests.
-Files: src/regexp.c, src/regexp_nfa.c, src/testdir/test64.in,
- src/testdir/test64.ok
-
-Patch 7.3.1113
-Problem: New regexp engine: \%'m not supported.
-Solution: Implement \%'m. Add tests.
-Files: src/regexp.c, src/regexp_nfa.c, src/testdir/test64.in,
- src/testdir/test64.ok
-
-Patch 7.3.1114 (after 7.3.1110)
-Problem: Can't build without the syntax feature.
-Solution: Add #ifdefs. (Erik Falor)
-Files: src/regexp_nfa.c
-
-Patch 7.3.1115
-Problem: Many users don't like the cursor line number when 'relativenumber'
- is set.
-Solution: Have four combinations with 'number' and 'relativenumber'.
- (Christian Brabandt)
-Files: runtime/doc/options.txt, src/option.c, src/screen.c,
- src/testdir/test89.in, src/testdir/test89.ok
-
-Patch 7.3.1116
-Problem: Can't build without Visual mode.
-Solution: Add #ifdefs.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1117
-Problem: New regexp engine: \%[abc] not supported.
-Solution: Implement \%[abc]. Add tests.
-Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
-
-Patch 7.3.1118
-Problem: Match failure rate is not very specific.
-Solution: Tune the failure rate for match items.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1119
-Problem: Flags in 'cpo' are search for several times.
-Solution: Store the result and re-use the flags.
-Files: src/regexp.c, src/regexp_nfa.c
-
-Patch 7.3.1120
-Problem: Crash when regexp logging is enabled.
-Solution: Avoid using NULL pointers. Advance over count argument.
-Files: src/regexp.c, src/regexp_nfa.c
-
-Patch 7.3.1121
-Problem: New regexp engine: adding states that are not used.
-Solution: Don't add the states.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1122
-Problem: New regexp engine: \@> not supported.
-Solution: Implement \%>.
-Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
-
-Patch 7.3.1123
-Problem: Can't build tiny Vim on MS-Windows.
-Solution: Adjust #ifdef around using modif_fname(). (Mike Williams)
-Files: src/misc1.c
-
-Patch 7.3.1124
-Problem: Python: Crash on MS-Windows when os.fchdir() is not available.
-Solution: Check for _chdir to be NULL. (Ken Takata)
-Files: src/if_py_both.h
-
-Patch 7.3.1125
-Problem: Error for using \%V in a pattern in tiny Vim.
-Solution: Allow using \%V but never match. (Dominique Pelle)
-Files: src/regexp_nfa.c
-
-Patch 7.3.1126
-Problem: Compiler warning for uninitialized variable. (Tony Mechelynck)
-Solution: Assign something to the variable.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1127
-Problem: No error for using empty \%[].
-Solution: Give error message.
-Files: src/regexp.c, src/regexp_nfa.c
-
-Patch 7.3.1128
-Problem: Now that the NFA engine handles everything every failure is a
- syntax error.
-Solution: Remove the syntax_error flag.
-Files: src/regexp.c, src/regexp_nfa.c
-
-Patch 7.3.1129
-Problem: Can't see what pattern in syntax highlighting is slow.
-Solution: Add the ":syntime" command.
-Files: src/structs.h, src/syntax.c, src/ex_cmds.h, src/ex_docmd.c,
- src/proto/syntax.pro, src/ex_cmds2.c, src/proto/ex_cmds2.pro,
- runtime/doc/syntax.txt
-
-Patch 7.3.1130 (after 7.3.1129)
-Problem: Can't build with anything but huge features.
-Solution: Check for FEAT_PROFILE. (Yasuhiro Matsumoto)
-Files: src/ex_docmd.c, src/structs.h, src/syntax.c
-
-Patch 7.3.1131
-Problem: New regexp engine is a bit slow.
-Solution: Do not clear the state list. Don't copy syntax submatches when
- not used.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1132
-Problem: Crash when debugging regexp.
-Solution: Do not try to dump subexpr that were not set. Skip over count of
- \% items.
-Files: src/regexp.c, src/regexp_nfa.c
-
-Patch 7.3.1133
-Problem: New regexp engine is a bit slow.
-Solution: Skip ahead to a character that must match. Don't try matching a
- "^" patter past the start of line.
-Files: src/regexp_nfa.c, src/regexp.h
-
-Patch 7.3.1134
-Problem: Running test 49 takes a long time.
-Solution: Don't have it grep all files.
-Files: src/testdir/test49.vim
-
-Patch 7.3.1135
-Problem: Compiler warning for unused argument.
-Solution: Add UNUSED.
-Files: src/syntax.c
-
-Patch 7.3.1136
-Problem: ":func Foo" does not show attributes.
-Solution: Add "abort", "dict" and "range". (Yasuhiro Matsumoto)
-Files: src/eval.c
-
-Patch 7.3.1137
-Problem: New regexp engine: collections are slow.
-Solution: Handle all characters in one go.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1138
-Problem: New regexp engine: neglist no longer used.
-Solution: Remove the now unused neglist.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1139
-Problem: New regexp engine: negated flag is hardly used.
-Solution: Add separate _NEG states, remove negated flag.
-Files: src/regexp_nfa.c, src/regexp.h
-
-Patch 7.3.1140
-Problem: New regexp engine: trying expensive match while the result is not
- going to be used.
-Solution: Check for output state already being in the state list.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1141
-Problem: Win32: Check for available memory is not reliable and adds
- overhead.
-Solution: Remove mch_avail_mem(). (Mike Williams)
-Files: src/os_win32.c, src/os_win32.h
-
-Patch 7.3.1142
-Problem: Memory leak in ":syntime report".
-Solution: Clear the grow array. (Dominique Pelle)
-Files: src/syntax.c
-
-Patch 7.3.1143
-Problem: When mapping NUL it is displayed as an X.
-Solution: Check for KS_ZERO instead of K_ZERO. (Yasuhiro Matsumoto)
-Files: src/message.c
-
-Patch 7.3.1144
-Problem: "RO" is not translated everywhere.
-Solution: Put inside _(). (Sergey Alyoshin)
-Files: src/buffer.c, src/screen.c
-
-Patch 7.3.1145
-Problem: New regexp engine: addstate() is called very often.
-Solution: Optimize adding the start state.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1146
-Problem: New regexp engine: look-behind match not checked when followed by
- zero-width match.
-Solution: Do the look-behind match before adding the zero-width state.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1147
-Problem: New regexp engine: regstart is only used to find the first match.
-Solution: Use regstart whenever adding the start state.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1148
-Problem: No command line completion for ":syntime".
-Solution: Implement the completion. (Dominique Pelle)
-Files: runtime/doc/map.txt, src/ex_cmds.h, src/ex_docmd.c,
- src/ex_getln.c, src/proto/syntax.pro, src/syntax.c, src/vim.h
-
-Patch 7.3.1149
-Problem: New regexp engine: Matching plain text could be faster.
-Solution: Detect a plain text match and handle it specifically. Add
- vim_regfree().
-Files: src/regexp.c, src/regexp.h, src/regexp_nfa.c,
- src/proto/regexp.pro, src/buffer.c, src/edit.c, src/eval.c,
- src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_eval.c,
- src/ex_getln.c, src/fileio.c, src/gui.c, src/misc1.c, src/misc2.c,
- src/option.c, src/syntax.c, src/quickfix.c, src/search.c,
- src/spell.c, src/tag.c, src/window.c, src/screen.c, src/macros.h,
- src/testdir/test64.in, src/testdir/test64.ok
-
-Patch 7.3.1150
-Problem: New regexp engine: Slow when a look-behind match does not have a
- width specified.
-Solution: Try to compute the maximum width.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1151
-Problem: New regexp engine: Slow when a look-behind match is followed by a
- zero-width match.
-Solution: Postpone the look-behind match more often.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1152
-Problem: In tiny build ireg_icombine is undefined. (Tony Mechelynck)
-Solution: Add #ifdef.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1153
-Problem: New regexp engine: Some look-behind matches are very expensive.
-Solution: Postpone invisible matches further, until a match is almost found.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1154
-Problem: New regexp_nfa engine: Unnecessary code.
-Solution: Remove unnecessary code.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1155
-Problem: MS-DOS: "make test" uses external rmdir command.
-Solution: Rename "rmdir" to "rd". (Taro Muraoka)
-Files: src/testdir/Make_dos.mak
-
-Patch 7.3.1156
-Problem: Compiler warnings. (dv1445)
-Solution: Initialize variables, even when the value isn't really used.
-Files: src/regexp_nfa.c, src/eval.c
-
-Patch 7.3.1157
-Problem: New regexp engine fails on "\(\<command\)\@<=.*"
-Solution: Fix rule for postponing match. Further tune estimating whether
- postponing works better. Add test.
-Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
-
-Patch 7.3.1158
-Problem: Crash when running test 86. (Jun Takimoto)
-Solution: Define PY_SSIZE_T_CLEAN early. (Elimar Riesebieter)
-Files: src/if_python.c, src/if_python3.c
-
-Patch 7.3.1159
-Problem: The round() function is not always available. (Christ van
- Willegen)
-Solution: Use the solution from f_round().
-Files: src/ex_cmds2.c, src/eval.c, src/proto/eval.pro
-
-Patch 7.3.1160
-Problem: Mixing long and pointer doesn't always work.
-Solution: Avoid cast to pointer.
-Files: src/undo.c
-
-Patch 7.3.1161
-Problem: Python: PyList_SetItem() is inefficient.
-Solution: Use PyList_SET_ITEM() (ZyX)
-Files: src/if_py_both.h
-
-Patch 7.3.1162
-Problem: Python: Memory leaks
-Solution: Add more Py_DECREF(). (ZyX)
-Files: src/if_py_both.h, src/if_python.c
-
-Patch 7.3.1163
-Problem: Not easy to load Python modules.
-Solution: Search "python2", "python3" and "pythonx" directories in
- 'runtimepath' for Python modules. (ZyX)
-Files: runtime/doc/if_pyth.txt, src/configure.in, src/ex_cmds2.c,
- src/if_py_both.h, src/if_python.c, src/if_python3.c,
- src/testdir/test86.in, src/testdir/test87.in, src/auto/configure
-
-Patch 7.3.1164
-Problem: Can't test what is actually displayed on screen.
-Solution: Add the screenchar() and screenattr() functions.
-Files: src/eval.c, runtime/doc/eval.txt
-
-Patch 7.3.1165
-Problem: HP-UX compiler can't handle zero size array. (Charles Cooper)
-Solution: Make the array one item big.
-Files: src/regexp.h, src/regexp_nfa.c
-
-Patch 7.3.1166
-Problem: Loading Python modules is not tested.
-Solution: Enable commented-out tests, add missing files. (ZyX)
-Files: src/testdir/test86.in, src/testdir/test86.ok,
- src/testdir/test87.in, src/testdir/test87.ok,
- src/testdir/python2/module.py, src/testdir/python3/module.py,
- src/testdir/pythonx/module.py, src/testdir/pythonx/modulex.py,
- Filelist
-
-Patch 7.3.1167
-Problem: Python configure check doesn't reject Python 2 when requesting
- Python 3. Some systems need -pthreads instead of -pthread.
-Solution: Adjust configure accordingly. (Andrei Olsen)
-Files: src/configure.in, src/auto/configure
-
-Patch 7.3.1168
-Problem: Python "sane" configure checks give a warning message.
-Solution: Use single quotes instead of escaped double quotes. (Ben Fritz)
-Files: src/configure.in, src/auto/configure
-
-Patch 7.3.1169
-Problem: New regexp engine: some work is done while executing a pattern,
- even though the result is predictable.
-Solution: Do the work while compiling the pattern.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1170
-Problem: Patch 7.3.1058 breaks backwards compatibility, not possible to use
- a function reference as a string. (lilydjwg)
-Solution: Instead of translating the function name only translate "s:".
-Files: src/eval.c
-
-Patch 7.3.1171
-Problem: Check for digits and ascii letters can be faster.
-Solution: Use a trick with one comparison. (Dominique Pelle)
-Files: src/macros.h
-
-Patch 7.3.1172
-Problem: Python 2: loading modules doesn't work well.
-Solution: Fix the code. Add more tests. (ZyX)
-Files: runtime/doc/if_pyth.txt, src/if_py_both.h, src/if_python.c,
- src/testdir/python2/module.py, src/testdir/python3/module.py,
- src/testdir/python_after/after.py,
- src/testdir/python_before/before.py, src/testdir/test86.in,
- src/testdir/test86.ok, src/testdir/test87.in,
- src/testdir/test87.ok, Filelist
-
-Patch 7.3.1173
-Problem: Python 2 tests don't have the same output everywhere.
-Solution: Make the Python 2 tests more portable. (ZyX)
-Files: src/testdir/test86.in, src/testdir/test86.ok
-
-Patch 7.3.1174
-Problem: Python 2 and 3 use different ways to load modules.
-Solution: Use the same method. (ZyX)
-Files: runtime/doc/if_pyth.txt, src/if_py_both.h, src/if_python3.c,
- src/if_python.c
-
-Patch 7.3.1175
-Problem: Using isalpha() and isalnum() can be slow.
-Solution: Use range checks. (Mike Williams)
-Files: src/ex_docmd.c, src/macros.h
-
-Patch 7.3.1176
-Problem: Compiler warnings on 64 bit system.
-Solution: Add type casts. (Mike Williams)
-Files: src/eval.c, src/if_py_both.h
-
-Patch 7.3.1177
-Problem: Wasting memory on padding.
-Solution: Reorder struct fields. (Dominique Pelle)
-Files: src/structs.h, src/fileio.c
-
-Patch 7.3.1178
-Problem: Can't put all Vim config files together in one directory.
-Solution: Load ~/.vim/vimrc if ~/.vimrc does not exist. (Lech Lorens)
-Files: runtime/doc/gui.txt, runtime/doc/starting.txt, src/gui.c,
- src/main.c, src/os_amiga.h, src/os_dos.h, src/os_unix.h
-
-Patch 7.3.1179
-Problem: When a global mapping starts with the same characters as a
- buffer-local mapping Vim waits for a character to be typed to find
- out whether the global mapping is to be used. (Andy Wokula)
-Solution: Use the local mapping without waiting. (Michael Henry)
-Files: runtime/doc/map.txt, src/getchar.c
-
-Patch 7.3.1180
-Problem: When current directory changes, path from cscope may no longer be
- valid. (AS Budden)
-Solution: Always store the absolute path. (Christian Brabandt)
-Files: src/if_cscope.c
-
-Patch 7.3.1181
-Problem: Wrong error message for 1.0[0].
-Solution: Check for funcref and float separately. (Yasuhiro Matsumoto)
-Files: src/eval.c
-
-Patch 7.3.1182
-Problem: 'backupcopy' default on MS-Windows does not work for hard and soft
- links.
-Solution: Check for links. (David Pope, Ken Takata)
-Files: src/fileio.c, src/os_win32.c, src/proto/os_win32.pro
-
-Patch 7.3.1183
-Problem: Python tests 86 and 87 fail.
-Solution: Add "empty" files. (ZyX)
-Files: src/testdir/python_before/before_1.py,
- src/testdir/python_before/before_2.py
-
-Patch 7.3.1184
-Problem: Highlighting is sometimes wrong. (Axel Bender)
-Solution: Fetch regline again when returning from recursive regmatch.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1185
-Problem: New regexp engine: no match with ^ after \n. (SungHyun Nam)
-Solution: Fix it, add a test.
-Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
-
-Patch 7.3.1186
-Problem: Python 3: test 87 may crash.
-Solution: Use _PyArg_Parse_SizeT instead of PyArg_Parse. (Jun Takimoto)
-Files: src/if_python3.c
-
-Patch 7.3.1187 (after 7.3.1170)
-Problem: "s:" is recognized but "<SID>" is not. (ZyX)
-Solution: Translate "<SID>" like "s:".
-Files: src/eval.c
-
-Patch 7.3.1188
-Problem: Newline characters messing up error message.
-Solution: Remove the newlines. (Kazunobu Kuriyama)
-Files: src/gui_x11.c
-
-Patch 7.3.1189 (after 7.3.1185)
-Problem: Highlighting is still wrong sometimes. (Dominique Pelle)
-Solution: Also restore reginput properly.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1190
-Problem: Compiler warning for parentheses. (Christian Wellenbrock)
-Solution: Change #ifdef.
-Files: src/ex_docmd.c
-
-Patch 7.3.1191
-Problem: Backreference to previous line doesn't work. (Lech Lorens)
-Solution: Implement looking in another line.
-Files: src/regexp.c, src/regexp_nfa.c, src/testdir/test64.in,
- src/testdir/test64.ok
-
-Patch 7.3.1192
-Problem: Valgrind reports errors when using backreferences. (Dominique
- Pelle)
-Solution: Do not check the end of submatches.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1193
-Problem: fail_if_missing not used for Python 3.
-Solution: Give an error when Python 3 can't be configured. (Andrei Olsen)
-Files: src/configure.in, src/auto/configure
-
-Patch 7.3.1194
-Problem: Yaml highlighting is slow.
-Solution: Tune the estimation of pattern failure chance.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1195
-Problem: Compiler warning for uninitialized variable. (Tony Mechelynck)
-Solution: Set the length to the matching backref.
-Files: src/regexp.c
-
-Patch 7.3.1196
-Problem: Old regexp engine does not match pattern with backref correctly.
- (Dominique Pelle)
-Solution: Fix setting status. Test multi-line patterns better.
-Files: src/regexp.c, src/testdir/test64.in, src/testdir/test64.ok
-
-Patch 7.3.1197
-Problem: ":wviminfo!" does not write history previously read from a viminfo
- file. (Roland Eggner)
-Solution: When not merging history write all entries.
-Files: src/ex_cmds.c, src/ex_getln.c, src/proto/ex_getln.pro
-
-Patch 7.3.1198
-Problem: Build error when using Perl 5.18.0 and dynamic loading.
-Solution: Change #ifdefs for Perl_croak_xs_usage. (Ike Devolder)
-Files: src/if_perl.xs
-
-Patch 7.3.1199
-Problem: When evaluating 'foldexpr' causes an error this is silently
- ignored and evaluation is retried every time.
-Solution: Set emsg_silent instead of emsg_off. Stop evaluating 'foldexpr' is
- it is causing errors. (Christian Brabandt)
-Files: src/fold.c
-
-Patch 7.3.1200
-Problem: When calling setline() from Insert mode, using CTRL-R =, undo does
- not work properly. (Israel Chauca)
-Solution: Sync undo after evaluating the expression. (Christian Brabandt)
-Files: src/edit.c, src/testdir/test61.in, src/testdir/test61.ok
-
-Patch 7.3.1201
-Problem: When a startup script creates a preview window, it probably
- becomes the current window.
-Solution: Make another window the current one. (Christian Brabandt)
-Files: src/main.c
-
-Patch 7.3.1202 (after 7.3.660)
-Problem: Tags are not found in case-folded tags file. (Darren cole, Issue
- 90)
-Solution: Take into account that when case folding was used for the tags
- file "!rm" sorts before the "!_TAG" header lines.
-Files: src/tag.c
-
-Patch 7.3.1203
-Problem: Matches from matchadd() might be highlighted incorrectly when they
- are at a fixed position and inserting lines. (John Szakmeister)
-Solution: Redraw all lines below a change if there are highlighted matches.
- (idea by Christian Brabandt)
-Files: src/screen.c
-
-Patch 7.3.1204
-Problem: Calling gettabwinvar() in 'tabline' cancels Visual mode. (Hirohito
- Higashi)
-Solution: Don't always use goto_tabpage_tp().
-Files: src/window.c, src/proto/window.pro, src/eval.c, src/if_py_both.h
-
-Patch 7.3.1205
-Problem: logtalk.dict is not removed on uninstall.
-Solution: Remove the file. (Kazunobu Kuriyama)
-Files: src/Makefile
-
-Patch 7.3.1206
-Problem: Inconsistent function argument declarations.
-Solution: Use ANSI style.
-Files: src/if_py_both.h
-
-Patch 7.3.1207
-Problem: New regexp engine: no match found on "#if FOO". (Lech Lorens)
-Solution: When adding a state gets skipped don't adjust the index.
-Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
-
-Patch 7.3.1208
-Problem: Compiler warnings on MS-Windows.
-Solution: Add type cast. Move variable declaration. (Mike Williams)
-Files: src/option.c, src/os_mswin.c
-
-Patch 7.3.1209
-Problem: No completion for ":tabdo".
-Solution: Add tabdo to the list of modifiers. (Dominique Pelle)
-Files: src/ex_docmd.c
-
-Patch 7.3.1210 (after 7.3.1182)
-Problem: 'backupcopy' default on MS-Windows is wrong when 'encoding' equals
- the current codepage.
-Solution: Change the #else block. (Ken Takata)
-Files: src/os_win32.c
-
-Patch 7.3.1211
-Problem: MS-Windows: When 'encoding' differs from the current codepage
- ":hardcopy" does not work properly.
-Solution: Use TextOutW() and SetDlgItemTextW(). (Ken Takata)
-Files: src/os_mswin.c, src/vim.rc
-
-Patch 7.3.1212
-Problem: "make test" on MS-Windows does not report failure like Unix does.
-Solution: Make it work like on Unix. (Taro Muraoka)
-Files: src/testdir/Make_dos.mak
-
-Patch 7.3.1213
-Problem: Can't build with small features and Python.
-Solution: Adjust #ifdefs.
-Files: src/eval.c, src/buffer.c, src/eval.c, src/window.c
-
-Patch 7.3.1214
-Problem: Missing declaration for init_users() and realloc_post_list().
- (Salman Halim)
-Solution: Add the declarations.
-Files: src/misc1.c, src/regexp_nfa.c
-
-Patch 7.3.1215
-Problem: Compiler warning for function not defined.
-Solution: Add #ifdef.
-Files: src/misc1.c
-
-Patch 7.3.1216
-Problem: Configure can't find Motif on Ubuntu.
-Solution: Search for libXm in /usr/lib/*-linux-gnu.
-Files: src/configure.in, src/auto/configure
-
-Patch 7.3.1217
-Problem: New regexp engine: Can't handle \%[[ao]]. (Yukihiro Nakadaira)
-Solution: Support nested atoms inside \%[].
-Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
-
-Patch 7.3.1218
-Problem: "make test" on MS-Windows does not clean all temporary files and
- gives some unnecessary message.
-Solution: Clean the right files. Create .failed files. (Ken Takata)
-Files: src/testdir/Make_dos.mak
-
-Patch 7.3.1219
-Problem: No test for using []] inside \%[].
-Solution: Add a test.
-Files: src/testdir/test64.in, src/testdir/test64.ok
-
-Patch 7.3.1220
-Problem: MS-Windows: When using wide font italic and bold are not included.
-Solution: Support wide-bold, wide-italic and wide-bold-italic. (Ken Takata,
- Taro Muraoka)
-Files: src/gui.c, src/gui.h, src/gui_w48.c
-
-Patch 7.3.1221
-Problem: When build flags change "make distclean" run into a configure
- error.
-Solution: When CFLAGS changes delete auto/config.cache. Also avoid adding
- duplicate text to flags. (Ken Takata)
-Files: src/Makefile, src/configure.in, src/auto/configure
-
-Patch 7.3.1222
-Problem: Cannot execute some tests from the src directly.
-Solution: Add missing targets.
-Files: src/Makefile
-
-Patch 7.3.1223
-Problem: Tests fail on MS-Windows.
-Solution: Avoid depending on OS version. Use DOS commands instead of Unix
- commands. (Taro Muraoka, Ken Takata)
-Files: src/testdir/test17.in, src/testdir/test50.in,
- src/testdir/test71.in, src/testdir/test77.in
-
-Patch 7.3.1224
-Problem: Clang gives warnings on xxd.
-Solution: Change how to use part of a string. (Dominique Pelle) Also avoid
- warning for return not reached.
-Files: src/xxd/xxd.c, src/regexp_nfa.c
-
-Patch 7.3.1225
-Problem: Compiler warnings when building with Motif.
-Solution: Change set_label() argument. (Kazunobu Kuriyama)
-Files: src/gui_motif.c
-
-Patch 7.3.1226
-Problem: Python: duplicate code.
-Solution: Share code between OutputWrite() and OutputWritelines(). (ZyX)
-Files: src/if_py_both.h, src/testdir/test86.ok, src/testdir/test87.ok
-
-Patch 7.3.1227
-Problem: Inconsistent string conversion.
-Solution: Use 'encoding' instead of utf-8. Use METH_O in place of
- METH_VARARGS where appropriate. (ZyX)
-Files: src/if_py_both.h, src/testdir/test86.ok, src/testdir/test87.ok
-
-Patch 7.3.1228
-Problem: Python: various inconsistencies and problems.
-Solution: StringToLine now supports both bytes() and unicode() objects.
- Make function names consistent. Fix memory leak fixed in
- StringToLine. (ZyX)
-Files: src/if_py_both.h, src/if_python3.c, src/if_python.c
-
-Patch 7.3.1229
-Problem: Python: not so easy to delete/restore translating.
-Solution: Make macros do translation of exception messages. (ZyX)
- Note: this breaks translations!
-Files: src/if_py_both.h, src/if_python3.c
-
-Patch 7.3.1230
-Problem: Python: Exception messages are not clear.
-Solution: Make exception messages more verbose. (ZyX)
-Files: src/if_py_both.h, src/if_python3.c, src/if_python.c,
- src/testdir/test86.ok, src/testdir/test87.ok
-
-Patch 7.3.1231
-Problem: Python: use of numbers not consistent.
-Solution: Add support for Number protocol. (ZyX)
-Files: src/if_py_both.h, src/if_python3.c, src/if_python.c,
- src/testdir/test86.ok, src/testdir/test87.ok
-
-Patch 7.3.1232
-Problem: Python: inconsistencies in variable names.
-Solution: Rename variables. (ZyX)
-Files: src/eval.c, src/if_py_both.h
-
-Patch 7.3.1233
-Problem: Various Python problems.
-Solution: Fix VimTryEnd. Crash with debug build and PYTHONDUMPREFS=1. Memory
- leaks in StringToLine(), BufferMark() and convert_dl. (ZyX)
-Files: src/if_py_both.h, src/testdir/test86.in, src/testdir/test86.ok,
- src/testdir/test87.in, src/testdir/test87.ok
-
-Patch 7.3.1234 (after 7.3.1229)
-Problem: Python: Strings are not marked for translation.
-Solution: Add N_() where appropriate. (ZyX)
-Files: src/if_py_both.h
-
-Patch 7.3.1235
-Problem: In insert mode CTRL-] is not inserted, on the command-line it is.
-Solution: Don't insert CTRL-] on the command line. (Yukihiro Nakadaira)
-Files: src/ex_getln.c
-
-Patch 7.3.1236
-Problem: Python: WindowSetattr() missing support for NUMBER_UNSIGNED.
-Solution: Add NUMBER_UNSIGNED, add more tests. Various fixes. (ZyX)
-Files: src/if_py_both.h, src/if_python3.c, src/if_python.c,
- src/testdir/pythonx/failing.py,
- src/testdir/pythonx/failing_import.py, src/testdir/test86.in,
- src/testdir/test86.ok, src/testdir/test87.in,
- src/testdir/test87.ok, src/testdir/pythonx/topmodule/__init__.py,
- src/testdir/pythonx/topmodule/submodule/__init__.py,
- src/testdir/pythonx/topmodule/submodule/subsubmodule/__init__.py,
- src/testdir/pythonx/topmodule/submodule/subsubmodule/subsubsubmodule.py
-
-Patch 7.3.1237
-Problem: Python: non-import errors not handled correctly.
-Solution: Let non-ImportError exceptions pass the finder. (ZyX)
-Files: src/if_py_both.h, src/testdir/test86.ok, src/testdir/test87.ok
-
-Patch 7.3.1238
-Problem: Crash in Python interface on 64 bit machines.
-Solution: Change argument type of PyString_AsStringAndSize. (Taro Muraoka,
- Jun Takimoto)
-Files: src/if_python.c
-
-Patch 7.3.1239
-Problem: Can't build with Python and MSVC10.
-Solution: Move #if outside of macro. (Taro Muraoka)
-Files: src/if_py_both.h
-
-Patch 7.3.1240
-Problem: Memory leak in findfile().
-Solution: Free the memory. (Christian Brabandt)
-Files: src/eval.c
-
-Patch 7.3.1241 (after 7.3.1236)
-Problem: Some test files missing from the distribution.
-Solution: Update the list of files.
-Files: Filelist
-
-Patch 7.3.1242
-Problem: No failure when trying to use a number as a string.
-Solution: Give an error when StringToLine() is called with an instance of
- the wrong type. (Jun Takimoto)
-Files: src/if_py_both.h
-
-Patch 7.3.1243
-Problem: New regexp engine: back references in look-behind match don't
- work. (Lech Lorens)
-Solution: Copy the submatches before a recursive match. Also fix function
- prototypes.
-Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
-
-Patch 7.3.1244
-Problem: MS-Windows: confirm() dialog text may not fit.
-Solution: Use GetTextWidthEnc() instead of GetTextWidth(). (Yasuhiro
- Matsumoto)
-Files: src/gui_w32.c
-
-Patch 7.3.1245
-Problem: MS-Windows: confirm() dialog text may still not fit.
-Solution: Use GetTextWidthEnc() instead of GetTextWidth() in two more
- places. (Yasuhiro Matsumoto)
-Files: src/gui_w32.c
-
-Patch 7.3.1246
-Problem: When setting 'winfixheight' and resizing the window causes the
- window layout to be wrong.
-Solution: Add frame_check_height() and frame_check_width() (Yukihiro
- Nakadaira)
-Files: src/window.c
-
-Patch 7.3.1247
-Problem: New regexp engine: '[ ]\@!\p\%([ ]\@!\p\)*:' does not always match.
-Solution: When there is a PIM add a duplicate state that starts at another
- position.
-Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
-
-Patch 7.3.1248
-Problem: Still have old hacking code for Input Method.
-Solution: Add 'imactivatefunc' and 'imstatusfunc' as a generic solution to
- Input Method activation. (Yukihiro Nakadaira)
-Files: runtime/doc/options.txt, src/fileio.c, src/mbyte.c, src/option.c,
- src/option.h, src/proto/fileio.pro
-
-Patch 7.3.1249
-Problem: Modeline not recognized when using "Vim" instead of "vim".
-Solution: Also accept "Vim".
-Files: src/buffer.c
-
-Patch 7.3.1250
-Problem: Python tests fail on MS-Windows.
-Solution: Change backslashes to slashes. (Taro Muraoka)
-Files: src/testdir/test86.in, src/testdir/test87.in
-
-Patch 7.3.1251
-Problem: Test 61 messes up viminfo.
-Solution: Specify a separate viminfo file.
-Files: src/testdir/test61.in
-
-Patch 7.3.1252
-Problem: Gvim does not find the toolbar bitmap files in ~/vimfiles/bitmaps
- if the corresponding menu command contains additional characters
- like the shortcut marker '&' or if you use a non-english locale.
-Solution: Use menu->en_dname or menu->dname. (Martin Gieseking)
-Files: src/gui_w32.c
-
-Patch 7.3.1253 (after 7.3.1200)
-Problem: Still undo problem after using CTRL-R = setline(). (Hirohito
- Higashi)
-Solution: Set the ins_need_undo flag.
-Files: src/edit.c
-
-Patch 7.3.1254 (after 7.3.1252)
-Problem: Can't build without the multi-lang feature. (John Marriott)
-Solution: Add #ifdef.
-Files: src/gui_w32.c
-
-Patch 7.3.1255
-Problem: Clang warnings when building with Athena.
-Solution: Add type casts. (Dominique Pelle)
-Files: src/gui_at_fs.c
-
-Patch 7.3.1256
-Problem: Can't build without eval or autocmd feature.
-Solution: Add #ifdefs.
-Files: src/mbyte.c, src/window.c
-
-Patch 7.3.1257
-Problem: With GNU gettext() ":lang de_DE.utf8" does not always result in
- German messages.
-Solution: Clear the $LANGUAGE environment variable.
-Files: src/ex_cmds2.c
-
-Patch 7.3.1258
-Problem: Using submatch() may crash Vim. (Ingo Karkat)
-Solution: Restore the number of subexpressions used.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1259
-Problem: No test for patch 7.3.1258
-Solution: Add a test entry.
-Files: src/testdir/test64.in, src/testdir/test64.ok
-
-Patch 7.3.1260
-Problem: User completion does not get the whole command line in the command
- line window.
-Solution: Pass on the whole command line. (Daniel Thau)
-Files: src/ex_getln.c, src/structs.h
-
-Patch 7.3.1261 (after patch 7.3.1179)
-Problem: A buffer-local language mapping from a keymap stops a global
- insert mode mapping from working. (Ron Aaron)
-Solution: Do not wait for more characters to be typed only when the mapping
- was defined with <nowait>.
-Files: runtime/doc/map.txt, src/eval.c, src/getchar.c,
- src/testdir/test75.in, src/testdir/test75.ok
-
-Patch 7.3.1262
-Problem: Crash and compilation warnings with Cygwin.
-Solution: Check return value of XmbTextListToTextProperty(). Add type casts.
- Adjust #ifdefs. (Lech Lorens)
-Files: src/main.c, src/os_unix.c, src/ui.c
-
-Patch 7.3.1263
-Problem: Typo in short option name.
-Solution: Change "imse" to "imsf".
-Files: src/option.c
-
-Patch 7.3.1264 (after 7.3.1261)
-Problem: Missing m_nowait.
-Solution: Include missing part of the patch.
-Files: src/structs.h
-
-Patch 7.3.1265 (after 7.3.1249)
-Problem: Accepting "Vim:" for a modeline causes errors too often.
-Solution: Require "Vim:" to be followed by "set".
-Files: src/buffer.c
-
-Patch 7.3.1266
-Problem: QNX: GUI fails to start.
-Solution: Remove the QNX-specific #ifdef. (Sean Boudreau)
-Files: src/gui.c
-
-Patch 7.3.1267
-Problem: MS-Windows ACL support doesn't work well.
-Solution: Implement more ACL support. (Ken Takata)
-Files: src/os_win32.c
-
-Patch 7.3.1268
-Problem: ACL support doesn't work when compiled with MingW.
-Solution: Support ACL on MingW. (Ken Takata)
-Files: src/os_win32.c, src/os_win32.h
-
-Patch 7.3.1269
-Problem: Insert completion keeps entry selected even though the list has
- changed. (Olivier Teuliere)
-Solution: Reset compl_shown_match and compl_curr_match. (Christian Brabandt)
-Files: src/edit.c
-
-Patch 7.3.1270
-Problem: Using "Vp" in an empty buffer can't be undone. (Hauke Petersen)
-Solution: Save one line in an empty buffer. (Christian Brabandt)
-Files: src/ops.c
-
-Patch 7.3.1271 (after 7.3.1260)
-Problem: Command line completion does not work.
-Solution: Move setting xp_line down. (Daniel Thau)
-Files: src/ex_getln.c
-
-Patch 7.3.1272
-Problem: Crash when editing Ruby file. (Aliaksandr Rahalevich)
-Solution: Reallocate the state list when necessary.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1273
-Problem: When copying a location list the index might be wrong.
-Solution: Set the index to one when using the first entry. (Lech Lorens)
-Files: src/quickfix.c
-
-Patch 7.3.1274
-Problem: When selecting an entry from a location list it may pick an
- arbitrary window or open a new one.
-Solution: Prefer using a window related to the location list. (Lech Lorens)
-Files: src/quickfix.c
-
-Patch 7.3.1275
-Problem: "gn" does not work when the match is a single character.
-Solution: Fix it, add a test. (Christian Brabandt)
-Files: src/search.c, src/testdir/test53.in, src/testdir/test53.ok
-
-Patch 7.3.1276
-Problem: When using a cscope connection resizing the window may send
- SIGWINCH to cscope and it quits.
-Solution: Call setpgid(0, 0) in the child process. (Narendran Gopalakrishnan)
-Files: src/if_cscope.c
-
-Patch 7.3.1277
-Problem: In diff mode 'cursorline' also draws in the non-active window.
- When 'nu' and 'sbr' are set the 'sbr' string is not underlined.
-Solution: Only draw the cursor line in the current window. Combine the
- 'cursorline' and other highlighting attributes. (Christian
- Brabandt)
-Files: src/screen.c
-
-Patch 7.3.1278
-Problem: When someone sets the screen size to a huge value with "stty" Vim
- runs out of memory before reducing the size.
-Solution: Limit Rows and Columns in more places.
-Files: src/gui.c, src/gui_gtk_x11.c, src/option.c, src/os_unix.c,
- src/proto/term.pro, src/term.c
-
-Patch 7.3.1279
-Problem: Compiler warning for variable uninitialized. (Tony Mechelynck)
-Solution: Add an init.
-Files: src/ex_getln.c
-
-Patch 7.3.1280
-Problem: Reading memory already freed since patch 7.3.1247. (Simon
- Ruderich, Dominique Pelle)
-Solution: Copy submatches before reallocating the state list.
-Files: src/regexp_nfa.c
-
-Patch 7.3.1281
-Problem: When 'ttymouse' is set to "xterm2" clicking in column 123 moves
- the cursor to column 96. (Kevin Goodsell)
-Solution: Decode KE_CSI.
-Files: src/term.c
-
-Patch 7.3.1282 (after 7.3.1277)
-Problem: 'cursorline' not drawn in any other window. (Charles Campbell)
-Solution: Do draw the cursor line in other windows.
-Files: src/screen.c
-
-Patch 7.3.1283
-Problem: Test 71 fails on MS-Windows.
-Solution: Put the binary data in a separate file. (Ken Takata)
-Files: src/testdir/test71.in, src/testdir/test71a.in
-
-Patch 7.3.1284
-Problem: Compiler warnings in MS-Windows clipboard handling.
-Solution: Add type casts. (Ken Takata)
-Files: src/winclip.c
-
-Patch 7.3.1285
-Problem: No tests for picking a window when selecting an entry in a
- location list. Not picking the right window sometimes.
-Solution: Add test 96. Set usable_win appropriately. (Lech Lorens)
-Files: src/quickfix.c, src/testdir/Makefile, src/testdir/test96.in,
- src/testdir/test96.ok, src/testdir/Make_amiga.mak,
- src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
- src/testdir/Make_os2.mak, src/testdir/Make_vms.mms
-
-Patch 7.3.1286
-Problem: Check for screen size missing for Athena and Motif.
-Solution: Add call to limit_screen_size().
-Files: src/gui_x11.c
-
-Patch 7.3.1287
-Problem: Python SystemExit exception is not handled properly.
-Solution: Catch the exception and give an error. (Yasuhiro Matsumoto, Ken
- Takata)
-Files: runtime/doc/if_pyth.txt, src/if_py_both.h, src/if_python.c,
- src/if_python3.c
-
-Patch 7.3.1288
-Problem: The first ":echo 'hello'" command output doesn't show. Mapping
- for <S-F3> gets triggered during startup.
-Solution: Add debugging code for the termresponse. When receiving the "Co"
- entry and when setting 'ambiwidth' redraw right away if possible.
- Add redraw_asap(). Don't set 'ambiwidth' if it already had the
- right value. Do the 'ambiwidth' check in the second row to avoid
- confusion with <S-F3>.
-Files: src/term.c, src/screen.c, src/proto/screen.pro
-
-Patch 7.3.1289
-Problem: Get GLIB warning when removing a menu item.
-Solution: Reference menu-id and also call gtk_container_remove(). (Ivan
- Krasilnikov)
-Files: src/gui_gtk.c
-
-Patch 7.3.1290 (after 7.3.1253)
-Problem: CTRL-R = in Insert mode changes the start of the insert position.
- (Ingo Karkat)
-Solution: Only break undo, don't start a new insert.
-Files: src/edit.c
-
-Patch 7.3.1291 (after 7.3.1288)
-Problem: Compiler warnings for uninitialized variables. (Tony Mechelynck)
-Solution: Initialize the variables.
-Files: src/screen.c
-
-Patch 7.3.1292
-Problem: Possibly using invalid pointer when searching for window. (Raichoo)
-Solution: Use "firstwin" instead of "tp_firstwin" for current tab.
-Files: src/window.c
-
-Patch 7.3.1293
-Problem: Put in empty buffer cannot be undone.
-Solution: Save one more line for undo. (Ozaki)
-Files: src/ops.c
-
-Patch 7.3.1294
-Problem: ":diffoff" resets options.
-Solution: Save and restore option values. (Christian Brabandt)
-Files: src/diff.c, src/structs.h, src/option.c
-
-Patch 7.3.1295
-Problem: glob() and globpath() do not handle escaped special characters
- properly.
-Solution: Handle escaped characters differently. (Adnan Zafar)
-Files: src/testdir/Makefile, src/testdir/test97.in,
- src/testdir/test97.ok, src/testdir/Make_amiga.mak,
- src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
- src/testdir/Make_os2.mak, src/testdir/Make_vms.mms, src/fileio.c,
- src/misc1.c
-
-Patch 7.3.1296
-Problem: Only MS-Windows limits the GUI window size to what fits on the
- monitor.
-Solution: Limit the size for all systems. (Daniel Harding)
-Files: src/ui.c
-
-Patch 7.3.1297
-Problem: findfile() directory matching does not work when a star follows
- text. (Markus Braun)
-Solution: Make a wildcard work properly. (Christian Brabandt)
-Files: src/misc2.c, src/testdir/test89.in, src/testdir/test89.ok
-
-Patch 7.3.1298 (after 7.3.1297)
-Problem: Crash.
-Solution: Use STRCPY() instead of STRCAT() and allocate one more byte.
-Files: src/misc2.c
-
-Patch 7.3.1299
-Problem: Errors when doing "make proto". Didn't do "make depend" for a
- while.
-Solution: Add #ifdefs. Update dependencies. Update proto files.
-Files: src/if_python3.c, src/os_win32.c, src/Makefile,
- src/proto/ex_docmd.pro, src/proto/if_python.pro,
- src/proto/if_python3.pro, src/proto/gui_w16.pro,
- src/proto/gui_w32.pro, src/proto/os_win32.pro
-
-Patch 7.3.1300
-Problem: Mac: tiny and small build fails.
-Solution: Don't include os_macosx.m in tiny build. Include mouse support in
- small build. (Kazunobu Kuriyama)
-Files: src/configure.in, src/auto/configure, src/vim.h
-
-Patch 7.3.1301
-Problem: Some tests fail on MS-Windows.
-Solution: Fix path separators in test 89 and 96. Omit test 97, escaping
- works differently. Make findfile() work on MS-Windows.
-Files: src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
- src/testdir/Make_os2.mak, src/testdir/test89.in,
- src/testdir/test96.in, src/misc2.c
-
-Patch 7.3.1302
-Problem: Test 17 fails on MS-Windows. Includes line break in file name
- everywhere.
-Solution: Fix 'fileformat'. Omit CR-LF from a line read from an included
- file.
-Files: src/search.c, src/testdir/test17.in, src/testdir/test17.ok
-
-Patch 7.3.1303 (after 7.3.1290)
-Problem: Undo is synced whenever CTRL-R = is called, breaking some plugins.
-Solution: Only break undo when calling setline() or append().
-Files: src/globals.h, src/eval.c, src/edit.c, src/testdir/test61.in,
- src/testdir/test61.ok
-
-Patch 7.3.1304
-Problem: Test 89 still fails on MS-Windows.
-Solution: Set 'shellslash'. (Taro Muraoka)
-Files: src/testdir/test89.in
-
-Patch 7.3.1305
-Problem: Warnings from 64 bit compiler.
-Solution: Add type casts.
-Files: src/misc2.c
-
-Patch 7.3.1306
-Problem: When redrawing the screen during startup the intro message may be
- cleared.
-Solution: Redisplay the intro message when appropriate.
-Files: src/screen.c, src/version.c, src/proto/version.pro
-
-Patch 7.3.1307
-Problem: MS-Windows build instructions are outdated.
-Solution: Adjust for building on Windows 7. Drop Windows 95/98/ME support.
-Files: Makefile, nsis/gvim.nsi
-
-Patch 7.3.1308
-Problem: Typos in MS-Windows build settings and README.
-Solution: Minor changes to MS-Windows files.
-Files: src/msvc2008.bat, src/msvc2010.bat, src/VisVim/README_VisVim.txt
-
-Patch 7.3.1309
-Problem: When a script defines a function the flag to wait for the user to
- hit enter is reset.
-Solution: Restore the flag. (Yasuhiro Matsumoto) Except when the user was
- typing the function.
-Files: src/eval.c
-
-Patch 7.3.1310
-Problem: Typos in nsis script. Can use better compression.
-Solution: Fix typos. Use lzma compression. (Ken Takata)
-Files: nsis/gvim.nsi
-
-Patch 7.3.1311
-Problem: Compiler warnings on Cygwin.
-Solution: Add type casts. Add windows include files. (Ken Takata)
-Files: src/mbyte.c, src/ui.c
-
-Patch 7.3.1312 (after 7.3.1287)
-Problem: Not giving correct error messages for SystemExit().
-Solution: Move E858 into an else. (Ken Takata)
-Files: src/if_py_both.h
-
-Patch 7.3.1313
-Problem: :py and :py3 don't work when compiled with Cygwin or MingW with 64
- bit.
-Solution: Add -DMS_WIN64 to the build command. (Ken Takata)
-Files: src/Make_cyg.mak, src/Make_ming.mak
-
-Patch 7.3.1314
-Problem: Test 87 fails with Python 3.3.
-Solution: Filter the error messages. (Taro Muraoka)
-Files: src/testdir/test87.in
-
-Patch 7.4a.001
-Problem: Script to update syntax menu is outdated.
-Solution: Add the missing items.
-Files: runtime/makemenu.vim
-
-Patch 7.4a.002
-Problem: Valgrind errors in test 89. (Simon Ruderich)
-Solution: Allocate one more byte. (Dominique Pelle)
-Files: src/misc2.c
-
-Patch 7.4a.003
-Problem: Copyright year is outdated.
-Solution: Only use the first year.
-Files: src/vim.rc, src/vim16.rc
-
-Patch 7.4a.004
-Problem: MSVC 2012 Update 3 is not recognized.
-Solution: Add the version number. (Raymond Ko)
-Files: src/Make_mvc.mak
-
-Patch 7.4a.005
-Problem: Scroll binding causes unexpected scroll.
-Solution: Store the topline after updating scroll binding. Add a test.
- (Lech Lorens)
-Files: src/testdir/test98.in, src/testdir/test98a.in,
- src/testdir/test98.ok, src/option.c, src/testdir/Make_amiga.mak,
- src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
- src/testdir/Make_os2.mak, src/testdir/Make_vms.mms,
- src/testdir/Makefile
-
-Patch 7.4a.006
-Problem: Failure in po file check goes unnoticed.
-Solution: Fail "make test" if the po file check fails.
-Files: src/Makefile
-
-Patch 7.4a.007
-Problem: After "g$" with 'virtualedit' set, "k" moves to a different
- column. (Dimitar Dimitrov)
-Solution: Set w_curswant. (Christian Brabandt)
-Files: src/normal.c
-
-Patch 7.4a.008
-Problem: Python 3 doesn't handle multibyte characters properly when
- 'encoding' is not utf-8.
-Solution: Use PyUnicode_Decode() instead of PyUnicode_FromString(). (Ken
- Takata)
-Files: src/if_python3.c
-
-Patch 7.4a.009
-Problem: Compiler warnings for function prototypes.
-Solution: Add "void". Move list_features() prototype. (Ken Takata)
-Files: src/gui_w48.c, src/if_py_both.h, src/version.c
-
-Patch 7.4a.010
-Problem: Test 86 and 87 fail when building with Python or Python 3 and
- using a static library.
-Solution: Add configure check to add -fPIE compiler flag.
-Files: src/configure.in, src/auto/configure
-
-Patch 7.4a.011
-Problem: Configure check for Python 3 config name isn't right.
-Solution: Always include vi_cv_var_python3_version. (Tim Harder)
-Files: src/configure.in, src/auto/configure
-
-Patch 7.4a.012
-Problem: "make test" fails when using a shadow directory.
-Solution: Create links for files in src/po. (James McCoy)
-Files: src/Makefile
-
-Patch 7.4a.013
-Problem: Setting/resetting 'lbr' in the main help file changes alignment
- after a Tab. (Dimitar Dimitrov)
-Solution: Also use the code for conceal mode where n_extra is computed for
- 'lbr'.
-Files: src/screen.c, src/testdir/test88.in, src/testdir/test88.ok
-
-Patch 7.4a.014
-Problem: Test 86 and 89 have a problem with using a shadow dir.
-Solution: Adjust for the different directory structure. (James McCoy)
-Files: src/testdir/test89.in, src/testdir/test86.in, src/Makefile
-
-Patch 7.4a.015
-Problem: No Japanese man pages.
-Solution: Add Japanese translations of man pages. (Ken Takata, Yukihiro
- Nakadaira, et al.)
-Files: Filelist, src/Makefile, runtime/doc/evim-ja.UTF-8.1,
- runtime/doc/vim-ja.UTF-8.1, runtime/doc/vimdiff-ja.UTF-8.1,
- runtime/doc/vimtutor-ja.UTF-8.1, runtime/doc/xxd-ja.UTF-8.1
-
-Patch 7.4a.016 (after 7.4a.014)
-Problem: Features enabled in Makefile.
-Solution: Undo accidental changes.
-Files: src/Makefile
-
-Patch 7.4a.017
-Problem: When 'foldmethod' is "indent", using ">>" on a line just above a
- fold makes the cursor line folded. (Evan Laforge)
-Solution: Call foldOpenCursor(). (Christian Brabandt)
-Files: src/ops.c
-
-Patch 7.4a.018
-Problem: Compiler warning for code unreachable. (Charles Campbell)
-Solution: Use "while" instead of endless loop. Change break to continue.
-Files: src/regexp_nfa.c, src/ui.c
-
-Patch 7.4a.019
-Problem: Invalid closing parenthesis in test 62. Command truncated at
- double quote.
-Solution: Remove the parenthesis. Change double quote to ''. (ZyX)
-Files: src/testdir/test62.in, src/testdir/test62.ok
-
-Patch 7.4a.020
-Problem: Superfluous mb_ptr_adv().
-Solution: Remove the call. (Dominique Pelle)
-Files: src/regexp_nfa.c
-
-Patch 7.4a.021
-Problem: Using feedkeys() doesn't always work.
-Solution: Omit feedkeys(). (Ken Takata)
-Files: src/testdir/test98a.in
-
-Patch 7.4a.022
-Problem: Using "d2g$" does not delete the last character. (ZyX)
-Solution: Set the "inclusive" flag properly.
-Files: src/normal.c
-
-Patch 7.4a.023 (after 7.4a.019)
-Problem: Still another superfluous parenthesis. (ZyX)
-Solution: Remove it.
-Files: src/testdir/test62.in
-
-Patch 7.4a.024
-Problem: X11 GUI: Checking icon height twice.
-Solution: Check height and width. (Dominique Pelle)
-Files: src/gui_x11.c
-
-Patch 7.4a.025
-Problem: Get the press-Enter prompt even after using :redraw.
-Solution: Clear need_wait_return when executing :redraw.
-Files: src/ex_docmd.c
-
-Patch 7.4a.026
-Problem: ":diffoff" does not remove folds. (Ramel)
-Solution: Do not restore 'foldenable' when 'foldmethod' is "manual".
-Files: src/diff.c
-
-Patch 7.4a.027
-Problem: When Python adds lines to another buffer the cursor position is
- wrong, it might be below the last line causing ml_get errors.
- (Vlad Irnov)
-Solution: Temporarily change the current window, so that marks are corrected
- properly.
-Files: src/if_py_both.h, src/window.c, src/proto/buffer.pro
-
-Patch 7.4a.028
-Problem: Crash when spell checking in new buffer.
-Solution: Set the b_p_key field. (Mike Williams)
-Files: src/spell.c, src/testdir/test58.in
-
-Patch 7.4a.029
-Problem: Can't build with MzScheme on Ubuntu 13.04.
-Solution: Add configure check for the "ffi" library.
-Files: src/configure.in, src/auto/configure
-
-Patch 7.4a.030 (after 7.4.027)
-Problem: Missing find_win_for_buf(). (toothpik)
-Solution: Add missing changes.
-Files: src/buffer.c
-
-Patch 7.4a.031
-Problem: Compiler warnings. (Charles Campbell)
-Solution: Initialize variables even when not needed.
-Files: src/regexp_nfa.c, src/search.c
-
-Patch 7.4a.032
-Problem: New regexp engine: Does not match shorter alternative. (Ingo
- Karkat)
-Solution: Do not drop a new state when the PIM info is different.
-Files: src/regexp_nfa.c
-
-Patch 7.4a.033
-Problem: Test 98 always passes.
-Solution: Include test98a.in in test98.in, execute the crucial command in
- one line. (Yukihiro Nakadaira)
-Files: src/testdir/test98.in, src/testdir/test98a.in
-
-Patch 7.4a.034
-Problem: The tabline may flicker when opening a new tab after 7.3.759 on
- Win32.
-Solution: Move call to TabCtrl_SetCurSel(). (Ken Takata)
-Files: src/gui_w48.c
-
-Patch 7.4a.035
-Problem: Fix in patch 7.4a.032 is not tested.
-Solution: Add test.
-Files: src/testdir/test64.in, src/testdir/test64.ok
-
-Patch 7.4a.036
-Problem: "\p" in a regexp does not match double-width characters.
- (Yukihiro Nakadaira)
-Solution: Don't count display cells, use vim_isprintc().
-Files: src/regexp.c, src/regexp_nfa.c, src/testdir/test64.in,
- src/testdir/test64.ok, src/testdir/test95.in,
- src/testdir/test95.ok
-
-Patch 7.4a.037
-Problem: Win32: When mouse is hidden and in the toolbar, moving it won't
- make it appear. (Sami Salonen)
-Solution: Add tabline_wndproc() and toolbar_wndproc(). (Ken Takata)
-Files: src/gui_w32.c, src/gui_w48.c
-
-Patch 7.4a.038
-Problem: When using MSVC 2012 there are various issues, including GUI size
- computations.
-Solution: Use SM_CXPADDEDBORDER. (Mike Williams)
-Files: src/gui_w32.c, src/gui_w48.c, src/os_win32.h
-
-Patch 7.4a.039
-Problem: New regexp engine doesn't match pattern. (Ingo Karkat)
-Solution: When adding a state also check for different PIM if the list of
- states has any state with a PIM.
-Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
-
-Patch 7.4a.040
-Problem: Win32: using uninitialized variable.
-Solution: (Yukihiro Nakadaira)
-Files: src/os_win32.c
-
-Patch 7.4a.041
-Problem: When using ":new ++ff=unix" and "dos" is first in 'fileformats'
- then 'ff' is set to "dos" instead of "unix". (Ingo Karkat)
-Solution: Create set_file_options() and invoke it from do_ecmd().
-Files: src/fileio.c, src/proto/fileio.pro, src/ex_cmds.c,
- src/testdir/test91.in, src/testdir/test91.ok
-
-Patch 7.4a.042
-Problem: Crash when BufUnload autocommands close all buffers. (Andrew
- Pimlott)
-Solution: Set curwin->w_buffer to curbuf to avoid NULL.
-Files: src/window.c, src/testdir/test8.in, src/testdir/test8.ok
-
-Patch 7.4a.043
-Problem: More ml_get errors when adding or deleting lines from Python.
- (Vlad Irnov)
-Solution: Switch to a window with the buffer when possible.
-Files: src/if_py_both.h
-
-Patch 7.4a.044
-Problem: Test 96 sometimes fails.
-Solution: Clear window from b_wininfo in win_free(). (Suggestion by
- Yukihiro Nakadaira)
-Files: src/window.c
-
-Patch 7.4a.045
-Problem: Configure does not always find the right library for Lua. Missing
- support for LuaJit.
-Solution: Improve the configure detection of Lua. (Hiroshi Shirosaki)
-Files: src/Makefile, src/configure.in, src/auto/configure
-
-Patch 7.4a.046
-Problem: Can't build without mbyte feature.
-Solution: Add #ifdefs.
-Files: src/ex_cmds.c
-
-Patch 7.4a.047
-Problem: Some comments are not so nice.
-Solution: Change the comments.
-Files: src/ex_docmd.c, src/message.c, src/ops.c, src/option.c
-
-Patch 7.4b.001
-Problem: Win32: dialog may extend off-screen.
-Solution: Reduce the size, use correct borders. (Andrei Olsen)
-Files: src/gui_w32.c
-
-Patch 7.4b.002
-Problem: Crash searching for \%(\%(\|\d\|-\|\.\)*\|\*\). (Marcin
- Szamotulski) Also for \(\)*.
-Solution: Do add a state for opening parenthesis, so that we can check if it
- was added before at the same position.
-Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
-
-Patch 7.4b.003
-Problem: Regexp code is not nicely aligned.
-Solution: Adjust white space. (Ken Takata)
-Files: src/regexp_nfa.c
-
-Patch 7.4b.004
-Problem: Regexp crash on pattern "@\%[\w\-]*". (Axel Kielhorn)
-Solution: Add \%(\) around \%[] internally.
-Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
-
-Patch 7.4b.005
-Problem: Finding %s in shellpipe and shellredir does not ignore %%s.
-Solution: Skip over %%. (lcd 47)
-Files: src/ex_cmds.c
-
-Patch 7.4b.006 (after 7.3.1295)
-Problem: Using \{n,m} in an autocommand pattern no longer works.
- Specifically, mutt temp files are not recognized. (Gary Johnson)
-Solution: Make \\\{n,m\} work.
-Files: runtime/doc/autocmd.txt, src/fileio.c
-
-Patch 7.4b.007
-Problem: On 32 bit MS-Windows :perldo does not work.
-Solution: Make sure time_t uses 32 bits. (Ken Takata)
-Files: src/if_perl.xs, src/vim.h
-
-Patch 7.4b.008
-Problem: 'autochdir' causes setbufvar() to change the current directory.
- (Ben Fritz)
-Solution: When disabling autocommands also reset 'acd' temporarily.
- (Christian Brabandt)
-Files: src/fileio.c
-
-Patch 7.4b.009
-Problem: When setting the Visual area manually and 'selection' is
- exclusive, a yank includes one character too much. (Ingo Karkat)
-Solution: Default the Visual operation to "v". (Christian Brabandt)
-Files: src/mark.c
-
-Patch 7.4b.010
-Problem: Win32: Tcl library load does not use standard mechanism.
-Solution: Call vimLoadLib() instead of LoadLibraryEx(). (Ken Takata)
-Files: src/if_perl.xs, src/if_tcl.c
-
-Patch 7.4b.011
-Problem: ":he \%(\)" does not work. (ZyX)
-Solution: Add an exception to the list.
-Files: src/ex_cmds.c
-
-Patch 7.4b.012
-Problem: Output from a shell command is truncated at a NUL. (lcd 47)
-Solution: Change every NUL into an SOH.
-Files: src/misc1.c
-
-Patch 7.4b.013
-Problem: Install dir for JP man pages is wrong.
-Solution: Remove ".UTF-8" from the directory name. (Ken Takata)
-Files: src/Makefile
-
-Patch 7.4b.014 (after 7.4b.012)
-Problem: Stupid mistake.
-Solution: Changle "len" to "i".
-Files: src/misc1.c
-
-Patch 7.4b.015 (after 7.4b.008)
-Problem: Can't compile without the 'acd' feature.
-Solution: Add #ifdefs. (Kazunobu Kuriyama)
-Files: src/fileio.c
-
-Patch 7.4b.016
-Problem: Ruby detection fails on Fedora 19.
-Solution: Use one way to get the Ruby version. (Michael Henry)
-Files: src/configure.in, src/auto/configure
-
-Patch 7.4b.017
-Problem: ":he \^x" gives a strange error message. (glts)
-Solution: Do not translate \^x to \_CTRL-x.
-Files: src/ex_cmds.c
-
-Patch 7.4b.018 (after 7.4b.001)
-Problem: Win32: Dialog can still be too big.
-Solution: Move the check for height further down. (Andrei Olsen)
-Files: src/gui_w32.c
-
-Patch 7.4b.019 (after 7.4a.034)
-Problem: Tabline is not updated properly when closing a tab on Win32.
-Solution: Only reduce flickering when adding a tab. (Ken Takata)
-Files: src/gui_w48.c
-
-Patch 7.4b.020
-Problem: "g~ap" changes first character of next paragraph. (Manuel Ortega)
-Solution: Avoid subtracting (0 - 1) from todo. (Mike Williams)
-Files: src/ops.c, src/testdir/test82.in, src/testdir/test82.ok
-
-Patch 7.4b.021
-Problem: Pressing "u" after an external command results in multiple
- press-enter messages. (glts)
-Solution: Don't call hit_return_msg() when we have K_IGNORE. (Christian
- Brabandt)
-Files: src/message.c
-
-Patch 7.4b.022
-Problem: Not waiting for a character when the tick count overflows.
-Solution: Subtract the unsigned numbers and cast to int. (Ken Takata)
-Files: src/os_win32.c
-
-
- vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index dac44d72af..a6b918a0f2 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -17,7 +17,7 @@ augroup filetypedetect
" Ignored extensions
if exists("*fnameescape")
-au BufNewFile,BufRead ?\+.orig,?\+.bak,?\+.old,?\+.new,?\+.dpkg-dist,?\+.dpkg-old,?\+.dpkg-new,?\+.dpkg-bak,?\+.rpmsave,?\+.rpmnew
+au BufNewFile,BufRead ?\+.orig,?\+.bak,?\+.old,?\+.new,?\+.dpkg-dist,?\+.dpkg-old,?\+.dpkg-new,?\+.dpkg-bak,?\+.rpmsave,?\+.rpmnew,?\+.pacsave,?\+.pacnew
\ exe "doau filetypedetect BufRead " . fnameescape(expand("<afile>:r"))
au BufNewFile,BufRead *~
\ let s:name = expand("<afile>") |
@@ -1843,11 +1843,19 @@ au BufNewFile,BufRead catalog setf catalog
au BufNewFile,BufRead sgml.catalog* call s:StarSetf('catalog')
" Shell scripts (sh, ksh, bash, bash2, csh); Allow .profile_foo etc.
-" Gentoo ebuilds are actually bash scripts
-au BufNewFile,BufRead .bashrc*,bashrc,bash.bashrc,.bash_profile*,.bash_logout*,*.bash,*.ebuild call SetFileTypeSH("bash")
+" Gentoo ebuilds and Arch Linux PKGBUILDs are actually bash scripts
+au BufNewFile,BufRead .bashrc*,bashrc,bash.bashrc,.bash_profile*,.bash_logout*,*.bash,*.ebuild,PKGBUILD* call SetFileTypeSH("bash")
au BufNewFile,BufRead .kshrc*,*.ksh call SetFileTypeSH("ksh")
au BufNewFile,BufRead */etc/profile,.profile*,*.sh,*.env call SetFileTypeSH(getline(1))
+" Shell script (Arch Linux) or PHP file (Drupal)
+au BufNewFile,BufRead *.install
+ \ if getline(1) =~ '<?php' |
+ \ setf php |
+ \ else |
+ \ call SetFileTypeSH("bash") |
+ \ endif
+
" Also called from scripts.vim.
func! SetFileTypeSH(name)
if expand("<amatch>") =~ g:ft_ignore_pat
diff --git a/runtime/indent/ada.vim b/runtime/indent/ada.vim
index 03fbaa3a18..a553756715 100644
--- a/runtime/indent/ada.vim
+++ b/runtime/indent/ada.vim
@@ -219,7 +219,7 @@ function GetAdaIndent()
" Move indent in twice (next 'when' will move back)
let ind = ind + 2 * &sw
elseif line =~ '^\s*end\s*record\>'
- " Move indent back to tallying 'type' preceeding the 'record'.
+ " Move indent back to tallying 'type' preceding the 'record'.
" Allow indent to be equal to 'end record's.
let ind = s:MainBlockIndent( ind+&sw, lnum, 'type\>', '' )
elseif line =~ '\(^\s*new\>.*\)\@<!)\s*[;,]\s*$'
diff --git a/runtime/syntax/asm68k.vim b/runtime/syntax/asm68k.vim
index 8463e487e1..cd23517cad 100644
--- a/runtime/syntax/asm68k.vim
+++ b/runtime/syntax/asm68k.vim
@@ -223,7 +223,7 @@ syn match asm68kOperator "<>" " inequality
syn match asm68kOperator "=" " must be before other ops containing '='
syn match asm68kOperator ">="
syn match asm68kOperator "<="
-syn match asm68kOperator "==" " operand existance - used in macro definitions
+syn match asm68kOperator "==" " operand existence - used in macro definitions
" Condition code style operators
syn match asm68kOperator "<[CV][CS]>"
diff --git a/runtime/syntax/aspvbs.vim b/runtime/syntax/aspvbs.vim
index 07c129e463..f1435cb04b 100644
--- a/runtime/syntax/aspvbs.vim
+++ b/runtime/syntax/aspvbs.vim
@@ -40,7 +40,7 @@ syn match AspVBSVariableComplex contained "\<\(arr\|ary\|obj\)\u\w*"
" Functions and methods that are in VB but will cause errors in an ASP page
-" This is helpfull if your porting VB code to ASP
+" This is helpful if you're porting VB code to ASP
" I removed (Count, Item) because these are common variable names in AspVBScript
syn keyword AspVBSError contained Val Str CVar CVDate DoEvents GoSub Return GoTo
syn keyword AspVBSError contained Stop LinkExecute Add Type LinkPoke
@@ -62,7 +62,7 @@ syn match AspVBSError contained "\<Option\s\+\(Base\|Compare\|Private\s\+Module\
syn match AspVBSError contained "Respon\?ce\.\S*"
syn match AspVBSError contained "Respose\.\S*"
" When I looked up the VBScript syntax it mentioned that Property Get/Set/Let
-" statements are illegal, however, I have recived reports that they do work.
+" statements are illegal, however, I have received reports that they do work.
" So I commented it out for now.
" syn match AspVBSError contained "\<Property\s\+\(Get\|Let\|Set\)\>"
diff --git a/runtime/syntax/chill.vim b/runtime/syntax/chill.vim
index ca00cd95e8..e5200fe722 100644
--- a/runtime/syntax/chill.vim
+++ b/runtime/syntax/chill.vim
@@ -27,7 +27,7 @@ syn keyword chillLogical NOT not
syn keyword chillRepeat while WHILE for FOR do DO od OD TO to
syn keyword chillProcess START start STACKSIZE stacksize PRIORITY priority THIS this STOP stop
syn keyword chillBlock PROC proc PROCESS process
-syn keyword chillSignal RECEIVE receive SEND send NONPERSISTENT nonpersistent PERSISTENT peristent SET set EVER ever
+syn keyword chillSignal RECEIVE receive SEND send NONPERSISTENT nonpersistent PERSISTENT persistent SET set EVER ever
syn keyword chillTodo contained TODO FIXME XXX
diff --git a/runtime/syntax/clipper.vim b/runtime/syntax/clipper.vim
index 1a10a2dca2..6ee3892845 100644
--- a/runtime/syntax/clipper.vim
+++ b/runtime/syntax/clipper.vim
@@ -109,7 +109,7 @@ else
endif
syntax match clipperCommentError "\*/"
-" Lines beggining with an "*" are comments too
+" Lines beginning with an "*" are comments too
syntax match clipperComment "^\*.*"
diff --git a/runtime/syntax/d.vim b/runtime/syntax/d.vim
index 52c83bf913..07a299fa55 100644
--- a/runtime/syntax/d.vim
+++ b/runtime/syntax/d.vim
@@ -387,7 +387,7 @@ hi def link dPragmaIdentifier Identifier
hi def link dExtern dExternal
hi def link dExternIdentifier Identifier
-" Marks contents of the asm statment body as special
+" Marks contents of the asm statement body as special
syn match dAsmStatement "\<asm\>"
syn region dAsmBody start="asm[\n]*\s*{"hs=e+1 end="}"he=e-1 contains=dAsmStatement,dAsmOpCode,@dComment,DUserLabel
diff --git a/runtime/syntax/dtrace.vim b/runtime/syntax/dtrace.vim
index 2f2d6e2cc7..493de1ed0f 100644
--- a/runtime/syntax/dtrace.vim
+++ b/runtime/syntax/dtrace.vim
@@ -47,7 +47,7 @@ exec 'syn match dtraceProbe "'.s:oneProbe.'\%(,\_s*'.s:oneProbe.'\)*\ze\_s\%({\|
" Also be careful not to eat `c = a / b; b = a / 2;`. We use the same
" technique as the dtrace lexer: a predicate has to be followed by {, ;, or
" EOF. Also note that dtrace doesn't allow an empty predicate // (we do).
-" This regex doesn't allow a divison operator in the predicate.
+" This regex doesn't allow a division operator in the predicate.
" Make sure that this matches the empty predicate as well.
" XXX: This doesn't work if followed by a comment.
syn match dtracePredicate "/\*\@!\_[^/]*/\ze\_s*\%({\|;\|\%$\)"
diff --git a/runtime/syntax/ia64.vim b/runtime/syntax/ia64.vim
index f0d510b945..ebfdc95bae 100644
--- a/runtime/syntax/ia64.vim
+++ b/runtime/syntax/ia64.vim
@@ -56,7 +56,7 @@ syn keyword ia64opcode pshradd2 psub4 rfi rsm rum shl shladd shladdp4
syn keyword ia64opcode shrp ssm sub sum sync.i tak thash
syn keyword ia64opcode tpa ttag xor
-"put to override these being recognized as floats. They are orignally from masm.vim
+"put to override these being recognized as floats. They are originally from masm.vim
"put here to avoid confusion with float
syn match ia64Directive "\.186"
syn match ia64Directive "\.286"
diff --git a/runtime/syntax/kix.vim b/runtime/syntax/kix.vim
index 62dc3253e8..800e286042 100644
--- a/runtime/syntax/kix.vim
+++ b/runtime/syntax/kix.vim
@@ -10,7 +10,7 @@
" 26 April 2001: RMH
" Removed development comments from distro version
" Renamed "Kix*" to "kix*" for consistancy
-" Changes made in preperation for VIM version 5.8/6.00
+" Changes made in preparation for VIM version 5.8/6.00
" TODO:
" Handle arrays highlighting
diff --git a/runtime/syntax/mel.vim b/runtime/syntax/mel.vim
index dab894865c..a668e70378 100644
--- a/runtime/syntax/mel.vim
+++ b/runtime/syntax/mel.vim
@@ -18,7 +18,7 @@ if exists("mel_space_errors")
sy match melSpaceError " \+\t"me=e-1
endif
-" A bunch of usefull MEL keyworks
+" A bunch of useful MEL keywords
sy keyword melBoolean true false yes no on off
sy keyword melFunction proc
diff --git a/runtime/syntax/php.vim b/runtime/syntax/php.vim
index f27d923400..26d60a9382 100644
--- a/runtime/syntax/php.vim
+++ b/runtime/syntax/php.vim
@@ -110,7 +110,7 @@ if exists( "php_htmlInStrings")
syn cluster phpAddStrings add=@htmlTop
endif
-" make sure we can use \ at the begining of the line to do a continuation
+" make sure we can use \ at the beginning of the line to do a continuation
let s:cpo_save = &cpo
set cpo&vim
diff --git a/runtime/syntax/postscr.vim b/runtime/syntax/postscr.vim
index fddfe4c947..8b051d33b3 100644
--- a/runtime/syntax/postscr.vim
+++ b/runtime/syntax/postscr.vim
@@ -503,11 +503,11 @@ if postscr_level == 2 || postscr_level == 3
" Page duplexing operators
syn keyword postscrL2Operator duplexmode firstside newsheet setduplexmode settumble tumble
-" Device compatability operators
+" Device compatibility operators
syn keyword postscrL2Operator devdismount devformat devmount devstatus
syn keyword postscrL2Repeat devforall
-" Imagesetter compatability operators
+" Imagesetter compatibility operators
syn keyword postscrL2Operator accuratescreens checkscreen pagemargin pageparams setaccuratescreens setpage
syn keyword postscrL2Operator setpagemargin setpageparams
diff --git a/runtime/syntax/redif.vim b/runtime/syntax/redif.vim
index 1b83c07790..1a44a9f479 100644
--- a/runtime/syntax/redif.vim
+++ b/runtime/syntax/redif.vim
@@ -934,7 +934,7 @@ highlight redifFieldDeprecated term=undercurl cterm=undercurl gui=undercurl guis
" Sync: The template-type (ReDIF-Paper, ReDIF-Archive, etc.) influences which
" fields can follow. Thus sync must search backwards for it.
"
-" I would like to simply ask VIM to search backward for the first occurence of
+" I would like to simply ask VIM to search backward for the first occurrence of
" /^Template-Type:/, but it does not seem to be possible, so I have to start
" from the beginning of the file... This might slow down a lot for files that
" contain a lot of Template-Type statements.
diff --git a/runtime/syntax/samba.vim b/runtime/syntax/samba.vim
index dae4040ec5..93029cc202 100644
--- a/runtime/syntax/samba.vim
+++ b/runtime/syntax/samba.vim
@@ -55,7 +55,7 @@ syn keyword sambaKeyword contained only open oplock oplocks options order os
syn keyword sambaKeyword contained output packet page panic passwd password
syn keyword sambaKeyword contained passwords path permissions pipe port ports
syn keyword sambaKeyword contained postexec postscript prediction preexec
-syn keyword sambaKeyword contained prefered preferred preload preserve print
+syn keyword sambaKeyword contained preferred preload preserve print
syn keyword sambaKeyword contained printable printcap printer printers
syn keyword sambaKeyword contained printing program protocol proxy public
syn keyword sambaKeyword contained queuepause queueresume raw read readonly
diff --git a/runtime/syntax/sather.vim b/runtime/syntax/sather.vim
index 759591bf84..103cf0b8cd 100644
--- a/runtime/syntax/sather.vim
+++ b/runtime/syntax/sather.vim
@@ -4,7 +4,7 @@
" URL: http://www.fleiner.com/vim/syntax/sather.vim
" Last Change: 2003 May 11
-" Sather is a OO-language developped at the International Computer Science
+" Sather is a OO-language developed at the International Computer Science
" Institute (ICSI) in Berkeley, CA. pSather is a parallel extension to Sather.
" Homepage: http://www.icsi.berkeley.edu/~sather
" Sather files use .sa as suffix
diff --git a/runtime/syntax/specman.vim b/runtime/syntax/specman.vim
index 3fb77a2afa..93fb4a86c6 100644
--- a/runtime/syntax/specman.vim
+++ b/runtime/syntax/specman.vim
@@ -111,8 +111,8 @@ syn region specmanString start=+"+ end=+"+
"**********************************************************************
-" I took this section from c.vim but I didnt succeded to make it work
-" ANY one who dare jumping to this deep watter is more than welocome!
+" I took this section from c.vim, but I didn't succeed in making it work
+" ANY one who dares to jump into this deep water is more than welcome!
"**********************************************************************
""catch errors caused by wrong parenthesis and brackets
diff --git a/runtime/syntax/spup.vim b/runtime/syntax/spup.vim
index 07e9708eaa..8d7a9e525c 100644
--- a/runtime/syntax/spup.vim
+++ b/runtime/syntax/spup.vim
@@ -38,7 +38,7 @@ endif
" one line comment syntax (# comments)
" 1. allow appended code after comment, do not complain
-" 2. show code beginnig with the second # as an error
+" 2. show code beginning with the second # as an error
" 3. show whole lines with more than one # as an error
if !exists("oneline_comments")
let oneline_comments = 2
diff --git a/runtime/syntax/tcl.vim b/runtime/syntax/tcl.vim
index 3c598267dc..06629d077f 100644
--- a/runtime/syntax/tcl.vim
+++ b/runtime/syntax/tcl.vim
@@ -171,7 +171,7 @@ syn region tcltkCommand matchgroup=tcltkCommandColor start="\<format\>" matchgro
" PACK
" commands associated with pack
-syn keyword tcltkPackSwitch contained forget info propogate slaves
+syn keyword tcltkPackSwitch contained forget info propagate slaves
syn keyword tcltkPackConfSwitch contained after anchor before expand fill in ipadx ipady padx pady side
syn region tcltkCommand matchgroup=tcltkCommandColor start="\<pack\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkPackSwitch,tcltkPackConf,tcltkPackConfSwitch,tclNumber,tclVarRef,tclString,tcltkCommand keepend
diff --git a/scripts/msgpack-gen.lua b/scripts/msgpack-gen.lua
index c9b6018222..8940cc72f6 100644
--- a/scripts/msgpack-gen.lua
+++ b/scripts/msgpack-gen.lua
@@ -91,6 +91,7 @@ output:write([[
#include <assert.h>
#include <msgpack.h>
+#include "nvim/map.h"
#include "nvim/log.h"
#include "nvim/os/msgpack_rpc.h"
#include "nvim/os/msgpack_rpc_helpers.h"
@@ -241,12 +242,49 @@ for i = 1, #api.functions do
end
output:write('\n};\n\n')
+-- Generate a function that initializes method names with handler functions
output:write([[
+static Map(cstr_t, uint64_t) *rpc_method_ids = NULL;
+
+void msgpack_rpc_init(void)
+{
+ rpc_method_ids = map_new(cstr_t, uint64_t)();
+
+]])
+
+-- Msgpack strings must be copied to a 0-terminated temporary buffer before
+-- searching in the map, so we keep track of the maximum method name length in
+-- order to create the smallest possible buffer for xstrlcpy
+local max_fname_len = 0
+for i = 1, #api.functions do
+ local fn = api.functions[i]
+ output:write(' map_put(cstr_t, uint64_t)(rpc_method_ids, "'
+ ..fn.name..'", '..i..');\n')
+ if #fn.name > max_fname_len then
+ max_fname_len = #fn.name
+ end
+end
+
+output:write('\n}\n\n')
+
+output:write([[
+#define min(X, Y) (X < Y ? X : Y)
+
Object msgpack_rpc_dispatch(uint64_t channel_id,
- uint64_t method_id,
msgpack_object *req,
Error *error)
{
+ msgpack_object method = req->via.array.ptr[2];
+ uint64_t method_id = method.via.u64;
+
+ if (method.type == MSGPACK_OBJECT_RAW) {
+ char method_name[]]..(max_fname_len + 1)..[[];
+ xstrlcpy(method_name, method.via.raw.ptr, min(method.via.raw.size, ]] ..(max_fname_len)..[[) + 1);
+ method_id = map_get(cstr_t, uint64_t)(rpc_method_ids, method_name);
+ if (!method_id) {
+ method_id = UINT64_MAX;
+ }
+ }
]])
output:write('\n // method_id=0 is specially handled')
output:write('\n assert(method_id > 0);')
diff --git a/scripts/run-api-tests.exp b/scripts/run-api-tests.exp
index b9d37ca903..6209a77cfc 100755
--- a/scripts/run-api-tests.exp
+++ b/scripts/run-api-tests.exp
@@ -20,43 +20,6 @@ set nvim_id $spawn_id
# Reset function that can be invoked by test runners to put nvim in a cleaner
# state
send {
-:function BeforeEachTest()
- set all&
- let &initpython = 'python -c "import neovim; neovim.start_host()"'
- redir => groups
- silent augroup
- redir END
- for group in split(groups)
- exe 'augroup '.group
- autocmd!
- augroup END
- endfor
- autocmd!
- tabnew
- let curbufnum = eval(bufnr('%'))
- redir => buflist
- silent ls!
- redir END
- let bufnums = []
- for buf in split(buflist, '\n')
- let bufnum = eval(split(buf, '[ u]')[0])
- if bufnum != curbufnum
- call add(bufnums, bufnum)
- endif
- endfor
- if len(bufnums) > 0
- exe 'silent bwipeout! '.join(bufnums, ' ')
- endif
- silent tabonly
- for k in keys(g:)
- exe 'unlet g:'.k
- endfor
- filetype plugin indent off
- mapclear
- mapclear!
- abclear
- comclear
-endfunction
:echo "read"."y"
}
# wait until nvim is ready
diff --git a/src/nvim/api/window.c b/src/nvim/api/window.c
index 548d8171a5..1ab441bed3 100644
--- a/src/nvim/api/window.c
+++ b/src/nvim/api/window.c
@@ -35,7 +35,7 @@ Buffer window_get_buffer(Window window, Error *err)
/// @return the (row, col) tuple
Position window_get_cursor(Window window, Error *err)
{
- Position rv = {.row = 0, .col = 0};
+ Position rv = POSITION_INIT;
win_T *win = find_window_by_handle(window, err);
if (win) {
@@ -245,7 +245,7 @@ void window_set_option(Window window, String name, Object value, Error *err)
/// @return The (row, col) tuple with the window position
Position window_get_position(Window window, Error *err)
{
- Position rv;
+ Position rv = POSITION_INIT;
win_T *win = find_window_by_handle(window, err);
if (win) {
diff --git a/src/nvim/buffer.c b/src/nvim/buffer.c
index 77bed67d5f..3c7fd777bd 100644
--- a/src/nvim/buffer.c
+++ b/src/nvim/buffer.c
@@ -1314,7 +1314,7 @@ buflist_new (
* for hard links. */
FileID file_id;
bool file_id_valid = (sfname != NULL &&
- os_get_file_id((char *)sfname, &file_id));
+ os_fileid((char *)sfname, &file_id));
if (ffname != NULL && !(flags & BLN_DUMMY)
&& (buf = buflist_findname_file_id(ffname, &file_id,
file_id_valid)) != NULL) {
@@ -1671,7 +1671,7 @@ buf_T *buflist_findname_exp(char_u *fname)
buf_T *buflist_findname(char_u *ffname)
{
FileID file_id;
- bool file_id_valid = os_get_file_id((char *)ffname, &file_id);
+ bool file_id_valid = os_fileid((char *)ffname, &file_id);
return buflist_findname_file_id(ffname, &file_id, file_id_valid);
}
@@ -2221,7 +2221,7 @@ setfname (
* - if the buffer is loaded, fail
* - if the buffer is not loaded, delete it from the list
*/
- file_id_valid = os_get_file_id((char *)ffname, &file_id);
+ file_id_valid = os_fileid((char *)ffname, &file_id);
if (!(buf->b_flags & BF_DUMMY)) {
obuf = buflist_findname_file_id(ffname, &file_id, file_id_valid);
}
@@ -2399,7 +2399,7 @@ static int otherfile_buf(buf_T *buf, char_u *ffname,
/* If no struct stat given, get it now */
if (file_id_p == NULL) {
file_id_p = &file_id;
- file_id_valid = os_get_file_id((char *)ffname, file_id_p);
+ file_id_valid = os_fileid((char *)ffname, file_id_p);
}
if (!file_id_valid) {
// file_id not valid, assume files are different.
@@ -2429,7 +2429,7 @@ void buf_set_file_id(buf_T *buf)
{
FileID file_id;
if (buf->b_fname != NULL
- && os_get_file_id((char *)buf->b_fname, &file_id)) {
+ && os_fileid((char *)buf->b_fname, &file_id)) {
buf->file_id_valid = true;
buf->file_id = file_id;
} else {
@@ -2441,7 +2441,7 @@ void buf_set_file_id(buf_T *buf)
static bool buf_same_file_id(buf_T *buf, FileID *file_id)
{
return buf->file_id_valid
- && os_file_id_equal(&(buf->file_id), file_id);
+ && os_fileid_equal(&(buf->file_id), file_id);
}
/*
diff --git a/src/nvim/buffer_defs.h b/src/nvim/buffer_defs.h
index a2d496469e..de1b0985bb 100644
--- a/src/nvim/buffer_defs.h
+++ b/src/nvim/buffer_defs.h
@@ -512,7 +512,7 @@ struct file_buffer {
long b_mtime; /* last change time of original file */
long b_mtime_read; /* last change time when reading */
- off_t b_orig_size; /* size of original file in bytes */
+ uint64_t b_orig_size; /* size of original file in bytes */
int b_orig_mode; /* mode of original file */
pos_T b_namedm[NMARKS]; /* current named marks (mark.c) */
diff --git a/src/nvim/diff.c b/src/nvim/diff.c
index ab0c80112f..73b5731ad0 100644
--- a/src/nvim/diff.c
+++ b/src/nvim/diff.c
@@ -947,9 +947,10 @@ void ex_diffpatch(exarg_T *eap)
os_remove((char *)buf);
// Only continue if the output file was created.
- off_t file_size;
- bool file_size_success = os_get_file_size((char *)tmp_new, &file_size);
- if (!file_size_success || file_size == 0) {
+ FileInfo file_info;
+ bool info_ok = os_fileinfo((char *)tmp_new, &file_info);
+ uint64_t filesize = os_fileinfo_size(&file_info);
+ if (!info_ok || filesize == 0) {
EMSG(_("E816: Cannot read patch output"));
} else {
if (curbuf->b_fname != NULL) {
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index 04d90e255d..a61f082e59 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -6494,8 +6494,8 @@ static struct fst {
{"searchpair", 3, 7, f_searchpair},
{"searchpairpos", 3, 7, f_searchpairpos},
{"searchpos", 1, 4, f_searchpos},
- {"send_call", 3, 3, f_send_call},
- {"send_event", 3, 3, f_send_event},
+ {"send_call", 2, 64, f_send_call},
+ {"send_event", 2, 64, f_send_event},
{"setbufvar", 3, 3, f_setbufvar},
{"setcmdpos", 1, 1, f_setcmdpos},
{"setline", 2, 2, f_setline},
@@ -9166,15 +9166,16 @@ static void f_getfsize(typval_T *argvars, typval_T *rettv)
rettv->v_type = VAR_NUMBER;
- off_t file_size;
- if (os_get_file_size(fname, &file_size)) {
+ FileInfo file_info;
+ if (os_fileinfo(fname, &file_info)) {
+ uint64_t filesize = os_fileinfo_size(&file_info);
if (os_isdir((char_u *)fname))
rettv->vval.v_number = 0;
else {
- rettv->vval.v_number = (varnumber_T)file_size;
+ rettv->vval.v_number = (varnumber_T)filesize;
/* non-perfect check for overflow */
- if ((off_t)rettv->vval.v_number != file_size) {
+ if ((uint64_t)rettv->vval.v_number != filesize) {
rettv->vval.v_number = -2;
}
}
@@ -9191,7 +9192,7 @@ static void f_getftime(typval_T *argvars, typval_T *rettv)
char *fname = (char *)get_tv_string(&argvars[0]);
FileInfo file_info;
- if (os_get_file_info(fname, &file_info)) {
+ if (os_fileinfo(fname, &file_info)) {
rettv->vval.v_number = (varnumber_T)file_info.stat.st_mtim.tv_sec;
} else {
rettv->vval.v_number = -1;
@@ -9211,7 +9212,7 @@ static void f_getftype(typval_T *argvars, typval_T *rettv)
rettv->v_type = VAR_STRING;
FileInfo file_info;
- if (os_get_file_info_link((char *)fname, &file_info)) {
+ if (os_fileinfo_link((char *)fname, &file_info)) {
uint64_t mode = file_info.stat.st_mode;
#ifdef S_ISREG
if (S_ISREG(mode))
@@ -12700,13 +12701,19 @@ static void f_send_call(typval_T *argvars, typval_T *rettv)
return;
}
+ Array args = ARRAY_DICT_INIT;
+
+ for (typval_T *tv = argvars + 2; tv->v_type != VAR_UNKNOWN; tv++) {
+ ADD(args, vim_to_object(tv));
+ }
+
bool errored;
Object result;
if (!channel_send_call((uint64_t)argvars[0].vval.v_number,
- (char *)argvars[1].vval.v_string,
- vim_to_object(&argvars[2]),
- &result,
- &errored)) {
+ (char *)argvars[1].vval.v_string,
+ args,
+ &result,
+ &errored)) {
EMSG2(_(e_invarg2), "Channel doesn't exist");
return;
}
@@ -12741,9 +12748,15 @@ static void f_send_event(typval_T *argvars, typval_T *rettv)
return;
}
+ Array args = ARRAY_DICT_INIT;
+
+ for (typval_T *tv = argvars + 2; tv->v_type != VAR_UNKNOWN; tv++) {
+ ADD(args, vim_to_object(tv));
+ }
+
if (!channel_send_event((uint64_t)argvars[0].vval.v_number,
(char *)argvars[1].vval.v_string,
- vim_to_object(&argvars[2]))) {
+ args)) {
EMSG2(_(e_invarg2), "Channel doesn't exist");
return;
}
@@ -19217,7 +19230,9 @@ static void apply_job_autocmds(Job *job, char *name, char *type, char *str)
static void script_host_eval(char *method, typval_T *argvars, typval_T *rettv)
{
- Object result = provider_call(method, vim_to_object(argvars));
+ Array args = ARRAY_DICT_INIT;
+ ADD(args, vim_to_object(argvars));
+ Object result = provider_call(method, args);
if (result.type == kObjectTypeNil) {
return;
diff --git a/src/nvim/ex_cmds.c b/src/nvim/ex_cmds.c
index 5b6604fc93..18216f6924 100644
--- a/src/nvim/ex_cmds.c
+++ b/src/nvim/ex_cmds.c
@@ -1533,7 +1533,7 @@ void write_viminfo(char_u *file, int forceit)
*/
FileInfo old_info; // FileInfo of existing viminfo file
- if (os_get_file_info((char *)fname, &old_info)
+ if (os_fileinfo((char *)fname, &old_info)
&& getuid() != ROOT_UID
&& !(old_info.stat.st_uid == getuid()
? (old_info.stat.st_mode & 0200)
diff --git a/src/nvim/ex_cmds2.c b/src/nvim/ex_cmds2.c
index e0b0b55f41..ac91b2a6ac 100644
--- a/src/nvim/ex_cmds2.c
+++ b/src/nvim/ex_cmds2.c
@@ -2417,13 +2417,13 @@ do_source (
*/
save_current_SID = current_SID;
FileID file_id;
- bool file_id_ok = os_get_file_id((char *)fname_exp, &file_id);
+ bool file_id_ok = os_fileid((char *)fname_exp, &file_id);
for (current_SID = script_items.ga_len; current_SID > 0; --current_SID) {
si = &SCRIPT_ITEM(current_SID);
// Compare dev/ino when possible, it catches symbolic links.
// Also compare file names, the inode may change when the file was edited.
bool file_id_equal = file_id_ok && si->file_id_valid
- && os_file_id_equal(&(si->file_id), &file_id);
+ && os_fileid_equal(&(si->file_id), &file_id);
if (si->sn_name != NULL
&& (file_id_equal || fnamecmp(si->sn_name, fname_exp) == 0)) {
break;
@@ -3251,8 +3251,9 @@ static void script_host_execute(char *method, exarg_T *eap)
char *script = (char *)script_get(eap, eap->arg);
if (!eap->skip) {
- String str = cstr_to_string(script ? script : (char *)eap->arg);
- Object result = provider_call(method, STRING_OBJ(str));
+ Array args = ARRAY_DICT_INIT;
+ ADD(args, STRING_OBJ(cstr_to_string(script ? script : (char *)eap->arg)));
+ Object result = provider_call(method, args);
// We don't care about the result, so free it just in case a bad provider
// returned something
msgpack_rpc_free_object(result);
@@ -3266,18 +3267,19 @@ static void script_host_execute_file(char *method, exarg_T *eap)
char buffer[MAXPATHL];
vim_FullName(eap->arg, (uint8_t *)buffer, sizeof(buffer), false);
- String file = cstr_to_string(buffer);
- Object result = provider_call(method, STRING_OBJ(file));
+ Array args = ARRAY_DICT_INIT;
+ ADD(args, STRING_OBJ(cstr_to_string(buffer)));
+ Object result = provider_call(method, args);
msgpack_rpc_free_object(result);
}
static void script_host_do_range(char *method, exarg_T *eap)
{
- Array arg = {0, 0, 0};
- ADD(arg, INTEGER_OBJ(eap->line1));
- ADD(arg, INTEGER_OBJ(eap->line2));
- ADD(arg, STRING_OBJ(cstr_to_string((char *)eap->arg)));
- Object result = provider_call(method, ARRAY_OBJ(arg));
+ Array args = ARRAY_DICT_INIT;
+ ADD(args, INTEGER_OBJ(eap->line1));
+ ADD(args, INTEGER_OBJ(eap->line2));
+ ADD(args, STRING_OBJ(cstr_to_string((char *)eap->arg)));
+ Object result = provider_call(method, args);
msgpack_rpc_free_object(result);
}
diff --git a/src/nvim/ex_getln.c b/src/nvim/ex_getln.c
index 74f3edc8d9..69fb1d344a 100644
--- a/src/nvim/ex_getln.c
+++ b/src/nvim/ex_getln.c
@@ -2011,6 +2011,10 @@ void free_cmdline_buf(void)
*/
static void draw_cmdline(int start, int len)
{
+ if (embedded_mode) {
+ return;
+ }
+
int i;
if (cmdline_star > 0)
diff --git a/src/nvim/file_search.c b/src/nvim/file_search.c
index c7e1f5cbbc..955b0b0a68 100644
--- a/src/nvim/file_search.c
+++ b/src/nvim/file_search.c
@@ -1097,7 +1097,7 @@ static int ff_check_visited(ff_visited_T **visited_list, char_u *fname, char_u *
url = true;
} else {
ff_expand_buffer[0] = NUL;
- if (!os_get_file_id((char *)fname, &file_id)) {
+ if (!os_fileid((char *)fname, &file_id)) {
return FAIL;
}
}
@@ -1106,7 +1106,7 @@ static int ff_check_visited(ff_visited_T **visited_list, char_u *fname, char_u *
for (vp = *visited_list; vp != NULL; vp = vp->ffv_next) {
if ((url && fnamecmp(vp->ffv_fname, ff_expand_buffer) == 0)
|| (!url && vp->file_id_valid
- && os_file_id_equal(&(vp->file_id), &file_id))) {
+ && os_fileid_equal(&(vp->file_id), &file_id))) {
/* are the wildcard parts equal */
if (ff_wc_equal(vp->ffv_wc_path, wc_path) == TRUE)
/* already visited */
diff --git a/src/nvim/fileio.c b/src/nvim/fileio.c
index 2e932e9695..0a05b2a4db 100644
--- a/src/nvim/fileio.c
+++ b/src/nvim/fileio.c
@@ -472,7 +472,7 @@ readfile (
if (newfile && !read_stdin && !read_buffer) {
/* Remember time of file. */
FileInfo file_info;
- if (os_get_file_info((char *)fname, &file_info)) {
+ if (os_fileinfo((char *)fname, &file_info)) {
buf_store_file_info(curbuf, &file_info);
curbuf->b_mtime_read = curbuf->b_mtime;
#ifdef UNIX
@@ -2583,7 +2583,7 @@ buf_write (
#if defined(UNIX)
perm = -1;
FileInfo file_info_old;
- if (!os_get_file_info((char *)fname, &file_info_old)) {
+ if (!os_fileinfo((char *)fname, &file_info_old)) {
newfile = TRUE;
} else {
perm = file_info_old.stat.st_mode;
@@ -2629,7 +2629,7 @@ buf_write (
goto fail;
}
if (overwriting) {
- os_get_file_info((char *)fname, &file_info_old);
+ os_fileinfo((char *)fname, &file_info_old);
}
}
@@ -2712,9 +2712,9 @@ buf_write (
* - it's a symbolic link
* - we don't have write permission in the directory
*/
- if (file_info_old.stat.st_nlink > 1
- || !os_get_file_info_link((char *)fname, &file_info)
- || !os_file_info_id_equal(&file_info, &file_info_old)) {
+ if (os_fileinfo_hardlinks(&file_info_old) > 1
+ || !os_fileinfo_link((char *)fname, &file_info)
+ || !os_fileinfo_id_equal(&file_info, &file_info_old)) {
backup_copy = TRUE;
} else
# endif
@@ -2728,7 +2728,7 @@ buf_write (
STRCPY(IObuff, fname);
for (i = 4913;; i += 123) {
sprintf((char *)path_tail(IObuff), "%d", i);
- if (!os_get_file_info_link((char *)IObuff, &file_info)) {
+ if (!os_fileinfo_link((char *)IObuff, &file_info)) {
break;
}
}
@@ -2739,7 +2739,7 @@ buf_write (
else {
# ifdef UNIX
os_fchown(fd, file_info_old.stat.st_uid, file_info_old.stat.st_gid);
- if (!os_get_file_info((char *)IObuff, &file_info)
+ if (!os_fileinfo((char *)IObuff, &file_info)
|| file_info.stat.st_uid != file_info_old.stat.st_uid
|| file_info.stat.st_gid != file_info_old.stat.st_gid
|| (long)file_info.stat.st_mode != perm) {
@@ -2759,20 +2759,20 @@ buf_write (
*/
if ((bkc_flags & BKC_BREAKSYMLINK) || (bkc_flags & BKC_BREAKHARDLINK)) {
# ifdef UNIX
- bool file_info_link_ok = os_get_file_info_link((char *)fname, &file_info);
+ bool file_info_link_ok = os_fileinfo_link((char *)fname, &file_info);
/* Symlinks. */
if ((bkc_flags & BKC_BREAKSYMLINK)
&& file_info_link_ok
- && !os_file_info_id_equal(&file_info, &file_info_old)) {
+ && !os_fileinfo_id_equal(&file_info, &file_info_old)) {
backup_copy = FALSE;
}
/* Hardlinks. */
if ((bkc_flags & BKC_BREAKHARDLINK)
- && file_info_old.stat.st_nlink > 1
+ && os_fileinfo_hardlinks(&file_info_old) > 1
&& (!file_info_link_ok
- || os_file_info_id_equal(&file_info, &file_info_old))) {
+ || os_fileinfo_id_equal(&file_info, &file_info_old))) {
backup_copy = FALSE;
}
# endif
@@ -2837,14 +2837,14 @@ buf_write (
/*
* Check if backup file already exists.
*/
- if (os_get_file_info((char *)backup, &file_info_new)) {
+ if (os_fileinfo((char *)backup, &file_info_new)) {
/*
* Check if backup file is same as original file.
* May happen when modname() gave the same file back (e.g. silly
* link). If we don't check here, we either ruin the file when
* copying or erase it after writing.
*/
- if (os_file_info_id_equal(&file_info_new, &file_info_old)) {
+ if (os_fileinfo_id_equal(&file_info_new, &file_info_old)) {
free(backup);
backup = NULL; /* no backup file to delete */
}
@@ -2861,7 +2861,7 @@ buf_write (
wp = backup;
*wp = 'z';
while (*wp > 'a'
- && os_get_file_info((char *)backup, &file_info_new)) {
+ && os_fileinfo((char *)backup, &file_info_new)) {
--*wp;
}
/* They all exist??? Must be something wrong. */
@@ -3201,9 +3201,9 @@ nobackup:
FileInfo file_info;
/* Don't delete the file when it's a hard or symbolic link. */
- if ((!newfile && file_info_old.stat.st_nlink > 1)
- || (os_get_file_info_link((char *)fname, &file_info)
- && !os_file_info_id_equal(&file_info, &file_info_old))) {
+ if ((!newfile && os_fileinfo_hardlinks(&file_info) > 1)
+ || (os_fileinfo_link((char *)fname, &file_info)
+ && !os_fileinfo_id_equal(&file_info, &file_info_old))) {
errmsg = (char_u *)_("E166: Can't open linked file for writing");
} else
#endif
@@ -3416,7 +3416,7 @@ restore_backup:
/* don't change the owner when it's already OK, some systems remove
* permission or ACL stuff */
FileInfo file_info;
- if (!os_get_file_info((char *)wfname, &file_info)
+ if (!os_fileinfo((char *)wfname, &file_info)
|| file_info.stat.st_uid != file_info_old.stat.st_uid
|| file_info.stat.st_gid != file_info_old.stat.st_gid) {
os_fchown(fd, file_info_old.stat.st_uid, file_info_old.stat.st_gid);
@@ -3713,7 +3713,7 @@ nofail:
/* Update the timestamp to avoid an "overwrite changed file"
* prompt when writing again. */
- if (os_get_file_info((char *)fname, &file_info_old)) {
+ if (os_fileinfo((char *)fname, &file_info_old)) {
buf_store_file_info(buf, &file_info_old);
buf->b_mtime_read = buf->b_mtime;
}
@@ -4536,7 +4536,7 @@ int vim_rename(char_u *from, char_u *to)
// Fail if the "from" file doesn't exist. Avoids that "to" is deleted.
FileInfo from_info;
- if (!os_get_file_info((char *)from, &from_info)) {
+ if (!os_fileinfo((char *)from, &from_info)) {
return -1;
}
@@ -4544,8 +4544,8 @@ int vim_rename(char_u *from, char_u *to)
// This happens when "from" and "to" differ in case and are on a FAT32
// filesystem. In that case go through a temp file name.
FileInfo to_info;
- if (os_get_file_info((char *)to, &to_info)
- && os_file_info_id_equal(&from_info, &to_info)) {
+ if (os_fileinfo((char *)to, &to_info)
+ && os_fileinfo_id_equal(&from_info, &to_info)) {
use_tmp_file = true;
}
@@ -4790,7 +4790,7 @@ buf_check_timestamp (
int helpmesg = FALSE;
int reload = FALSE;
int can_reload = FALSE;
- off_t orig_size = buf->b_orig_size;
+ uint64_t orig_size = buf->b_orig_size;
int orig_mode = buf->b_orig_mode;
static int busy = FALSE;
int n;
@@ -4812,7 +4812,7 @@ buf_check_timestamp (
bool file_info_ok;
if (!(buf->b_flags & BF_NOTEDITED)
&& buf->b_mtime != 0
- && (!(file_info_ok = os_get_file_info((char *)buf->b_ffname, &file_info))
+ && (!(file_info_ok = os_fileinfo((char *)buf->b_ffname, &file_info))
|| time_differs((long)file_info.stat.st_mtim.tv_sec, buf->b_mtime)
|| (int)file_info.stat.st_mode != buf->b_orig_mode
)) {
@@ -5127,9 +5127,10 @@ void buf_reload(buf_T *buf, int orig_mode)
}
void buf_store_file_info(buf_T *buf, FileInfo *file_info)
+ FUNC_ATTR_NONNULL_ALL
{
buf->b_mtime = (long)file_info->stat.st_mtim.tv_sec;
- buf->b_orig_size = file_info->stat.st_size;
+ buf->b_orig_size = os_fileinfo_size(file_info);
buf->b_orig_mode = (int)file_info->stat.st_mode;
}
diff --git a/src/nvim/globals.h b/src/nvim/globals.h
index ad65f7e6fd..1ff8887598 100644
--- a/src/nvim/globals.h
+++ b/src/nvim/globals.h
@@ -1233,6 +1233,9 @@ EXTERN char *ignoredp;
* os_unix.c */
EXTERN int curr_tmode INIT(= TMODE_COOK); /* contains current terminal mode */
+// If a msgpack-rpc channel should be started over stdin/stdout
+EXTERN bool embedded_mode INIT(= false);
+
/// Used to track the status of external functions.
/// Currently only used for iconv().
typedef enum {
diff --git a/src/nvim/if_cscope.c b/src/nvim/if_cscope.c
index 9e07a60ee1..667e6512f3 100644
--- a/src/nvim/if_cscope.c
+++ b/src/nvim/if_cscope.c
@@ -473,7 +473,7 @@ cs_add_common (
fname = (char *)vim_strnsave((char_u *)fname, len);
free(fbuf);
FileInfo file_info;
- bool file_info_ok = os_get_file_info(fname, &file_info);
+ bool file_info_ok = os_fileinfo(fname, &file_info);
if (!file_info_ok) {
staterr:
if (p_csverbose)
@@ -504,7 +504,7 @@ staterr:
else
(void)sprintf(fname2, "%s/%s", fname, CSCOPE_DBFILE);
- file_info_ok = os_get_file_info(fname2, &file_info);
+ file_info_ok = os_fileinfo(fname2, &file_info);
if (!file_info_ok) {
if (p_csverbose)
cs_stat_emsg(fname2);
@@ -1181,7 +1181,7 @@ static int cs_insert_filelist(char *fname, char *ppath, char *flags,
i = -1; /* can be set to the index of an empty item in csinfo */
for (j = 0; j < csinfo_size; j++) {
if (csinfo[j].fname != NULL
- && os_file_id_equal_file_info(&(csinfo[j].file_id), file_info)) {
+ && os_fileid_equal_fileinfo(&(csinfo[j].file_id), file_info)) {
if (p_csverbose)
(void)EMSG(_("E568: duplicate cscope database not added"));
return -1;
@@ -1224,7 +1224,7 @@ static int cs_insert_filelist(char *fname, char *ppath, char *flags,
} else
csinfo[i].flags = NULL;
- os_file_info_get_id(file_info, &(csinfo[i].file_id));
+ os_fileinfo_id(file_info, &(csinfo[i].file_id));
return i;
} /* cs_insert_filelist */
diff --git a/src/nvim/main.c b/src/nvim/main.c
index 1de4b04a07..9ab46b1ce2 100644
--- a/src/nvim/main.c
+++ b/src/nvim/main.c
@@ -256,10 +256,10 @@ int main(int argc, char **argv)
TIME_MSG("shell init");
- /*
- * Print a warning if stdout is not a terminal.
- */
- check_tty(&params);
+ if (!embedded_mode) {
+ // Print a warning if stdout is not a terminal.
+ check_tty(&params);
+ }
/* This message comes before term inits, but after setting "silent_mode"
* when the input is not a tty. */
@@ -267,8 +267,16 @@ int main(int argc, char **argv)
printf(_("%d files to edit\n"), GARGCOUNT);
if (params.want_full_screen && !silent_mode) {
- termcapinit(params.term); /* set terminal name and get terminal
- capabilities (will set full_screen) */
+ if (embedded_mode) {
+ // In embedded mode don't do terminal-related initializations, assume an
+ // initial screen size of 80x20
+ full_screen = true;
+ set_shellsize(80, 20, false);
+ } else {
+ // set terminal name and get terminal capabilities (will set full_screen)
+ // Do some initialization of the screen
+ termcapinit(params.term);
+ }
screen_start(); /* don't know where cursor is now */
TIME_MSG("Termcap init");
}
@@ -405,14 +413,18 @@ int main(int argc, char **argv)
TIME_MSG("waiting for return");
}
- starttermcap(); /* start termcap if not done by wait_return() */
- TIME_MSG("start termcap");
- may_req_ambiguous_char_width();
+ if (!embedded_mode) {
+ starttermcap(); // start termcap if not done by wait_return()
+ TIME_MSG("start termcap");
+ may_req_ambiguous_char_width();
+ setmouse(); // may start using the mouse
- setmouse(); /* may start using the mouse */
- if (scroll_region)
- scroll_region_reset(); /* In case Rows changed */
- scroll_start(); /* may scroll the screen to the right position */
+ if (scroll_region) {
+ scroll_region_reset(); // In case Rows changed
+ }
+
+ scroll_start(); // may scroll the screen to the right position
+ }
/*
* Don't clear the screen when starting in Ex mode, unless using the GUI.
@@ -1015,11 +1027,13 @@ static void command_line_scan(mparm_T *parmp)
msg_putchar('\n');
msg_didout = FALSE;
mch_exit(0);
- } else if (STRICMP(argv[0] + argv_idx, "api-msgpack-metadata") == 0) {
+ } else if (STRICMP(argv[0] + argv_idx, "api-msgpack-metadata") == 0) {
for (unsigned int i = 0; i<msgpack_metadata_size; i++) {
putchar(msgpack_metadata[i]);
}
mch_exit(0);
+ } else if (STRICMP(argv[0] + argv_idx, "embedded-mode") == 0) {
+ embedded_mode = true;
} else if (STRNICMP(argv[0] + argv_idx, "literal", 7) == 0) {
#if !defined(UNIX)
parmp->literal = TRUE;
@@ -2080,9 +2094,9 @@ static int file_owned(char *fname)
{
uid_t uid = getuid();
FileInfo file_info;
- bool file_owned = os_get_file_info(fname, &file_info)
+ bool file_owned = os_fileinfo(fname, &file_info)
&& file_info.stat.st_uid == uid;
- bool link_owned = os_get_file_info_link(fname, &file_info)
+ bool link_owned = os_fileinfo_link(fname, &file_info)
&& file_info.stat.st_uid == uid;
return file_owned && link_owned;
}
@@ -2200,6 +2214,8 @@ static void usage(void)
main_msg(_("--startuptime <file>\tWrite startup timing messages to <file>"));
main_msg(_("-i <viminfo>\t\tUse <viminfo> instead of .viminfo"));
main_msg(_("--api-msgpack-metadata\tDump API metadata information and exit"));
+ main_msg(_("--embedded-mode\tUse stdin/stdout as a msgpack-rpc channel. "
+ "This can be used for embedding Neovim into other programs"));
main_msg(_("-h or --help\tPrint Help (this message) and exit"));
main_msg(_("--version\t\tPrint version information and exit"));
diff --git a/src/nvim/memfile.c b/src/nvim/memfile.c
index 82369b739a..827cff2299 100644
--- a/src/nvim/memfile.c
+++ b/src/nvim/memfile.c
@@ -122,11 +122,11 @@ memfile_T *mf_open(char_u *fname, int flags)
* mf_blocknr_max must be rounded up.
*/
FileInfo file_info;
- if (mfp->mf_fd >= 0
- && os_get_file_info_fd(mfp->mf_fd, &file_info)
- && file_info.stat.st_blksize >= MIN_SWAP_PAGE_SIZE
- && file_info.stat.st_blksize <= MAX_SWAP_PAGE_SIZE) {
- mfp->mf_page_size = file_info.stat.st_blksize;
+ if (mfp->mf_fd >= 0 && os_fileinfo_fd(mfp->mf_fd, &file_info)) {
+ uint64_t blocksize = os_fileinfo_blocksize(&file_info);
+ if (blocksize >= MIN_SWAP_PAGE_SIZE && blocksize <= MAX_SWAP_PAGE_SIZE) {
+ mfp->mf_page_size = blocksize;
+ }
}
if (mfp->mf_fd < 0 || (flags & (O_TRUNC|O_EXCL))
@@ -1017,7 +1017,7 @@ mf_do_open (
*/
FileInfo file_info;
if ((flags & O_CREAT)
- && os_get_file_info_link((char *)mfp->mf_fname, &file_info)) {
+ && os_fileinfo_link((char *)mfp->mf_fname, &file_info)) {
mfp->mf_fd = -1;
EMSG(_("E300: Swap file already exists (symlink attack?)"));
} else {
diff --git a/src/nvim/memline.c b/src/nvim/memline.c
index 229de4ae1c..04ee0d7f55 100644
--- a/src/nvim/memline.c
+++ b/src/nvim/memline.c
@@ -686,9 +686,9 @@ static void set_b0_fname(ZERO_BL *b0p, buf_T *buf)
}
}
FileInfo file_info;
- if (os_get_file_info((char *)buf->b_ffname, &file_info)) {
+ if (os_fileinfo((char *)buf->b_ffname, &file_info)) {
long_to_char((long)file_info.stat.st_mtim.tv_sec, b0p->b0_mtime);
- long_to_char((long)os_file_info_get_inode(&file_info), b0p->b0_ino);
+ long_to_char((long)os_fileinfo_inode(&file_info), b0p->b0_ino);
buf_store_file_info(buf, &file_info);
buf->b_mtime_read = buf->b_mtime;
} else {
@@ -961,8 +961,8 @@ void ml_recover(void)
FileInfo swp_file_info;
mtime = char_to_long(b0p->b0_mtime);
if (curbuf->b_ffname != NULL
- && os_get_file_info((char *)curbuf->b_ffname, &org_file_info)
- && ((os_get_file_info((char *)mfp->mf_fname, &swp_file_info)
+ && os_fileinfo((char *)curbuf->b_ffname, &org_file_info)
+ && ((os_fileinfo((char *)mfp->mf_fname, &swp_file_info)
&& org_file_info.stat.st_mtim.tv_sec
> swp_file_info.stat.st_mtim.tv_sec)
|| org_file_info.stat.st_mtim.tv_sec != mtime)) {
@@ -1494,7 +1494,7 @@ static time_t swapfile_info(char_u *fname)
/* print the swap file date */
FileInfo file_info;
- if (os_get_file_info((char *)fname, &file_info)) {
+ if (os_fileinfo((char *)fname, &file_info)) {
#ifdef UNIX
/* print name of owner of the file */
if (os_get_uname(file_info.stat.st_uid, uname, B0_UNAME_SIZE) == OK) {
@@ -1630,9 +1630,9 @@ void ml_sync_all(int check_file, int check_char)
* call ml_preserve() to get rid of all negative numbered blocks.
*/
FileInfo file_info;
- if (!os_get_file_info((char *)buf->b_ffname, &file_info)
+ if (!os_fileinfo((char *)buf->b_ffname, &file_info)
|| file_info.stat.st_mtim.tv_sec != buf->b_mtime_read
- || (off_t)file_info.stat.st_size != buf->b_orig_size) {
+ || os_fileinfo_size(&file_info) != buf->b_orig_size) {
ml_preserve(buf, FALSE);
did_check_timestamps = FALSE;
need_check_timestamps = TRUE; /* give message later */
@@ -3180,7 +3180,7 @@ attention_message (
msg_outtrans(buf->b_fname);
MSG_PUTS("\"\n");
FileInfo file_info;
- if (os_get_file_info((char *)buf->b_fname, &file_info)) {
+ if (os_fileinfo((char *)buf->b_fname, &file_info)) {
MSG_PUTS(_(" dated: "));
x = file_info.stat.st_mtim.tv_sec;
p = ctime(&x); // includes '\n'
@@ -3294,7 +3294,7 @@ findswapname (
// Extra security check: When a swap file is a symbolic link, this
// is most likely a symlink attack.
FileInfo file_info;
- bool file_or_link_found = os_get_file_info_link((char *)fname, &file_info);
+ bool file_or_link_found = os_fileinfo_link((char *)fname, &file_info);
if (!file_or_link_found) {
break;
}
@@ -3558,8 +3558,8 @@ fnamecmp_ino (
int retval_s; /* flag: buf_s valid */
FileInfo file_info;
- if (os_get_file_info((char *)fname_c, &file_info)) {
- ino_c = os_file_info_get_inode(&file_info);
+ if (os_fileinfo((char *)fname_c, &file_info)) {
+ ino_c = os_fileinfo_inode(&file_info);
}
/*
@@ -3567,8 +3567,8 @@ fnamecmp_ino (
* the swap file may be outdated. If that fails (e.g. this path is not
* valid on this machine), use the inode from block 0.
*/
- if (os_get_file_info((char *)fname_s, &file_info)) {
- ino_s = os_file_info_get_inode(&file_info);
+ if (os_fileinfo((char *)fname_s, &file_info)) {
+ ino_s = os_fileinfo_inode(&file_info);
} else {
ino_s = (uint64_t)ino_block0;
}
diff --git a/src/nvim/misc1.c b/src/nvim/misc1.c
index 986374b352..8669977ea1 100644
--- a/src/nvim/misc1.c
+++ b/src/nvim/misc1.c
@@ -503,7 +503,7 @@ open_line (
break;
}
}
- if (lead_len) {
+ if (lead_len > 0) {
/* allocate buffer (may concatenate p_extra later) */
leader = xmalloc(lead_len + lead_repl_len + extra_space + extra_len
+ (second_line_indent > 0 ? second_line_indent : 0) + 1);
diff --git a/src/nvim/ops.c b/src/nvim/ops.c
index 0b0a913a95..f1cb34577b 100644
--- a/src/nvim/ops.c
+++ b/src/nvim/ops.c
@@ -5232,7 +5232,8 @@ static void get_clipboard(int name)
struct yankreg *reg = &y_regs[CLIP_REGISTER];
free_register(reg);
- Object result = provider_call("clipboard_get", NIL);
+ Array args = ARRAY_DICT_INIT;
+ Object result = provider_call("clipboard_get", args);
if (result.type != kObjectTypeArray) {
goto err;
@@ -5278,12 +5279,15 @@ static void set_clipboard(int name)
copy_register(reg, &y_regs[0]);
}
- Array lines = {0, 0, 0};
+ Array lines = ARRAY_DICT_INIT;
for (int i = 0; i < reg->y_size; i++) {
ADD(lines, STRING_OBJ(cstr_to_string((char *)reg->y_array[i])));
}
- Object result = provider_call("clipboard_set", ARRAY_OBJ(lines));
+ Array args = ARRAY_DICT_INIT;
+ ADD(args, ARRAY_OBJ(lines));
+
+ Object result = provider_call("clipboard_set", args);
msgpack_rpc_free_object(result);
}
diff --git a/src/nvim/os/channel.c b/src/nvim/os/channel.c
index 1a2efca513..bad82bc272 100644
--- a/src/nvim/os/channel.c
+++ b/src/nvim/os/channel.c
@@ -20,11 +20,14 @@
#include "nvim/vim.h"
#include "nvim/ascii.h"
#include "nvim/memory.h"
+#include "nvim/os_unix.h"
#include "nvim/message.h"
#include "nvim/map.h"
#include "nvim/log.h"
#include "nvim/lib/kvec.h"
+#define CHANNEL_BUFFER_SIZE 0xffff
+
typedef struct {
uint64_t request_id;
bool errored;
@@ -64,6 +67,10 @@ void channel_init(void)
channels = pmap_new(uint64_t)();
event_strings = pmap_new(cstr_t)();
msgpack_sbuffer_init(&out_buffer);
+
+ if (embedded_mode) {
+ channel_from_stdio();
+ }
}
/// Teardown the module
@@ -117,7 +124,10 @@ void channel_from_stream(uv_stream_t *stream)
stream->data = NULL;
channel->is_job = false;
// read stream
- channel->data.streams.read = rstream_new(parse_msgpack, 1024, channel, NULL);
+ channel->data.streams.read = rstream_new(parse_msgpack,
+ CHANNEL_BUFFER_SIZE,
+ channel,
+ NULL);
rstream_set_stream(channel->data.streams.read, stream);
rstream_start(channel->data.streams.read);
// write stream
@@ -133,40 +143,48 @@ bool channel_exists(uint64_t id)
&& channel->enabled;
}
-/// Sends event/data to channel
+/// Sends event/arguments to channel
///
/// @param id The channel id. If 0, the event will be sent to all
/// channels that have subscribed to the event type
/// @param name The event name, an arbitrary string
-/// @param arg The event arg
-/// @return True if the data was sent successfully, false otherwise.
-bool channel_send_event(uint64_t id, char *name, Object arg)
+/// @param args Array with event arguments
+/// @return True if the event was sent successfully, false otherwise.
+bool channel_send_event(uint64_t id, char *name, Array args)
{
Channel *channel = NULL;
if (id > 0) {
if (!(channel = pmap_get(uint64_t)(channels, id)) || !channel->enabled) {
- msgpack_rpc_free_object(arg);
+ msgpack_rpc_free_array(args);
return false;
}
- send_event(channel, name, arg);
+ send_event(channel, name, args);
} else {
- broadcast_event(name, arg);
+ broadcast_event(name, args);
}
return true;
}
+/// Sends a method call to a channel
+///
+/// @param id The channel id
+/// @param name The method name, an arbitrary string
+/// @param args Array with method arguments
+/// @param[out] result Pointer to return value received from the channel
+/// @param[out] error True if the return value is an error
+/// @return True if the call was sent successfully, false otherwise.
bool channel_send_call(uint64_t id,
char *name,
- Object arg,
+ Array args,
Object *result,
bool *errored)
{
Channel *channel = NULL;
if (!(channel = pmap_get(uint64_t)(channels, id)) || !channel->enabled) {
- msgpack_rpc_free_object(arg);
+ msgpack_rpc_free_array(args);
return false;
}
@@ -176,17 +194,16 @@ bool channel_send_call(uint64_t id,
char buf[256];
snprintf(buf,
sizeof(buf),
- "Channel %" PRIu64 " was closed due to a high stack depth "
- "while processing a RPC call",
+ "Channel %" PRIu64 " crossed maximum stack depth",
channel->id);
*result = STRING_OBJ(cstr_to_string(buf));
- msgpack_rpc_free_object(arg);
+ msgpack_rpc_free_array(args);
return false;
}
uint64_t request_id = channel->next_request_id++;
// Send the msgpack-rpc request
- send_request(channel, request_id, name, arg);
+ send_request(channel, request_id, name, args);
EventSource channel_source = channel->is_job
? job_event_source(channel->data.job)
@@ -205,14 +222,6 @@ bool channel_send_call(uint64_t id,
channel->enabled && // the channel is still enabled
kv_size(channel->call_stack) >= size); // the call didn't return
- if (!(kv_size(channel->call_stack)
- || channel->enabled
- || channel->rpc_call_level)) {
- // Close the channel if it has been disabled and we have not been called
- // by `parse_msgpack`(It would be unsafe to close the channel otherwise)
- close_channel(channel);
- }
-
*errored = frame.errored;
*result = frame.result;
@@ -256,6 +265,25 @@ void channel_unsubscribe(uint64_t id, char *event)
unsubscribe(channel, event);
}
+/// Creates an API channel from stdin/stdout. This is used when embedding
+/// Neovim
+static void channel_from_stdio(void)
+{
+ Channel *channel = register_channel();
+ channel->is_job = false;
+ // read stream
+ channel->data.streams.read = rstream_new(parse_msgpack,
+ CHANNEL_BUFFER_SIZE,
+ channel,
+ NULL);
+ rstream_set_file(channel->data.streams.read, 0);
+ rstream_start(channel->data.streams.read);
+ // write stream
+ channel->data.streams.write = wstream_new(0);
+ wstream_set_file(channel->data.streams.write, 1);
+ channel->data.streams.uv = NULL;
+}
+
static void job_out(RStream *rstream, void *data, bool eof)
{
Job *job = data;
@@ -278,6 +306,7 @@ static void job_err(RStream *rstream, void *data, bool eof)
static void parse_msgpack(RStream *rstream, void *data, bool eof)
{
Channel *channel = data;
+ channel->rpc_call_level++;
if (eof) {
char buf[256];
@@ -287,10 +316,9 @@ static void parse_msgpack(RStream *rstream, void *data, bool eof)
"closed by the client",
channel->id);
call_set_error(channel, buf);
- return;
+ goto end;
}
- channel->rpc_call_level++;
uint32_t count = rstream_available(rstream);
DLOG("Feeding the msgpack parser with %u bytes of data from RStream(%p)",
count,
@@ -386,21 +414,21 @@ static void send_error(Channel *channel, uint64_t id, char *err)
static void send_request(Channel *channel,
uint64_t id,
char *name,
- Object arg)
+ Array args)
{
String method = {.size = strlen(name), .data = name};
- channel_write(channel, serialize_request(id, method, arg, &out_buffer, 1));
+ channel_write(channel, serialize_request(id, method, args, &out_buffer, 1));
}
static void send_event(Channel *channel,
char *name,
- Object arg)
+ Array args)
{
String method = {.size = strlen(name), .data = name};
- channel_write(channel, serialize_request(0, method, arg, &out_buffer, 1));
+ channel_write(channel, serialize_request(0, method, args, &out_buffer, 1));
}
-static void broadcast_event(char *name, Object arg)
+static void broadcast_event(char *name, Array args)
{
kvec_t(Channel *) subscribed;
kv_init(subscribed);
@@ -413,14 +441,14 @@ static void broadcast_event(char *name, Object arg)
});
if (!kv_size(subscribed)) {
- msgpack_rpc_free_object(arg);
+ msgpack_rpc_free_array(args);
goto end;
}
String method = {.size = strlen(name), .data = name};
WBuffer *buffer = serialize_request(0,
method,
- arg,
+ args,
&out_buffer,
kv_size(subscribed));
@@ -469,7 +497,12 @@ static void close_channel(Channel *channel)
} else {
rstream_free(channel->data.streams.read);
wstream_free(channel->data.streams.write);
- uv_close((uv_handle_t *)channel->data.streams.uv, close_cb);
+ if (channel->data.streams.uv) {
+ uv_close((uv_handle_t *)channel->data.streams.uv, close_cb);
+ } else {
+ // When the stdin channel closes, it's time to go
+ mch_exit(0);
+ }
}
free(channel);
diff --git a/src/nvim/os/fs.c b/src/nvim/os/fs.c
index aca7005064..bb4e897887 100644
--- a/src/nvim/os/fs.c
+++ b/src/nvim/os/fs.c
@@ -258,20 +258,6 @@ int os_file_is_writable(const char *name)
return 0;
}
-/// Get the size of a file in bytes.
-///
-/// @param[out] size pointer to an off_t to put the size into.
-/// @return `true` for success, `false` for failure.
-bool os_get_file_size(const char *name, off_t *size)
-{
- uv_stat_t statbuf;
- if (os_stat(name, &statbuf)) {
- *size = statbuf.st_size;
- return true;
- }
- return false;
-}
-
/// Rename a file or directory.
///
/// @return `OK` for success, `FAIL` for failure.
@@ -345,7 +331,7 @@ int os_remove(const char *path)
/// @param path Path to the file.
/// @param[out] file_info Pointer to a FileInfo to put the information in.
/// @return `true` on success, `false` for failure.
-bool os_get_file_info(const char *path, FileInfo *file_info)
+bool os_fileinfo(const char *path, FileInfo *file_info)
{
return os_stat(path, &(file_info->stat));
}
@@ -355,7 +341,7 @@ bool os_get_file_info(const char *path, FileInfo *file_info)
/// @param path Path to the file.
/// @param[out] file_info Pointer to a FileInfo to put the information in.
/// @return `true` on success, `false` for failure.
-bool os_get_file_info_link(const char *path, FileInfo *file_info)
+bool os_fileinfo_link(const char *path, FileInfo *file_info)
{
uv_fs_t request;
int result = uv_fs_lstat(uv_default_loop(), &request, path, NULL);
@@ -369,7 +355,7 @@ bool os_get_file_info_link(const char *path, FileInfo *file_info)
/// @param file_descriptor File descriptor of the file.
/// @param[out] file_info Pointer to a FileInfo to put the information in.
/// @return `true` on success, `false` for failure.
-bool os_get_file_info_fd(int file_descriptor, FileInfo *file_info)
+bool os_fileinfo_fd(int file_descriptor, FileInfo *file_info)
{
uv_fs_t request;
int result = uv_fs_fstat(uv_default_loop(), &request, file_descriptor, NULL);
@@ -381,7 +367,7 @@ bool os_get_file_info_fd(int file_descriptor, FileInfo *file_info)
/// Compare the inodes of two FileInfos
///
/// @return `true` if the two FileInfos represent the same file.
-bool os_file_info_id_equal(const FileInfo *file_info_1,
+bool os_fileinfo_id_equal(const FileInfo *file_info_1,
const FileInfo *file_info_2)
{
return file_info_1->stat.st_ino == file_info_2->stat.st_ino
@@ -392,7 +378,7 @@ bool os_file_info_id_equal(const FileInfo *file_info_1,
///
/// @param file_info Pointer to the `FileInfo`
/// @param[out] file_id Pointer to a `FileID`
-void os_file_info_get_id(const FileInfo *file_info, FileID *file_id)
+void os_fileinfo_id(const FileInfo *file_info, FileID *file_id)
{
file_id->inode = file_info->stat.st_ino;
file_id->device_id = file_info->stat.st_dev;
@@ -403,17 +389,44 @@ void os_file_info_get_id(const FileInfo *file_info, FileID *file_id)
/// @deprecated Use `FileID` instead, this function is only needed in memline.c
/// @param file_info Pointer to the `FileInfo`
/// @return the inode number
-uint64_t os_file_info_get_inode(const FileInfo *file_info)
+uint64_t os_fileinfo_inode(const FileInfo *file_info)
{
return file_info->stat.st_ino;
}
+/// Get the size of a file from a `FileInfo`.
+///
+/// @return filesize in bytes.
+uint64_t os_fileinfo_size(const FileInfo *file_info)
+ FUNC_ATTR_NONNULL_ALL
+{
+ return file_info->stat.st_size;
+}
+
+/// Get the number of hardlinks from a `FileInfo`.
+///
+/// @return number of hardlinks.
+uint64_t os_fileinfo_hardlinks(const FileInfo *file_info)
+ FUNC_ATTR_NONNULL_ALL
+{
+ return file_info->stat.st_nlink;
+}
+
+/// Get the blocksize from a `FileInfo`.
+///
+/// @return blocksize in bytes.
+uint64_t os_fileinfo_blocksize(const FileInfo *file_info)
+ FUNC_ATTR_NONNULL_ALL
+{
+ return file_info->stat.st_blksize;
+}
+
/// Get the `FileID` for a given path
///
/// @param path Path to the file.
/// @param[out] file_info Pointer to a `FileID` to fill in.
/// @return `true` on sucess, `false` for failure.
-bool os_get_file_id(const char *path, FileID *file_id)
+bool os_fileid(const char *path, FileID *file_id)
{
uv_stat_t statbuf;
if (os_stat(path, &statbuf)) {
@@ -429,7 +442,7 @@ bool os_get_file_id(const char *path, FileID *file_id)
/// @param file_id_1 Pointer to first `FileID`
/// @param file_id_2 Pointer to second `FileID`
/// @return `true` if the two `FileID`s represent te same file.
-bool os_file_id_equal(const FileID *file_id_1, const FileID *file_id_2)
+bool os_fileid_equal(const FileID *file_id_1, const FileID *file_id_2)
{
return file_id_1->inode == file_id_2->inode
&& file_id_1->device_id == file_id_2->device_id;
@@ -440,7 +453,7 @@ bool os_file_id_equal(const FileID *file_id_1, const FileID *file_id_2)
/// @param file_id Pointer to a `FileID`
/// @param file_info Pointer to a `FileInfo`
/// @return `true` if the `FileID` and the `FileInfo` represent te same file.
-bool os_file_id_equal_file_info(const FileID *file_id,
+bool os_fileid_equal_fileinfo(const FileID *file_id,
const FileInfo *file_info)
{
return file_id->inode == file_info->stat.st_ino
diff --git a/src/nvim/os/input.c b/src/nvim/os/input.c
index 15aebdbf3d..53024d1389 100644
--- a/src/nvim/os/input.c
+++ b/src/nvim/os/input.c
@@ -6,6 +6,7 @@
#include "nvim/os/input.h"
#include "nvim/os/event.h"
+#include "nvim/os/signal.h"
#include "nvim/os/rstream_defs.h"
#include "nvim/os/rstream.h"
#include "nvim/ascii.h"
@@ -34,6 +35,10 @@ static bool eof = false, started_reading = false;
void input_init(void)
{
+ if (embedded_mode) {
+ return;
+ }
+
read_stream = rstream_new(read_cb, READ_BUFFER_SIZE, NULL, NULL);
rstream_set_file(read_stream, read_cmd_fd);
}
@@ -41,18 +46,30 @@ void input_init(void)
// Listen for input
void input_start(void)
{
+ if (embedded_mode) {
+ return;
+ }
+
rstream_start(read_stream);
}
// Stop listening for input
void input_stop(void)
{
+ if (embedded_mode) {
+ return;
+ }
+
rstream_stop(read_stream);
}
// Copies (at most `count`) of was read from `read_cmd_fd` into `buf`
uint32_t input_read(char *buf, uint32_t count)
{
+ if (embedded_mode) {
+ return 0;
+ }
+
return rstream_read(read_stream, buf, count);
}
@@ -129,6 +146,11 @@ bool os_isatty(int fd)
static bool input_poll(int32_t ms)
{
+ if (embedded_mode) {
+ EventSource input_sources[] = { signal_event_source(), NULL };
+ return event_poll(ms, input_sources);
+ }
+
EventSource input_sources[] = {
rstream_event_source(read_stream),
NULL
diff --git a/src/nvim/os/msgpack_rpc.c b/src/nvim/os/msgpack_rpc.c
index c03d8dccca..c6e2af2f1c 100644
--- a/src/nvim/os/msgpack_rpc.c
+++ b/src/nvim/os/msgpack_rpc.c
@@ -39,15 +39,14 @@ WBuffer *msgpack_rpc_call(uint64_t channel_id,
return serialize_response(response_id, err, NIL, sbuffer);
}
- uint64_t method_id = req->via.array.ptr[2].via.u64;
-
- if (method_id == 0) {
+ if (req->via.array.ptr[2].type == MSGPACK_OBJECT_POSITIVE_INTEGER
+ && req->via.array.ptr[2].via.u64 == 0) {
return serialize_metadata(response_id, channel_id, sbuffer);
}
// dispatch the call
Error error = { .set = false };
- Object rv = msgpack_rpc_dispatch(channel_id, method_id, req, &error);
+ Object rv = msgpack_rpc_dispatch(channel_id, req, &error);
// send the response
msgpack_packer response;
msgpack_packer_init(&response, sbuffer, msgpack_sbuffer_write);
@@ -119,7 +118,7 @@ void msgpack_rpc_error(char *msg, msgpack_packer *res)
/// Serializes a msgpack-rpc request or notification(id == 0)
WBuffer *serialize_request(uint64_t request_id,
String method,
- Object arg,
+ Array args,
msgpack_sbuffer *sbuffer,
size_t refcount)
FUNC_ATTR_NONNULL_ARG(4)
@@ -135,12 +134,12 @@ WBuffer *serialize_request(uint64_t request_id,
msgpack_pack_raw(&pac, method.size);
msgpack_pack_raw_body(&pac, method.data, method.size);
- msgpack_rpc_from_object(arg, &pac);
+ msgpack_rpc_from_array(args, &pac);
WBuffer *rv = wstream_new_buffer(xmemdup(sbuffer->data, sbuffer->size),
sbuffer->size,
refcount,
free);
- msgpack_rpc_free_object(arg);
+ msgpack_rpc_free_array(args);
msgpack_sbuffer_clear(sbuffer);
return rv;
}
@@ -235,8 +234,9 @@ static char *msgpack_rpc_validate(uint64_t *response_id, msgpack_object *req)
return "Message type must be 0";
}
- if (req->via.array.ptr[2].type != MSGPACK_OBJECT_POSITIVE_INTEGER) {
- return "Method id must be a positive integer";
+ if (req->via.array.ptr[2].type != MSGPACK_OBJECT_POSITIVE_INTEGER
+ && req->via.array.ptr[2].type != MSGPACK_OBJECT_RAW) {
+ return "Method must be a positive integer or a string";
}
if (req->via.array.ptr[3].type != MSGPACK_OBJECT_ARRAY) {
diff --git a/src/nvim/os/msgpack_rpc.h b/src/nvim/os/msgpack_rpc.h
index 5aca900d2e..35f175d2a0 100644
--- a/src/nvim/os/msgpack_rpc.h
+++ b/src/nvim/os/msgpack_rpc.h
@@ -21,6 +21,11 @@ typedef Object (*rpc_method_handler_fn)(uint64_t channel_id,
msgpack_object *req,
Error *error);
+
+/// Initializes the msgpack-rpc method table
+void msgpack_rpc_init(void);
+
+
/// Dispatches to the actual API function after basic payload validation by
/// `msgpack_rpc_call`. It is responsible for validating/converting arguments
/// to C types, and converting the return value back to msgpack types.
@@ -33,11 +38,11 @@ typedef Object (*rpc_method_handler_fn)(uint64_t channel_id,
/// @param error Pointer to error structure
/// @return Some object
Object msgpack_rpc_dispatch(uint64_t channel_id,
- uint64_t method_id,
msgpack_object *req,
Error *error)
FUNC_ATTR_NONNULL_ARG(2) FUNC_ATTR_NONNULL_ARG(3);
+
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "os/msgpack_rpc.h.generated.h"
#endif
diff --git a/src/nvim/os/provider.c b/src/nvim/os/provider.c
index d94203f683..07e757fe0e 100644
--- a/src/nvim/os/provider.c
+++ b/src/nvim/os/provider.c
@@ -98,7 +98,7 @@ bool provider_register(char *method, uint64_t channel_id)
return true;
}
-Object provider_call(char *method, Object arg)
+Object provider_call(char *method, Array args)
{
uint64_t channel_id = get_provider_for(method);
@@ -109,13 +109,13 @@ Object provider_call(char *method, Object arg)
"Provider for \"%s\" is not available",
method);
report_error(buf);
- msgpack_rpc_free_object(arg);
+ msgpack_rpc_free_array(args);
return NIL;
}
bool error = false;
Object result = NIL;
- channel_send_call(channel_id, method, arg, &result, &error);
+ channel_send_call(channel_id, method, args, &result, &error);
if (error) {
report_error(result.data.string.data);
diff --git a/src/nvim/os/signal.c b/src/nvim/os/signal.c
index 17f270a5cc..2f93cfb08a 100644
--- a/src/nvim/os/signal.c
+++ b/src/nvim/os/signal.c
@@ -39,7 +39,10 @@ void signal_init(void)
uv_signal_start(&shup, signal_cb, SIGHUP);
uv_signal_start(&squit, signal_cb, SIGQUIT);
uv_signal_start(&sterm, signal_cb, SIGTERM);
- uv_signal_start(&swinch, signal_cb, SIGWINCH);
+ if (!embedded_mode) {
+ // TODO(tarruda): There must be an API function for resizing window
+ uv_signal_start(&swinch, signal_cb, SIGWINCH);
+ }
#ifdef SIGPWR
uv_signal_init(uv_default_loop(), &spwr);
uv_signal_start(&spwr, signal_cb, SIGPWR);
diff --git a/src/nvim/os/wstream.c b/src/nvim/os/wstream.c
index 194bf757e4..44463c7c88 100644
--- a/src/nvim/os/wstream.c
+++ b/src/nvim/os/wstream.c
@@ -1,6 +1,7 @@
#include <assert.h>
#include <stdint.h>
#include <stdbool.h>
+#include <stdlib.h>
#include <uv.h>
@@ -20,7 +21,7 @@ struct wstream {
size_t maxmem;
// Number of pending requests
size_t pending_reqs;
- bool freed;
+ bool freed, free_handle;
// (optional) Write callback and data
wstream_cb cb;
void *data;
@@ -60,6 +61,7 @@ WStream * wstream_new(size_t maxmem)
rv->curmem = 0;
rv->pending_reqs = 0;
rv->freed = false;
+ rv->free_handle = false;
rv->cb = NULL;
return rv;
@@ -68,9 +70,13 @@ WStream * wstream_new(size_t maxmem)
/// Frees all memory allocated for a WStream instance
///
/// @param wstream The `WStream` instance
-void wstream_free(WStream *wstream)
-{
+void wstream_free(WStream *wstream) {
if (!wstream->pending_reqs) {
+ handle_set_wstream((uv_handle_t *)wstream->stream, NULL);
+ if (wstream->free_handle) {
+ uv_close((uv_handle_t *)wstream->stream, close_cb);
+ }
+
free(wstream);
} else {
wstream->freed = true;
@@ -87,6 +93,24 @@ void wstream_set_stream(WStream *wstream, uv_stream_t *stream)
wstream->stream = stream;
}
+/// Sets the underlying file descriptor that will be written to. Only pipes
+/// are supported for now.
+///
+/// @param wstream The `WStream` instance
+/// @param file The file descriptor
+void wstream_set_file(WStream *wstream, uv_file file)
+{
+ uv_handle_type type = uv_guess_handle(file);
+
+ assert(type == UV_NAMED_PIPE || type == UV_TTY);
+ wstream->stream = xmalloc(sizeof(uv_pipe_t));
+ uv_pipe_init(uv_default_loop(), (uv_pipe_t *)wstream->stream, 0);
+ uv_pipe_open((uv_pipe_t *)wstream->stream, file);
+ wstream->stream->data = NULL;
+ handle_set_wstream((uv_handle_t *)wstream->stream, wstream);
+ wstream->free_handle = true;
+}
+
/// Sets a callback that will be called on completion of a write request,
/// indicating failure/success.
///
@@ -211,3 +235,16 @@ static void release_wbuffer(WBuffer *buffer)
free(buffer);
}
}
+
+static void close_cb(uv_handle_t *handle)
+{
+ WStream *wstream = handle_get_wstream(handle);
+
+ if (wstream) {
+ free(wstream);
+ }
+
+ free(handle->data);
+ free(handle);
+}
+
diff --git a/src/nvim/os_unix.c b/src/nvim/os_unix.c
index af17676ebf..3fa8b803b2 100644
--- a/src/nvim/os_unix.c
+++ b/src/nvim/os_unix.c
@@ -54,6 +54,7 @@
#include "nvim/os/shell.h"
#include "nvim/os/signal.h"
#include "nvim/os/job.h"
+#include "nvim/os/msgpack_rpc.h"
#if defined(HAVE_SYS_IOCTL_H)
# include <sys/ioctl.h>
@@ -88,6 +89,18 @@ static int did_set_icon = FALSE;
*/
void mch_write(char_u *s, int len)
{
+ if (embedded_mode) {
+ // TODO(tarruda): This is a temporary hack to stop Neovim from writing
+ // messages to stdout in embedded mode. In the future, embedded mode will
+ // be the only possibility(GUIs will always start neovim with a msgpack-rpc
+ // over stdio) and this function won't exist.
+ //
+ // The reason for this is because before Neovim fully migrates to a
+ // msgpack-rpc-driven architecture, we must have a fully functional
+ // UI working
+ return;
+ }
+
ignored = (int)write(1, (char *)s, len);
if (p_wd) /* Unix is too fast, slow down a bit more */
os_microdelay(p_wd, false);
@@ -152,6 +165,7 @@ void mch_init(void)
mac_conv_init();
#endif
+ msgpack_rpc_init();
event_init();
}
@@ -314,7 +328,7 @@ int len /* buffer size, only used when name gets longer */
struct dirent *dp;
FileInfo file_info;
- if (os_get_file_info_link((char *)name, &file_info)) {
+ if (os_fileinfo_link((char *)name, &file_info)) {
/* Open the directory where the file is located. */
slash = vim_strrchr(name, '/');
if (slash == NULL) {
@@ -340,8 +354,8 @@ int len /* buffer size, only used when name gets longer */
STRLCPY(newname + (tail - name), dp->d_name,
MAXPATHL - (tail - name) + 1);
FileInfo file_info_new;
- if (os_get_file_info_link((char *)newname, &file_info_new)
- && os_file_info_id_equal(&file_info, &file_info_new)) {
+ if (os_fileinfo_link((char *)newname, &file_info_new)
+ && os_fileinfo_id_equal(&file_info, &file_info_new)) {
STRCPY(tail, dp->d_name);
break;
}
diff --git a/src/nvim/path.c b/src/nvim/path.c
index 0c18ab7bd4..4e05c506f8 100644
--- a/src/nvim/path.c
+++ b/src/nvim/path.c
@@ -61,10 +61,10 @@ FileComparison path_full_compare(char_u *s1, char_u *s2, int checkname)
FileID file_id_1, file_id_2;
expand_env(s1, exp1, MAXPATHL);
- bool id_ok_1 = os_get_file_id((char *)exp1, &file_id_1);
- bool id_ok_2 = os_get_file_id((char *)s2, &file_id_2);
+ bool id_ok_1 = os_fileid((char *)exp1, &file_id_1);
+ bool id_ok_2 = os_fileid((char *)s2, &file_id_2);
if (!id_ok_1 && !id_ok_2) {
- // If os_get_file_id() doesn't work, may compare the names.
+ // If os_fileid() doesn't work, may compare the names.
if (checkname) {
vim_FullName(exp1, full1, MAXPATHL, FALSE);
vim_FullName(s2, full2, MAXPATHL, FALSE);
@@ -77,7 +77,7 @@ FileComparison path_full_compare(char_u *s1, char_u *s2, int checkname)
if (!id_ok_1 || !id_ok_2) {
return kOneFileMissing;
}
- if (os_file_id_equal(&file_id_1, &file_id_2)) {
+ if (os_fileid_equal(&file_id_1, &file_id_2)) {
return kEqualFiles;
}
return kDifferentFiles;
@@ -1304,7 +1304,7 @@ void simplify_filename(char_u *filename)
saved_char = p[-1];
p[-1] = NUL;
FileInfo file_info;
- if (!os_get_file_info_link((char *)filename, &file_info)) {
+ if (!os_fileinfo_link((char *)filename, &file_info)) {
do_strip = TRUE;
}
p[-1] = saved_char;
@@ -1327,7 +1327,7 @@ void simplify_filename(char_u *filename)
* components. */
saved_char = *tail;
*tail = NUL;
- if (os_get_file_info((char *)filename, &file_info)) {
+ if (os_fileinfo((char *)filename, &file_info)) {
do_strip = TRUE;
}
else
@@ -1343,15 +1343,15 @@ void simplify_filename(char_u *filename)
* component's parent directory.) */
FileInfo new_file_info;
if (p == start && relative) {
- os_get_file_info(".", &new_file_info);
+ os_fileinfo(".", &new_file_info);
} else {
saved_char = *p;
*p = NUL;
- os_get_file_info((char *)filename, &new_file_info);
+ os_fileinfo((char *)filename, &new_file_info);
*p = saved_char;
}
- if (!os_file_info_id_equal(&file_info, &new_file_info)) {
+ if (!os_fileinfo_id_equal(&file_info, &new_file_info)) {
do_strip = FALSE;
/* We don't disable stripping of later
* components since the unstripped path name is
diff --git a/src/nvim/quickfix.c b/src/nvim/quickfix.c
index 2415858e0f..876d4e73d1 100644
--- a/src/nvim/quickfix.c
+++ b/src/nvim/quickfix.c
@@ -2564,7 +2564,7 @@ static char_u *get_mef_name(void)
STRCAT(name, p + 2);
// Don't accept a symbolic link, its a security risk.
FileInfo file_info;
- bool file_or_link_found = os_get_file_info_link((char *)name, &file_info);
+ bool file_or_link_found = os_fileinfo_link((char *)name, &file_info);
if (!file_or_link_found) {
break;
}
diff --git a/src/nvim/term.c b/src/nvim/term.c
index 36e433d624..d2c524e2e8 100644
--- a/src/nvim/term.c
+++ b/src/nvim/term.c
@@ -2360,6 +2360,9 @@ void set_shellsize(int width, int height, int mustset)
*/
void settmode(int tmode)
{
+ if (embedded_mode) {
+ return;
+ }
if (full_screen) {
/*
diff --git a/src/nvim/testdir/test105.in b/src/nvim/testdir/test105.in
index 73d92e899d..bfb4b65fbb 100644
--- a/src/nvim/testdir/test105.in
+++ b/src/nvim/testdir/test105.in
@@ -7,7 +7,7 @@ STARTTEST
:set shellslash
:let tab="\t"
:command -nargs=1 Put :let expr=<q-args> | $put =expr.tab.strtrans(string(eval(expr)))
-:let $HOME=fnamemodify('.', ':p:h:h:h:h')
+:let $HOME=fnamemodify('.', ':p:h:h:h')
:Put fnamemodify('.', ':p' )[-1:]
:Put fnamemodify('.', ':p:h' )[-1:]
:Put fnamemodify('test.out', ':p' )[-1:]
@@ -23,7 +23,7 @@ STARTTEST
:Put fnamemodify('abc.fb2.tar.gz', ':r' )
:Put fnamemodify('abc.fb2.tar.gz', ':r:r' )
:Put fnamemodify('abc.fb2.tar.gz', ':r:r:r' )
-:Put substitute(fnamemodify('abc.fb2.tar.gz', ':p:r:r'), '.*\(src/nvim/testdir/.*\)', '\1', '')
+:Put substitute(fnamemodify('abc.fb2.tar.gz', ':p:r:r'), '.*\(nvim/testdir/.*\)', '\1', '')
:Put fnamemodify('abc.fb2.tar.gz', ':e' )
:Put fnamemodify('abc.fb2.tar.gz', ':e:e' )
:Put fnamemodify('abc.fb2.tar.gz', ':e:e:e' )
diff --git a/src/nvim/testdir/test105.ok b/src/nvim/testdir/test105.ok
index be1eca8f8f..0b30ee4281 100644
--- a/src/nvim/testdir/test105.ok
+++ b/src/nvim/testdir/test105.ok
@@ -3,8 +3,8 @@ fnamemodify('.', ':p:h' )[-1:] 'r'
fnamemodify('test.out', ':p' )[-1:] 't'
fnamemodify('test.out', ':.' ) 'test.out'
fnamemodify('../testdir/a', ':.' ) 'a'
-fnamemodify('test.out', ':~' ) '~/src/nvim/testdir/test.out'
-fnamemodify('../testdir/a', ':~' ) '~/src/nvim/testdir/a'
+fnamemodify('test.out', ':~' ) '~/nvim/testdir/test.out'
+fnamemodify('../testdir/a', ':~' ) '~/nvim/testdir/a'
fnamemodify('../testdir/a', ':t' ) 'a'
fnamemodify('.', ':p:t' ) ''
fnamemodify('test.out', ':p:t' ) 'test.out'
@@ -13,7 +13,7 @@ fnamemodify('test.out', ':p:t:e' ) 'out'
fnamemodify('abc.fb2.tar.gz', ':r' ) 'abc.fb2.tar'
fnamemodify('abc.fb2.tar.gz', ':r:r' ) 'abc.fb2'
fnamemodify('abc.fb2.tar.gz', ':r:r:r' ) 'abc'
-substitute(fnamemodify('abc.fb2.tar.gz', ':p:r:r'), '.*\(src/nvim/testdir/.*\)', '\1', '') 'src/nvim/testdir/abc.fb2'
+substitute(fnamemodify('abc.fb2.tar.gz', ':p:r:r'), '.*\(nvim/testdir/.*\)', '\1', '') 'nvim/testdir/abc.fb2'
fnamemodify('abc.fb2.tar.gz', ':e' ) 'gz'
fnamemodify('abc.fb2.tar.gz', ':e:e' ) 'tar.gz'
fnamemodify('abc.fb2.tar.gz', ':e:e:e' ) 'fb2.tar.gz'
diff --git a/src/nvim/undo.c b/src/nvim/undo.c
index 8c7b5b38e9..d7a691aa83 100644
--- a/src/nvim/undo.c
+++ b/src/nvim/undo.c
@@ -1116,8 +1116,8 @@ void u_write_undo(char_u *name, int forceit, buf_T *buf, char_u *hash)
*/
FileInfo file_info_old;
FileInfo file_info_new;
- if (os_get_file_info((char *)buf->b_ffname, &file_info_old)
- && os_get_file_info((char *)file_name, &file_info_new)
+ if (os_fileinfo((char *)buf->b_ffname, &file_info_old)
+ && os_fileinfo((char *)file_name, &file_info_new)
&& file_info_old.stat.st_gid != file_info_new.stat.st_gid
&& os_fchown(fd, -1, file_info_old.stat.st_gid) != 0) {
os_setperm(file_name, (perm & 0707) | ((perm & 07) << 3));
@@ -1249,8 +1249,8 @@ void u_read_undo(char_u *name, char_u *hash, char_u *orig_name)
* owner of the text file or equal to the current user. */
FileInfo file_info_orig;
FileInfo file_info_undo;
- if (os_get_file_info((char *)orig_name, &file_info_orig)
- && os_get_file_info((char *)file_name, &file_info_undo)
+ if (os_fileinfo((char *)orig_name, &file_info_orig)
+ && os_fileinfo((char *)file_name, &file_info_undo)
&& file_info_orig.stat.st_uid != file_info_undo.stat.st_uid
&& file_info_undo.stat.st_uid != getuid()) {
if (p_verbose > 0) {
diff --git a/src/nvim/version.c b/src/nvim/version.c
index 8132d5dfcc..75b4ac4b4d 100644
--- a/src/nvim/version.c
+++ b/src/nvim/version.c
@@ -375,7 +375,7 @@ static int included_patches[] = {
//223 NA
//222 NA
221,
- //220,
+ 220,
219,
218,
//217 NA
diff --git a/test/unit/formatc.lua b/test/unit/formatc.lua
index dc1fb3fd9c..bafaf09310 100644
--- a/test/unit/formatc.lua
+++ b/test/unit/formatc.lua
@@ -215,7 +215,6 @@ end
-- uncomment the following lines (and comment the return) for standalone
-- operation (very handy for debugging)
local function standalone(...)
- require "moonscript"
Preprocess = require("preprocess")
Preprocess.add_to_include_path('./../../src')
Preprocess.add_to_include_path('./../../build/include')
diff --git a/test/unit/garray_spec.lua b/test/unit/garray_spec.lua
new file mode 100644
index 0000000000..c0c6d7e9ce
--- /dev/null
+++ b/test/unit/garray_spec.lua
@@ -0,0 +1,391 @@
+local helpers = require("test.unit.helpers")
+
+local cimport = helpers.cimport
+local internalize = helpers.internalize
+local eq = helpers.eq
+local neq = helpers.neq
+local ffi = helpers.ffi
+local lib = helpers.lib
+local cstr = helpers.cstr
+local to_cstr = helpers.to_cstr
+local NULL = helpers.NULL
+
+local garray = cimport('./src/nvim/garray.h')
+
+-- define a basic interface to garray. We could make it a lot nicer by
+-- constructing a class wrapper around garray. It could for example associate
+-- ga_clear_strings to the underlying garray cdata if the garray is a string
+-- array. But for now I estimate that that kind of magic might make testing
+-- less "transparant" (i.e.: the interface would become quite different as to
+-- how one would use it from C.
+
+-- accessors
+function ga_len(garr)
+ return garr[0].ga_len
+end
+
+function ga_maxlen(garr)
+ return garr[0].ga_maxlen
+end
+
+function ga_itemsize(garr)
+ return garr[0].ga_itemsize
+end
+
+function ga_growsize(garr)
+ return garr[0].ga_growsize
+end
+
+function ga_data(garr)
+ return garr[0].ga_data
+end
+
+-- derived accessors
+function ga_size(garr)
+ return ga_len(garr) * ga_itemsize(garr)
+end
+
+function ga_maxsize(garr)
+ return ga_maxlen(garr) * ga_itemsize(garr)
+end
+
+function ga_data_as_bytes(garr)
+ return ffi.cast('uint8_t *', ga_data(garr))
+end
+
+function ga_data_as_strings(garr)
+ return ffi.cast('char **', ga_data(garr))
+end
+
+function ga_data_as_ints(garr)
+ return ffi.cast('int *', ga_data(garr))
+end
+
+-- garray manipulation
+function ga_init(garr, itemsize, growsize)
+ return garray.ga_init(garr, itemsize, growsize)
+end
+
+function ga_clear(garr)
+ return garray.ga_clear(garr)
+end
+
+function ga_clear_strings(garr)
+ assert.is_true(ga_itemsize(garr) == ffi.sizeof('char *'))
+ return garray.ga_clear_strings(garr)
+end
+
+function ga_grow(garr, n)
+ return garray.ga_grow(garr, n)
+end
+
+function ga_concat(garr, str)
+ return garray.ga_concat(garr, to_cstr(str))
+end
+
+function ga_append(garr, b)
+ if type(b) == 'string' then
+ return garray.ga_append(garr, string.byte(b))
+ else
+ return garray.ga_append(garr, b)
+ end
+end
+
+function ga_concat_strings(garr)
+ return internalize(garray.ga_concat_strings(garr))
+end
+
+function ga_concat_strings_sep(garr, sep)
+ return internalize(garray.ga_concat_strings_sep(garr, to_cstr(sep)))
+end
+
+function ga_remove_duplicate_strings(garr)
+ return garray.ga_remove_duplicate_strings(garr)
+end
+
+-- derived manipulators
+function ga_set_len(garr, len)
+ assert.is_true(len <= ga_maxlen(garr))
+ garr[0].ga_len = len
+end
+
+function ga_inc_len(garr, by)
+ return ga_set_len(garr, ga_len(garr) + 1)
+end
+
+-- custom append functions
+-- not the C ga_append, which only works for bytes
+function ga_append_int(garr, it)
+ assert.is_true(ga_itemsize(garr) == ffi.sizeof('int'))
+ ga_grow(garr, 1)
+ local data = ga_data_as_ints(garr)
+ data[ga_len(garr)] = it
+ return ga_inc_len(garr, 1)
+end
+
+function ga_append_string(garr, it)
+ assert.is_true(ga_itemsize(garr) == ffi.sizeof('char *'))
+ -- make a non-garbage collected string and copy the lua string into it,
+ -- TODO(aktau): we should probably call xmalloc here, though as long as
+ -- xmalloc is based on malloc it should work.
+ local mem = ffi.C.malloc(string.len(it) + 1)
+ ffi.copy(mem, it)
+ ga_grow(garr, 1)
+ local data = ga_data_as_strings(garr)
+ data[ga_len(garr)] = mem
+ return ga_inc_len(garr, 1)
+end
+
+function ga_append_strings(garr, ...)
+ local prevlen = ga_len(garr)
+ local len = select('#', ...)
+ for i = 1, len do
+ ga_append_string(garr, select(i, ...))
+ end
+ return eq(prevlen + len, ga_len(garr))
+end
+
+function ga_append_ints(garr, ...)
+ local prevlen = ga_len(garr)
+ local len = select('#', ...)
+ for i = 1, len do
+ ga_append_int(garr, select(i, ...))
+ end
+ return eq(prevlen + len, ga_len(garr))
+end
+
+-- enhanced constructors
+local garray_ctype = ffi.typeof('garray_T[1]')
+function new_garray()
+ local garr = garray_ctype()
+ return ffi.gc(garr, ga_clear)
+end
+
+function new_string_garray()
+ local garr = garray_ctype()
+ ga_init(garr, ffi.sizeof("char_u *"), 1)
+ return ffi.gc(garr, ga_clear_strings)
+end
+
+function randomByte()
+ return ffi.cast('uint8_t', math.random(0, 255))
+end
+
+-- scramble the data in a garray
+function ga_scramble(garr)
+ local size, bytes = ga_size(garr), ga_data_as_bytes(garr)
+ for i = 0, size - 1 do
+ bytes[i] = randomByte()
+ end
+end
+
+describe('garray', function()
+ local itemsize = 14
+ local growsize = 95
+
+ describe('ga_init', function()
+ it('initializes the values of the garray', function()
+ local garr = new_garray()
+ ga_init(garr, itemsize, growsize)
+ eq(0, ga_len(garr))
+ eq(0, ga_maxlen(garr))
+ eq(growsize, ga_growsize(garr))
+ eq(itemsize, ga_itemsize(garr))
+ eq(NULL, ga_data(garr))
+ end)
+ end)
+
+ describe('ga_grow', function()
+ local new_and_grow
+ function new_and_grow(itemsize, growsize, req)
+ local garr = new_garray()
+ ga_init(garr, itemsize, growsize)
+ eq(0, ga_size(garr)) -- should be 0 at first
+ eq(NULL, ga_data(garr)) -- should be NULL
+ ga_grow(garr, req) -- add space for `req` items
+ return garr
+ end
+
+ it('grows by growsize items if num < growsize', function()
+ itemsize = 16
+ growsize = 4
+ local grow_by = growsize - 1
+ local garr = new_and_grow(itemsize, growsize, grow_by)
+ neq(NULL, ga_data(garr)) -- data should be a ptr to memory
+ eq(growsize, ga_maxlen(garr)) -- we requested LESS than growsize, so...
+ end)
+
+ it('grows by num items if num > growsize', function()
+ itemsize = 16
+ growsize = 4
+ local grow_by = growsize + 1
+ local garr = new_and_grow(itemsize, growsize, grow_by)
+ neq(NULL, ga_data(garr)) -- data should be a ptr to memory
+ eq(grow_by, ga_maxlen(garr)) -- we requested MORE than growsize, so...
+ end)
+
+ it('does not grow when nothing is requested', function()
+ local garr = new_and_grow(16, 4, 0)
+ eq(NULL, ga_data(garr))
+ eq(0, ga_maxlen(garr))
+ end)
+ end)
+
+ describe('ga_clear', function()
+ it('clears an already allocated array', function()
+ -- allocate and scramble an array
+ local garr = garray_ctype()
+ ga_init(garr, itemsize, growsize)
+ ga_grow(garr, 4)
+ ga_set_len(garr, 4)
+ ga_scramble(garr)
+
+ -- clear it and check
+ ga_clear(garr)
+ eq(NULL, ga_data(garr))
+ eq(0, ga_maxlen(garr))
+ eq(0, ga_len(garr))
+ end)
+ end)
+
+ describe('ga_append', function()
+ it('can append bytes', function()
+ -- this is the actual ga_append, the others are just emulated lua
+ -- versions
+ local garr = new_garray()
+ ga_init(garr, ffi.sizeof("uint8_t"), 1)
+ ga_append(garr, 'h')
+ ga_append(garr, 'e')
+ ga_append(garr, 'l')
+ ga_append(garr, 'l')
+ ga_append(garr, 'o')
+ ga_append(garr, 0)
+ local bytes = ga_data_as_bytes(garr)
+ eq('hello', ffi.string(bytes))
+ end)
+
+ it('can append integers', function()
+ local garr = new_garray()
+ ga_init(garr, ffi.sizeof("int"), 1)
+ local input = {
+ -20,
+ 94,
+ 867615,
+ 90927,
+ 86
+ }
+ ga_append_ints(garr, unpack(input))
+ local ints = ga_data_as_ints(garr)
+ for i = 0, #input - 1 do
+ eq(input[i + 1], ints[i])
+ end
+ end)
+
+ it('can append strings to a growing array of strings', function()
+ local garr = new_string_garray()
+ local input = {
+ "some",
+ "str",
+ "\r\n\râ—â—â—â—â—â—,,,",
+ "hmm",
+ "got it"
+ }
+ ga_append_strings(garr, unpack(input))
+ -- check that we can get the same strings out of the array
+ local strings = ga_data_as_strings(garr)
+ for i = 0, #input - 1 do
+ eq(input[i + 1], ffi.string(strings[i]))
+ end
+ end)
+ end)
+
+ describe('ga_concat', function()
+ it('concatenates the parameter to the growing byte array', function()
+ local garr = new_garray()
+ ga_init(garr, ffi.sizeof("char"), 1)
+ local str = "ohwellâ—â—"
+ local loop = 5
+ for i = 1, loop do
+ ga_concat(garr, str)
+ end
+
+ -- ga_concat does NOT append the NUL in the src string to the
+ -- destination, you have to do that manually by calling something like
+ -- ga_append(gar, '\0'). I'ts always used like that in the vim
+ -- codebase. I feel that this is a bit of an unnecesesary
+ -- micro-optimization.
+ ga_append(garr, 0)
+ local result = ffi.string(ga_data_as_bytes(garr))
+ eq(string.rep(str, loop), result)
+ end)
+ end)
+
+ function test_concat_fn(input, fn, sep)
+ local garr = new_string_garray()
+ ga_append_strings(garr, unpack(input))
+ if sep == nil then
+ eq(table.concat(input, ','), fn(garr))
+ else
+ eq(table.concat(input, sep), fn(garr, sep))
+ end
+ end
+
+ describe('ga_concat_strings', function()
+ it('returns an empty string when concatenating an empty array', function()
+ test_concat_fn({ }, ga_concat_strings)
+ end)
+
+ it('can concatenate a non-empty array', function()
+ test_concat_fn({
+ 'oh',
+ 'my',
+ 'neovim'
+ }, ga_concat_strings)
+ end)
+ end)
+
+ describe('ga_concat_strings_sep', function()
+ it('returns an empty string when concatenating an empty array', function()
+ test_concat_fn({ }, ga_concat_strings_sep, '---')
+ end)
+
+ it('can concatenate a non-empty array', function()
+ local sep = '-â—â—-'
+ test_concat_fn({
+ 'oh',
+ 'my',
+ 'neovim'
+ }, ga_concat_strings_sep, sep)
+ end)
+ end)
+
+ describe('ga_remove_duplicate_strings', function()
+ it('sorts and removes duplicate strings', function()
+ local garr = new_string_garray()
+ local input = {
+ 'ccc',
+ 'aaa',
+ 'bbb',
+ 'dddâ—â—',
+ 'aaa',
+ 'bbb',
+ 'ccc',
+ 'ccc',
+ 'dddâ—â—'
+ }
+ local sorted_dedup_input = {
+ 'aaa',
+ 'bbb',
+ 'ccc',
+ 'dddâ—â—'
+ }
+ ga_append_strings(garr, unpack(input))
+ ga_remove_duplicate_strings(garr)
+ eq(#sorted_dedup_input, ga_len(garr))
+ local strings = ga_data_as_strings(garr)
+ for i = 0, #sorted_dedup_input - 1 do
+ eq(sorted_dedup_input[i + 1], ffi.string(strings[i]))
+ end
+ end)
+ end)
+end)
diff --git a/test/unit/garray_spec.moon b/test/unit/garray_spec.moon
deleted file mode 100644
index 5d4dbe690c..0000000000
--- a/test/unit/garray_spec.moon
+++ /dev/null
@@ -1,271 +0,0 @@
-{:cimport, :internalize, :eq, :neq, :ffi, :lib, :cstr, :to_cstr, :NULL} = require 'test.unit.helpers'
-
-garray = cimport './src/nvim/garray.h'
-
--- define a basic interface to garray. We could make it a lot nicer by
--- constructing a moonscript class wrapper around garray. It could for
--- example associate ga_clear_strings to the underlying garray cdata if the
--- garray is a string array. But for now I estimate that that kind of magic
--- might make testing less "transparant" (i.e.: the interface would become
--- quite different as to how one would use it from C.
-
--- accessors
-ga_len = (garr) ->
- garr[0].ga_len
-ga_maxlen = (garr) ->
- garr[0].ga_maxlen
-ga_itemsize = (garr) ->
- garr[0].ga_itemsize
-ga_growsize = (garr) ->
- garr[0].ga_growsize
-ga_data = (garr) ->
- garr[0].ga_data
-
--- derived accessors
-ga_size = (garr) ->
- ga_len(garr) * ga_itemsize(garr)
-ga_maxsize = (garr) ->
- ga_maxlen(garr) * ga_itemsize(garr)
-ga_data_as_bytes = (garr) ->
- ffi.cast('uint8_t *', ga_data(garr))
-ga_data_as_strings = (garr) ->
- ffi.cast('char **', ga_data(garr))
-ga_data_as_ints = (garr) ->
- ffi.cast('int *', ga_data(garr))
-
--- garray manipulation
-ga_init = (garr, itemsize, growsize) ->
- garray.ga_init(garr, itemsize, growsize)
-ga_clear = (garr) ->
- garray.ga_clear(garr)
-ga_clear_strings = (garr) ->
- assert.is_true(ga_itemsize(garr) == ffi.sizeof('char *'))
- garray.ga_clear_strings(garr)
-ga_grow = (garr, n) ->
- garray.ga_grow(garr, n)
-ga_concat = (garr, str) ->
- garray.ga_concat(garr, to_cstr(str))
-ga_append = (garr, b) ->
- if type(b) == 'string'
- garray.ga_append(garr, string.byte(b))
- else
- garray.ga_append(garr, b)
-ga_concat_strings = (garr) ->
- internalize(garray.ga_concat_strings(garr))
-ga_concat_strings_sep = (garr, sep) ->
- internalize(garray.ga_concat_strings_sep(garr, to_cstr(sep)))
-ga_remove_duplicate_strings = (garr) ->
- garray.ga_remove_duplicate_strings(garr)
-
--- derived manipulators
-ga_set_len = (garr, len) ->
- assert.is_true(len <= ga_maxlen(garr))
- garr[0].ga_len = len
-ga_inc_len = (garr, by) ->
- ga_set_len(garr, ga_len(garr) + 1)
-
--- custom append functions
--- not the C ga_append, which only works for bytes
-ga_append_int = (garr, it) ->
- assert.is_true(ga_itemsize(garr) == ffi.sizeof('int'))
-
- ga_grow(garr, 1)
- data = ga_data_as_ints(garr)
- data[ga_len(garr)] = it
- ga_inc_len(garr, 1)
-ga_append_string = (garr, it) ->
- assert.is_true(ga_itemsize(garr) == ffi.sizeof('char *'))
-
- -- make a non-garbage collected string and copy the lua string into it,
- -- TODO(aktau): we should probably call xmalloc here, though as long as
- -- xmalloc is based on malloc it should work.
- mem = ffi.C.malloc(string.len(it) + 1)
- ffi.copy(mem, it)
-
- ga_grow(garr, 1)
- data = ga_data_as_strings(garr)
- data[ga_len(garr)] = mem
- ga_inc_len(garr, 1)
-ga_append_strings = (garr, ...) ->
- prevlen = ga_len(garr)
- len = select('#', ...)
- for i = 1, len
- ga_append_string(garr, select(i, ...))
- eq prevlen + len, ga_len(garr)
-ga_append_ints = (garr, ...) ->
- prevlen = ga_len(garr)
- len = select('#', ...)
- for i = 1, len
- ga_append_int(garr, select(i, ...))
- eq prevlen + len, ga_len(garr)
-
--- enhanced constructors
-garray_ctype = ffi.typeof('garray_T[1]')
-new_garray = ->
- garr = garray_ctype()
- ffi.gc(garr, ga_clear)
-new_string_garray = ->
- garr = garray_ctype()
- ga_init(garr, ffi.sizeof("char_u *"), 1)
- ffi.gc(garr, ga_clear_strings)
-
-randomByte = ->
- ffi.cast('uint8_t', math.random(0, 255))
-
--- scramble the data in a garray
-ga_scramble = (garr) ->
- size, bytes = ga_size(garr), ga_data_as_bytes(garr)
-
- for i = 0, size - 1
- bytes[i] = randomByte()
-
-describe 'garray', ->
- itemsize = 14
- growsize = 95
-
- describe 'ga_init', ->
- it 'initializes the values of the garray', ->
- garr = new_garray()
- ga_init(garr, itemsize, growsize)
- eq 0, ga_len(garr)
- eq 0, ga_maxlen(garr)
- eq growsize, ga_growsize(garr)
- eq itemsize, ga_itemsize(garr)
- eq NULL, ga_data(garr)
-
- describe 'ga_grow', ->
- new_and_grow = (itemsize, growsize, req) ->
- garr = new_garray()
- ga_init(garr, itemsize, growsize)
-
- eq 0, ga_size(garr) -- should be 0 at first
- eq NULL, ga_data(garr) -- should be NULL
- ga_grow(garr, req) -- add space for `req` items
-
- garr
-
- it 'grows by growsize items if num < growsize', ->
- itemsize = 16
- growsize = 4
- grow_by = growsize - 1
- garr = new_and_grow(itemsize, growsize, grow_by)
- neq NULL, ga_data(garr) -- data should be a ptr to memory
- eq growsize, ga_maxlen(garr) -- we requested LESS than growsize, so...
-
- it 'grows by num items if num > growsize', ->
- itemsize = 16
- growsize = 4
- grow_by = growsize + 1
- garr = new_and_grow(itemsize, growsize, grow_by)
- neq NULL, ga_data(garr) -- data should be a ptr to memory
- eq grow_by, ga_maxlen(garr) -- we requested MORE than growsize, so...
-
- it 'does not grow when nothing is requested', ->
- garr = new_and_grow(16, 4, 0)
- eq NULL, ga_data(garr)
- eq 0, ga_maxlen(garr)
-
- describe 'ga_clear', ->
- it 'clears an already allocated array', ->
- -- allocate and scramble an array
- garr = garray_ctype()
- ga_init(garr, itemsize, growsize)
- ga_grow(garr, 4)
- ga_set_len(garr, 4)
- ga_scramble(garr)
-
- -- clear it and check
- ga_clear(garr)
- eq NULL, ga_data(garr)
- eq 0, ga_maxlen(garr)
- eq 0, ga_len(garr)
-
- describe 'ga_append', ->
- it 'can append bytes', ->
- -- this is the actual ga_append, the others are just emulated lua
- -- versions
- garr = new_garray()
- ga_init(garr, ffi.sizeof("uint8_t"), 1)
- ga_append(garr, 'h')
- ga_append(garr, 'e')
- ga_append(garr, 'l')
- ga_append(garr, 'l')
- ga_append(garr, 'o')
- ga_append(garr, 0)
- bytes = ga_data_as_bytes(garr)
- eq 'hello', ffi.string(bytes)
-
- it 'can append integers', ->
- garr = new_garray()
- ga_init(garr, ffi.sizeof("int"), 1)
- input = {-20, 94, 867615, 90927, 86}
- ga_append_ints(garr, unpack(input))
-
- ints = ga_data_as_ints(garr)
- for i = 0, #input - 1
- eq input[i+1], ints[i]
-
- it 'can append strings to a growing array of strings', ->
- garr = new_string_garray()
- input = {"some", "str", "\r\n\râ—â—â—â—â—â—,,,", "hmm", "got it"}
- ga_append_strings(garr, unpack(input))
-
- -- check that we can get the same strings out of the array
- strings = ga_data_as_strings(garr)
- for i = 0, #input - 1
- eq input[i+1], ffi.string(strings[i])
-
- describe 'ga_concat', ->
- it 'concatenates the parameter to the growing byte array', ->
- garr = new_garray()
- ga_init(garr, ffi.sizeof("char"), 1)
-
- str = "ohwellâ—â—"
- loop = 5
- for i = 1, loop
- ga_concat(garr, str)
-
- -- ga_concat does NOT append the NUL in the src string to the
- -- destination, you have to do that manually by calling something like
- -- ga_append(gar, '\0'). I'ts always used like that in the vim
- -- codebase. I feel that this is a bit of an unnecesesary
- -- micro-optimization.
- ga_append(garr, 0)
-
- result = ffi.string(ga_data_as_bytes(garr))
- eq string.rep(str, loop), result
-
- test_concat_fn = (input, fn, sep) ->
- garr = new_string_garray()
- ga_append_strings(garr, unpack(input))
- if sep == nil
- eq table.concat(input, ','), fn(garr)
- else
- eq table.concat(input, sep), fn(garr, sep)
-
- describe 'ga_concat_strings', ->
- it 'returns an empty string when concatenating an empty array', ->
- test_concat_fn({}, ga_concat_strings)
- it 'can concatenate a non-empty array', ->
- test_concat_fn({'oh', 'my', 'neovim'}, ga_concat_strings)
-
- describe 'ga_concat_strings_sep', ->
- it 'returns an empty string when concatenating an empty array', ->
- test_concat_fn({}, ga_concat_strings_sep, '---')
- it 'can concatenate a non-empty array', ->
- sep = '-â—â—-'
- test_concat_fn({'oh', 'my', 'neovim'}, ga_concat_strings_sep, sep)
-
- describe 'ga_remove_duplicate_strings', ->
- it 'sorts and removes duplicate strings', ->
- garr = new_string_garray()
- input = {'ccc', 'aaa', 'bbb', 'dddâ—â—', 'aaa', 'bbb', 'ccc', 'ccc', 'dddâ—â—'}
- sorted_dedup_input = {'aaa', 'bbb', 'ccc', 'dddâ—â—'}
-
- ga_append_strings(garr, unpack(input))
- ga_remove_duplicate_strings(garr)
- eq #sorted_dedup_input, ga_len(garr)
-
- strings = ga_data_as_strings(garr)
- for i = 0, #sorted_dedup_input - 1
- eq sorted_dedup_input[i+1], ffi.string(strings[i])
diff --git a/test/unit/helpers.lua b/test/unit/helpers.lua
new file mode 100644
index 0000000000..5ad0766d61
--- /dev/null
+++ b/test/unit/helpers.lua
@@ -0,0 +1,155 @@
+local ffi = require('ffi')
+local lpeg = require('lpeg')
+local formatc = require('test.unit.formatc')
+local Set = require('test.unit.set')
+local Preprocess = require('test.unit.preprocess')
+local Paths = require('test.config.paths')
+
+-- add some standard header locations
+for i, p in ipairs(Paths.include_paths) do
+ Preprocess.add_to_include_path(p)
+end
+
+-- load neovim shared library
+local libnvim = ffi.load(Paths.test_libnvim_path)
+
+function trim(s)
+ return s:match('^%s*(.*%S)') or ''
+end
+
+-- a Set that keeps around the lines we've already seen
+if cdefs == nil then
+ cdefs = Set:new()
+end
+
+if imported == nil then
+ imported = Set:new()
+end
+
+-- some things are just too complex for the LuaJIT C parser to digest. We
+-- usually don't need them anyway.
+function filter_complex_blocks(body)
+ local result = {}
+
+ for line in body:gmatch("[^\r\n]+") do
+ if not (string.find(line, "(^)", 1, true) ~= nil or
+ string.find(line, "_ISwupper", 1, true)) then
+ result[#result + 1] = line
+ end
+ end
+
+ return table.concat(result, "\n")
+end
+
+-- use this helper to import C files, you can pass multiple paths at once,
+-- this helper will return the C namespace of the nvim library.
+-- cimport = (path) ->
+function cimport(...)
+ local paths = {}
+ local args = {...}
+
+ -- filter out paths we've already imported
+ for i = 1, #args do
+ local path = args[i]
+ if not imported:contains(path) then
+ paths[#paths + 1] = path
+ end
+ end
+
+ for i = 1, #paths do
+ imported:add(paths[i])
+ end
+
+ if #paths == 0 then
+ return libnvim
+ end
+
+ -- preprocess the header
+ local stream = Preprocess.preprocess_stream(unpack(paths))
+ local body = stream:read("*a")
+ stream:close()
+
+ -- format it (so that the lines are "unique" statements), also filter out
+ -- Objective-C blocks
+ body = formatc(body)
+ body = filter_complex_blocks(body)
+
+ -- add the formatted lines to a set
+ local new_cdefs = Set:new()
+ for line in body:gmatch("[^\r\n]+") do
+ new_cdefs:add(trim(line))
+ end
+
+ -- subtract the lines we've already imported from the new lines, then add
+ -- the new unique lines to the old lines (so they won't be imported again)
+ new_cdefs:diff(cdefs)
+ cdefs:union(new_cdefs)
+
+ if new_cdefs:size() == 0 then
+ -- if there's no new lines, just return
+ return libnvim
+ end
+
+ -- request a sorted version of the new lines (same relative order as the
+ -- original preprocessed file) and feed that to the LuaJIT ffi
+ local new_lines = new_cdefs:to_table()
+ ffi.cdef(table.concat(new_lines, "\n"))
+
+ return libnvim
+end
+
+function cppimport(path)
+ return cimport(Paths.test_include_path .. '/' .. path)
+end
+
+cimport('./src/nvim/types.h')
+
+-- take a pointer to a C-allocated string and return an interned
+-- version while also freeing the memory
+function internalize(cdata, len)
+ ffi.gc(cdata, ffi.C.free)
+ return ffi.string(cdata, len)
+end
+
+local cstr = ffi.typeof('char[?]')
+function to_cstr(string)
+ return cstr((string.len(string)) + 1, string)
+end
+
+-- initialize some global variables, this is still necessary to unit test
+-- functions that rely on global state.
+function vim_init()
+ if vim_init_called ~= nil then
+ return
+ end
+ -- import os_unix.h for mch_early_init(), which initializes some globals
+ local os = cimport('./src/nvim/os_unix.h')
+ os.mch_early_init()
+ vim_init_called = true
+end
+
+-- C constants.
+local NULL = ffi.cast('void*', 0)
+
+local OK = 1
+local FAIL = 0
+
+return {
+ cimport = cimport,
+ cppimport = cppimport,
+ internalize = internalize,
+ eq = function(expected, actual)
+ return assert.are.same(expected, actual)
+ end,
+ neq = function(expected, actual)
+ return assert.are_not.same(expected, actual)
+ end,
+ ffi = ffi,
+ lib = libnvim,
+ cstr = cstr,
+ to_cstr = to_cstr,
+ vim_init = vim_init,
+ NULL = NULL,
+ OK = OK,
+ FAIL = FAIL
+}
diff --git a/test/unit/helpers.moon b/test/unit/helpers.moon
deleted file mode 100644
index f533b9a1c6..0000000000
--- a/test/unit/helpers.moon
+++ /dev/null
@@ -1,131 +0,0 @@
-ffi = require 'ffi'
-lpeg = require 'lpeg'
-formatc = require 'test.unit.formatc'
-Set = require 'test.unit.set'
-Preprocess = require 'test.unit.preprocess'
-Paths = require 'test.config.paths'
-
--- add some standard header locations
-for i,p in ipairs(Paths.include_paths)
- Preprocess.add_to_include_path(p)
-
--- load neovim shared library
-libnvim = ffi.load Paths.test_libnvim_path
-
-trim = (s) ->
- s\match'^%s*(.*%S)' or ''
-
--- a Set that keeps around the lines we've already seen
-export cdefs
-if cdefs == nil
- cdefs = Set!
-
-export imported
-if imported == nil
- imported = Set!
-
--- some things are just too complex for the LuaJIT C parser to digest. We
--- usually don't need them anyway.
-filter_complex_blocks = (body) ->
- result = {}
- for line in body\gmatch("[^\r\n]+")
- -- remove all lines that contain Objective-C block syntax, the LuaJIT ffi
- -- doesn't understand it.
- if string.find(line, "(^)", 1, true) ~= nil
- continue
- if string.find(line, "_ISwupper", 1, true) ~= nil
- continue
- result[#result + 1] = line
- table.concat(result, "\n")
-
--- use this helper to import C files, you can pass multiple paths at once,
--- this helper will return the C namespace of the nvim library.
--- cimport = (path) ->
-cimport = (...) ->
- -- filter out paths we've already imported
- paths = [path for path in *{...} when not imported\contains(path)]
- for path in *paths
- imported\add(path)
-
- if #paths == 0
- return libnvim
-
- -- preprocess the header
- stream = Preprocess.preprocess_stream(unpack(paths))
- body = stream\read("*a")
- stream\close!
-
- -- format it (so that the lines are "unique" statements), also filter out
- -- Objective-C blocks
- body = formatc(body)
- body = filter_complex_blocks(body)
-
- -- add the formatted lines to a set
- new_cdefs = Set!
- for line in body\gmatch("[^\r\n]+")
- new_cdefs\add(trim(line))
-
- -- subtract the lines we've already imported from the new lines, then add
- -- the new unique lines to the old lines (so they won't be imported again)
- new_cdefs\diff(cdefs)
- cdefs\union(new_cdefs)
-
- if new_cdefs\size! == 0
- -- if there's no new lines, just return
- return libnvim
-
- -- request a sorted version of the new lines (same relative order as the
- -- original preprocessed file) and feed that to the LuaJIT ffi
- new_lines = new_cdefs\to_table!
- ffi.cdef(table.concat(new_lines, "\n"))
-
- return libnvim
-
-cppimport = (path) ->
- return cimport Paths.test_include_path .. '/' .. path
-
-cimport './src/nvim/types.h'
-
--- take a pointer to a C-allocated string and return an interned
--- version while also freeing the memory
-internalize = (cdata, len) ->
- ffi.gc cdata, ffi.C.free
- return ffi.string cdata, len
-
-cstr = ffi.typeof 'char[?]'
-
-to_cstr = (string) ->
- cstr (string.len string) + 1, string
-
-export vim_init_called
--- initialize some global variables, this is still necessary to unit test
--- functions that rely on global state.
-vim_init = ->
- if vim_init_called ~= nil
- return
- -- import os_unix.h for mch_early_init(), which initializes some globals
- os = cimport './src/nvim/os_unix.h'
- os.mch_early_init!
- vim_init_called = true
-
--- C constants.
-NULL = ffi.cast 'void*', 0
-
-OK = 1
-FAIL = 0
-
-return {
- cimport: cimport
- cppimport: cppimport
- internalize: internalize
- eq: (expected, actual) -> assert.are.same expected, actual
- neq: (expected, actual) -> assert.are_not.same expected, actual
- ffi: ffi
- lib: libnvim
- cstr: cstr
- to_cstr: to_cstr
- vim_init: vim_init
- NULL: NULL
- OK: OK
- FAIL: FAIL
-}
diff --git a/test/unit/os/env_spec.lua b/test/unit/os/env_spec.lua
new file mode 100644
index 0000000000..d04754f5ee
--- /dev/null
+++ b/test/unit/os/env_spec.lua
@@ -0,0 +1,130 @@
+local helpers = require('test.unit.helpers')
+
+local cimport = helpers.cimport
+local internalize = helpers.internalize
+local eq = helpers.eq
+local ffi = helpers.ffi
+local lib = helpers.lib
+local cstr = helpers.cstr
+local to_cstr = helpers.to_cstr
+local NULL = helpers.NULL
+
+require('lfs')
+
+local env = cimport('./src/nvim/os/os.h')
+
+describe('env function', function()
+ function os_setenv(name, value, override)
+ return env.os_setenv((to_cstr(name)), (to_cstr(value)), override)
+ end
+
+ function os_getenv(name)
+ local rval = env.os_getenv((to_cstr(name)))
+ if rval ~= NULL then
+ return ffi.string(rval)
+ else
+ return NULL
+ end
+ end
+
+ describe('os_setenv', function()
+ local OK = 0
+
+ it('sets an env variable and returns OK', function()
+ local name = 'NEOVIM_UNIT_TEST_SETENV_1N'
+ local value = 'NEOVIM_UNIT_TEST_SETENV_1V'
+ eq(nil, os.getenv(name))
+ eq(OK, (os_setenv(name, value, 1)))
+ eq(value, os.getenv(name))
+ end)
+
+ it("dosn't overwrite an env variable if overwrite is 0", function()
+ local name = 'NEOVIM_UNIT_TEST_SETENV_2N'
+ local value = 'NEOVIM_UNIT_TEST_SETENV_2V'
+ local value_updated = 'NEOVIM_UNIT_TEST_SETENV_2V_UPDATED'
+ eq(OK, (os_setenv(name, value, 0)))
+ eq(value, os.getenv(name))
+ eq(OK, (os_setenv(name, value_updated, 0)))
+ eq(value, os.getenv(name))
+ end)
+ end)
+
+ describe('os_getenv', function()
+ it('reads an env variable', function()
+ local name = 'NEOVIM_UNIT_TEST_GETENV_1N'
+ local value = 'NEOVIM_UNIT_TEST_GETENV_1V'
+ eq(NULL, os_getenv(name))
+ -- need to use os_setenv, because lua dosn't have a setenv function
+ os_setenv(name, value, 1)
+ eq(value, os_getenv(name))
+ end)
+
+ it('returns NULL if the env variable is not found', function()
+ local name = 'NEOVIM_UNIT_TEST_GETENV_NOTFOUND'
+ return eq(NULL, os_getenv(name))
+ end)
+ end)
+
+ describe('os_getenvname_at_index', function()
+ it('returns names of environment variables', function()
+ local test_name = 'NEOVIM_UNIT_TEST_GETENVNAME_AT_INDEX_1N'
+ local test_value = 'NEOVIM_UNIT_TEST_GETENVNAME_AT_INDEX_1V'
+ os_setenv(test_name, test_value, 1)
+ local i = 0
+ local names = { }
+ local found_name = false
+ local name = env.os_getenvname_at_index(i)
+ while name ~= NULL do
+ table.insert(names, ffi.string(name))
+ if (ffi.string(name)) == test_name then
+ found_name = true
+ end
+ i = i + 1
+ name = env.os_getenvname_at_index(i)
+ end
+ eq(true, (table.getn(names)) > 0)
+ eq(true, found_name)
+ end)
+
+ it('returns NULL if the index is out of bounds', function()
+ local huge = ffi.new('size_t', 10000)
+ local maxuint32 = ffi.new('size_t', 4294967295)
+ eq(NULL, env.os_getenvname_at_index(huge))
+ eq(NULL, env.os_getenvname_at_index(maxuint32))
+
+ if ffi.abi('64bit') then
+ -- couldn't use a bigger number because it gets converted to
+ -- double somewere, should be big enough anyway
+ -- maxuint64 = ffi.new 'size_t', 18446744073709551615
+ local maxuint64 = ffi.new('size_t', 18446744073709000000)
+ eq(NULL, env.os_getenvname_at_index(maxuint64))
+ end
+ end)
+ end)
+
+ describe('os_get_pid', function()
+ it('returns the process ID', function()
+ local stat_file = io.open('/proc/self/stat')
+ if stat_file then
+ local stat_str = stat_file:read('*l')
+ stat_file:close()
+ local pid = tonumber((stat_str:match('%d+')))
+ eq(pid, tonumber(env.os_get_pid()))
+ else
+ -- /proc is not available on all systems, test if pid is nonzero.
+ eq(true, (env.os_get_pid() > 0))
+ end
+ end)
+ end)
+
+ describe('os_get_hostname', function()
+ it('returns the hostname', function()
+ local handle = io.popen('hostname')
+ local hostname = handle:read('*l')
+ handle:close()
+ local hostname_buf = cstr(255, '')
+ env.os_get_hostname(hostname_buf, 255)
+ eq(hostname, (ffi.string(hostname_buf)))
+ end)
+ end)
+end)
diff --git a/test/unit/os/env_spec.moon b/test/unit/os/env_spec.moon
deleted file mode 100644
index ab5b940a58..0000000000
--- a/test/unit/os/env_spec.moon
+++ /dev/null
@@ -1,106 +0,0 @@
-{:cimport, :internalize, :eq, :ffi, :lib, :cstr, :to_cstr, :NULL} = require 'test.unit.helpers'
-require 'lfs'
-
-env = cimport './src/nvim/os/os.h'
-
-describe 'env function', ->
-
- os_setenv = (name, value, override) ->
- env.os_setenv (to_cstr name), (to_cstr value), override
-
- os_getenv = (name) ->
- rval = env.os_getenv (to_cstr name)
- if rval != NULL
- ffi.string rval
- else
- NULL
-
- describe 'os_setenv', ->
-
- OK = 0
-
- it 'sets an env variable and returns OK', ->
- name = 'NEOVIM_UNIT_TEST_SETENV_1N'
- value = 'NEOVIM_UNIT_TEST_SETENV_1V'
- eq nil, os.getenv name
- eq OK, (os_setenv name, value, 1)
- eq value, os.getenv name
-
- it "dosn't overwrite an env variable if overwrite is 0", ->
- name = 'NEOVIM_UNIT_TEST_SETENV_2N'
- value = 'NEOVIM_UNIT_TEST_SETENV_2V'
- value_updated = 'NEOVIM_UNIT_TEST_SETENV_2V_UPDATED'
- eq OK, (os_setenv name, value, 0)
- eq value, os.getenv name
- eq OK, (os_setenv name, value_updated, 0)
- eq value, os.getenv name
-
- describe 'os_getenv', ->
-
- it 'reads an env variable', ->
- name = 'NEOVIM_UNIT_TEST_GETENV_1N'
- value = 'NEOVIM_UNIT_TEST_GETENV_1V'
- eq NULL, os_getenv name
- -- need to use os_setenv, because lua dosn't have a setenv function
- os_setenv name, value, 1
- eq value, os_getenv name
-
- it 'returns NULL if the env variable is not found', ->
- name = 'NEOVIM_UNIT_TEST_GETENV_NOTFOUND'
- eq NULL, os_getenv name
-
- describe 'os_getenvname_at_index', ->
-
- it 'returns names of environment variables', ->
- test_name = 'NEOVIM_UNIT_TEST_GETENVNAME_AT_INDEX_1N'
- test_value = 'NEOVIM_UNIT_TEST_GETENVNAME_AT_INDEX_1V'
- os_setenv test_name, test_value, 1
- i = 0
- names = {}
- found_name = false
- name = env.os_getenvname_at_index i
- while name != NULL
- table.insert names, ffi.string name
- if (ffi.string name) == test_name
- found_name = true
- i += 1
- name = env.os_getenvname_at_index i
-
- eq true, (table.getn names) > 0
- eq true, found_name
-
- it 'returns NULL if the index is out of bounds', ->
- huge = ffi.new 'size_t', 10000
- maxuint32 = ffi.new 'size_t', 4294967295
- eq NULL, env.os_getenvname_at_index huge
- eq NULL, env.os_getenvname_at_index maxuint32
- if ffi.abi '64bit'
- -- couldn't use a bigger number because it gets converted to
- -- double somewere, should be big enough anyway
- -- maxuint64 = ffi.new 'size_t', 18446744073709551615
- maxuint64 = ffi.new 'size_t', 18446744073709000000
- eq NULL, env.os_getenvname_at_index maxuint64
-
- describe 'os_get_pid', ->
-
- it 'returns the process ID', ->
- stat_file = io.open '/proc/self/stat'
- if stat_file
- stat_str = stat_file\read '*l'
- stat_file\close!
- pid = tonumber (stat_str\match '%d+')
- eq pid, tonumber env.os_get_pid!
- else
- -- /proc is not available on all systems, test if pid is nonzero.
- eq true, (env.os_get_pid! > 0)
-
- describe 'os_get_hostname', ->
-
- it 'returns the hostname', ->
- handle = io.popen 'hostname'
- hostname = handle\read '*l'
- handle\close!
- hostname_buf = cstr 255, ''
- env.os_get_hostname hostname_buf, 255
- eq hostname, (ffi.string hostname_buf)
-
diff --git a/test/unit/os/fs_spec.lua b/test/unit/os/fs_spec.lua
new file mode 100644
index 0000000000..9233ce02c7
--- /dev/null
+++ b/test/unit/os/fs_spec.lua
@@ -0,0 +1,704 @@
+local helpers = require('test.unit.helpers')
+
+local cimport = helpers.cimport
+local cppimport = helpers.cppimport
+local internalize = helpers.internalize
+local eq = helpers.eq
+local neq = helpers.neq
+local ffi = helpers.ffi
+local lib = helpers.lib
+local cstr = helpers.cstr
+local to_cstr = helpers.to_cstr
+local OK = helpers.OK
+local FAIL = helpers.FAIL
+
+require('lfs')
+require('bit')
+
+local fs = cimport('./src/nvim/os/os.h')
+cppimport('sys/stat.h')
+cppimport('sys/fcntl.h')
+cppimport('sys/errno.h')
+
+function assert_file_exists(filepath)
+ eq(false, nil == (lfs.attributes(filepath, 'r')))
+end
+
+function assert_file_does_not_exist(filepath)
+ eq(true, nil == (lfs.attributes(filepath, 'r')))
+end
+
+describe('fs function', function()
+
+ setup(function()
+ lfs.mkdir('unit-test-directory');
+ io.open('unit-test-directory/test.file', 'w').close()
+ io.open('unit-test-directory/test_2.file', 'w').close()
+ lfs.link('test.file', 'unit-test-directory/test_link.file', true)
+ -- Since the tests are executed, they are called by an executable. We use
+ -- that executable for several asserts.
+ absolute_executable = arg[0]
+ -- Split absolute_executable into a directory and the actual file name for
+ -- later usage.
+ directory, executable_name = string.match(absolute_executable, '^(.*)/(.*)$')
+ end)
+
+ teardown(function()
+ os.remove('unit-test-directory/test.file')
+ os.remove('unit-test-directory/test_2.file')
+ os.remove('unit-test-directory/test_link.file')
+ os.remove('unit-test-directory/test_hlink.file')
+ lfs.rmdir('unit-test-directory')
+ end)
+
+ describe('os_dirname', function()
+ function os_dirname(buf, len)
+ return fs.os_dirname(buf, len)
+ end
+
+ before_each(function()
+ len = (string.len(lfs.currentdir())) + 1
+ buf = cstr(len, '')
+ end)
+
+ it('returns OK and writes current directory into the buffer if it is large\n enough', function()
+ eq(OK, (os_dirname(buf, len)))
+ eq(lfs.currentdir(), (ffi.string(buf)))
+ end)
+
+ -- What kind of other failing cases are possible?
+ it('returns FAIL if the buffer is too small', function()
+ local buf = cstr((len - 1), '')
+ eq(FAIL, (os_dirname(buf, (len - 1))))
+ end)
+ end)
+
+ function os_isdir(name)
+ return fs.os_isdir((to_cstr(name)))
+ end
+
+ describe('os_isdir', function()
+ it('returns false if an empty string is given', function()
+ eq(false, (os_isdir('')))
+ end)
+
+ it('returns false if a nonexisting directory is given', function()
+ eq(false, (os_isdir('non-existing-directory')))
+ end)
+
+ it('returns false if a nonexisting absolute directory is given', function()
+ eq(false, (os_isdir('/non-existing-directory')))
+ end)
+
+ it('returns false if an existing file is given', function()
+ eq(false, (os_isdir('unit-test-directory/test.file')))
+ end)
+
+ it('returns true if the current directory is given', function()
+ eq(true, (os_isdir('.')))
+ end)
+
+ it('returns true if the parent directory is given', function()
+ eq(true, (os_isdir('..')))
+ end)
+
+ it('returns true if an arbitrary directory is given', function()
+ eq(true, (os_isdir('unit-test-directory')))
+ end)
+
+ it('returns true if an absolute directory is given', function()
+ eq(true, (os_isdir(directory)))
+ end)
+ end)
+
+ describe('os_can_exe', function()
+ function os_can_exe(name)
+ return fs.os_can_exe((to_cstr(name)))
+ end
+
+ it('returns false when given a directory', function()
+ eq(false, (os_can_exe('./unit-test-directory')))
+ end)
+
+ it('returns false when given a regular file without executable bit set', function()
+ eq(false, (os_can_exe('unit-test-directory/test.file')))
+ end)
+
+ it('returns false when the given file does not exists', function()
+ eq(false, (os_can_exe('does-not-exist.file')))
+ end)
+
+ it('returns true when given an executable inside $PATH', function()
+ eq(true, (os_can_exe(executable_name)))
+ end)
+
+ it('returns true when given an executable relative to the current dir', function()
+ local old_dir = lfs.currentdir()
+ lfs.chdir(directory)
+ local relative_executable = './' .. executable_name
+ eq(true, (os_can_exe(relative_executable)))
+ lfs.chdir(old_dir)
+ end)
+ end)
+
+ describe('file permissions', function()
+ function os_getperm(filename)
+ local perm = fs.os_getperm((to_cstr(filename)))
+ return tonumber(perm)
+ end
+
+ function os_setperm(filename, perm)
+ return fs.os_setperm((to_cstr(filename)), perm)
+ end
+
+ function os_fchown(filename, user_id, group_id)
+ local fd = ffi.C.open(filename, 0)
+ local res = fs.os_fchown(fd, user_id, group_id)
+ ffi.C.close(fd)
+ return res
+ end
+
+ function os_file_is_readonly(filename)
+ return fs.os_file_is_readonly((to_cstr(filename)))
+ end
+
+ function os_file_is_writable(filename)
+ return fs.os_file_is_writable((to_cstr(filename)))
+ end
+
+ function bit_set(number, check_bit)
+ return 0 ~= (bit.band(number, check_bit))
+ end
+
+ function set_bit(number, to_set)
+ return bit.bor(number, to_set)
+ end
+
+ function unset_bit(number, to_unset)
+ return bit.band(number, (bit.bnot(to_unset)))
+ end
+
+ describe('os_getperm', function()
+ it('returns -1 when the given file does not exist', function()
+ eq(-1, (os_getperm('non-existing-file')))
+ end)
+
+ it('returns a perm > 0 when given an existing file', function()
+ assert.is_true((os_getperm('unit-test-directory')) > 0)
+ end)
+
+ it('returns S_IRUSR when the file is readable', function()
+ local perm = os_getperm('unit-test-directory')
+ assert.is_true((bit_set(perm, ffi.C.kS_IRUSR)))
+ end)
+ end)
+
+ describe('os_setperm', function()
+ it('can set and unset the executable bit of a file', function()
+ local perm = os_getperm('unit-test-directory/test.file')
+ perm = unset_bit(perm, ffi.C.kS_IXUSR)
+ eq(OK, (os_setperm('unit-test-directory/test.file', perm)))
+ perm = os_getperm('unit-test-directory/test.file')
+ assert.is_false((bit_set(perm, ffi.C.kS_IXUSR)))
+ perm = set_bit(perm, ffi.C.kS_IXUSR)
+ eq(OK, os_setperm('unit-test-directory/test.file', perm))
+ perm = os_getperm('unit-test-directory/test.file')
+ assert.is_true((bit_set(perm, ffi.C.kS_IXUSR)))
+ end)
+
+ it('fails if given file does not exist', function()
+ local perm = ffi.C.kS_IXUSR
+ eq(FAIL, (os_setperm('non-existing-file', perm)))
+ end)
+ end)
+
+ describe('os_fchown', function()
+ local filename = 'unit-test-directory/test.file'
+ it('does not change owner and group if respective IDs are equal to -1', function()
+ local uid = lfs.attributes(filename, 'uid')
+ local gid = lfs.attributes(filename, 'gid')
+ eq(0, os_fchown(filename, -1, -1))
+ eq(uid, lfs.attributes(filename, 'uid'))
+ return eq(gid, lfs.attributes(filename, 'gid'))
+ end)
+
+ it('owner of a file may change the group of the file to any group of which that owner is a member', function()
+ -- Some systems may not have `id` utility.
+ if (os.execute('id -G &> /dev/null') == 0) then
+ local file_gid = lfs.attributes(filename, 'gid')
+
+ -- Gets ID of any group of which current user is a member except the
+ -- group that owns the file.
+ local id_fd = io.popen('id -G')
+ local new_gid = id_fd:read('*n')
+ if (new_gid == file_gid) then
+ new_gid = id_fd:read('*n')
+ end
+ id_fd:close()
+
+ -- User can be a member of only one group.
+ -- In that case we can not perform this test.
+ if new_gid then
+ eq(0, (os_fchown(filename, -1, new_gid)))
+ eq(new_gid, (lfs.attributes(filename, 'gid')))
+ end
+ end
+ end)
+
+ it('returns nonzero if process has not enough permissions', function()
+ -- On Windows `os_fchown` always returns 0
+ -- because `uv_fs_chown` is no-op on this platform.
+ if (ffi.os ~= 'Windows' and ffi.C.geteuid() ~= 0) then
+ -- chown to root
+ neq(0, os_fchown(filename, 0, 0))
+ end
+ end)
+ end)
+
+ describe('os_file_is_readonly', function()
+ it('returns true if the file is readonly', function()
+ local perm = os_getperm('unit-test-directory/test.file')
+ local perm_orig = perm
+ perm = unset_bit(perm, ffi.C.kS_IWUSR)
+ perm = unset_bit(perm, ffi.C.kS_IWGRP)
+ perm = unset_bit(perm, ffi.C.kS_IWOTH)
+ eq(OK, (os_setperm('unit-test-directory/test.file', perm)))
+ eq(true, os_file_is_readonly('unit-test-directory/test.file'))
+ eq(OK, (os_setperm('unit-test-directory/test.file', perm_orig)))
+ end)
+
+ it('returns false if the file is writable', function()
+ eq(false, os_file_is_readonly('unit-test-directory/test.file'))
+ end)
+ end)
+
+ describe('os_file_is_writable', function()
+ it('returns 0 if the file is readonly', function()
+ local perm = os_getperm('unit-test-directory/test.file')
+ local perm_orig = perm
+ perm = unset_bit(perm, ffi.C.kS_IWUSR)
+ perm = unset_bit(perm, ffi.C.kS_IWGRP)
+ perm = unset_bit(perm, ffi.C.kS_IWOTH)
+ eq(OK, (os_setperm('unit-test-directory/test.file', perm)))
+ eq(0, os_file_is_writable('unit-test-directory/test.file'))
+ eq(OK, (os_setperm('unit-test-directory/test.file', perm_orig)))
+ end)
+
+ it('returns 1 if the file is writable', function()
+ eq(1, os_file_is_writable('unit-test-directory/test.file'))
+ end)
+
+ it('returns 2 when given a folder with rights to write into', function()
+ eq(2, os_file_is_writable('unit-test-directory'))
+ end)
+ end)
+ end)
+
+ describe('file operations', function()
+ function os_file_exists(filename)
+ return fs.os_file_exists((to_cstr(filename)))
+ end
+
+ function os_rename(path, new_path)
+ return fs.os_rename((to_cstr(path)), (to_cstr(new_path)))
+ end
+
+ function os_remove(path)
+ return fs.os_remove((to_cstr(path)))
+ end
+
+ function os_open(path, flags, mode)
+ return fs.os_open((to_cstr(path)), flags, mode)
+ end
+
+ describe('os_file_exists', function()
+ it('returns false when given a non-existing file', function()
+ eq(false, (os_file_exists('non-existing-file')))
+ end)
+
+ it('returns true when given an existing file', function()
+ eq(true, (os_file_exists('unit-test-directory/test.file')))
+ end)
+ end)
+
+ describe('os_rename', function()
+ local test = 'unit-test-directory/test.file'
+ local not_exist = 'unit-test-directory/not_exist.file'
+
+ it('can rename file if destination file does not exist', function()
+ eq(OK, (os_rename(test, not_exist)))
+ eq(false, (os_file_exists(test)))
+ eq(true, (os_file_exists(not_exist)))
+ eq(OK, (os_rename(not_exist, test))) -- restore test file
+ end)
+
+ it('fail if source file does not exist', function()
+ eq(FAIL, (os_rename(not_exist, test)))
+ end)
+
+ it('can overwrite destination file if it exists', function()
+ local other = 'unit-test-directory/other.file'
+ local file = io.open(other, 'w')
+ file:write('other')
+ file:flush()
+ file:close()
+
+ eq(OK, (os_rename(other, test)))
+ eq(false, (os_file_exists(other)))
+ eq(true, (os_file_exists(test)))
+ file = io.open(test, 'r')
+ eq('other', (file:read('*all')))
+ file:close()
+ end)
+ end)
+
+ describe('os_remove', function()
+ before_each(function()
+ io.open('unit-test-directory/test_remove.file', 'w').close()
+ end)
+
+ after_each(function()
+ os.remove('unit-test-directory/test_remove.file')
+ end)
+
+ it('returns non-zero when given a non-existing file', function()
+ neq(0, (os_remove('non-existing-file')))
+ end)
+
+ it('removes the given file and returns 0', function()
+ local f = 'unit-test-directory/test_remove.file'
+ assert_file_exists(f)
+ eq(0, (os_remove(f)))
+ assert_file_does_not_exist(f)
+ end)
+ end)
+
+ describe('os_open', function()
+ before_each(function()
+ io.open('unit-test-directory/test_existing.file', 'w').close()
+ end)
+
+ after_each(function()
+ os.remove('unit-test-directory/test_existing.file')
+ os.remove('test_new_file')
+ end)
+
+ local new_file = 'test_new_file'
+ local existing_file = 'unit-test-directory/test_existing.file'
+
+ it('returns -ENOENT for O_RDWR on a non-existing file', function()
+ eq(-ffi.C.kENOENT, (os_open('non-existing-file', ffi.C.kO_RDWR, 0)))
+ end)
+
+ it('returns non-negative for O_CREAT on a non-existing file', function()
+ assert_file_does_not_exist(new_file)
+ assert.is_true(0 <= (os_open(new_file, ffi.C.kO_CREAT, 0)))
+ end)
+
+ it('returns non-negative for O_CREAT on a existing file', function()
+ assert_file_exists(existing_file)
+ assert.is_true(0 <= (os_open(existing_file, ffi.C.kO_CREAT, 0)))
+ end)
+
+ it('returns -EEXIST for O_CREAT|O_EXCL on a existing file', function()
+ assert_file_exists(existing_file)
+ eq(-ffi.C.kEEXIST, (os_open(existing_file, (bit.bor(ffi.C.kO_CREAT, ffi.C.kO_EXCL)), 0)))
+ end)
+
+ it('sets `rwx` permissions for O_CREAT 700', function()
+ assert_file_does_not_exist(new_file)
+ --create the file
+ os_open(new_file, ffi.C.kO_CREAT, tonumber("700", 8))
+ --verify permissions
+ eq('rwx------', lfs.attributes(new_file)['permissions'])
+ end)
+
+ it('sets `rw` permissions for O_CREAT 600', function()
+ assert_file_does_not_exist(new_file)
+ --create the file
+ os_open(new_file, ffi.C.kO_CREAT, tonumber("600", 8))
+ --verify permissions
+ eq('rw-------', lfs.attributes(new_file)['permissions'])
+ end)
+
+ it('returns a non-negative file descriptor for an existing file', function()
+ assert.is_true(0 <= (os_open(existing_file, ffi.C.kO_RDWR, 0)))
+ end)
+ end)
+ end)
+
+ describe('folder operations', function()
+ function os_mkdir(path, mode)
+ return fs.os_mkdir(to_cstr(path), mode)
+ end
+
+ function os_rmdir(path)
+ return fs.os_rmdir(to_cstr(path))
+ end
+
+ describe('os_mkdir', function()
+ it('returns non-zero when given an already existing directory', function()
+ local mode = ffi.C.kS_IRUSR + ffi.C.kS_IWUSR + ffi.C.kS_IXUSR
+ neq(0, (os_mkdir('unit-test-directory', mode)))
+ end)
+
+ it('creates a directory and returns 0', function()
+ local mode = ffi.C.kS_IRUSR + ffi.C.kS_IWUSR + ffi.C.kS_IXUSR
+ eq(false, (os_isdir('unit-test-directory/new-dir')))
+ eq(0, (os_mkdir('unit-test-directory/new-dir', mode)))
+ eq(true, (os_isdir('unit-test-directory/new-dir')))
+ lfs.rmdir('unit-test-directory/new-dir')
+ end)
+ end)
+
+ describe('os_rmdir', function()
+ it('returns non_zero when given a non-existing directory', function()
+ neq(0, (os_rmdir('non-existing-directory')))
+ end)
+
+ it('removes the given directory and returns 0', function()
+ lfs.mkdir('unit-test-directory/new-dir')
+ eq(0, (os_rmdir('unit-test-directory/new-dir', mode)))
+ eq(false, (os_isdir('unit-test-directory/new-dir')))
+ end)
+ end)
+ end)
+
+ describe('FileInfo', function()
+ function file_info_new()
+ local file_info = ffi.new('FileInfo[1]')
+ file_info[0].stat.st_ino = 0
+ file_info[0].stat.st_dev = 0
+ return file_info
+ end
+
+ function is_file_info_filled(file_info)
+ return file_info[0].stat.st_ino > 0 and file_info[0].stat.st_dev > 0
+ end
+
+ function file_id_new()
+ local file_info = ffi.new('FileID[1]')
+ file_info[0].inode = 0
+ file_info[0].device_id = 0
+ return file_info
+ end
+
+ describe('os_fileinfo', function()
+ it('returns false if given a non-existing file', function()
+ local file_info = file_info_new()
+ assert.is_false((fs.os_fileinfo('/non-existent', file_info)))
+ end)
+
+ it('returns true if given an existing file and fills file_info', function()
+ local file_info = file_info_new()
+ local path = 'unit-test-directory/test.file'
+ assert.is_true((fs.os_fileinfo(path, file_info)))
+ assert.is_true((is_file_info_filled(file_info)))
+ end)
+
+ it('returns the file info of the linked file, not the link', function()
+ local file_info = file_info_new()
+ local path = 'unit-test-directory/test_link.file'
+ assert.is_true((fs.os_fileinfo(path, file_info)))
+ assert.is_true((is_file_info_filled(file_info)))
+ local mode = tonumber(file_info[0].stat.st_mode)
+ return eq(ffi.C.kS_IFREG, (bit.band(mode, ffi.C.kS_IFMT)))
+ end)
+ end)
+
+ describe('os_fileinfo_link', function()
+ it('returns false if given a non-existing file', function()
+ local file_info = file_info_new()
+ assert.is_false((fs.os_fileinfo_link('/non-existent', file_info)))
+ end)
+
+ it('returns true if given an existing file and fills file_info', function()
+ local file_info = file_info_new()
+ local path = 'unit-test-directory/test.file'
+ assert.is_true((fs.os_fileinfo_link(path, file_info)))
+ assert.is_true((is_file_info_filled(file_info)))
+ end)
+
+ it('returns the file info of the link, not the linked file', function()
+ local file_info = file_info_new()
+ local path = 'unit-test-directory/test_link.file'
+ assert.is_true((fs.os_fileinfo_link(path, file_info)))
+ assert.is_true((is_file_info_filled(file_info)))
+ local mode = tonumber(file_info[0].stat.st_mode)
+ eq(ffi.C.kS_IFLNK, (bit.band(mode, ffi.C.kS_IFMT)))
+ end)
+ end)
+
+ describe('os_fileinfo_fd', function()
+ it('returns false if given an invalid file descriptor', function()
+ local file_info = file_info_new()
+ assert.is_false((fs.os_fileinfo_fd(-1, file_info)))
+ end)
+
+ it('returns true if given a file descriptor and fills file_info', function()
+ local file_info = file_info_new()
+ local path = 'unit-test-directory/test.file'
+ local fd = ffi.C.open(path, 0)
+ assert.is_true((fs.os_fileinfo_fd(fd, file_info)))
+ assert.is_true((is_file_info_filled(file_info)))
+ ffi.C.close(fd)
+ end)
+ end)
+
+ describe('os_fileinfo_id_equal', function()
+ it('returns false if file infos represent different files', function()
+ local file_info_1 = file_info_new()
+ local file_info_2 = file_info_new()
+ local path_1 = 'unit-test-directory/test.file'
+ local path_2 = 'unit-test-directory/test_2.file'
+ assert.is_true((fs.os_fileinfo(path_1, file_info_1)))
+ assert.is_true((fs.os_fileinfo(path_2, file_info_2)))
+ assert.is_false((fs.os_fileinfo_id_equal(file_info_1, file_info_2)))
+ end)
+
+ it('returns true if file infos represent the same file', function()
+ local file_info_1 = file_info_new()
+ local file_info_2 = file_info_new()
+ local path = 'unit-test-directory/test.file'
+ assert.is_true((fs.os_fileinfo(path, file_info_1)))
+ assert.is_true((fs.os_fileinfo(path, file_info_2)))
+ assert.is_true((fs.os_fileinfo_id_equal(file_info_1, file_info_2)))
+ end)
+
+ it('returns true if file infos represent the same file (symlink)', function()
+ local file_info_1 = file_info_new()
+ local file_info_2 = file_info_new()
+ local path_1 = 'unit-test-directory/test.file'
+ local path_2 = 'unit-test-directory/test_link.file'
+ assert.is_true((fs.os_fileinfo(path_1, file_info_1)))
+ assert.is_true((fs.os_fileinfo(path_2, file_info_2)))
+ assert.is_true((fs.os_fileinfo_id_equal(file_info_1, file_info_2)))
+ end)
+ end)
+
+ describe('os_fileinfo_id', function()
+ it('extracts ino/dev from file_info into file_id', function()
+ local file_info = file_info_new()
+ local file_id = file_id_new()
+ local path = 'unit-test-directory/test.file'
+ assert.is_true((fs.os_fileinfo(path, file_info)))
+ fs.os_fileinfo_id(file_info, file_id)
+ eq(file_info[0].stat.st_ino, file_id[0].inode)
+ eq(file_info[0].stat.st_dev, file_id[0].device_id)
+ end)
+ end)
+
+ describe('os_fileinfo_inode', function()
+ it('returns the inode from file_info', function()
+ local file_info = file_info_new()
+ local path = 'unit-test-directory/test.file'
+ assert.is_true((fs.os_fileinfo(path, file_info)))
+ local inode = fs.os_fileinfo_inode(file_info)
+ eq(file_info[0].stat.st_ino, inode)
+ end)
+ end)
+
+ describe('os_fileinfo_size', function()
+ it('returns the correct size of a file', function()
+ local path = 'unit-test-directory/test.file'
+ local file = io.open(path, 'w')
+ file:write('some bytes to get filesize != 0')
+ file:flush()
+ file:close()
+ local size = lfs.attributes(path, 'size')
+ local file_info = file_info_new()
+ assert.is_true(fs.os_fileinfo(path, file_info))
+ eq(size, fs.os_fileinfo_size(file_info))
+ end)
+ end)
+
+ describe('os_fileinfo_hardlinks', function()
+ it('returns the correct number of hardlinks', function()
+ local path = 'unit-test-directory/test.file'
+ local path_link = 'unit-test-directory/test_hlink.file'
+ local file_info = file_info_new()
+ assert.is_true(fs.os_fileinfo(path, file_info))
+ eq(1, fs.os_fileinfo_hardlinks(file_info))
+ lfs.link(path, path_link)
+ assert.is_true(fs.os_fileinfo(path, file_info))
+ eq(2, fs.os_fileinfo_hardlinks(file_info))
+ end)
+ end)
+
+ describe('os_fileinfo_blocksize', function()
+ it('returns the correct blocksize of a file', function()
+ local path = 'unit-test-directory/test.file'
+ -- there is a bug in luafilesystem where
+ -- `lfs.attributes path, 'blksize'` returns the worng value:
+ -- https://github.com/keplerproject/luafilesystem/pull/44
+ -- using this workaround for now:
+ local blksize = lfs.attributes(path).blksize
+ local file_info = file_info_new()
+ assert.is_true(fs.os_fileinfo(path, file_info))
+ if blksize then
+ eq(blksize, fs.os_fileinfo_blocksize(file_info))
+ else
+ -- luafs dosn't support blksize on windows
+ -- libuv on windows returns a constant value as blocksize
+ -- checking for this constant value should be enough
+ eq(2048, fs.os_fileinfo_blocksize(file_info))
+ end
+ end)
+ end)
+
+ describe('os_fileid', function()
+ it('returns false if given an non-existing file', function()
+ local file_id = file_id_new()
+ assert.is_false((fs.os_fileid('/non-existent', file_id)))
+ end)
+
+ it('returns true if given an existing file and fills file_id', function()
+ local file_id = file_id_new()
+ local path = 'unit-test-directory/test.file'
+ assert.is_true((fs.os_fileid(path, file_id)))
+ assert.is_true(0 < file_id[0].inode)
+ assert.is_true(0 < file_id[0].device_id)
+ end)
+ end)
+
+ describe('os_fileid_equal', function()
+ it('returns true if two FileIDs are equal', function()
+ local file_id = file_id_new()
+ local path = 'unit-test-directory/test.file'
+ assert.is_true((fs.os_fileid(path, file_id)))
+ assert.is_true((fs.os_fileid_equal(file_id, file_id)))
+ end)
+
+ it('returns false if two FileIDs are not equal', function()
+ local file_id_1 = file_id_new()
+ local file_id_2 = file_id_new()
+ local path_1 = 'unit-test-directory/test.file'
+ local path_2 = 'unit-test-directory/test_2.file'
+ assert.is_true((fs.os_fileid(path_1, file_id_1)))
+ assert.is_true((fs.os_fileid(path_2, file_id_2)))
+ assert.is_false((fs.os_fileid_equal(file_id_1, file_id_2)))
+ end)
+ end)
+
+ describe('os_fileid_equal_fileinfo', function()
+ it('returns true if file_id and file_info represent the same file', function()
+ local file_id = file_id_new()
+ local file_info = file_info_new()
+ local path = 'unit-test-directory/test.file'
+ assert.is_true((fs.os_fileid(path, file_id)))
+ assert.is_true((fs.os_fileinfo(path, file_info)))
+ assert.is_true((fs.os_fileid_equal_fileinfo(file_id, file_info)))
+ end)
+
+ it('returns false if file_id and file_info represent different files', function()
+ local file_id = file_id_new()
+ local file_info = file_info_new()
+ local path_1 = 'unit-test-directory/test.file'
+ local path_2 = 'unit-test-directory/test_2.file'
+ assert.is_true((fs.os_fileid(path_1, file_id)))
+ assert.is_true((fs.os_fileinfo(path_2, file_info)))
+ assert.is_false((fs.os_fileid_equal_fileinfo(file_id, file_info)))
+ end)
+ end)
+ end)
+end)
diff --git a/test/unit/os/fs_spec.moon b/test/unit/os/fs_spec.moon
deleted file mode 100644
index dd787e76cd..0000000000
--- a/test/unit/os/fs_spec.moon
+++ /dev/null
@@ -1,525 +0,0 @@
-{:cimport, :cppimport, :internalize, :eq, :neq, :ffi, :lib, :cstr, :to_cstr, :OK, :FAIL} = require 'test.unit.helpers'
-require 'lfs'
-require 'bit'
-
-fs = cimport './src/nvim/os/os.h'
-
-cppimport 'sys/stat.h'
-cppimport 'sys/fcntl.h'
-cppimport 'sys/errno.h'
-
-assert_file_exists = (filepath) ->
- eq false, nil == (lfs.attributes filepath, 'r')
-
-assert_file_does_not_exist = (filepath) ->
- eq true, nil == (lfs.attributes filepath, 'r')
-
-describe 'fs function', ->
- setup ->
- lfs.mkdir 'unit-test-directory'
- (io.open 'unit-test-directory/test.file', 'w').close!
- (io.open 'unit-test-directory/test_2.file', 'w').close!
- lfs.link 'test.file', 'unit-test-directory/test_link.file', true
-
- -- Since the tests are executed, they are called by an executable. We use
- -- that executable for several asserts.
- export absolute_executable = arg[0]
-
- -- Split absolute_executable into a directory and the actual file name for
- -- later usage.
- export directory, executable_name = string.match(absolute_executable, '^(.*)/(.*)$')
-
- teardown ->
- os.remove 'unit-test-directory/test.file'
- os.remove 'unit-test-directory/test_2.file'
- os.remove 'unit-test-directory/test_link.file'
- lfs.rmdir 'unit-test-directory'
-
- describe 'os_dirname', ->
- os_dirname = (buf, len) ->
- fs.os_dirname buf, len
-
- before_each ->
- export len = (string.len lfs.currentdir!) + 1
- export buf = cstr len, ''
-
- it 'returns OK and writes current directory into the buffer if it is large
- enough', ->
- eq OK, (os_dirname buf, len)
- eq lfs.currentdir!, (ffi.string buf)
-
- -- What kind of other failing cases are possible?
- it 'returns FAIL if the buffer is too small', ->
- buf = cstr (len-1), ''
- eq FAIL, (os_dirname buf, (len-1))
-
- os_isdir = (name) ->
- fs.os_isdir (to_cstr name)
-
- describe 'os_isdir', ->
- it 'returns false if an empty string is given', ->
- eq false, (os_isdir '')
-
- it 'returns false if a nonexisting directory is given', ->
- eq false, (os_isdir 'non-existing-directory')
-
- it 'returns false if a nonexisting absolute directory is given', ->
- eq false, (os_isdir '/non-existing-directory')
-
- it 'returns false if an existing file is given', ->
- eq false, (os_isdir 'unit-test-directory/test.file')
-
- it 'returns true if the current directory is given', ->
- eq true, (os_isdir '.')
-
- it 'returns true if the parent directory is given', ->
- eq true, (os_isdir '..')
-
- it 'returns true if an arbitrary directory is given', ->
- eq true, (os_isdir 'unit-test-directory')
-
- it 'returns true if an absolute directory is given', ->
- eq true, (os_isdir directory)
-
- describe 'os_can_exe', ->
- os_can_exe = (name) ->
- fs.os_can_exe (to_cstr name)
-
- it 'returns false when given a directory', ->
- eq false, (os_can_exe './unit-test-directory')
-
- it 'returns false when given a regular file without executable bit set', ->
- eq false, (os_can_exe 'unit-test-directory/test.file')
-
- it 'returns false when the given file does not exists', ->
- eq false, (os_can_exe 'does-not-exist.file')
-
- it 'returns true when given an executable inside $PATH', ->
- eq true, (os_can_exe executable_name)
-
- it 'returns true when given an executable relative to the current dir', ->
- old_dir = lfs.currentdir!
- lfs.chdir directory
- relative_executable = './' .. executable_name
- eq true, (os_can_exe relative_executable)
- lfs.chdir old_dir
-
- describe 'file permissions', ->
- os_getperm = (filename) ->
- perm = fs.os_getperm (to_cstr filename)
- tonumber perm
-
- os_setperm = (filename, perm) ->
- fs.os_setperm (to_cstr filename), perm
-
- os_fchown = (filename, user_id, group_id) ->
- fd = ffi.C.open filename, 0
- res = fs.os_fchown fd, user_id, group_id
- ffi.C.close fd
- return res
-
- os_file_is_readonly = (filename) ->
- fs.os_file_is_readonly (to_cstr filename)
-
- os_file_is_writable = (filename) ->
- fs.os_file_is_writable (to_cstr filename)
-
- bit_set = (number, check_bit) ->
- if 0 == (bit.band number, check_bit) then false else true
-
- set_bit = (number, to_set) ->
- return bit.bor number, to_set
-
- unset_bit = (number, to_unset) ->
- return bit.band number, (bit.bnot to_unset)
-
- describe 'os_getperm', ->
- it 'returns -1 when the given file does not exist', ->
- eq -1, (os_getperm 'non-existing-file')
-
- it 'returns a perm > 0 when given an existing file', ->
- assert.is_true (os_getperm 'unit-test-directory') > 0
-
- it 'returns S_IRUSR when the file is readable', ->
- perm = os_getperm 'unit-test-directory'
- assert.is_true (bit_set perm, ffi.C.kS_IRUSR)
-
- describe 'os_setperm', ->
- it 'can set and unset the executable bit of a file', ->
- perm = os_getperm 'unit-test-directory/test.file'
-
- perm = unset_bit perm, ffi.C.kS_IXUSR
- eq OK, (os_setperm 'unit-test-directory/test.file', perm)
-
- perm = os_getperm 'unit-test-directory/test.file'
- assert.is_false (bit_set perm, ffi.C.kS_IXUSR)
-
- perm = set_bit perm, ffi.C.kS_IXUSR
- eq OK, os_setperm 'unit-test-directory/test.file', perm
-
- perm = os_getperm 'unit-test-directory/test.file'
- assert.is_true (bit_set perm, ffi.C.kS_IXUSR)
-
- it 'fails if given file does not exist', ->
- perm = ffi.C.kS_IXUSR
- eq FAIL, (os_setperm 'non-existing-file', perm)
-
- describe 'os_fchown', ->
- filename = 'unit-test-directory/test.file'
-
- it 'does not change owner and group if respective IDs are equal to -1', ->
- uid = lfs.attributes filename, 'uid'
- gid = lfs.attributes filename, 'gid'
- eq 0, os_fchown filename, -1, -1
- eq uid, lfs.attributes filename, 'uid'
- eq gid, lfs.attributes filename, 'gid'
-
- it 'owner of a file may change the group of the file
- to any group of which that owner is a member', ->
- -- Some systems may not have `id` utility.
- if (os.execute('id -G &> /dev/null') == 0)
- file_gid = lfs.attributes filename, 'gid'
-
- -- Gets ID of any group of which current user is a member except the
- -- group that owns the file.
- id_fd = io.popen('id -G')
- new_gid = id_fd\read '*n'
- if (new_gid == file_gid)
- new_gid = id_fd\read '*n'
- id_fd\close!
-
- -- User can be a member of only one group.
- -- In that case we can not perform this test.
- if new_gid
- eq 0, (os_fchown filename, -1, new_gid)
- eq new_gid, (lfs.attributes filename, 'gid')
-
- it 'returns nonzero if process has not enough permissions', ->
- -- On Windows `os_fchown` always returns 0
- -- because `uv_fs_chown` is no-op on this platform.
- if (ffi.os != 'Windows' and ffi.C.geteuid! != 0)
- -- chown to root
- neq 0, os_fchown filename, 0, 0
-
- describe 'os_file_is_readonly', ->
- it 'returns true if the file is readonly', ->
- perm = os_getperm 'unit-test-directory/test.file'
- perm_orig = perm
- perm = unset_bit perm, ffi.C.kS_IWUSR
- perm = unset_bit perm, ffi.C.kS_IWGRP
- perm = unset_bit perm, ffi.C.kS_IWOTH
- eq OK, (os_setperm 'unit-test-directory/test.file', perm)
- eq true, os_file_is_readonly 'unit-test-directory/test.file'
- eq OK, (os_setperm 'unit-test-directory/test.file', perm_orig)
-
- it 'returns false if the file is writable', ->
- eq false, os_file_is_readonly 'unit-test-directory/test.file'
-
- describe 'os_file_is_writable', ->
- it 'returns 0 if the file is readonly', ->
- perm = os_getperm 'unit-test-directory/test.file'
- perm_orig = perm
- perm = unset_bit perm, ffi.C.kS_IWUSR
- perm = unset_bit perm, ffi.C.kS_IWGRP
- perm = unset_bit perm, ffi.C.kS_IWOTH
- eq OK, (os_setperm 'unit-test-directory/test.file', perm)
- eq 0, os_file_is_writable 'unit-test-directory/test.file'
- eq OK, (os_setperm 'unit-test-directory/test.file', perm_orig)
-
- it 'returns 1 if the file is writable', ->
- eq 1, os_file_is_writable 'unit-test-directory/test.file'
-
- it 'returns 2 when given a folder with rights to write into', ->
- eq 2, os_file_is_writable 'unit-test-directory'
-
- describe 'file operations', ->
- os_file_exists = (filename) ->
- fs.os_file_exists (to_cstr filename)
-
- os_rename = (path, new_path) ->
- fs.os_rename (to_cstr path), (to_cstr new_path)
-
- os_remove = (path) ->
- fs.os_remove (to_cstr path)
-
- os_open = (path, flags, mode) ->
- fs.os_open (to_cstr path), flags, mode
-
- describe 'os_file_exists', ->
- it 'returns false when given a non-existing file', ->
- eq false, (os_file_exists 'non-existing-file')
-
- it 'returns true when given an existing file', ->
- eq true, (os_file_exists 'unit-test-directory/test.file')
-
- describe 'os_rename', ->
- test = 'unit-test-directory/test.file'
- not_exist = 'unit-test-directory/not_exist.file'
-
- it 'can rename file if destination file does not exist', ->
- eq OK, (os_rename test, not_exist)
- eq false, (os_file_exists test)
- eq true, (os_file_exists not_exist)
- eq OK, (os_rename not_exist, test) -- restore test file
-
- it 'fail if source file does not exist', ->
- eq FAIL, (os_rename not_exist, test)
-
- it 'can overwrite destination file if it exists', ->
- other = 'unit-test-directory/other.file'
- file = io.open other, 'w'
- file\write 'other'
- file\flush!
- file\close!
-
- eq OK, (os_rename other, test)
- eq false, (os_file_exists other)
- eq true, (os_file_exists test)
- file = io.open test, 'r'
- eq 'other', (file\read '*all')
- file\close!
-
- describe 'os_remove', ->
- before_each ->
- (io.open 'unit-test-directory/test_remove.file', 'w').close!
- after_each ->
- os.remove 'unit-test-directory/test_remove.file'
-
- it 'returns non-zero when given a non-existing file', ->
- neq 0, (os_remove 'non-existing-file')
-
- it 'removes the given file and returns 0', ->
- f = 'unit-test-directory/test_remove.file'
- assert_file_exists f
- eq 0, (os_remove f)
- assert_file_does_not_exist f
-
- describe 'os_open', ->
- before_each ->
- (io.open 'unit-test-directory/test_existing.file', 'w').close!
- after_each ->
- os.remove 'unit-test-directory/test_existing.file'
- os.remove 'test_new_file'
-
- new_file = 'test_new_file'
- existing_file = 'unit-test-directory/test_existing.file'
-
- it 'returns -ENOENT for O_RDWR on a non-existing file', ->
- eq -ffi.C.kENOENT, (os_open 'non-existing-file', ffi.C.kO_RDWR, 0)
-
- it 'returns non-negative for O_CREAT on a non-existing file', ->
- assert_file_does_not_exist new_file
- assert.is_true 0 <= (os_open new_file, ffi.C.kO_CREAT, 0)
-
- it 'returns non-negative for O_CREAT on a existing file', ->
- assert_file_exists existing_file
- assert.is_true 0 <= (os_open existing_file, ffi.C.kO_CREAT, 0)
-
- it 'returns -EEXIST for O_CREAT|O_EXCL on a existing file', ->
- assert_file_exists existing_file
- eq -ffi.C.kEEXIST, (os_open existing_file, (bit.bor ffi.C.kO_CREAT, ffi.C.kO_EXCL), 0)
-
- it 'sets `rwx` permissions for O_CREAT 700', ->
- assert_file_does_not_exist new_file
- --create the file
- os_open new_file, ffi.C.kO_CREAT, tonumber("700", 8)
- --verify permissions
- eq 'rwx------', lfs.attributes(new_file)['permissions']
-
- it 'sets `rw` permissions for O_CREAT 600', ->
- assert_file_does_not_exist new_file
- --create the file
- os_open new_file, ffi.C.kO_CREAT, tonumber("600", 8)
- --verify permissions
- eq 'rw-------', lfs.attributes(new_file)['permissions']
-
- it 'returns a non-negative file descriptor for an existing file', ->
- assert.is_true 0 <= (os_open existing_file, ffi.C.kO_RDWR, 0)
-
- describe 'folder operations', ->
- os_mkdir = (path, mode) ->
- fs.os_mkdir (to_cstr path), mode
-
- os_rmdir = (path) ->
- fs.os_rmdir (to_cstr path)
-
- describe 'os_mkdir', ->
- it 'returns non-zero when given an already existing directory', ->
- mode = ffi.C.kS_IRUSR + ffi.C.kS_IWUSR + ffi.C.kS_IXUSR
- neq 0, (os_mkdir 'unit-test-directory', mode)
-
- it 'creates a directory and returns 0', ->
- mode = ffi.C.kS_IRUSR + ffi.C.kS_IWUSR + ffi.C.kS_IXUSR
- eq false, (os_isdir 'unit-test-directory/new-dir')
- eq 0, (os_mkdir 'unit-test-directory/new-dir', mode)
- eq true, (os_isdir 'unit-test-directory/new-dir')
- lfs.rmdir 'unit-test-directory/new-dir'
-
- describe 'os_rmdir', ->
- it 'returns non_zero when given a non-existing directory', ->
- neq 0, (os_rmdir 'non-existing-directory')
-
- it 'removes the given directory and returns 0', ->
- lfs.mkdir 'unit-test-directory/new-dir'
- eq 0, (os_rmdir 'unit-test-directory/new-dir', mode)
- eq false, (os_isdir 'unit-test-directory/new-dir')
-
- describe 'FileInfo', ->
-
- file_info_new = () ->
- file_info = ffi.new 'FileInfo[1]'
- file_info[0].stat.st_ino = 0
- file_info[0].stat.st_dev = 0
- file_info
-
- is_file_info_filled = (file_info) ->
- file_info[0].stat.st_ino > 0 and file_info[0].stat.st_dev > 0
-
- file_id_new = () ->
- file_info = ffi.new 'FileID[1]'
- file_info[0].inode = 0
- file_info[0].device_id = 0
- file_info
-
- describe 'os_get_file_info', ->
- it 'returns false if given a non-existing file', ->
- file_info = file_info_new!
- assert.is_false (fs.os_get_file_info '/non-existent', file_info)
-
- it 'returns true if given an existing file and fills file_info', ->
- file_info = file_info_new!
- path = 'unit-test-directory/test.file'
- assert.is_true (fs.os_get_file_info path, file_info)
- assert.is_true (is_file_info_filled file_info)
-
- it 'returns the file info of the linked file, not the link', ->
- file_info = file_info_new!
- path = 'unit-test-directory/test_link.file'
- assert.is_true (fs.os_get_file_info path, file_info)
- assert.is_true (is_file_info_filled file_info)
- mode = tonumber file_info[0].stat.st_mode
- eq ffi.C.kS_IFREG, (bit.band mode, ffi.C.kS_IFMT)
-
- describe 'os_get_file_info_link', ->
- it 'returns false if given a non-existing file', ->
- file_info = file_info_new!
- assert.is_false (fs.os_get_file_info_link '/non-existent', file_info)
-
- it 'returns true if given an existing file and fills file_info', ->
- file_info = file_info_new!
- path = 'unit-test-directory/test.file'
- assert.is_true (fs.os_get_file_info_link path, file_info)
- assert.is_true (is_file_info_filled file_info)
-
- it 'returns the file info of the link, not the linked file', ->
- file_info = file_info_new!
- path = 'unit-test-directory/test_link.file'
- assert.is_true (fs.os_get_file_info_link path, file_info)
- assert.is_true (is_file_info_filled file_info)
- mode = tonumber file_info[0].stat.st_mode
- eq ffi.C.kS_IFLNK, (bit.band mode, ffi.C.kS_IFMT)
-
- describe 'os_get_file_info_fd', ->
- it 'returns false if given an invalid file descriptor', ->
- file_info = file_info_new!
- assert.is_false (fs.os_get_file_info_fd -1, file_info)
-
- it 'returns true if given a file descriptor and fills file_info', ->
- file_info = file_info_new!
- path = 'unit-test-directory/test.file'
- fd = ffi.C.open path, 0
- assert.is_true (fs.os_get_file_info_fd fd, file_info)
- assert.is_true (is_file_info_filled file_info)
- ffi.C.close fd
-
- describe 'os_file_info_id_equal', ->
- it 'returns false if file infos represent different files', ->
- file_info_1 = file_info_new!
- file_info_2 = file_info_new!
- path_1 = 'unit-test-directory/test.file'
- path_2 = 'unit-test-directory/test_2.file'
- assert.is_true (fs.os_get_file_info path_1, file_info_1)
- assert.is_true (fs.os_get_file_info path_2, file_info_2)
- assert.is_false (fs.os_file_info_id_equal file_info_1, file_info_2)
-
- it 'returns true if file infos represent the same file', ->
- file_info_1 = file_info_new!
- file_info_2 = file_info_new!
- path = 'unit-test-directory/test.file'
- assert.is_true (fs.os_get_file_info path, file_info_1)
- assert.is_true (fs.os_get_file_info path, file_info_2)
- assert.is_true (fs.os_file_info_id_equal file_info_1, file_info_2)
-
- it 'returns true if file infos represent the same file (symlink)', ->
- file_info_1 = file_info_new!
- file_info_2 = file_info_new!
- path_1 = 'unit-test-directory/test.file'
- path_2 = 'unit-test-directory/test_link.file'
- assert.is_true (fs.os_get_file_info path_1, file_info_1)
- assert.is_true (fs.os_get_file_info path_2, file_info_2)
- assert.is_true (fs.os_file_info_id_equal file_info_1, file_info_2)
-
- describe 'os_file_info_get_id', ->
- it 'extracts ino/dev from file_info into file_id', ->
- file_info = file_info_new!
- file_id = file_id_new!
- path = 'unit-test-directory/test.file'
- assert.is_true (fs.os_get_file_info path, file_info)
- fs.os_file_info_get_id(file_info, file_id)
- eq file_info[0].stat.st_ino, file_id[0].inode
- eq file_info[0].stat.st_dev, file_id[0].device_id
-
- describe 'os_file_info_get_inode', ->
- it 'returns the inode from file_info', ->
- file_info = file_info_new!
- path = 'unit-test-directory/test.file'
- assert.is_true (fs.os_get_file_info path, file_info)
- inode = fs.os_file_info_get_inode(file_info)
- eq file_info[0].stat.st_ino, inode
-
- describe 'os_get_file_id', ->
- it 'returns false if given an non-existing file', ->
- file_id = file_id_new!
- assert.is_false (fs.os_get_file_id '/non-existent', file_id)
-
- it 'returns true if given an existing file and fills file_id', ->
- file_id = file_id_new!
- path = 'unit-test-directory/test.file'
- assert.is_true (fs.os_get_file_id path, file_id)
- assert.is_true 0 < file_id[0].inode
- assert.is_true 0 < file_id[0].device_id
-
- describe 'os_file_id_equal', ->
- it 'returns true if two FileIDs are equal', ->
- file_id = file_id_new!
- path = 'unit-test-directory/test.file'
- assert.is_true (fs.os_get_file_id path, file_id)
- assert.is_true (fs.os_file_id_equal file_id, file_id)
-
- it 'returns false if two FileIDs are not equal', ->
- file_id_1 = file_id_new!
- file_id_2 = file_id_new!
- path_1 = 'unit-test-directory/test.file'
- path_2 = 'unit-test-directory/test_2.file'
- assert.is_true (fs.os_get_file_id path_1, file_id_1)
- assert.is_true (fs.os_get_file_id path_2, file_id_2)
- assert.is_false (fs.os_file_id_equal file_id_1, file_id_2)
-
- describe 'os_file_id_equal_file_info', ->
- it 'returns true if file_id and file_info represent the same file', ->
- file_id = file_id_new!
- file_info = file_info_new!
- path = 'unit-test-directory/test.file'
- assert.is_true (fs.os_get_file_id path, file_id)
- assert.is_true (fs.os_get_file_info path, file_info)
- assert.is_true (fs.os_file_id_equal_file_info file_id, file_info)
-
- it 'returns false if file_id and file_info represent different files',->
- file_id = file_id_new!
- file_info = file_info_new!
- path_1 = 'unit-test-directory/test.file'
- path_2 = 'unit-test-directory/test_2.file'
- assert.is_true (fs.os_get_file_id path_1, file_id)
- assert.is_true (fs.os_get_file_info path_2, file_info)
- assert.is_false (fs.os_file_id_equal_file_info file_id, file_info)
-
diff --git a/test/unit/os/users_spec.lua b/test/unit/os/users_spec.lua
new file mode 100644
index 0000000000..df5d2365c6
--- /dev/null
+++ b/test/unit/os/users_spec.lua
@@ -0,0 +1,91 @@
+local helpers = require('test.unit.helpers')
+
+local cimport = helpers.cimport
+local internalize = helpers.internalize
+local eq = helpers.eq
+local ffi = helpers.ffi
+local lib = helpers.lib
+local cstr = helpers.cstr
+local NULL = helpers.NULL
+local OK = helpers.OK
+local FAIL = helpers.FAIL
+
+local users = cimport('./src/nvim/os/os.h', 'unistd.h')
+
+function garray_new()
+ return ffi.new('garray_T[1]')
+end
+
+function garray_get_len(array)
+ return array[0].ga_len
+end
+
+function garray_get_item(array, index)
+ return (ffi.cast('void **', array[0].ga_data))[index]
+end
+
+describe('users function', function()
+ -- will probably not work on windows
+ local current_username = os.getenv('USER')
+
+ describe('os_get_usernames', function()
+ it('returns FAIL if called with NULL', function()
+ eq(FAIL, users.os_get_usernames(NULL))
+ end)
+
+ it('fills the names garray with os usernames and returns OK', function()
+ local ga_users = garray_new()
+ eq(OK, users.os_get_usernames(ga_users))
+ local user_count = garray_get_len(ga_users)
+ assert.is_true(user_count > 0)
+ local current_username_found = false
+ for i = 0, user_count - 1 do
+ local name = ffi.string((garray_get_item(ga_users, i)))
+ if name == current_username then
+ current_username_found = true
+ end
+ end
+ assert.is_true(current_username_found)
+ end)
+ end)
+
+ describe('os_get_user_name', function()
+ it('should write the username into the buffer and return OK', function()
+ local name_out = ffi.new('char[100]')
+ eq(OK, users.os_get_user_name(name_out, 100))
+ eq(current_username, ffi.string(name_out))
+ end)
+ end)
+
+ describe('os_get_uname', function()
+ it('should write the username into the buffer and return OK', function()
+ local name_out = ffi.new('char[100]')
+ local user_id = lib.getuid()
+ eq(OK, users.os_get_uname(user_id, name_out, 100))
+ eq(current_username, ffi.string(name_out))
+ end)
+
+ it('should FAIL if the userid is not found', function()
+ local name_out = ffi.new('char[100]')
+ -- hoping nobody has this uid
+ local user_id = 2342
+ eq(FAIL, users.os_get_uname(user_id, name_out, 100))
+ eq('2342', ffi.string(name_out))
+ end)
+ end)
+
+ describe('os_get_user_directory', function()
+ it('should return NULL if called with NULL', function()
+ eq(NULL, users.os_get_user_directory(NULL))
+ end)
+
+ it('should return $HOME for the current user', function()
+ local home = os.getenv('HOME')
+ eq(home, ffi.string((users.os_get_user_directory(current_username))))
+ end)
+
+ it('should return NULL if the user is not found', function()
+ eq(NULL, users.os_get_user_directory('neovim_user_not_found_test'))
+ end)
+ end)
+end)
diff --git a/test/unit/os/users_spec.moon b/test/unit/os/users_spec.moon
deleted file mode 100644
index 35c23ccc6f..0000000000
--- a/test/unit/os/users_spec.moon
+++ /dev/null
@@ -1,70 +0,0 @@
-{:cimport, :internalize, :eq, :ffi, :lib, :cstr, :NULL, :OK, :FAIL} = require 'test.unit.helpers'
-
-users = cimport './src/nvim/os/os.h', 'unistd.h'
-
-garray_new = () ->
- ffi.new 'garray_T[1]'
-
-garray_get_len = (array) ->
- array[0].ga_len
-
-garray_get_item = (array, index) ->
- (ffi.cast 'void **', array[0].ga_data)[index]
-
-
-describe 'users function', ->
-
- -- will probably not work on windows
- current_username = os.getenv 'USER'
-
- describe 'os_get_usernames', ->
-
- it 'returns FAIL if called with NULL', ->
- eq FAIL, users.os_get_usernames NULL
-
- it 'fills the names garray with os usernames and returns OK', ->
- ga_users = garray_new!
- eq OK, users.os_get_usernames ga_users
- user_count = garray_get_len ga_users
- assert.is_true user_count > 0
- current_username_found = false
- for i = 0, user_count - 1
- name = ffi.string (garray_get_item ga_users, i)
- if name == current_username
- current_username_found = true
- assert.is_true current_username_found
-
- describe 'os_get_user_name', ->
-
- it 'should write the username into the buffer and return OK', ->
- name_out = ffi.new 'char[100]'
- eq OK, users.os_get_user_name(name_out, 100)
- eq current_username, ffi.string name_out
-
- describe 'os_get_uname', ->
-
- it 'should write the username into the buffer and return OK', ->
- name_out = ffi.new 'char[100]'
- user_id = lib.getuid!
- eq OK, users.os_get_uname(user_id, name_out, 100)
- eq current_username, ffi.string name_out
-
- it 'should FAIL if the userid is not found', ->
- name_out = ffi.new 'char[100]'
- -- hoping nobody has this uid
- user_id = 2342
- eq FAIL, users.os_get_uname(user_id, name_out, 100)
- eq '2342', ffi.string name_out
-
- describe 'os_get_user_directory', ->
-
- it 'should return NULL if called with NULL', ->
- eq NULL, users.os_get_user_directory NULL
-
- it 'should return $HOME for the current user', ->
- home = os.getenv('HOME')
- eq home, ffi.string (users.os_get_user_directory current_username)
-
- it 'should return NULL if the user is not found', ->
- eq NULL, users.os_get_user_directory 'neovim_user_not_found_test'
-
diff --git a/test/unit/path_spec.lua b/test/unit/path_spec.lua
new file mode 100644
index 0000000000..15888c71b9
--- /dev/null
+++ b/test/unit/path_spec.lua
@@ -0,0 +1,478 @@
+local helpers = require('test.unit.helpers')
+
+local cimport = helpers.cimport
+local internalize = helpers.internalize
+local eq = helpers.eq
+local neq = helpers.neq
+local ffi = helpers.ffi
+local lib = helpers.lib
+local cstr = helpers.cstr
+local to_cstr = helpers.to_cstr
+local NULL = helpers.NULL
+local OK = helpers.OK
+local FAIL = helpers.FAIL
+
+require('lfs')
+local path = cimport('./src/nvim/path.h')
+
+-- import constants parsed by ffi
+local kEqualFiles = path.kEqualFiles
+local kDifferentFiles = path.kDifferentFiles
+local kBothFilesMissing = path.kBothFilesMissing
+local kOneFileMissing = path.kOneFileMissing
+local kEqualFileNames = path.kEqualFileNames
+
+describe('path function', function()
+ describe('path_full_dir_name', function()
+ setup(function()
+ lfs.mkdir('unit-test-directory')
+ end)
+
+ teardown(function()
+ lfs.rmdir('unit-test-directory')
+ end)
+
+ function path_full_dir_name(directory, buffer, len)
+ directory = to_cstr(directory)
+ return path.path_full_dir_name(directory, buffer, len)
+ end
+
+ before_each(function()
+ -- Create empty string buffer which will contain the resulting path.
+ len = (string.len(lfs.currentdir())) + 22
+ buffer = cstr(len, '')
+ end)
+
+ it('returns the absolute directory name of a given relative one', function()
+ local result = path_full_dir_name('..', buffer, len)
+ eq(OK, result)
+ local old_dir = lfs.currentdir()
+ lfs.chdir('..')
+ local expected = lfs.currentdir()
+ lfs.chdir(old_dir)
+ eq(expected, (ffi.string(buffer)))
+ end)
+
+ it('returns the current directory name if the given string is empty', function()
+ eq(OK, (path_full_dir_name('', buffer, len)))
+ eq(lfs.currentdir(), (ffi.string(buffer)))
+ end)
+
+ it('fails if the given directory does not exist', function()
+ eq(FAIL, path_full_dir_name('does_not_exist', buffer, len))
+ end)
+
+ it('works with a normal relative dir', function()
+ local result = path_full_dir_name('unit-test-directory', buffer, len)
+ eq(lfs.currentdir() .. '/unit-test-directory', (ffi.string(buffer)))
+ eq(OK, result)
+ end)
+ end)
+
+ describe('path_full_compare', function()
+ function path_full_compare(s1, s2, cn)
+ s1 = to_cstr(s1)
+ s2 = to_cstr(s2)
+ return path.path_full_compare(s1, s2, cn or 0)
+ end
+
+ local f1 = 'f1.o'
+ local f2 = 'f2.o'
+ before_each(function()
+ -- create the three files that will be used in this spec
+ io.open(f1, 'w').close()
+ io.open(f2, 'w').close()
+ end)
+
+ after_each(function()
+ os.remove(f1)
+ os.remove(f2)
+ end)
+
+ it('returns kEqualFiles when passed the same file', function()
+ eq(kEqualFiles, (path_full_compare(f1, f1)))
+ end)
+
+ it('returns kEqualFileNames when files that dont exist and have same name', function()
+ eq(kEqualFileNames, (path_full_compare('null.txt', 'null.txt', true)))
+ end)
+
+ it('returns kBothFilesMissing when files that dont exist', function()
+ eq(kBothFilesMissing, (path_full_compare('null.txt', 'null.txt')))
+ end)
+
+ it('returns kDifferentFiles when passed different files', function()
+ eq(kDifferentFiles, (path_full_compare(f1, f2)))
+ eq(kDifferentFiles, (path_full_compare(f2, f1)))
+ end)
+
+ it('returns kOneFileMissing if only one does not exist', function()
+ eq(kOneFileMissing, (path_full_compare(f1, 'null.txt')))
+ eq(kOneFileMissing, (path_full_compare('null.txt', f1)))
+ end)
+ end)
+
+ describe('path_tail', function()
+ function path_tail(file)
+ local res = path.path_tail((to_cstr(file)))
+ neq(NULL, res)
+ return ffi.string(res)
+ end
+
+ it('returns the tail of a given file path', function()
+ eq('file.txt', path_tail('directory/file.txt'))
+ end)
+
+ it('returns an empty string if file ends in a slash', function()
+ eq('', path_tail('directory/'))
+ end)
+ end)
+
+ describe('path_tail_with_sep', function()
+ function path_tail_with_sep(file)
+ local res = path.path_tail_with_sep((to_cstr(file)))
+ neq(NULL, res)
+ return ffi.string(res)
+ end
+
+ it('returns the tail of a file together with its separator', function()
+ eq('///file.txt', path_tail_with_sep('directory///file.txt'))
+ end)
+
+ it('returns an empty string when given an empty file name', function()
+ eq('', path_tail_with_sep(''))
+ end)
+
+ it('returns only the separator if there is a trailing separator', function()
+ eq('/', path_tail_with_sep('some/directory/'))
+ end)
+
+ it('cuts a leading separator', function()
+ eq('file.txt', path_tail_with_sep('/file.txt'))
+ eq('', path_tail_with_sep('/'))
+ end)
+
+ it('returns the whole file name if there is no separator', function()
+ eq('file.txt', path_tail_with_sep('file.txt'))
+ end)
+ end)
+
+ describe('invocation_path_tail', function()
+ -- Returns the path tail and length (out param) of the tail.
+ -- Does not convert the tail from C-pointer to lua string for use with
+ -- strcmp.
+ function invocation_path_tail(invk)
+ local plen = ffi.new('size_t[?]', 1)
+ local ptail = path.invocation_path_tail((to_cstr(invk)), plen)
+ neq(NULL, ptail)
+
+ -- it does not change the output if len==NULL
+ local tail2 = path.invocation_path_tail((to_cstr(invk)), NULL)
+ neq(NULL, tail2)
+ eq((ffi.string(ptail)), (ffi.string(tail2)))
+ return ptail, plen[0]
+ end
+
+ -- This test mimics the intended use in C.
+ function compare(base, pinvk, len)
+ return eq(0, (ffi.C.strncmp((to_cstr(base)), pinvk, len)))
+ end
+
+ it('returns the executable name of an invocation given a relative invocation', function()
+ local invk, len = invocation_path_tail('directory/exe a b c')
+ compare("exe a b c", invk, len)
+ eq(3, len)
+ end)
+
+ it('returns the executable name of an invocation given an absolute invocation', function()
+ if ffi.os == 'Windows' then
+ local invk, len = invocation_path_tail('C:\\Users\\anyone\\Program Files\\z a b')
+ compare('z a b', invk, len)
+ eq(1, len)
+ else
+ local invk, len = invocation_path_tail('/usr/bin/z a b')
+ compare('z a b', invk, len)
+ eq(1, len)
+ end
+ end)
+
+ it('does not count arguments to the executable as part of its path', function()
+ local invk, len = invocation_path_tail('exe a/b\\c')
+ compare("exe a/b\\c", invk, len)
+ eq(3, len)
+ end)
+
+ it('only accepts whitespace as a terminator for the executable name', function()
+ local invk, len = invocation_path_tail('exe-a+b_c[]()|#!@$%^&*')
+ eq('exe-a+b_c[]()|#!@$%^&*', (ffi.string(invk)))
+ end)
+
+ it('is equivalent to path_tail when args do not contain a path separator', function()
+ local ptail = path.path_tail(to_cstr("a/b/c x y z"))
+ neq(NULL, ptail)
+ local tail = ffi.string(ptail)
+ local invk, len = invocation_path_tail("a/b/c x y z")
+ eq(tail, ffi.string(invk))
+ end)
+
+ it('is not equivalent to path_tail when args contain a path separator', function()
+ local ptail = path.path_tail(to_cstr("a/b/c x y/z"))
+ neq(NULL, ptail)
+ local invk, len = invocation_path_tail("a/b/c x y/z")
+ neq((ffi.string(ptail)), (ffi.string(invk)))
+ end)
+ end)
+
+ describe('path_next_component', function()
+ function path_next_component(file)
+ local res = path.path_next_component((to_cstr(file)))
+ neq(NULL, res)
+ return ffi.string(res)
+ end
+
+ it('returns', function()
+ eq('directory/file.txt', path_next_component('some/directory/file.txt'))
+ end)
+
+ it('returns empty string if given file contains no separator', function()
+ eq('', path_next_component('file.txt'))
+ end)
+ end)
+
+ describe('path_shorten_fname', function()
+ it('returns NULL if `full_path` is NULL', function()
+ local dir = to_cstr('some/directory/file.txt')
+ eq(NULL, (path.path_shorten_fname(NULL, dir)))
+ end)
+
+ it('returns NULL if the path and dir does not match', function()
+ local dir = to_cstr('not/the/same')
+ local full = to_cstr('as/this.txt')
+ eq(NULL, (path.path_shorten_fname(full, dir)))
+ end)
+
+ it('returns NULL if the path is not separated properly', function()
+ local dir = to_cstr('some/very/long/')
+ local full = to_cstr('some/very/long/directory/file.txt')
+ eq(NULL, (path.path_shorten_fname(full, dir)))
+ end)
+
+ it('shortens the filename if `dir_name` is the start of `full_path`', function()
+ local full = to_cstr('some/very/long/directory/file.txt')
+ local dir = to_cstr('some/very/long')
+ eq('directory/file.txt', (ffi.string(path.path_shorten_fname(full, dir))))
+ end)
+ end)
+end)
+
+describe('path_shorten_fname_if_possible', function()
+ local cwd = lfs.currentdir()
+
+ before_each(function()
+ lfs.mkdir('ut_directory')
+ end)
+
+ after_each(function()
+ lfs.chdir(cwd)
+ lfs.rmdir('ut_directory')
+ end)
+
+ describe('path_shorten_fname_if_possible', function()
+ it('returns shortened path if possible', function()
+ lfs.chdir('ut_directory')
+ local full = to_cstr(lfs.currentdir() .. '/subdir/file.txt')
+ eq('subdir/file.txt', (ffi.string(path.path_shorten_fname_if_possible(full))))
+ end)
+
+ it('returns `full_path` if a shorter version is not possible', function()
+ local old = lfs.currentdir()
+ lfs.chdir('ut_directory')
+ local full = old .. '/subdir/file.txt'
+ eq(full, (ffi.string(path.path_shorten_fname_if_possible(to_cstr(full)))))
+ end)
+
+ it('returns NULL if `full_path` is NULL', function()
+ eq(NULL, (path.path_shorten_fname_if_possible(NULL)))
+ end)
+ end)
+end)
+
+describe('more path function', function()
+ setup(function()
+ lfs.mkdir('unit-test-directory');
+ io.open('unit-test-directory/test.file', 'w').close()
+
+ -- Since the tests are executed, they are called by an executable. We use
+ -- that executable for several asserts.
+ absolute_executable = arg[0]
+
+ -- Split absolute_executable into a directory and the actual file name for
+ -- later usage.
+ directory, executable_name = string.match(absolute_executable, '^(.*)/(.*)$')
+ end)
+
+ teardown(function()
+ os.remove('unit-test-directory/test.file')
+ lfs.rmdir('unit-test-directory')
+ end)
+
+ describe('vim_FullName', function()
+ function vim_FullName(filename, buffer, length, force)
+ filename = to_cstr(filename)
+ return path.vim_FullName(filename, buffer, length, force)
+ end
+
+ before_each(function()
+ -- Create empty string buffer which will contain the resulting path.
+ len = (string.len(lfs.currentdir())) + 33
+ buffer = cstr(len, '')
+ end)
+
+ it('fails if given filename is NULL', function()
+ local force_expansion = 1
+ local result = path.vim_FullName(NULL, buffer, len, force_expansion)
+ eq(FAIL, result)
+ end)
+
+ it('uses the filename if the filename is a URL', function()
+ local force_expansion = 1
+ local filename = 'http://www.neovim.org'
+ local result = vim_FullName(filename, buffer, len, force_expansion)
+ eq(filename, (ffi.string(buffer)))
+ eq(OK, result)
+ end)
+
+ it('fails and uses filename if given filename contains non-existing directory', function()
+ local force_expansion = 1
+ local filename = 'non_existing_dir/test.file'
+ local result = vim_FullName(filename, buffer, len, force_expansion)
+ eq(filename, (ffi.string(buffer)))
+ eq(FAIL, result)
+ end)
+
+ it('concatenates given filename if it does not contain a slash', function()
+ local force_expansion = 1
+ local result = vim_FullName('test.file', buffer, len, force_expansion)
+ local expected = lfs.currentdir() .. '/test.file'
+ eq(expected, (ffi.string(buffer)))
+ eq(OK, result)
+ end)
+
+ it('concatenates given filename if it is a directory but does not contain a\n slash', function()
+ local force_expansion = 1
+ local result = vim_FullName('..', buffer, len, force_expansion)
+ local expected = lfs.currentdir() .. '/..'
+ eq(expected, (ffi.string(buffer)))
+ eq(OK, result)
+ end)
+
+ -- Is it possible for every developer to enter '..' directory while running
+ -- the unit tests? Which other directory would be better?
+ it('enters given directory (instead of just concatenating the strings) if possible and if path contains a slash', function()
+ local force_expansion = 1
+ local result = vim_FullName('../test.file', buffer, len, force_expansion)
+ local old_dir = lfs.currentdir()
+ lfs.chdir('..')
+ local expected = lfs.currentdir() .. '/test.file'
+ lfs.chdir(old_dir)
+ eq(expected, (ffi.string(buffer)))
+ eq(OK, result)
+ end)
+
+ it('just copies the path if it is already absolute and force=0', function()
+ local force_expansion = 0
+ local absolute_path = '/absolute/path'
+ local result = vim_FullName(absolute_path, buffer, len, force_expansion)
+ eq(absolute_path, (ffi.string(buffer)))
+ eq(OK, result)
+ end)
+
+ it('fails and uses filename when the path is relative to HOME', function()
+ local force_expansion = 1
+ local absolute_path = '~/home.file'
+ local result = vim_FullName(absolute_path, buffer, len, force_expansion)
+ eq(absolute_path, (ffi.string(buffer)))
+ eq(FAIL, result)
+ end)
+
+ it('works with some "normal" relative path with directories', function()
+ local force_expansion = 1
+ local result = vim_FullName('unit-test-directory/test.file', buffer, len, force_expansion)
+ eq(OK, result)
+ eq(lfs.currentdir() .. '/unit-test-directory/test.file', (ffi.string(buffer)))
+ end)
+
+ it('does not modify the given filename', function()
+ local force_expansion = 1
+ local filename = to_cstr('unit-test-directory/test.file')
+ -- Don't use the wrapper here but pass a cstring directly to the c
+ -- function.
+ local result = path.vim_FullName(filename, buffer, len, force_expansion)
+ eq(lfs.currentdir() .. '/unit-test-directory/test.file', (ffi.string(buffer)))
+ eq('unit-test-directory/test.file', (ffi.string(filename)))
+ eq(OK, result)
+ end)
+ end)
+
+ describe('append_path', function()
+ it('joins given paths with a slash', function()
+ local path1 = cstr(100, 'path1')
+ local to_append = to_cstr('path2')
+ eq(OK, (path.append_path(path1, to_append, 100)))
+ eq("path1/path2", (ffi.string(path1)))
+ end)
+
+ it('joins given paths without adding an unnecessary slash', function()
+ local path1 = cstr(100, 'path1/')
+ local to_append = to_cstr('path2')
+ eq(OK, path.append_path(path1, to_append, 100))
+ eq("path1/path2", (ffi.string(path1)))
+ end)
+
+ it('fails and uses filename if there is not enough space left for to_append', function()
+ local path1 = cstr(11, 'path1/')
+ local to_append = to_cstr('path2')
+ eq(FAIL, (path.append_path(path1, to_append, 11)))
+ end)
+
+ it('does not append a slash if to_append is empty', function()
+ local path1 = cstr(6, 'path1')
+ local to_append = to_cstr('')
+ eq(OK, (path.append_path(path1, to_append, 6)))
+ eq('path1', (ffi.string(path1)))
+ end)
+
+ it('does not append unnecessary dots', function()
+ local path1 = cstr(6, 'path1')
+ local to_append = to_cstr('.')
+ eq(OK, (path.append_path(path1, to_append, 6)))
+ eq('path1', (ffi.string(path1)))
+ end)
+
+ it('copies to_append to path, if path is empty', function()
+ local path1 = cstr(7, '')
+ local to_append = to_cstr('/path2')
+ eq(OK, (path.append_path(path1, to_append, 7)))
+ eq('/path2', (ffi.string(path1)))
+ end)
+ end)
+
+ describe('path_is_absolute_path', function()
+ function path_is_absolute_path(filename)
+ filename = to_cstr(filename)
+ return path.path_is_absolute_path(filename)
+ end
+
+ it('returns true if filename starts with a slash', function()
+ eq(OK, path_is_absolute_path('/some/directory/'))
+ end)
+
+ it('returns true if filename starts with a tilde', function()
+ eq(OK, path_is_absolute_path('~/in/my/home~/directory'))
+ end)
+
+ it('returns false if filename starts not with slash nor tilde', function()
+ eq(FAIL, path_is_absolute_path('not/in/my/home~/directory'))
+ end)
+ end)
+end)
diff --git a/test/unit/path_spec.moon b/test/unit/path_spec.moon
deleted file mode 100644
index f7e5ed00bc..0000000000
--- a/test/unit/path_spec.moon
+++ /dev/null
@@ -1,383 +0,0 @@
-{:cimport, :internalize, :eq, :neq, :ffi, :lib, :cstr, :to_cstr, :NULL, :OK, :FAIL} = require 'test.unit.helpers'
-require 'lfs'
-
-path = cimport './src/nvim/path.h'
-
--- import constants parsed by ffi
-{:kEqualFiles, :kDifferentFiles, :kBothFilesMissing, :kOneFileMissing, :kEqualFileNames} = path
-
-describe 'path function', ->
- describe 'path_full_dir_name', ->
- setup ->
- lfs.mkdir 'unit-test-directory'
-
- teardown ->
- lfs.rmdir 'unit-test-directory'
-
- path_full_dir_name = (directory, buffer, len) ->
- directory = to_cstr directory
- path.path_full_dir_name directory, buffer, len
-
- before_each ->
- -- Create empty string buffer which will contain the resulting path.
- export len = (string.len lfs.currentdir!) + 22
- export buffer = cstr len, ''
-
- it 'returns the absolute directory name of a given relative one', ->
- result = path_full_dir_name '..', buffer, len
- eq OK, result
- old_dir = lfs.currentdir!
- lfs.chdir '..'
- expected = lfs.currentdir!
- lfs.chdir old_dir
- eq expected, (ffi.string buffer)
-
- it 'returns the current directory name if the given string is empty', ->
- eq OK, (path_full_dir_name '', buffer, len)
- eq lfs.currentdir!, (ffi.string buffer)
-
- it 'fails if the given directory does not exist', ->
- eq FAIL, path_full_dir_name('does_not_exist', buffer, len)
-
- it 'works with a normal relative dir', ->
- result = path_full_dir_name('unit-test-directory', buffer, len)
- eq lfs.currentdir! .. '/unit-test-directory', (ffi.string buffer)
- eq OK, result
-
- describe 'path_full_compare', ->
-
- path_full_compare = (s1, s2, cn) ->
- s1 = to_cstr s1
- s2 = to_cstr s2
- path.path_full_compare s1, s2, cn or 0
-
- f1 = 'f1.o'
- f2 = 'f2.o'
-
- before_each ->
- -- create the three files that will be used in this spec
- (io.open f1, 'w').close!
- (io.open f2, 'w').close!
-
- after_each ->
- os.remove f1
- os.remove f2
-
- it 'returns kEqualFiles when passed the same file', ->
- eq kEqualFiles, (path_full_compare f1, f1)
-
- it 'returns kEqualFileNames when files that dont exist and have same name', ->
- eq kEqualFileNames, (path_full_compare 'null.txt', 'null.txt', true)
-
- it 'returns kBothFilesMissing when files that dont exist', ->
- eq kBothFilesMissing, (path_full_compare 'null.txt', 'null.txt')
-
- it 'returns kDifferentFiles when passed different files', ->
- eq kDifferentFiles, (path_full_compare f1, f2)
- eq kDifferentFiles, (path_full_compare f2, f1)
-
- it 'returns kOneFileMissing if only one does not exist', ->
- eq kOneFileMissing, (path_full_compare f1, 'null.txt')
- eq kOneFileMissing, (path_full_compare 'null.txt', f1)
-
- describe 'path_tail', ->
- path_tail = (file) ->
- res = path.path_tail (to_cstr file)
- neq NULL, res
- ffi.string res
-
- it 'returns the tail of a given file path', ->
- eq 'file.txt', path_tail 'directory/file.txt'
-
- it 'returns an empty string if file ends in a slash', ->
- eq '', path_tail 'directory/'
-
- describe 'path_tail_with_sep', ->
- path_tail_with_sep = (file) ->
- res = path.path_tail_with_sep (to_cstr file)
- neq NULL, res
- ffi.string res
-
- it 'returns the tail of a file together with its separator', ->
- eq '///file.txt', path_tail_with_sep 'directory///file.txt'
-
- it 'returns an empty string when given an empty file name', ->
- eq '', path_tail_with_sep ''
-
- it 'returns only the separator if there is a trailing separator', ->
- eq '/', path_tail_with_sep 'some/directory/'
-
- it 'cuts a leading separator', ->
- eq 'file.txt', path_tail_with_sep '/file.txt'
- eq '', path_tail_with_sep '/'
-
- it 'returns the whole file name if there is no separator', ->
- eq 'file.txt', path_tail_with_sep 'file.txt'
-
- describe 'invocation_path_tail', ->
- -- Returns the path tail and length (out param) of the tail.
- -- Does not convert the tail from C-pointer to lua string for use with
- -- strcmp.
- invocation_path_tail = (invk) ->
- plen = ffi.new 'size_t[?]', 1
- ptail = path.invocation_path_tail (to_cstr invk), plen
- neq NULL, ptail
-
- -- it does not change the output if len==NULL
- tail2 = path.invocation_path_tail (to_cstr invk), NULL
- neq NULL, tail2
- eq (ffi.string ptail), (ffi.string tail2)
-
- ptail, plen[0]
-
- -- This test mimics the intended use in C.
- compare = (base, pinvk, len) ->
- eq 0, (ffi.C.strncmp (to_cstr base), pinvk, len)
-
- it 'returns the executable name of an invocation given a relative invocation', ->
- invk, len = invocation_path_tail 'directory/exe a b c'
- compare "exe a b c", invk, len
- eq 3, len
-
- it 'returns the executable name of an invocation given an absolute invocation', ->
- if ffi.os == 'Windows'
- invk, len = invocation_path_tail 'C:\\Users\\anyone\\Program Files\\z a b'
- compare 'z a b', invk, len
- eq 1, len
- else
- invk, len = invocation_path_tail '/usr/bin/z a b'
- compare 'z a b', invk, len
- eq 1, len
-
- it 'does not count arguments to the executable as part of its path', ->
- invk, len = invocation_path_tail 'exe a/b\\c'
- compare "exe a/b\\c", invk, len
- eq 3, len
-
- it 'only accepts whitespace as a terminator for the executable name', ->
- invk, len = invocation_path_tail 'exe-a+b_c[]()|#!@$%^&*'
- eq 'exe-a+b_c[]()|#!@$%^&*', (ffi.string invk)
-
- it 'is equivalent to path_tail when args do not contain a path separator', ->
- ptail = path.path_tail to_cstr "a/b/c x y z"
- neq NULL, ptail
- tail = ffi.string ptail
-
- invk, len = invocation_path_tail "a/b/c x y z"
- eq tail, ffi.string invk
-
- it 'is not equivalent to path_tail when args contain a path separator', ->
- ptail = path.path_tail to_cstr "a/b/c x y/z"
- neq NULL, ptail
-
- invk, len = invocation_path_tail "a/b/c x y/z"
- neq (ffi.string ptail), (ffi.string invk)
-
- describe 'path_next_component', ->
- path_next_component = (file) ->
- res = path.path_next_component (to_cstr file)
- neq NULL, res
- ffi.string res
-
- it 'returns', ->
- eq 'directory/file.txt', path_next_component 'some/directory/file.txt'
-
- it 'returns empty string if given file contains no separator', ->
- eq '', path_next_component 'file.txt'
-
- describe 'path_shorten_fname', ->
- it 'returns NULL if `full_path` is NULL', ->
- dir = to_cstr 'some/directory/file.txt'
- eq NULL, (path.path_shorten_fname NULL, dir)
-
- it 'returns NULL if the path and dir does not match', ->
- dir = to_cstr 'not/the/same'
- full = to_cstr 'as/this.txt'
- eq NULL, (path.path_shorten_fname full, dir)
-
- it 'returns NULL if the path is not separated properly', ->
- dir = to_cstr 'some/very/long/'
- full = to_cstr 'some/very/long/directory/file.txt'
- eq NULL, (path.path_shorten_fname full, dir)
-
- it 'shortens the filename if `dir_name` is the start of `full_path`', ->
- full = to_cstr 'some/very/long/directory/file.txt'
- dir = to_cstr 'some/very/long'
- eq 'directory/file.txt', (ffi.string path.path_shorten_fname full, dir)
-
-describe 'path_shorten_fname_if_possible', ->
- cwd = lfs.currentdir!
- before_each ->
- lfs.mkdir 'ut_directory'
- after_each ->
- lfs.chdir cwd
- lfs.rmdir 'ut_directory'
-
- describe 'path_shorten_fname_if_possible', ->
- it 'returns shortened path if possible', ->
- lfs.chdir 'ut_directory'
- full = to_cstr lfs.currentdir! .. '/subdir/file.txt'
- eq 'subdir/file.txt', (ffi.string path.path_shorten_fname_if_possible full)
-
- it 'returns `full_path` if a shorter version is not possible', ->
- old = lfs.currentdir!
- lfs.chdir 'ut_directory'
- full = old .. '/subdir/file.txt'
- eq full, (ffi.string path.path_shorten_fname_if_possible to_cstr full)
-
- it 'returns NULL if `full_path` is NULL', ->
- eq NULL, (path.path_shorten_fname_if_possible NULL)
-
-describe 'more path function', ->
- setup ->
- lfs.mkdir 'unit-test-directory'
- (io.open 'unit-test-directory/test.file', 'w').close!
-
- -- Since the tests are executed, they are called by an executable. We use
- -- that executable for several asserts.
- export absolute_executable = arg[0]
-
- -- Split absolute_executable into a directory and the actual file name for
- -- later usage.
- export directory, executable_name = string.match(absolute_executable, '^(.*)/(.*)$')
-
- teardown ->
- os.remove 'unit-test-directory/test.file'
- lfs.rmdir 'unit-test-directory'
-
- describe 'vim_FullName', ->
- vim_FullName = (filename, buffer, length, force) ->
- filename = to_cstr filename
- path.vim_FullName filename, buffer, length, force
-
- before_each ->
- -- Create empty string buffer which will contain the resulting path.
- export len = (string.len lfs.currentdir!) + 33
- export buffer = cstr len, ''
-
- it 'fails if given filename is NULL', ->
- force_expansion = 1
- result = path.vim_FullName NULL, buffer, len, force_expansion
- eq FAIL, result
-
- it 'uses the filename if the filename is a URL', ->
- force_expansion = 1
- filename = 'http://www.neovim.org'
- result = vim_FullName filename, buffer, len, force_expansion
- eq filename, (ffi.string buffer)
- eq OK, result
-
- it 'fails and uses filename if given filename contains non-existing directory', ->
- force_expansion = 1
- filename = 'non_existing_dir/test.file'
- result = vim_FullName filename, buffer, len, force_expansion
- eq filename, (ffi.string buffer)
- eq FAIL, result
-
- it 'concatenates given filename if it does not contain a slash', ->
- force_expansion = 1
- result = vim_FullName 'test.file', buffer, len, force_expansion
- expected = lfs.currentdir! .. '/test.file'
- eq expected, (ffi.string buffer)
- eq OK, result
-
- it 'concatenates given filename if it is a directory but does not contain a
- slash', ->
- force_expansion = 1
- result = vim_FullName '..', buffer, len, force_expansion
- expected = lfs.currentdir! .. '/..'
- eq expected, (ffi.string buffer)
- eq OK, result
-
- -- Is it possible for every developer to enter '..' directory while running
- -- the unit tests? Which other directory would be better?
- it 'enters given directory (instead of just concatenating the strings) if
- possible and if path contains a slash', ->
- force_expansion = 1
- result = vim_FullName '../test.file', buffer, len, force_expansion
- old_dir = lfs.currentdir!
- lfs.chdir '..'
- expected = lfs.currentdir! .. '/test.file'
- lfs.chdir old_dir
- eq expected, (ffi.string buffer)
- eq OK, result
-
- it 'just copies the path if it is already absolute and force=0', ->
- force_expansion = 0
- absolute_path = '/absolute/path'
- result = vim_FullName absolute_path, buffer, len, force_expansion
- eq absolute_path, (ffi.string buffer)
- eq OK, result
-
- it 'fails and uses filename when the path is relative to HOME', ->
- force_expansion = 1
- absolute_path = '~/home.file'
- result = vim_FullName absolute_path, buffer, len, force_expansion
- eq absolute_path, (ffi.string buffer)
- eq FAIL, result
-
- it 'works with some "normal" relative path with directories', ->
- force_expansion = 1
- result = vim_FullName 'unit-test-directory/test.file', buffer, len, force_expansion
- eq OK, result
- eq lfs.currentdir! .. '/unit-test-directory/test.file', (ffi.string buffer)
-
- it 'does not modify the given filename', ->
- force_expansion = 1
- filename = to_cstr 'unit-test-directory/test.file'
- -- Don't use the wrapper here but pass a cstring directly to the c
- -- function.
- result = path.vim_FullName filename, buffer, len, force_expansion
- eq lfs.currentdir! .. '/unit-test-directory/test.file', (ffi.string buffer)
- eq 'unit-test-directory/test.file', (ffi.string filename)
- eq OK, result
-
- describe 'append_path', ->
- it 'joins given paths with a slash', ->
- path1 = cstr 100, 'path1'
- to_append = to_cstr 'path2'
- eq OK, (path.append_path path1, to_append, 100)
- eq "path1/path2", (ffi.string path1)
-
- it 'joins given paths without adding an unnecessary slash', ->
- path1 = cstr 100, 'path1/'
- to_append = to_cstr 'path2'
- eq OK, path.append_path path1, to_append, 100
- eq "path1/path2", (ffi.string path1)
-
- it 'fails and uses filename if there is not enough space left for to_append', ->
- path1 = cstr 11, 'path1/'
- to_append = to_cstr 'path2'
- eq FAIL, (path.append_path path1, to_append, 11)
-
- it 'does not append a slash if to_append is empty', ->
- path1 = cstr 6, 'path1'
- to_append = to_cstr ''
- eq OK, (path.append_path path1, to_append, 6)
- eq 'path1', (ffi.string path1)
-
- it 'does not append unnecessary dots', ->
- path1 = cstr 6, 'path1'
- to_append = to_cstr '.'
- eq OK, (path.append_path path1, to_append, 6)
- eq 'path1', (ffi.string path1)
-
- it 'copies to_append to path, if path is empty', ->
- path1 = cstr 7, ''
- to_append = to_cstr '/path2'
- eq OK, (path.append_path path1, to_append, 7)
- eq '/path2', (ffi.string path1)
-
- describe 'path_is_absolute_path', ->
- path_is_absolute_path = (filename) ->
- filename = to_cstr filename
- path.path_is_absolute_path filename
-
- it 'returns true if filename starts with a slash', ->
- eq OK, path_is_absolute_path '/some/directory/'
-
- it 'returns true if filename starts with a tilde', ->
- eq OK, path_is_absolute_path '~/in/my/home~/directory'
-
- it 'returns false if filename starts not with slash nor tilde', ->
- eq FAIL, path_is_absolute_path 'not/in/my/home~/directory'
diff --git a/test/unit/preprocess.lua b/test/unit/preprocess.lua
new file mode 100644
index 0000000000..2405270328
--- /dev/null
+++ b/test/unit/preprocess.lua
@@ -0,0 +1,198 @@
+-- helps managing loading different headers into the LuaJIT ffi. Untested on
+-- windows, will probably need quite a bit of adjustment to run there.
+
+local ffi = require("ffi")
+
+local ccs = {}
+
+local env_cc = os.getenv("CC")
+if env_cc then
+ table.insert(ccs, {path = "/usr/bin/env " .. tostring(env_cc), type = "gcc"})
+end
+
+if ffi.os == "Windows" then
+ table.insert(ccs, {path = "cl", type = "msvc"})
+end
+
+table.insert(ccs, {path = "/usr/bin/env cc", type = "gcc"})
+table.insert(ccs, {path = "/usr/bin/env gcc", type = "gcc"})
+table.insert(ccs, {path = "/usr/bin/env gcc-4.9", type = "gcc"})
+table.insert(ccs, {path = "/usr/bin/env gcc-4.8", type = "gcc"})
+table.insert(ccs, {path = "/usr/bin/env gcc-4.7", type = "gcc"})
+table.insert(ccs, {path = "/usr/bin/env clang", type = "clang"})
+table.insert(ccs, {path = "/usr/bin/env icc", type = "gcc"})
+
+local quote_me = '[^%w%+%-%=%@%_%/]' -- complement (needn't quote)
+function shell_quote(str)
+ if string.find(str, quote_me) or str == '' then
+ return "'" .. string.gsub(str, "'", [['"'"']]) .. "'"
+ else
+ return str
+ end
+end
+
+-- parse Makefile format dependencies into a Lua table
+function parse_make_deps(deps)
+ -- remove line breaks and line concatenators
+ deps = deps:gsub("\n", ""):gsub("\\", "")
+ -- remove the Makefile "target:" element
+ deps = deps:gsub(".+:", "")
+ -- remove redundant spaces
+ deps = deps:gsub(" +", " ")
+
+ -- split according to token (space in this case)
+ local headers = {}
+ for token in deps:gmatch("[^%s]+") do
+ -- headers[token] = true
+ headers[#headers + 1] = token
+ end
+
+ -- resolve path redirections (..) to normalize all paths
+ for i, v in ipairs(headers) do
+ -- double dots (..)
+ headers[i] = v:gsub("/[^/%s]+/%.%.", "")
+ -- single dot (.)
+ headers[i] = v:gsub("%./", "")
+ end
+
+ return headers
+end
+
+-- will produce a string that represents a meta C header file that includes
+-- all the passed in headers. I.e.:
+--
+-- headerize({"stdio.h", "math.h", true}
+-- produces:
+-- #include <stdio.h>
+-- #include <math.h>
+--
+-- headerize({"vim.h", "memory.h", false}
+-- produces:
+-- #include "vim.h"
+-- #include "memory.h"
+function headerize(headers, global)
+ local pre = '"'
+ local post = pre
+ if global then
+ pre = "<"
+ post = ">"
+ end
+
+ local formatted = {}
+ for i = 1, #headers do
+ local hdr = headers[i]
+ formatted[#formatted + 1] = "#include " ..
+ tostring(pre) ..
+ tostring(hdr) ..
+ tostring(post)
+ end
+
+ return table.concat(formatted, "\n")
+end
+
+local Gcc = {
+ -- preprocessor flags that will hopefully make the compiler produce C
+ -- declarations that the LuaJIT ffi understands.
+ preprocessor_extra_flags = {
+ '-D "aligned(ARGS)="',
+ '-D "__attribute__(ARGS)="',
+ '-D "__asm(ARGS)="',
+ '-D "__asm__(ARGS)="',
+ '-D "__inline__="',
+ '-D "EXTERN=extern"',
+ '-D "INIT(...)="',
+ '-D_GNU_SOURCE',
+ '-DINCLUDE_GENERATED_DECLARATIONS'
+ }
+}
+
+function Gcc:new(obj)
+ obj = obj or {}
+ setmetatable(obj, self)
+ self.__index = self
+ return obj
+end
+
+function Gcc:add_to_include_path(...)
+ local paths = {...}
+ for i = 1, #paths do
+ local path = paths[i]
+ local directive = '-I ' .. '"' .. path .. '"'
+ local ef = self.preprocessor_extra_flags
+ ef[#ef + 1] = directive
+ end
+end
+
+-- returns a list of the headers files upon which this file relies
+function Gcc:dependencies(hdr)
+ local out = io.popen(tostring(self.path) .. " -M " .. tostring(hdr) .. " 2>&1")
+ local deps = out:read("*a")
+ out:close()
+ if deps then
+ return parse_make_deps(deps)
+ else
+ return nil
+ end
+end
+
+-- returns a stream representing a preprocessed form of the passed-in headers.
+-- Don't forget to close the stream by calling the close() method on it.
+function Gcc:preprocess_stream(...)
+ -- create pseudo-header
+ local pseudoheader = headerize({...}, false)
+ local defines = table.concat(self.preprocessor_extra_flags, ' ')
+ local cmd = ("echo $hdr | " ..
+ tostring(self.path) ..
+ " " ..
+ tostring(defines) ..
+ " -std=c99 -P -E -"):gsub('$hdr', shell_quote(pseudoheader))
+ -- lfs = require("lfs")
+ -- print("CWD: #{lfs.currentdir!}")
+ -- print("CMD: #{cmd}")
+ -- io.stderr\write("CWD: #{lfs.currentdir!}\n")
+ -- io.stderr\write("CMD: #{cmd}\n")
+ return io.popen(cmd)
+end
+
+local Clang = Gcc:new()
+local Msvc = Gcc:new()
+
+local type_to_class = {
+ ["gcc"] = Gcc,
+ ["clang"] = Clang,
+ ["msvc"] = Msvc
+}
+
+-- find the best cc. If os.exec causes problems on windows (like popping up
+-- a console window) we might consider using something like this:
+-- http://scite-ru.googlecode.com/svn/trunk/pack/tools/LuaLib/shell.html#exec
+function find_best_cc(ccs)
+ for _, meta in pairs(ccs) do
+ local version = io.popen(tostring(meta.path) .. " -v 2>&1")
+ version:close()
+ if version then
+ return type_to_class[meta.type]:new({path = meta.path})
+ end
+ end
+ return nil
+end
+
+-- find the best cc. If os.exec causes problems on windows (like popping up
+-- a console window) we might consider using something like this:
+-- http://scite-ru.googlecode.com/svn/trunk/pack/tools/LuaLib/shell.html#exec
+local cc = nil
+if cc == nil then
+ cc = find_best_cc(ccs)
+end
+
+return {
+ includes = function(hdr)
+ return cc:dependencies(hdr)
+ end,
+ preprocess_stream = function(...)
+ return cc:preprocess_stream(...)
+ end,
+ add_to_include_path = function(...)
+ return cc:add_to_include_path(...)
+ end
+}
diff --git a/test/unit/preprocess.moon b/test/unit/preprocess.moon
deleted file mode 100644
index cb734da2f7..0000000000
--- a/test/unit/preprocess.moon
+++ /dev/null
@@ -1,158 +0,0 @@
--- helps managing loading different headers into the LuaJIT ffi. Untested on
--- windows, will probably need quite a bit of adjustment to run there.
-
-ffi = require("ffi")
-
-ccs = {}
-
-env_cc = os.getenv("CC")
-if env_cc
- table.insert(ccs, {path: "/usr/bin/env #{env_cc}", type: "gcc"})
-
-if ffi.os == "Windows"
- table.insert(ccs, {path: "cl", type: "msvc"})
-
-table.insert(ccs, {path: "/usr/bin/env cc", type: "gcc"})
-table.insert(ccs, {path: "/usr/bin/env gcc", type: "gcc"})
-table.insert(ccs, {path: "/usr/bin/env gcc-4.9", type: "gcc"})
-table.insert(ccs, {path: "/usr/bin/env gcc-4.8", type: "gcc"})
-table.insert(ccs, {path: "/usr/bin/env gcc-4.7", type: "gcc"})
-table.insert(ccs, {path: "/usr/bin/env clang", type: "clang"})
-table.insert(ccs, {path: "/usr/bin/env icc", type: "gcc"})
-
-quote_me = '[^%w%+%-%=%@%_%/]' -- complement (needn't quote)
-shell_quote = (str) ->
- if string.find(str, quote_me) or str == '' then
- "'" .. string.gsub(str, "'", [['"'"']]) .. "'"
- else
- str
-
--- parse Makefile format dependencies into a Lua table
-parse_make_deps = (deps) ->
- -- remove line breaks and line concatenators
- deps = deps\gsub("\n", "")\gsub("\\", "")
-
- -- remove the Makefile "target:" element
- deps = deps\gsub(".+:", "")
-
- -- remove redundant spaces
- deps = deps\gsub(" +", " ")
-
- -- split according to token (space in this case)
- headers = {}
- for token in deps\gmatch("[^%s]+")
- -- headers[token] = true
- headers[#headers + 1] = token
-
- -- resolve path redirections (..) to normalize all paths
- for i, v in ipairs(headers)
- -- double dots (..)
- headers[i] = v\gsub("/[^/%s]+/%.%.", "")
-
- -- single dot (.)
- headers[i] = v\gsub("%./", "")
-
- headers
-
--- will produce a string that represents a meta C header file that includes
--- all the passed in headers. I.e.:
---
--- headerize({"stdio.h", "math.h", true}
--- produces:
--- #include <stdio.h>
--- #include <math.h>
---
--- headerize({"vim.h", "memory.h", false}
--- produces:
--- #include "vim.h"
--- #include "memory.h"
-headerize = (headers, global) ->
- pre = '"'
- post = pre
- if global
- pre = "<"
- post = ">"
-
- formatted = ["#include #{pre}#{hdr}#{post}" for hdr in *headers]
- table.concat(formatted, "\n")
-
-class Gcc
- -- preprocessor flags that will hopefully make the compiler produce C
- -- declarations that the LuaJIT ffi understands.
- @@preprocessor_extra_flags = {
- '-D "aligned(ARGS)="',
- '-D "__attribute__(ARGS)="',
- '-D "__asm(ARGS)="',
- '-D "__asm__(ARGS)="',
- '-D "__inline__="',
- '-D "EXTERN=extern"',
- '-D "INIT(...)="',
- '-D_GNU_SOURCE',
- '-DINCLUDE_GENERATED_DECLARATIONS'
- }
-
- new: (path) =>
- @path = path
-
- add_to_include_path: (...) =>
- paths = {...}
- for path in *paths
- directive = '-I ' .. '"' .. path .. '"'
- @@preprocessor_extra_flags[#@@preprocessor_extra_flags + 1] = directive
-
- -- returns a list of the headers files upon which this file relies
- dependencies: (hdr) =>
- out = io.popen("#{@path} -M #{hdr} 2>&1")
- deps = out\read("*a")
- out\close!
-
- if deps
- parse_make_deps(deps)
- else
- nil
-
- -- returns a stream representing a preprocessed form of the passed-in
- -- headers. Don't forget to close the stream by calling the close() method
- -- on it.
- preprocess_stream: (...) =>
- paths = {...}
- -- create pseudo-header
- pseudoheader = headerize(paths, false)
- defines = table.concat(@@preprocessor_extra_flags, ' ')
- cmd = ("echo $hdr | #{@path} #{defines} -std=c99 -P -E -")\gsub('$hdr', shell_quote(pseudoheader))
- -- lfs = require("lfs")
- -- print("CWD: #{lfs.currentdir!}")
- -- print("CMD: #{cmd}")
- -- io.stderr\write("CWD: #{lfs.currentdir!}\n")
- -- io.stderr\write("CMD: #{cmd}\n")
- io.popen(cmd)
-
-class Clang extends Gcc
-class Msvc extends Gcc
-
-type_to_class = {
- "gcc": Gcc,
- "clang": Clang,
- "msvc": Msvc
-}
-
-find_best_cc = (ccs) ->
- for _, meta in pairs(ccs)
- version = io.popen("#{meta.path} -v 2>&1")
- version\close!
- if version
- return type_to_class[meta.type](meta.path)
- nil
-
--- find the best cc. If os.exec causes problems on windows (like popping up
--- a console window) we might consider using something like this:
--- http://scite-ru.googlecode.com/svn/trunk/pack/tools/LuaLib/shell.html#exec
-cc = nil
-if cc == nil
- cc = find_best_cc(ccs)
-
-return {
- includes: (hdr) -> cc\dependencies(hdr)
- preprocess_stream: (...) -> cc\preprocess_stream(...)
- add_to_include_path: (...) -> cc\add_to_include_path(...)
-}
diff --git a/test/unit/set.lua b/test/unit/set.lua
new file mode 100644
index 0000000000..bfb6b8c41c
--- /dev/null
+++ b/test/unit/set.lua
@@ -0,0 +1,127 @@
+-- a set class for fast union/diff, can always return a table with the lines
+-- in the same relative order in which they were added by calling the
+-- to_table method. It does this by keeping two lua tables that mirror each
+-- other:
+-- 1) index => item
+-- 2) item => index
+local Set = {}
+
+function Set:new(items)
+ local obj = {}
+ setmetatable(obj, self)
+ self.__index = self
+
+ if type(items) == 'table' then
+ local tempset = Set:new()
+ tempset:union_table(items)
+ obj.tbl = tempset:raw_tbl()
+ obj.items = tempset:raw_items()
+ obj.nelem = tempset:size()
+ else
+ obj.tbl = {}
+ obj.items = {}
+ obj.nelem = 0
+ end
+
+ return obj
+end
+
+-- adds the argument Set to this Set
+function Set:union(other)
+ for e in other:iterator() do
+ self:add(e)
+ end
+end
+
+-- adds the argument table to this Set
+function Set:union_table(t)
+ for k, v in pairs(t) do
+ self:add(v)
+ end
+end
+
+-- subtracts the argument Set from this Set
+function Set:diff(other)
+ if other:size() > self:size() then
+ -- this set is smaller than the other set
+ for e in self:iterator() do
+ if other:contains(e) then
+ self:remove(e)
+ end
+ end
+ else
+ -- this set is larger than the other set
+ for e in other:iterator() do
+ if self.items[e] then
+ self:remove(e)
+ end
+ end
+ end
+end
+
+function Set:add(it)
+ if not self:contains(it) then
+ local idx = #self.tbl + 1
+ self.tbl[idx] = it
+ self.items[it] = idx
+ self.nelem = self.nelem + 1
+ end
+end
+
+function Set:remove(it)
+ if self:contains(it) then
+ local idx = self.items[it]
+ self.tbl[idx] = nil
+ self.items[it] = nil
+ self.nelem = self.nelem - 1
+ end
+end
+
+function Set:contains(it)
+ return self.items[it] or false
+end
+
+function Set:size()
+ return self.nelem
+end
+
+function Set:raw_tbl()
+ return self.tbl
+end
+
+function Set:raw_items()
+ return self.items
+end
+
+function Set:iterator()
+ return pairs(self.items)
+end
+
+function Set:to_table()
+ -- there might be gaps in @tbl, so we have to be careful and sort first
+ local keys
+ do
+ local _accum_0 = { }
+ local _len_0 = 1
+ for idx, _ in pairs(self.tbl) do
+ _accum_0[_len_0] = idx
+ _len_0 = _len_0 + 1
+ end
+ keys = _accum_0
+ end
+ table.sort(keys)
+ local copy
+ do
+ local _accum_0 = { }
+ local _len_0 = 1
+ for _index_0 = 1, #keys do
+ local idx = keys[_index_0]
+ _accum_0[_len_0] = self.tbl[idx]
+ _len_0 = _len_0 + 1
+ end
+ copy = _accum_0
+ end
+ return copy
+end
+
+return Set
diff --git a/test/unit/set.moon b/test/unit/set.moon
deleted file mode 100644
index affbd5c29a..0000000000
--- a/test/unit/set.moon
+++ /dev/null
@@ -1,72 +0,0 @@
--- a set class for fast union/diff, can always return a table with the lines
--- in the same relative order in which they were added by calling the
--- to_table method. It does this by keeping two lua tables that mirror each
--- other:
--- 1) index => item
--- 2) item => index
-class Set
- new: (items) =>
- if type(items) == 'table'
- tempset = Set()
- tempset\union_table(items)
- @tbl = tempset\raw_tbl!
- @items = tempset\raw_items!
- @nelem = tempset\size!
- else
- @tbl = {}
- @items = {}
- @nelem = 0
-
- -- adds the argument Set to this Set
- union: (other) =>
- for e in other\iterator!
- @add(e)
-
- -- adds the argument table to this Set
- union_table: (t) =>
- for k,v in pairs(t)
- @add(v)
-
- -- subtracts the argument Set from this Set
- diff: (other) =>
- if other\size! > @size!
- -- this set is smaller than the other set
- for e in @iterator!
- if other\contains(e)
- @remove(e)
- else
- -- this set is larger than the other set
- for e in other\iterator!
- if @items[e]
- @remove(e)
-
- add: (it) =>
- if not @contains(it)
- idx = #@tbl + 1
- @tbl[idx] = it
- @items[it] = idx
- @nelem += 1
-
- remove: (it) =>
- if @contains(it)
- idx = @items[it]
- @tbl[idx] = nil
- @items[it] = nil
- @nelem -= 1
-
- contains: (it) =>
- @items[it] or false
-
- size: => @nelem
- raw_tbl: => @tbl
- raw_items: => @items
- iterator: => pairs(@items)
-
- to_table: =>
- -- there might be gaps in @tbl, so we have to be careful and sort first
- keys = [idx for idx, _ in pairs(@tbl)]
- table.sort(keys)
- copy = [@tbl[idx] for idx in *keys]
- copy
-
-return Set
diff --git a/third-party/CMakeLists.txt b/third-party/CMakeLists.txt
index 56956fdc70..28a717bdce 100644
--- a/third-party/CMakeLists.txt
+++ b/third-party/CMakeLists.txt
@@ -55,8 +55,8 @@ set(MSGPACK_MD5 ea0bee0939d2980c0df91f0e4843ccc4)
set(LUAJIT_URL http://luajit.org/download/LuaJIT-2.0.3.tar.gz)
set(LUAJIT_MD5 f14e9104be513913810cd59c8c658dc0)
-set(LUAROCKS_URL https://github.com/keplerproject/luarocks/archive/v2.2.0beta1.tar.gz)
-set(LUAROCKS_MD5 d865fd8c333d6daca98ea052ff919043)
+set(LUAROCKS_URL https://github.com/keplerproject/luarocks/archive/0587afbb5fe8ceb2f2eea16f486bd6183bf02f29.tar.gz)
+set(LUAROCKS_MD5 0f53f42909fbcd2c88be303e8f970516)
if(USE_BUNDLED_LIBUV)
ExternalProject_Add(libuv
@@ -150,31 +150,21 @@ if(USE_BUNDLED_LUAROCKS)
add_dependencies(luarocks luajit)
endif()
- add_custom_command(OUTPUT ${DEPS_BIN_DIR}/moon ${DEPS_BIN_DIR}/moonc
- COMMAND ${DEPS_BIN_DIR}/luarocks ARGS install moonscript
- DEPENDS luarocks)
- add_custom_target(moonscript
- DEPENDS ${DEPS_BIN_DIR}/moon ${DEPS_BIN_DIR}/moonc)
-
- # Busted doesn't depend on luarocks, but luarocks is unhappy to have two
- # instances running in parallel. So we depend on moonscript to force it
- # to be serialized.
add_custom_command(OUTPUT ${DEPS_BIN_DIR}/busted
COMMAND ${DEPS_BIN_DIR}/luarocks ARGS install busted 1.10.0
- DEPENDS moonscript)
+ DEPENDS luarocks)
add_custom_target(busted
DEPENDS ${DEPS_BIN_DIR}/busted)
- # Like busted dependency on moonscript, we add a dependency on busted
- # to serialize the install
+ # lua-cmsgpack doesn't depend on busted, but luarocks is unhappy to have two
+ # instances running in parallel. So we depend on busted to force it
+ # to be serialized.
add_custom_command(OUTPUT ${DEPS_LIB_DIR}/luarocks/rocks/lua-cmsgpack
COMMAND ${DEPS_BIN_DIR}/luarocks ARGS install lua-cmsgpack
DEPENDS busted)
add_custom_target(lua-cmsgpack
DEPENDS ${DEPS_LIB_DIR}/luarocks/rocks/lua-cmsgpack)
- # lpeg is a moonscript dependency, but since it is also required for
- # normal compilation(even without unit testing) we better add it explicitly.
# Like before, depend on cmsgpack to ensure serialization of install commands
add_custom_command(OUTPUT ${DEPS_LIB_DIR}/luarocks/rocks/lpeg
COMMAND ${DEPS_BIN_DIR}/luarocks ARGS install lpeg
@@ -182,7 +172,7 @@ if(USE_BUNDLED_LUAROCKS)
add_custom_target(lpeg
DEPENDS ${DEPS_LIB_DIR}/luarocks/rocks/lpeg)
- list(APPEND THIRD_PARTY_DEPS moonscript busted lua-cmsgpack lpeg)
+ list(APPEND THIRD_PARTY_DEPS busted lua-cmsgpack lpeg)
endif()
add_custom_target(third-party ALL