Compare commits

...

17 Commits

Author SHA1 Message Date
Bram Moolenaar
4bc8cf0e7c updated for version 7.3.792
Problem:    ":substitute" works differently without confirmation.
Solution:   Do not change the text when asking for confirmation, only display
            it.
2013-01-30 16:30:26 +01:00
Bram Moolenaar
7567646f13 updated for version 7.3.791
Problem:    MzScheme interface doesn't work propely.
Solution:   Make it work better. (Sergey Khorev)
2013-01-30 14:55:42 +01:00
Bram Moolenaar
a3e6bc93d1 Update runtime files. 2013-01-30 14:18:00 +01:00
Bram Moolenaar
52f85b730e updated for version 7.3.790
Problem:    After reloading a buffer the modelines are not processed.
Solution:   call do_modelines(). (Ken Takata)
2013-01-30 14:13:56 +01:00
Bram Moolenaar
f813a1883f updated for version 7.3.789
Problem:    "\k" in regexp does not work in other window.
Solution:   Use the right buffer. (Yukihiro Nakadaira)
2013-01-30 13:59:37 +01:00
Bram Moolenaar
8d61617238 updated for version 7.3.788
Problem:    When only using patches build fails on missing nl.po.
Solution:   Create an empty nl.po file.
2013-01-30 12:50:56 +01:00
Bram Moolenaar
700e7345de updated for version 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)
2013-01-30 12:31:36 +01:00
Bram Moolenaar
02366255c9 updated for version 7.3.786
Problem:    Python threads don't run in the background (issue 103).
Solution:   Move the statements to manipulate thread state.
2013-01-30 11:44:39 +01:00
Bram Moolenaar
2f315ab7be updated for version 7.3.785
Problem:    Crash with specific use of search pattern.
Solution:   Initialize reg_buf to curbuf.
2013-01-25 20:11:01 +01:00
Bram Moolenaar
826763f87b updated for version 7.3.784
Problem:    Error when 'guifontwide' has a comma.
Solution:   Use gui.wide_font. (Taro Muraoka)
2013-01-25 19:28:38 +01:00
Bram Moolenaar
15364d74ca updated for version 7.3.783
Problem:    Crash when mark is not set. (Dominique Pelle)
Solution:   Check for NULL.
2013-01-24 21:00:20 +01:00
Bram Moolenaar
0f2721223e updated for version 7.3.782
Problem:    Windows: IME composition may use a wrong font.
Solution:   Use 'guifontwide' for IME when it is set. (Taro Muraoka)
2013-01-23 18:37:40 +01:00
Bram Moolenaar
4593396625 updated for version 7.3.781
Problem:    Drawing with 'guifontwide' can be slow.
Solution:   Draw multiple characters at a time. (Taro Muraoka)
2013-01-23 17:43:57 +01:00
Bram Moolenaar
d35d784e91 updated for version 7.3.780
Problem:    char2nr() and nr2char() always use 'encoding'.
Solution:   Add argument to use utf-8 characters. (Yasuhiro Matsumoto)
2013-01-23 17:17:10 +01:00
Bram Moolenaar
55b7b7eeb5 updated for version 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)
2013-01-23 16:43:11 +01:00
Bram Moolenaar
94a8adfdd8 updated for version 7.3.778
Problem:    Compiler error for adding up two pointers. (Titov Anatoly)
Solution:   Add a type cast. (Ken Takata)
2013-01-23 16:19:23 +01:00
Bram Moolenaar
3be71ce28d updated for version 7.3.777
Problem:    When building with Gnome locale gets reset.
Solution:   Set locale after gnome_program_init(). (Christian Brabandt)
2013-01-23 16:00:11 +01:00
47 changed files with 1592 additions and 824 deletions

View File

@@ -1,4 +1,4 @@
*cmdline.txt* For Vim version 7.3. Last change: 2012 Oct 11
*cmdline.txt* For Vim version 7.3. Last change: 2013 Jan 17
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -714,10 +714,15 @@ three lines: >
Visual Mode and Range *v_:*
{Visual}: Starts a command-line with the Visual selected lines as a
range. The code ":'<,'>" is used for this range, which makes
range. The code `:'<,'>` is used for this range, which makes
it possible to select a similar line from the command-line
history for repeating a command on different Visually selected
lines.
When Visual mode was already ended, a short way to use the
Visual area for a range is `:*`. This requires that "*" does
not appear in 'cpo', see |cpo-star|. Otherwise you will have
to type `:'<,'>`
==============================================================================
5. Ex command-line flags *ex-flags*

View File

@@ -1,4 +1,4 @@
*eval.txt* For Vim version 7.3. Last change: 2012 Dec 05
*eval.txt* For Vim version 7.3. Last change: 2013 Jan 23
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1716,7 +1716,7 @@ call( {func}, {arglist} [, {dict}])
any call {func} with arguments {arglist}
ceil( {expr}) Float round {expr} up
changenr() Number current change number
char2nr( {expr}) Number ASCII value of first char in {expr}
char2nr( {expr}[, {utf8}]) Number ASCII/UTF8 value of first char in {expr}
cindent( {lnum}) Number C indent for line {lnum}
clearmatches() none clear all matches
col( {expr}) Number column nr of cursor or mark
@@ -1873,7 +1873,7 @@ mkdir( {name} [, {path} [, {prot}]])
mode( [expr]) String current editing mode
mzeval( {expr}) any evaluate |MzScheme| expression
nextnonblank( {lnum}) Number line nr of non-blank line >= {lnum}
nr2char( {expr}) String single char with ASCII value {expr}
nr2char( {expr}[, {utf8}]) String single char with ASCII/UTF8 value {expr}
or( {expr}, {expr}) Number bitwise OR
pathshorten( {expr}) String shorten directory names in a path
pow( {x}, {y}) Float {x} to the power of {y}
@@ -2294,14 +2294,16 @@ changenr() *changenr()*
redo it is the number of the redone change. After undo it is
one less than the number of the undone change.
char2nr({expr}) *char2nr()*
char2nr({expr}[, {utf8}]) *char2nr()*
Return number value of the first char in {expr}. Examples: >
char2nr(" ") returns 32
char2nr("ABC") returns 65
< The current 'encoding' is used. Example for "utf-8": >
< When {utf8} is omitted or zero, the current 'encoding' is used.
Example for "utf-8": >
char2nr("<22>") returns 225
char2nr("<22>"[0]) returns 195
< A combining character is a separate character.
< With {utf8} set to 1, always treat as utf-8 characters.
A combining character is a separate character.
|nr2char()| does the opposite.
cindent({lnum}) *cindent()*
@@ -4371,14 +4373,16 @@ nextnonblank({lnum}) *nextnonblank()*
below it, zero is returned.
See also |prevnonblank()|.
nr2char({expr}) *nr2char()*
nr2char({expr}[, {utf8}]) *nr2char()*
Return a string with a single character, which has the number
value {expr}. Examples: >
nr2char(64) returns "@"
nr2char(32) returns " "
< The current 'encoding' is used. Example for "utf-8": >
< When {utf8} is omitted or zero, the current 'encoding' is used.
Example for "utf-8": >
nr2char(300) returns I with bow character
< Note that a NUL character in the file is specified with
< With {utf8} set to 1, always return utf-8 characters.
Note that a NUL character in the file is specified with
nr2char(10), because NULs are represented with newline
characters. nr2char(0) is a real NUL and terminates the
string, thus results in an empty string.
@@ -5939,8 +5943,9 @@ taglist({expr}) *taglist()*
If there are no matching tags, then an empty list is returned.
To get an exact tag match, the anchors '^' and '$' should be
used in {expr}. Refer to |tag-regexp| for more information
about the tag search regular expression pattern.
used in {expr}. This also make the function work faster.
Refer to |tag-regexp| for more information about the tag
search regular expression pattern.
Refer to |'tags'| for information about how the tags file is
located by Vim. Refer to |tags-file-format| for the format of

View File

@@ -1,4 +1,4 @@
*help.txt* For Vim version 7.3. Last change: 2010 Jul 20
*help.txt* For Vim version 7.3. Last change: 2012 Dec 06
VIM - main help file
k
@@ -195,12 +195,12 @@ Remarks about specific systems ~
*standard-plugin-list*
Standard plugins ~
|pi_getscript.txt| Downloading latest version of Vim scripts
|pi_gzip.txt| Reading and writing compressed files
|pi_netrw.txt| Reading and writing files over a network
|pi_paren.txt| Highlight matching parens
|pi_tar.txt| Tar file explorer
|pi_gzip.txt| Reading and writing compressed files
|pi_netrw.txt| Reading and writing files over a network
|pi_paren.txt| Highlight matching parens
|pi_tar.txt| Tar file explorer
|pi_vimball.txt| Create a self-installing Vim script
|pi_zip.txt| Zip archive explorer
|pi_zip.txt| Zip archive explorer
LOCAL ADDITIONS: *local-additions*

View File

@@ -11,7 +11,8 @@ The MzScheme Interface to Vim *mzscheme* *MzScheme*
3. Threads |mzscheme-threads|
4. Vim access from MzScheme |mzscheme-vim|
5. mzeval() Vim function |mzscheme-mzeval|
6. Dynamic loading |mzscheme-dynamic|
6. Using Function references |mzscheme-funcref|
7. Dynamic loading |mzscheme-dynamic|
{Vi does not have any of these commands}
@@ -21,10 +22,17 @@ The MzScheme interface is available only if Vim was compiled with the
Based on the work of Brent Fulgham.
Dynamic loading added by Sergey Khorev
For downloading MzScheme and other info:
http://www.plt-scheme.org/software/mzscheme/
MzScheme and PLT Scheme names have been rebranded as Racket. For more
information please check http://racket-lang.org
Note: On FreeBSD you should use the "drscheme" port.
Futures and places of Racket version 5.x up to and including 5.3.1 do not
work correctly with processes created by Vim.
The simplest solution is to build Racket on your own with these features
disabled: >
./configure --disable-futures --disable-places --prefix=your-install-prefix
To speed up the process, you might also want to use --disable-gracket and
--disable-docs
==============================================================================
1. Commands *mzscheme-commands*
@@ -155,8 +163,11 @@ Common
(eval {expr-string}) Evaluate the vim expression into
respective MzScheme object: |Lists| are
represented as Scheme lists,
|Dictionaries| as hash tables.
NOTE the name clashes with MzScheme eval
|Dictionaries| as hash tables,
|Funcref|s as functions (see also
|mzscheme-funcref|)
NOTE the name clashes with MzScheme eval,
use module qualifiers to overcome this.
(range-start) Start/End of the range passed with
(range-end) the Scheme command.
(beep) beep
@@ -237,7 +248,23 @@ To facilitate bi-directional interface, you can use |mzeval()| function to
evaluate MzScheme expressions and pass their values to VimL.
==============================================================================
6. Dynamic loading *mzscheme-dynamic* *E815*
6. Using Function references *mzscheme-funcref*
MzScheme interface allows use of |Funcref|s so you can call Vim functions
directly from Scheme. For instance: >
function! MyAdd2(arg)
return a:arg + 2
endfunction
mz (define f2 (vim-eval "function(\"MyAdd2\")"))
mz (f2 7)
< or : >
:mz (define indent (vim-eval "function('indent')"))
" return Vim indent for line 12
:mz (indent 12)
<
==============================================================================
7. Dynamic loading *mzscheme-dynamic* *E815*
On MS-Windows the MzScheme libraries can be loaded dynamically. The |:version|
output then includes |+mzscheme/dyn|.

View File

@@ -1,4 +1,4 @@
*if_pyth.txt* For Vim version 7.3. Last change: 2012 Sep 23
*if_pyth.txt* For Vim version 7.3. Last change: 2013 Jan 30
VIM REFERENCE MANUAL by Paul Moore
@@ -54,8 +54,8 @@ Example: >
EOF
endfunction
<
Note: Python is very sensitive to the indenting. Also make sure the "class"
line and "EOF" do not have any indent.
Note: Python is very sensitive to the indenting. Make sure the "class" line
and "EOF" do not have any indent.
*:pyfile* *:pyf*
:[range]pyf[ile] {file}

View File

@@ -1,4 +1,4 @@
*insert.txt* For Vim version 7.3. Last change: 2012 Jul 10
*insert.txt* For Vim version 7.3. Last change: 2013 Jan 09
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -380,7 +380,9 @@ The CTRL-O command sometimes has a side effect: If the cursor was beyond the
end of the line, it will be put on the last character in the line. In
mappings it's often better to use <Esc> (first put an "x" in the text, <Esc>
will then always put the cursor on it). Or use CTRL-\ CTRL-O, but then
beware of the cursor possibly being beyond the end of the line.
beware of the cursor possibly being beyond the end of the line. Note that the
command following CTRL-\ CTRL-O can still move the cursor, it is not restored
to its original position.
The CTRL-O command takes you to Normal mode. If you then use a command enter
Insert mode again it normally doesn't nest. Thus when typing "a<C-O>a" and

View File

@@ -1,4 +1,4 @@
*options.txt* For Vim version 7.3. Last change: 2012 Oct 21
*options.txt* For Vim version 7.3. Last change: 2013 Jan 30
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -3560,6 +3560,10 @@ A jump table for the options with a short description can be found at |Q_op|.
to set 'guifontwide' at all unless you want to override the choice
made by Pango/Xft.
Windows +multibyte only: *guifontwide_win_mbyte*
If set and valid, 'guifontwide' is used for IME instead of 'guifont'.
*'guiheadroom'* *'ghr'*
'guiheadroom' 'ghr' number (default 50)
global
@@ -3820,7 +3824,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|hl-ModeMsg| M Mode (e.g., "-- INSERT --")
|hl-LineNr| n line number for ":number" and ":#" commands, and
when 'number' or 'relativenumber' option is set.
|hl-CursorLineNr| N like n for when 'cursorline' is set.
|hl-CursorLineNr| N like n for when 'cursorline' or 'relativenumber' is
set.
|hl-Question| r |hit-enter| prompt and yes/no questions
|hl-StatusLine| s status line of current window |status-line|
|hl-StatusLineNC| S status lines of not-current windows
@@ -4713,8 +4718,10 @@ A jump table for the options with a short description can be found at |Q_op|.
local to buffer
{not in Vi}
Characters that form pairs. The |%| command jumps from one to the
other. Currently only single byte character pairs are allowed, and
they must be different. The characters must be separated by a colon.
other.
Only character pairs are allowed that are different, thus you cannot
jump between two double quotes.
The characters must be separated by a colon.
The pairs must be separated by a comma. Example for including '<' and
'>' (HTML): >
:set mps+=<:>

View File

@@ -1,4 +1,4 @@
*pattern.txt* For Vim version 7.3. Last change: 2012 May 18
*pattern.txt* For Vim version 7.3. Last change: 2013 Jan 25
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -993,6 +993,8 @@ x A single character, with no special meaning, matches itself
[xyz] any 'x', 'y' or 'z'
[a-zA-Z]$ any alphabetic character at the end of a line
\c[a-z]$ same
[А-яЁё] Russian alphabet (with utf-8 and cp1251)
*/[\n]*
With "\_" prepended the collection also includes the end-of-line.
The same can be done by including "\n" in the collection. The

View File

@@ -1,4 +1,4 @@
*syntax.txt* For Vim version 7.3. Last change: 2012 Nov 28
*syntax.txt* For Vim version 7.3. Last change: 2013 Jan 30
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -3903,9 +3903,9 @@ External matches *:syn-ext-match*
These extra regular expression items are available in region patterns:
*/\z(* */\z(\)* *E50* *E52*
\z(\) Marks the sub-expression as "external", meaning that it is can
be accessed from another pattern match. Currently only usable
in defining a syntax region start pattern.
\z(\) Marks the sub-expression as "external", meaning that it can be
accessed from another pattern match. Currently only usable in
defining a syntax region start pattern.
*/\z1* */\z2* */\z3* */\z4* */\z5*
\z1 ... \z9 */\z6* */\z7* */\z8* */\z9* *E66* *E67*
@@ -4592,7 +4592,8 @@ IncSearch 'incsearch' highlighting; also used for the text replaced with
LineNr Line number for ":number" and ":#" commands, and when 'number'
or 'relativenumber' option is set.
*hl-CursorLineNr*
CursorLineNr Like LineNr when 'cursorline' is set for the cursor line.
CursorLineNr Like LineNr when 'cursorline' or 'relativenumber' is set for
the cursor line.
*hl-MatchParen*
MatchParen The character under the cursor or just before it, if it
is a paired bracket, and its match. |pi_paren.txt|

View File

@@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.3. Last change: 2012 Dec 05
*todo.txt* For Vim version 7.3. Last change: 2013 Jan 30
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -34,9 +34,8 @@ not be repeated below, unless there is extra information.
*known-bugs*
-------------------- Known bugs and current work -----------------------
On external command get the message:
SIGCHLD handler called (some thread has SIGCHLD unblocked)
From MzScheme
Several syntax file match "^\s*" which may get underlined if that's in the
highlight group. Add a "\zs" after it?
Go through more coverity reports.
@@ -53,30 +52,8 @@ The CompleteDone autocommand needs some info passed to it:
- The word that was selected (empty if abandoned complete)
- Type of completion: tag, omnifunc, user func.
Patch for matchit.vim. (Mike Morearty, 2012 Nov 28)
Patch to fix that the QuitPre autocommand clears the quitmore flag. (Techlive
Zheng, 2012 Nov 28)
":gundo" command: global undo. Undoes changes spread over multiple files in
the order they were made. Also ":gredo". Both with a count. Useful when
tests fail after making changes and you forgot in which files.
Patch to make updating tabline faster. (Arseny Kapoulkine, 2012 Oct 3)
Also remove the "rc" variable.
Patch to make "- register not always used. (Christian Brabandt, 2012 Nov 28)
Crash with vimdiff. (Don Cruickshank, 2012 Sep 23)
Patch to support subdirectories for help files. (Charles Campbell, 2012 Nov
21)
Patch for mzscheme. (Sergey Khorev, 2012 Nov 19)
What about ignoring SEGV?
Win32: use 'guifontwide' for IME composition. (Taro Muraoka, 2012 Sep 30)
Update Oct 2.
Updated patch 2013 Jan 28.
Patch to fix :s command with confirm and typing "a". (Christian Brabandt, 2012
Oct 28)
@@ -88,24 +65,45 @@ Test files in archive in another message.
Patch to make multibyte input work on Win32 console when codepage differs from
'encoding'. (Ken Takata, 2012 Sep 29)
It's possible to defined an input() function that overrides the built-in one.
Patch for building with Ruby and Cygwin. (Ken Takata, 2013 Jan 9)
Patch to make 'relativenumber' show the current lnum instead of zero.
(Nazri Ramliy, 2013 Jan 29)
It's possible to define an input() function that overrides the built-in one.
(ZyX, 2012 Sep 28)
Patch to add sha256() function. (Tyru, 2013 Jan 8)
Patch to make pyeval() print error messages. (ZyX, 2013 Jan 12)
Win32: When a directory name contains an exclamation mark, completion doesn't
complete the contents of the directory. No escaping for the "!"? (Jan
Stocker, 2012 Jan 5)
Patch for Win32 clipboard under Cygwin. (Frodak Baksik, Feb 15)
Sutcliffe says it works well.
Update 2007 May 22 for Vim 7.1
Update 2008 Dec 2008 for Vim 7.2.xx (Sharonov)
Update by Ken Takata (2012 Dec 31, 2013 Jan 4, 2013 Jan 26)
Problem parsing expression with function(). (Andy Wokula, 2012 Nov 22)
Patch by Christian Brabandt, Nov 22. Tests in another patch, Nov 23.
Patch to add default value to getbufvar() et al. (Hirohito Higashi, 2013 Jan 1)
Problem caused by patch 7.3.638: window->open does not update window
correctly. Issue 91.
Patch to fix compiler warnings for MingW 4.5.3. (Ken Takata, 2013 Jan 26)
Do allow real tags above the !_TAG entries. Undo older patch. Issue 90.
Patch to support 'u' in interactive substitute. (Christian Brabandt, 2012 Sep
28) With tests: Oct 9.
Patch to make fold updates much faster. (Christian Brabandt, 2012 Dec)
Patch for IME handling, adds 'imactivatefunc' and 'imstatusfunc' option.
(Yukihiro Nakadaira, 2012 Aug 16)
Patch to improve IME handling. (Yasuhiro Matsumoto, 2012 Jul 18)
@@ -136,6 +134,8 @@ MS-Windows: Crash opening very long file name starting with "\\".
It's probably a good idea to make a negative value for 'sts' use the value of
'sw'. Patch by So8res, Oct 3 2012
patch to add "combine" flag to syntax commands. (so8res, 2012 Dec 6)
Syntax update problem in one buffer opened in two windows, bottom window is
not correctly updated. (Paul Harris, 2012 Feb 27)
@@ -145,9 +145,22 @@ Alternate patch by Gary Johnson, Sep 4.
Patch to add getsid(). (Tyru, 2011 Oct 2) Do we want this? Update Oct 4.
Or use expand('<sid>')?
Patch to make confirm() display colors. (Christian Brabandt, 2012 Nov 9)
Patch to add functions for signs. (Christian Brabandt,, 2013 Jan 27)
Patch to use directX to draw text on Windows. Adds the 'directx' option.
(Taro Muraoka, 2013 Jan 25)
b:undo_ftplugin cannot call a script-local function. (Boris Danilov, 2013 Jan
7)
Patch for :tabcloseleft, after closing a tab go to left tab. (William Bowers,
2012 Aug 4)
Patch to improve equivalence classes in regexp patterns.
(Christian Brabandt, 2013 Jan 16, update Jan 17)
Patch with suggestions for starting.txt. (Tony Mechelynck, 2012 Oct 24)
But use Gnome instead of GTK?
@@ -160,6 +173,7 @@ Crash in autocmd that unloads buffers in a BufUnload event. (Andrew Pimlott,
MS-Windows ACL support doesn't work well. Patch from Ken Takata, 2012 Aug 29.
Update Aug 31.
Another patch for MingW, 2012 Dec 29.
MS-Windows resizing problems:
- Windows window on screen positioning: Patch by Yukihiro Nakadaira, 2012 Jun
@@ -260,7 +274,7 @@ Update Jun 2.
Patch to add ":py3do". (Lilydjwg, 2012 Apr 7)
`[ moves to character after insert, instead of the last inserted character.
`] moves to character after insert, instead of the last inserted character.
(Yukihiro Nakadaira, 2011 Dec 9)
Plugin for Modeleasy. (Massimiliano Tripoli, 2011 Nov 29)
@@ -388,6 +402,11 @@ string() can't parse back "inf" and "nan". Fix documentation or fix code?
Make 'formatprg' global-local. (Sung Pae)
When a buffer-local mapping is used, but a global mapping starts with the same
characters, Vim currently waits for the next typed character to find out if
the global mapping matches. It is probably better to let the local mapping
win and not wait. (discussion with Andy Wokula, 2013 Jan 30)
When doing "redir => s:foo" in a script and then "redir END" somewhere else
(e.g. in a function) it can't find s:foo.
@@ -516,6 +535,9 @@ names, shell commands and the like. (Kikuchan, 2010 Oct 14)
Assume the system converts between the actual encoding of the filesystem to
the system encoding (usually utf-8).
Patch to add GUI colors to the terminal, when it supports it. (ZyX, 2013 Jan
26)
Problem producing tags file when hebrew.frx is present. It has a BOM.
Results in E670. (Tony Mechelynck, 2010 May 2)
@@ -714,7 +736,7 @@ to avoid changing 'eventignore'?
Patch for displaying 0x200c and 0x200d. (Ali Gholami Rudi, 2009 May 6)
Probably needs a bit of work.
List of encoding aliases. (Takao Fujiware, 2009 Jul 18)
List of encoding aliases. (Takao Fujiwara, 2009 Jul 18)
Are they all OK? Update Jul 22.
Win32: Improved Makefile for MSVC. (Leonardo Valeri Manera, 2010 Aug 18)
@@ -744,7 +766,7 @@ Problem with <script> mappings (Andy Wokula, 2009 Mar 8)
When starting Vim with "gvim -f -u non_existent_file > foo.txt" there are a
few control characters in the output. (Dale Wiles, 2009 May 28)
'cmdwinheight is only used in last window when 'winheight' is a large value.
'cmdwinheight' is only used in last window when 'winheight' is a large value.
(Tony Mechelynck, 2009 Apr 15)
Status line containing winnr() isn't updated when splitting the window (Clark
@@ -1245,11 +1267,6 @@ makes his own wrapper). Add a magic string with the version number to the
Changes for Win32 makefile. (Mike Williams, 2007 Jan 22, Alexei Alexandrov,
2007 Feb 8)
Patch for Win32 clipboard under Cygwin. (Frodak Baksik, Feb 15)
Sutcliffe says it works well.
Update 2007 May 22 for Vim 7.1
Update 2008 Dec 2008 for Vim 7.2.xx (Sharonov)
Win32: Can't complete shell command names. Why is setting xp_context in
set_one_cmd_context() inside #ifndef BACKSLASH_IN_FILENAME?
@@ -1664,7 +1681,8 @@ Patch to support horizontal scroll wheel in GTK. Untested. (Bjorn Winckler,
2010 Jun 30)
At next release:
At next release 7.4:
- Build a huge version by default.
- Rename src/Makefile and create a new one like toplevel Makefile that
creates auto/config.mk when it's not there? (Ben Schmidt, 2011 Feb 11)
- Improve plugin handling: Automatic updates, handle dependencies?
@@ -4297,6 +4315,7 @@ Incsearch:
Searching:
9 Should have an option for :vimgrep to find lines without a match.
8 Add "g/" and "gb" to search for a pattern in the Visually selected text?
"g?" is already used for rot13.
The vis.vim script has a ":S" command that does something like this.
@@ -4428,6 +4447,9 @@ Searching:
Undo:
9 ":gundo" command: global undo. Undoes changes spread over multiple files
in the order they were made. Also ":gredo". Both with a count. Useful
when tests fail after making changes and you forgot in which files.
9 After undo/redo, in the message show whether the buffer is modified or
not.
8 Use timestamps for undo, so that a version a certain time ago can be found
@@ -4612,6 +4634,7 @@ Options:
7 There is 'titleold', why is there no 'iconold'? (Chazelas)
7 Make 'scrolloff' a global-local option, so that it can be different in the
quickfix window, for example. (Gary Holloway)
Also do 'sidescrolloff'.
External commands:

View File

@@ -1,4 +1,4 @@
*various.txt* For Vim version 7.3. Last change: 2012 Dec 05
*various.txt* For Vim version 7.3. Last change: 2012 Dec 06
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -174,27 +174,37 @@ g8 Print the hex values of the bytes used in the
the command-line. {commands} are executed like they
are typed. For undo all commands are undone together.
Execution stops when an error is encountered.
If the [!] is given, mappings will not be used.
Without it, when this command is called from a
non-remappable mapping (|:noremap|), the argument can
be mapped anyway.
{commands} should be a complete command. If
{commands} does not finish a command, the last one
will be aborted as if <Esc> or <C-C> was typed.
The display isn't updated while ":normal" is busy.
This implies that an insert command must be completed
(to start Insert mode, see |:startinsert|). A ":"
command must be completed as well. And you can't use
"Q" or "gQ" to start Ex mode.
The display is not updated while ":normal" is busy.
{commands} cannot start with a space. Put a count of
1 (one) before it, "1 " is one space.
The 'insertmode' option is ignored for {commands}.
This command cannot be followed by another command,
since any '|' is considered part of the command.
This command can be used recursively, but the depth is
limited by 'maxmapdepth'.
When this command is called from a non-remappable
mapping |:noremap|, the argument can be mapped anyway.
An alternative is to use |:execute|, which uses an
expression as argument. This allows the use of
printable characters to represent special characters.
Example: >
:exe "normal \<c-w>\<c-w>"
< {not in Vi, of course}

View File

@@ -1,7 +1,7 @@
" Vim indent file
" Language: SQL
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
" Last Change: 2012 Dec 05
" Last Change: 2012 Dec 06
" Version: 3.0
" Download: http://vim.sourceforge.net/script.php?script_id=495
@@ -36,8 +36,6 @@ if exists("b:did_indent")
endif
let b:did_indent = 1
let b:current_indent = "sqlanywhere"
let s:keepcpo= &cpo
set cpo&vim
setlocal indentkeys-=0{
setlocal indentkeys-=0}
@@ -57,6 +55,13 @@ setlocal indentkeys+==~end,=~else,=~elseif,=~elsif,0=~when,0=)
" in the indentkeys is typed
setlocal indentexpr=GetSQLIndent()
" Only define the functions once.
if exists("*GetSQLIndent")
finish
endif
let s:keepcpo= &cpo
set cpo&vim
" List of all the statements that start a new block.
" These are typically words that start a line.
" IS is excluded, since it is difficult to determine when the

View File

@@ -2,7 +2,7 @@
" You can also use this as a start for your own set of menus.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2012 Oct 21
" Last Change: 2012 Dec 06
" Note that ":an" (short for ":anoremenu") is often used to make a menu work
" in all modes and avoid side effects from mappings defined by the user.
@@ -132,7 +132,7 @@ an 10.610 &File.Sa&ve-Exit<Tab>:wqa :confirm wqa<CR>
an 10.620 &File.E&xit<Tab>:qa :confirm qa<CR>
func! <SID>SelectAll()
exe "norm gg" . (&slm == "" ? "VG" : "gH\<C-O>G")
exe "norm! gg" . (&slm == "" ? "VG" : "gH\<C-O>G")
endfunc
func! s:FnameEscape(fname)

View File

@@ -1,7 +1,7 @@
" Vim syntax file
" Language: C
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2012 May 03
" Last Change: 2012 Dec 14
" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
@@ -93,16 +93,16 @@ endif
" This should be before cErrInParen to avoid problems with #define ({ xxx })
if exists("c_curly_error")
syntax match cCurlyError "}"
syntax region cBlock start="{" end="}" contains=ALLBUT,cBadBlock,cCurlyError,@cParenGroup,cErrInParen,cCppParen,cErrInBracket,cCppBracket,cCppString,@Spell fold
syn match cCurlyError "}"
syn region cBlock start="{" end="}" contains=ALLBUT,cBadBlock,cCurlyError,@cParenGroup,cErrInParen,cCppParen,cErrInBracket,cCppBracket,cCppString,@Spell fold
else
syntax region cBlock start="{" end="}" transparent fold
syn region cBlock start="{" end="}" transparent fold
endif
"catch errors caused by wrong parenthesis and brackets
" also accept <% for {, %> for }, <: for [ and :> for ] (C99)
" But avoid matching <::.
syn cluster cParenGroup contains=cParenError,cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserCont,cUserLabel,cBitField,cOctalZero,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom
syn cluster cParenGroup contains=cParenError,cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserLabel,cBitField,cOctalZero,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom
if exists("c_no_curly_error")
syn region cParen transparent start='(' end=')' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cCppParen,cCppString,@Spell
" cCppParen: same as cParen but ends at end-of-line; used in cDefine

View File

@@ -1,7 +1,7 @@
" Vim syntax file
" Language: php PHP 3/4/5
" Maintainer: Jason Woofenden <jason@jasonwoof.com>
" Last Change: Oct 20, 2011
" Last Change: Dec 11, 2012
" URL: https://gitorious.org/jasonwoof/vim-syntax/blobs/master/php.vim
" Former Maintainers: Peter Hodge <toomuchphp-vim@yahoo.com>
" Debian VIM Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
@@ -182,6 +182,7 @@ syn keyword phpFunctions assert_options assert dl extension_loaded get_cfg_var
syn keyword phpFunctions ingres_autocommit ingres_close ingres_commit ingres_connect ingres_fetch_array ingres_fetch_object ingres_fetch_row ingres_field_length ingres_field_name ingres_field_nullable ingres_field_precision ingres_field_scale ingres_field_type ingres_num_fields ingres_num_rows ingres_pconnect ingres_query ingres_rollback contained
syn keyword phpFunctions ircg_channel_mode ircg_disconnect ircg_fetch_error_msg ircg_get_username ircg_html_encode ircg_ignore_add ircg_ignore_del ircg_is_conn_alive ircg_join ircg_kick ircg_lookup_format_messages ircg_msg ircg_nick ircg_nickname_escape ircg_nickname_unescape ircg_notice ircg_part ircg_pconnect ircg_register_format_messages ircg_set_current ircg_set_file ircg_set_on_die ircg_topic ircg_whois contained
syn keyword phpFunctions java_last_exception_clear java_last_exception_get contained
syn keyword phpFunctions json_decode json_encode json_last_error contained
syn keyword phpFunctions ldap_8859_to_t61 ldap_add ldap_bind ldap_close ldap_compare ldap_connect ldap_count_entries ldap_delete ldap_dn2ufn ldap_err2str ldap_errno ldap_error ldap_explode_dn ldap_first_attribute ldap_first_entry ldap_first_reference ldap_free_result ldap_get_attributes ldap_get_dn ldap_get_entries ldap_get_option ldap_get_values_len ldap_get_values ldap_list ldap_mod_add ldap_mod_del ldap_mod_replace ldap_modify ldap_next_attribute ldap_next_entry ldap_next_reference ldap_parse_reference ldap_parse_result ldap_read ldap_rename ldap_search ldap_set_option ldap_set_rebind_proc ldap_sort ldap_start_tls ldap_t61_to_8859 ldap_unbind contained
syn keyword phpFunctions lzf_compress lzf_decompress lzf_optimized_for contained
syn keyword phpFunctions ezmlm_hash mail contained

View File

@@ -384,6 +384,9 @@ CFLAGS += -I$(MZSCHEME)/include -DFEAT_MZSCHEME -DMZSCHEME_COLLECTS=\"$(MZSCHEME
ifeq (yes, $(DYNAMIC_MZSCHEME))
CFLAGS += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
endif
ifeq (yes, "$(MZSCHEME_DEBUG)")
CFLAGS += -DMZSCHEME_FORCE_GC
endif
endif
ifdef RUBY

View File

@@ -1096,7 +1096,7 @@ $(OUTDIR)/if_perl.obj: $(OUTDIR) if_perl.c $(INCL)
$(OUTDIR)/if_perlsfio.obj: $(OUTDIR) if_perlsfio.c $(INCL)
$(CC) $(CFLAGS) $(PERL_INC) if_perlsfio.c
$(OUTDIR)/if_mzsch.obj: $(OUTDIR) if_mzsch.c $(INCL) $(MZSCHEME_EXTRA_DEP)
$(OUTDIR)/if_mzsch.obj: $(OUTDIR) if_mzsch.c if_mzsch.h $(INCL) $(MZSCHEME_EXTRA_DEP)
$(CC) $(CFLAGS) if_mzsch.c \
-DMZSCHEME_COLLECTS=\"$(MZSCHEME:\=\\)\\collects\"
mzscheme_base.c:

7
src/auto/configure vendored
View File

@@ -4927,7 +4927,8 @@ $as_echo "no" >&6; }
if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
if test "x$MACOSX" = "xyes"; then
MZSCHEME_LIBS="-framework PLT_MzScheme"
MZSCHEME_LIBS="-framework Racket"
MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then
MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"
MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
@@ -4968,6 +4969,10 @@ $as_echo_n "checking for racket collects directory... " >&6; }
else
if test -d $vi_cv_path_mzscheme_pfx/share/racket/collects; then
SCHEME_COLLECTS=$vi_cv_path_mzscheme_pfx/share/racket/
else
if test -d $vi_cv_path_mzscheme_pfx/collects; then
SCHEME_COLLECTS=$vi_cv_path_mzscheme_pfx/
fi
fi
fi
fi

View File

@@ -617,7 +617,8 @@ if test "$enable_mzschemeinterp" = "yes"; then
if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
if test "x$MACOSX" = "xyes"; then
MZSCHEME_LIBS="-framework PLT_MzScheme"
MZSCHEME_LIBS="-framework Racket"
MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then
MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"
MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
@@ -660,6 +661,10 @@ if test "$enable_mzschemeinterp" = "yes"; then
else
if test -d $vi_cv_path_mzscheme_pfx/share/racket/collects; then
SCHEME_COLLECTS=$vi_cv_path_mzscheme_pfx/share/racket/
else
if test -d $vi_cv_path_mzscheme_pfx/collects; then
SCHEME_COLLECTS=$vi_cv_path_mzscheme_pfx/
fi
fi
fi
fi

View File

@@ -7854,7 +7854,7 @@ static struct fst
{"ceil", 1, 1, f_ceil},
#endif
{"changenr", 0, 0, f_changenr},
{"char2nr", 1, 1, f_char2nr},
{"char2nr", 1, 2, f_char2nr},
{"cindent", 1, 1, f_cindent},
{"clearmatches", 0, 0, f_clearmatches},
{"col", 1, 1, f_col},
@@ -8003,7 +8003,7 @@ static struct fst
{"mzeval", 1, 1, f_mzeval},
#endif
{"nextnonblank", 1, 1, f_nextnonblank},
{"nr2char", 1, 1, f_nr2char},
{"nr2char", 1, 2, f_nr2char},
{"or", 2, 2, f_or},
{"pathshorten", 1, 1, f_pathshorten},
#ifdef FEAT_FLOAT
@@ -9303,7 +9303,17 @@ f_char2nr(argvars, rettv)
{
#ifdef FEAT_MBYTE
if (has_mbyte)
rettv->vval.v_number = (*mb_ptr2char)(get_tv_string(&argvars[0]));
{
int utf8 = 0;
if (argvars[1].v_type != VAR_UNKNOWN)
utf8 = get_tv_number_chk(&argvars[1], NULL);
if (utf8)
rettv->vval.v_number = (*utf_ptr2char)(get_tv_string(&argvars[0]));
else
rettv->vval.v_number = (*mb_ptr2char)(get_tv_string(&argvars[0]));
}
else
#endif
rettv->vval.v_number = get_tv_string(&argvars[0])[0];
@@ -14323,6 +14333,22 @@ f_mzeval(argvars, rettv)
str = get_tv_string_buf(&argvars[0], buf);
do_mzeval(str, rettv);
}
void
mzscheme_call_vim(name, args, rettv)
char_u *name;
typval_T *args;
typval_T *rettv;
{
typval_T argvars[3];
argvars[0].v_type = VAR_STRING;
argvars[0].vval.v_string = name;
copy_tv(args, &argvars[1]);
argvars[2].v_type = VAR_UNKNOWN;
f_call(argvars, rettv);
clear_tv(&argvars[1]);
}
#endif
/*
@@ -14360,7 +14386,16 @@ f_nr2char(argvars, rettv)
#ifdef FEAT_MBYTE
if (has_mbyte)
buf[(*mb_char2bytes)((int)get_tv_number(&argvars[0]), buf)] = NUL;
{
int utf8 = 0;
if (argvars[1].v_type != VAR_UNKNOWN)
utf8 = get_tv_number_chk(&argvars[1], NULL);
if (utf8)
buf[(*utf_char2bytes)((int)get_tv_number(&argvars[0]), buf)] = NUL;
else
buf[(*mb_char2bytes)((int)get_tv_number(&argvars[0]), buf)] = NUL;
}
else
#endif
{

View File

@@ -4727,6 +4727,8 @@ do_sub(eap)
}
else
{
char_u *orig_line = NULL;
int len_change = 0;
#ifdef FEAT_FOLDING
int save_p_fen = curwin->w_p_fen;
@@ -4737,9 +4739,43 @@ do_sub(eap)
temp = RedrawingDisabled;
RedrawingDisabled = 0;
if (new_start != NULL)
{
/* There already was a substitution, we would
* like to show this to the user. We cannot
* really update the line, it would change
* what matches. Temporarily replace the line
* and change it back afterwards. */
orig_line = vim_strsave(ml_get(lnum));
if (orig_line != NULL)
{
char_u *new_line = concat_str(new_start,
sub_firstline + copycol);
if (new_line == NULL)
{
vim_free(orig_line);
orig_line = NULL;
}
else
{
/* Position the cursor relative to the
* end of the line, the previous
* substitute may have inserted or
* deleted characters before the
* cursor. */
len_change = STRLEN(new_line)
- STRLEN(orig_line);
curwin->w_cursor.col += len_change;
ml_replace(lnum, new_line, FALSE);
}
}
}
search_match_lines = regmatch.endpos[0].lnum
- regmatch.startpos[0].lnum;
search_match_endcol = regmatch.endpos[0].col;
search_match_endcol = regmatch.endpos[0].col
+ len_change;
highlight_match = TRUE;
update_topline();
@@ -4781,6 +4817,10 @@ do_sub(eap)
msg_didout = FALSE; /* don't scroll up */
msg_col = 0;
gotocmdline(TRUE);
/* restore the line */
if (orig_line != NULL)
ml_replace(lnum, orig_line, FALSE);
}
need_wait_return = FALSE; /* no hit-return prompt */
@@ -5045,14 +5085,10 @@ skip:
* The check for nmatch_tl is needed for when multi-line
* matching must replace the lines before trying to do another
* match, otherwise "\@<=" won't work.
* When asking the user we like to show the already replaced
* text, but don't do it when "\<@=" or "\<@!" is used, it
* changes what matches.
* When the match starts below where we start searching also
* need to replace the line first (using \zs after \n).
*/
if (lastone
|| (do_ask && !re_lookbehind(regmatch.regprog))
|| nmatch_tl > 0
|| (nmatch = vim_regexec_multi(&regmatch, curwin,
curbuf, sub_firstlnum,

View File

@@ -7243,6 +7243,9 @@ buf_reload(buf, orig_mode)
* reset it, might have had a read error. */
if (orig_mode == curbuf->b_orig_mode)
curbuf->b_p_ro |= old_ro;
/* Modelines must override settings done by autocommands. */
do_modelines(0);
}
/* restore curwin/curbuf and a few other things */

View File

@@ -1002,6 +1002,9 @@ gui_get_wide_font()
else
#endif
gui.wide_font = font;
#ifdef FEAT_GUI_MSWIN
gui_mch_wide_font_changed();
#endif
return OK;
}
#endif
@@ -2380,7 +2383,9 @@ gui_outstr_nowrap(s, len, flags, fg, bg, back)
int cl; /* byte length of current char */
int comping; /* current char is composing */
int scol = col; /* screen column */
int dowide; /* use 'guifontwide' */
int curr_wide; /* use 'guifontwide' */
int prev_wide = FALSE;
int wide_changed;
/* Break the string at a composing character, it has to be drawn on
* top of the previous character. */
@@ -2395,9 +2400,9 @@ gui_outstr_nowrap(s, len, flags, fg, bg, back)
&& fontset == NOFONTSET
# endif
&& gui.wide_font != NOFONT)
dowide = TRUE;
curr_wide = TRUE;
else
dowide = FALSE;
curr_wide = FALSE;
comping = utf_iscomposing(c);
if (!comping) /* count cells from non-composing chars */
cells += cn;
@@ -2405,9 +2410,11 @@ gui_outstr_nowrap(s, len, flags, fg, bg, back)
if (cl == 0) /* hit end of string */
len = i + cl; /* len must be wrong "cannot happen" */
/* print the string so far if it's the last character or there is
wide_changed = curr_wide != prev_wide;
/* Print the string so far if it's the last character or there is
* a composing character. */
if (i + cl >= len || (comping && i > start) || dowide
if (i + cl >= len || (comping && i > start) || wide_changed
# if defined(FEAT_GUI_X11)
|| (cn > 1
# ifdef FEAT_XFONTSET
@@ -2419,25 +2426,28 @@ gui_outstr_nowrap(s, len, flags, fg, bg, back)
# endif
)
{
if (comping || dowide)
if (comping || wide_changed)
thislen = i - start;
else
thislen = i - start + cl;
if (thislen > 0)
{
if (prev_wide)
gui_mch_set_font(gui.wide_font);
gui_mch_draw_string(gui.row, scol, s + start, thislen,
draw_flags);
if (prev_wide)
gui_mch_set_font(font);
start += thislen;
}
scol += cells;
cells = 0;
if (dowide)
/* Adjust to not draw a character which width is changed
* against with last one. */
if (wide_changed && !comping)
{
gui_mch_set_font(gui.wide_font);
gui_mch_draw_string(gui.row, scol - cn,
s + start, cl, draw_flags);
gui_mch_set_font(font);
start += cl;
scol -= cn;
cl = 0;
}
# if defined(FEAT_GUI_X11)
@@ -2447,7 +2457,7 @@ gui_outstr_nowrap(s, len, flags, fg, bg, back)
# ifdef FEAT_XFONTSET
&& fontset == NOFONTSET
# endif
&& !dowide)
&& !wide_changed)
gui_mch_draw_string(gui.row, scol - 1, (char_u *)" ",
1, draw_flags);
# endif
@@ -2465,6 +2475,7 @@ gui_outstr_nowrap(s, len, flags, fg, bg, back)
# endif
start = i + cl;
}
prev_wide = curr_wide;
}
/* The stuff below assumes "len" is the length in screen columns. */
len = scol - col;

View File

@@ -3130,8 +3130,16 @@ gui_mch_init(void)
* exits on failure, but that's a non-issue because we already called
* gtk_init_check() in gui_mch_init_check(). */
if (using_gnome)
{
gnome_program_init(VIMPACKAGE, VIM_VERSION_SHORT,
LIBGNOMEUI_MODULE, gui_argc, gui_argv, NULL);
# if defined(FEAT_FLOAT) && defined(LC_NUMERIC)
/* Make sure strtod() uses a decimal point, not a comma. Gnome init
* may change it. */
if (setlocale(LC_NUMERIC, NULL) != (char *) "C")
setlocale(LC_NUMERIC, "C");
# endif
}
#endif
vim_free(gui_argv);
gui_argv = NULL;

View File

@@ -323,10 +323,15 @@ static void TrackUserActivity __ARGS((UINT uMsg));
/*
* For control IME.
*
* These LOGFONT used for IME.
*/
#ifdef FEAT_MBYTE
# ifdef USE_IM_CONTROL
/* holds LOGFONT for 'guifontwide' if available, otherwise 'guifont' */
static LOGFONT norm_logfont;
/* holds LOGFONT for 'guifont' always. */
static LOGFONT sub_logfont;
# endif
#endif
@@ -3090,6 +3095,40 @@ logfont2name(LOGFONT lf)
return res;
}
#ifdef FEAT_MBYTE_IME
/*
* Set correct LOGFONT to IME. Use 'guifontwide' if available, otherwise use
* 'guifont'
*/
static void
update_im_font()
{
LOGFONT lf_wide;
if (p_guifontwide != NULL && *p_guifontwide != NUL
&& gui.wide_font != NOFONT
&& GetObject((HFONT)gui.wide_font, sizeof(lf_wide), &lf_wide))
norm_logfont = lf_wide;
else
norm_logfont = sub_logfont;
im_set_font(&norm_logfont);
}
#endif
#ifdef FEAT_MBYTE
/*
* Handler of gui.wide_font (p_guifontwide) changed notification.
*/
void
gui_mch_wide_font_changed()
{
# ifdef FEAT_MBYTE_IME
update_im_font();
# endif
}
#endif
/*
* Initialise vim to use the font with the given name.
* Return FAIL if the font could not be loaded, OK otherwise.
@@ -3112,9 +3151,10 @@ gui_mch_init_font(char_u *font_name, int fontset)
font_name = lf.lfFaceName;
#if defined(FEAT_MBYTE_IME) || defined(GLOBAL_IME)
norm_logfont = lf;
sub_logfont = lf;
#endif
#ifdef FEAT_MBYTE_IME
im_set_font(&lf);
update_im_font();
#endif
gui_mch_free_font(gui.norm_font);
gui.norm_font = font;

File diff suppressed because it is too large Load Diff

View File

@@ -7,6 +7,7 @@
#ifdef __MINGW32__
/* Hack to engage Cygwin-specific settings */
# define __CYGWIN32__
# include <stdint.h>
#endif
/* #ifdef needed for "make depend" */
@@ -20,31 +21,24 @@
#endif
#if MZSCHEME_VERSION_MAJOR >= 299
/* macros to be compatible with 20x versions */
# define scheme_config scheme_current_config()
# define scheme_make_string scheme_make_byte_string
# define scheme_make_string_output_port scheme_make_byte_string_output_port
# define scheme_get_sized_string_output scheme_get_sized_byte_string_output
# define scheme_write_string scheme_write_byte_string
# define scheme_make_sized_string scheme_make_sized_byte_string
# define SCHEME_STRINGP(obj) (SCHEME_BYTE_STRINGP(obj) || SCHEME_CHAR_STRINGP(obj))
# define SCHEME_STR_VAL(obj) SCHEME_BYTE_STR_VAL( \
(SCHEME_BYTE_STRINGP(obj) ? obj : scheme_char_string_to_byte_string(obj)))
# define GUARANTEE_STRING(fname, argnum) GUARANTEE_TYPE(fname, argnum, SCHEME_STRINGP, "string")
# ifdef scheme_format
# undef scheme_format
# endif
# define scheme_format scheme_format_utf8
# define SCHEME_GET_BYTE_STRING(obj) (SCHEME_BYTE_STRINGP(obj) ? obj : \
scheme_char_string_to_byte_string(obj))
# define BYTE_STRING_VALUE(obj) ((char_u *)SCHEME_BYTE_STR_VAL(obj))
#else
# define SCHEME_GET_BYTE_STRING(obj) (obj)
/* macros for compatibility with older versions */
# define scheme_current_config() scheme_config
# define scheme_make_sized_byte_string scheme_make_sized_string
# define scheme_format_utf8 scheme_format
# ifndef DYNAMIC_MZSCHEME
/* for dynamic MzScheme there will be separate definitions in if_mzsch.c */
# define scheme_get_sized_byte_string_output scheme_get_sized_string_output
# define scheme_make_byte_string scheme_make_string
# define scheme_make_byte_string_output_port scheme_make_string_output_port
# endif
# define SCHEME_BYTE_STRLEN_VAL SCHEME_STRLEN_VAL
# define SCHEME_BYTE_STR_VAL SCHEME_STR_VAL
# define BYTE_STRING_VALUE(obj) ((char_u *)SCHEME_STR_VAL(obj))
# define scheme_byte_string_to_char_string(obj) (obj)
# define SCHEME_BYTE_STRINGP SCHEME_STRINGP
#endif
/* Precise GC macros */

View File

@@ -740,12 +740,11 @@ Python_Init(void)
#else
PyMac_Initialize();
#endif
/* Initialise threads, and save the state using PyGILState_Ensure.
* Without the call to PyGILState_Ensure, thread specific state (such
* as the system trace hook), will be lost between invocations of
* Python code. */
/* Initialise threads, and below save the state using
* PyGILState_Ensure. Without the call to PyGILState_Ensure, thread
* specific state (such as the system trace hook), will be lost
* between invocations of Python code. */
PyEval_InitThreads();
pygilstate = PyGILState_Ensure();
#ifdef DYNAMIC_PYTHON
get_exceptions();
#endif
@@ -756,6 +755,10 @@ Python_Init(void)
if (PythonMod_Init())
goto fail;
/* The first python thread is vim's, release the lock. */
Python_SaveThread();
pygilstate = PyGILState_Ensure();
globals = PyModule_GetDict(PyImport_AddModule("__main__"));
/* Remove the element from sys.path that was added because of our
@@ -764,8 +767,7 @@ Python_Init(void)
* the current directory in sys.path. */
PyRun_SimpleString("import sys; sys.path = filter(lambda x: x != '/must>not&exist', sys.path)");
/* the first python thread is vim's, release the lock */
Python_SaveThread();
PyGILState_Release(pygilstate);
initialised = 1;
}

View File

@@ -868,12 +868,20 @@ remove_bom(s)
int
mb_get_class(p)
char_u *p;
{
return mb_get_class_buf(p, curbuf);
}
int
mb_get_class_buf(p, buf)
char_u *p;
buf_T *buf;
{
if (MB_BYTE2LEN(p[0]) == 1)
{
if (p[0] == NUL || vim_iswhite(p[0]))
return 0;
if (vim_iswordc(p[0]))
if (vim_iswordc_buf(p[0], buf))
return 2;
return 1;
}
@@ -4325,7 +4333,8 @@ get_iconv_import_func(HINSTANCE hInst, const char *funcname)
{
if (IMAGE_SNAP_BY_ORDINAL(pINT->u1.Ordinal))
continue;
pImpName = (PIMAGE_IMPORT_BY_NAME)(pImage + pINT->u1.AddressOfData);
pImpName = (PIMAGE_IMPORT_BY_NAME)(pImage
+ (UINT_PTR)(pINT->u1.AddressOfData));
if (strcmp(pImpName->Name, funcname) == 0)
return (void *)pIAT->u1.Function;
}

View File

@@ -7552,6 +7552,7 @@ nv_gomark(cap)
#endif
#ifdef FEAT_FOLDING
if (cap->oap->op_type == OP_NOP
&& pos != NULL
&& (pos == (pos_T *)-1 || !equalpos(old_cursor, *pos))
&& (fdo_flags & FDO_MARK)
&& old_KeyTyped)

View File

@@ -278,7 +278,8 @@ static struct signalinfo
#ifdef SIGBUS
{SIGBUS, "BUS", TRUE},
#endif
#ifdef SIGSEGV
#if defined(SIGSEGV) && !defined(FEAT_MZSCHEME)
/* MzScheme uses SEGV in its garbage collector */
{SIGSEGV, "SEGV", TRUE},
#endif
#ifdef SIGSYS
@@ -3778,7 +3779,7 @@ wait4pid(child, status)
# endif
if (wait_pid == 0)
{
/* Wait for 1/100 sec before trying again. */
/* Wait for 10 msec before trying again. */
mch_delay(10L, TRUE);
continue;
}
@@ -4797,7 +4798,7 @@ finished:
{
/* LINTED avoid "bitwise operation on signed value" */
retval = WEXITSTATUS(status);
if (retval && !emsg_silent)
if (retval != 0 && !emsg_silent)
{
if (retval == EXEC_FAILED)
{

View File

@@ -176,6 +176,10 @@ uninstall:
converted: $(MOCONVERTED)
# nl.po was added later, if it does not exist use an empty file.
nl.po:
touch nl.po
# Norwegian/Bokmal: "nb" is an alias for "no".
# Copying the file is not efficient, but I don't know of another way to make
# this work.

View File

@@ -2754,16 +2754,16 @@ msgid "-Z\t\t\tRestricted mode (like \"rvim\")"
msgstr "-Z\t\t\tEingeschr<68>nkter Modus (wie \"rvim\")"
msgid "-m\t\t\tModifications (writing files) not allowed"
msgstr "-m\t\t\tModifikatioen (beim Schreiben von Dateien) sind nicht erlaubt"
msgstr "-m\t\t\tModifikationen (beim Schreiben von Dateien) sind nicht erlaubt"
msgid "-M\t\t\tModifications in text not allowed"
msgstr "-M\t\t\tModifikatioen im Text nicht erlaubt"
msgstr "-M\t\t\tModifikationen im Text nicht erlaubt"
msgid "-b\t\t\tBinary mode"
msgstr "-b\t\t\tBin<69>rmodus"
msgid "-l\t\t\tLisp mode"
msgstr "-l\t\t\tList Modus"
msgstr "-l\t\t\tLisp Modus"
msgid "-C\t\t\tCompatible with Vi: 'compatible'"
msgstr "-C\t\t\tKompatibel zu Vi: 'compatible'"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -74,6 +74,7 @@ long get_dict_number __ARGS((dict_T *d, char_u *key));
char_u *get_function_name __ARGS((expand_T *xp, int idx));
char_u *get_expr_name __ARGS((expand_T *xp, int idx));
int func_call __ARGS((char_u *name, typval_T *args, dict_T *selfdict, typval_T *rettv));
void mzscheme_call_vim __ARGS((char_u *name, typval_T *args, typval_T *rettv));
long do_searchpair __ARGS((char_u *spat, char_u *mpat, char_u *epat, int dir, char_u *skip, int flags, pos_T *match_pos, linenr_T lnum_stop, long time_limit));
void set_vim_var_nr __ARGS((int idx, long val));
long get_vim_var_nr __ARGS((int idx));

View File

@@ -50,6 +50,7 @@ void gui_mch_delete_lines __ARGS((int row, int num_lines));
void gui_mch_insert_lines __ARGS((int row, int num_lines));
void gui_mch_exit __ARGS((int rc));
int gui_mch_init_font __ARGS((char_u *font_name, int fontset));
void gui_mch_wide_font_changed __ARGS((void));
int gui_mch_maximized __ARGS((void));
void gui_mch_newfont __ARGS((void));
void gui_mch_settitle __ARGS((char_u *title, char_u *icon));

View File

@@ -50,6 +50,7 @@ void gui_mch_delete_lines __ARGS((int row, int num_lines));
void gui_mch_insert_lines __ARGS((int row, int num_lines));
void gui_mch_exit __ARGS((int rc));
int gui_mch_init_font __ARGS((char_u *font_name, int fontset));
void gui_mch_wide_font_changed __ARGS((void));
int gui_mch_maximized __ARGS((void));
void gui_mch_newfont __ARGS((void));
void gui_mch_settitle __ARGS((char_u *title, char_u *icon));

View File

@@ -4,6 +4,7 @@ char_u *mb_init __ARGS((void));
int bomb_size __ARGS((void));
void remove_bom __ARGS((char_u *s));
int mb_get_class __ARGS((char_u *p));
int mb_get_class_buf __ARGS((char_u *p, buf_T *buf));
int dbcs_class __ARGS((unsigned lead, unsigned trail));
int latin_char2len __ARGS((int c));
int latin_char2bytes __ARGS((int c, char_u *buf));

View File

@@ -3413,7 +3413,7 @@ static unsigned reg_tofreelen;
* reg_startpos <invalid> reg_mmatch->startpos
* reg_endpos <invalid> reg_mmatch->endpos
* reg_win NULL window in which to search
* reg_buf <invalid> buffer in which to search
* reg_buf curbuf buffer in which to search
* reg_firstlnum <invalid> first line in which to search
* reg_maxline 0 last line nr
* reg_line_lbr FALSE or TRUE FALSE
@@ -3571,6 +3571,7 @@ vim_regexec(rmp, line, col)
reg_mmatch = NULL;
reg_maxline = 0;
reg_line_lbr = FALSE;
reg_buf = curbuf;
reg_win = NULL;
ireg_ic = rmp->rm_ic;
#ifdef FEAT_MBYTE
@@ -3595,6 +3596,7 @@ vim_regexec_nl(rmp, line, col)
reg_mmatch = NULL;
reg_maxline = 0;
reg_line_lbr = TRUE;
reg_buf = curbuf;
reg_win = NULL;
ireg_ic = rmp->rm_ic;
#ifdef FEAT_MBYTE
@@ -4011,8 +4013,8 @@ static int reg_prev_class __ARGS((void));
reg_prev_class()
{
if (reginput > regline)
return mb_get_class(reginput - 1
- (*mb_head_off)(regline, reginput - 1));
return mb_get_class_buf(reginput - 1
- (*mb_head_off)(regline, reginput - 1), reg_buf);
return -1;
}
@@ -4302,7 +4304,7 @@ regmatch(scan)
int this_class;
/* Get class of current and previous char (if it exists). */
this_class = mb_get_class(reginput);
this_class = mb_get_class_buf(reginput, reg_buf);
if (this_class <= 1)
status = RA_NOMATCH; /* not on a word at all */
else if (reg_prev_class() == this_class)
@@ -4311,8 +4313,8 @@ regmatch(scan)
#endif
else
{
if (!vim_iswordc_buf(c, reg_buf)
|| (reginput > regline && vim_iswordc_buf(reginput[-1], reg_buf)))
if (!vim_iswordc_buf(c, reg_buf) || (reginput > regline
&& vim_iswordc_buf(reginput[-1], reg_buf)))
status = RA_NOMATCH;
}
break;
@@ -4326,7 +4328,7 @@ regmatch(scan)
int this_class, prev_class;
/* Get class of current and previous char (if it exists). */
this_class = mb_get_class(reginput);
this_class = mb_get_class_buf(reginput, reg_buf);
prev_class = reg_prev_class();
if (this_class == prev_class
|| prev_class == 0 || prev_class == 1)
@@ -4363,14 +4365,14 @@ regmatch(scan)
break;
case KWORD:
if (!vim_iswordp(reginput))
if (!vim_iswordp_buf(reginput, reg_buf))
status = RA_NOMATCH;
else
ADVANCE_REGINPUT();
break;
case SKWORD:
if (VIM_ISDIGIT(*reginput) || !vim_iswordp(reginput))
if (VIM_ISDIGIT(*reginput) || !vim_iswordp_buf(reginput, reg_buf))
status = RA_NOMATCH;
else
ADVANCE_REGINPUT();
@@ -5732,7 +5734,8 @@ regrepeat(p, maxcount)
case SKWORD + ADD_NL:
while (count < maxcount)
{
if (vim_iswordp(scan) && (testval || !VIM_ISDIGIT(*scan)))
if (vim_iswordp_buf(scan, reg_buf)
&& (testval || !VIM_ISDIGIT(*scan)))
{
mb_ptr_adv(scan);
}
@@ -7135,6 +7138,7 @@ vim_regsub(rmp, source, dest, copy, magic, backslash)
reg_match = rmp;
reg_mmatch = NULL;
reg_maxline = 0;
reg_buf = curbuf;
return vim_regsub_both(source, dest, copy, magic, backslash);
}
#endif

View File

@@ -2319,6 +2319,7 @@ fold_line(wp, fold_count, foldinfo, lnum, row)
{
int w = number_width(wp);
long num;
char *fmt = "%*ld ";
if (len > w + 1)
len = w + 1;
@@ -2327,10 +2328,17 @@ fold_line(wp, fold_count, foldinfo, lnum, row)
/* 'number' */
num = (long)lnum;
else
{
/* 'relativenumber', don't use negative numbers */
num = labs((long)get_cursor_rel_lnum(wp, lnum));
if (num == 0)
{
num = lnum;
fmt = "%-*ld ";
}
}
sprintf((char *)buf, "%*ld ", w, num);
sprintf((char *)buf, fmt, w, num);
#ifdef FEAT_RIGHTLEFT
if (wp->w_p_rl)
/* the line number isn't reversed */
@@ -3484,15 +3492,23 @@ win_line(wp, lnum, startrow, endrow, nochange)
)
{
long num;
char *fmt = "%*ld ";
if (wp->w_p_nu)
/* 'number' */
num = (long)lnum;
else
{
/* 'relativenumber', don't use negative numbers */
num = labs((long)get_cursor_rel_lnum(wp, lnum));
if (num == 0)
{
num = lnum;
fmt = "%-*ld ";
}
}
sprintf((char *)extra, "%*ld ",
sprintf((char *)extra, fmt,
number_width(wp), num);
if (wp->w_skipcol > 0)
for (p_extra = extra; *p_extra == ' '; ++p_extra)
@@ -3513,7 +3529,8 @@ win_line(wp, lnum, startrow, endrow, nochange)
* the current line differently.
* TODO: Can we use CursorLine instead of CursorLineNr
* when CursorLineNr isn't set? */
if (wp->w_p_cul && lnum == wp->w_cursor.lnum)
if ((wp->w_p_cul || wp->w_p_rnu)
&& lnum == wp->w_cursor.lnum)
char_attr = hl_attr(HLF_CLN);
#endif
}
@@ -10238,12 +10255,7 @@ number_width(wp)
int n;
linenr_T lnum;
if (wp->w_p_nu)
/* 'number' */
lnum = wp->w_buffer->b_ml.ml_line_count;
else
/* 'relativenumber' */
lnum = wp->w_height;
lnum = wp->w_buffer->b_ml.ml_line_count;
if (lnum == wp->w_nrwidth_line_count)
return wp->w_nrwidth_width;

View File

@@ -572,7 +572,8 @@ searchit(win, buf, pos, dir, pat, count, options, pat_use, stop_lnum, tm)
extra_col = 0;
#ifdef FEAT_MBYTE
/* Watch out for the "col" being MAXCOL - 2, used in a closed fold. */
else if (has_mbyte && pos->lnum >= 1 && pos->lnum <= buf->b_ml.ml_line_count
else if (dir != BACKWARD && has_mbyte
&& pos->lnum >= 1 && pos->lnum <= buf->b_ml.ml_line_count
&& pos->col < MAXCOL - 2)
{
ptr = ml_get_buf(buf, pos->lnum, FALSE) + pos->col;

View File

@@ -29,6 +29,9 @@ x/[\U1234abcd\u1234\uabcd]
x/\%d21879b
x/ [[=A=]]* [[=B=]]* [[=C=]]* [[=D=]]* [[=E=]]* [[=F=]]* [[=G=]]* [[=H=]]* [[=I=]]* [[=J=]]* [[=K=]]* [[=L=]]* [[=M=]]* [[=N=]]* [[=O=]]* [[=P=]]* [[=Q=]]* [[=R=]]* [[=S=]]* [[=T=]]* [[=U=]]* [[=V=]]* [[=W=]]* [[=X=]]* [[=Y=]]* [[=Z=]]*/e
x/ [[=a=]]* [[=b=]]* [[=c=]]* [[=d=]]* [[=e=]]* [[=f=]]* [[=g=]]* [[=h=]]* [[=i=]]* [[=j=]]* [[=k=]]* [[=l=]]* [[=m=]]* [[=n=]]* [[=o=]]* [[=p=]]* [[=q=]]* [[=r=]]* [[=s=]]* [[=t=]]* [[=u=]]* [[=v=]]* [[=w=]]* [[=x=]]* [[=y=]]* [[=z=]]*/e
x:" Test backwards search from a multi-byte char
/x
x?.
x:?^1?,$w! test.out
:e! test.out
G:put =matchstr(\"אבגד\", \".\", 0, 2) " ב
@@ -57,3 +60,4 @@ f
g a啷bb
h AÀÁÂÃÄÅĀĂĄǍǞǠẢ BḂḆ CÇĆĈĊČ DĎĐḊḎḐ EÈÉÊËĒĔĖĘĚẺẼ FḞ GĜĞĠĢǤǦǴḠ HĤĦḢḦḨ IÌÍÎÏĨĪĬĮİǏỈ JĴ KĶǨḰḴ LĹĻĽĿŁḺ MḾṀ NÑŃŅŇṄṈ OÒÓÔÕÖØŌŎŐƠǑǪǬỎ PṔṖ Q RŔŖŘṘṞ SŚŜŞŠṠ TŢŤŦṪṮ UÙÚÛÜŨŪŬŮŰŲƯǓỦ VṼ WŴẀẂẄẆ XẊẌ YÝŶŸẎỲỶỸ ZŹŻŽƵẐẔ
i aàáâãäåāăąǎǟǡả bḃḇ cçćĉċč dďđḋḏḑ eèéêëēĕėęěẻẽ fḟ gĝğġģǥǧǵḡ hĥħḣḧḩẖ iìíîïĩīĭįǐỉ jĵǰ kķǩḱḵ lĺļľŀłḻ mḿṁ nñńņňʼnṅṉ oòóôõöøōŏőơǒǫǭỏ pṕṗ q rŕŗřṙṟ sśŝşšṡ tţťŧṫṯẗ uùúûüũūŭůűųưǔủ vṽ wŵẁẃẅẇẘ xẋẍ yýÿŷẏẙỳỷỹ zźżžƶẑẕ
j 0123❤x

View File

@@ -16,6 +16,7 @@ f z
g abb
h AÀÁÂÃÄÅĀĂĄǍǞǠẢ BḂḆ CÇĆĈĊČ DĎĐḊḎḐ EÈÉÊËĒĔĖĘĚẺẼ FḞ GĜĞĠĢǤǦǴḠ HĤĦḢḦḨ IÌÍÎÏĨĪĬĮİǏỈ JĴ KĶǨḰḴ LĹĻĽĿŁḺ MḾṀ NÑŃŅŇṄṈ OÒÓÔÕÖØŌŎŐƠǑǪǬỎ PṔṖ Q RŔŖŘṘṞ SŚŜŞŠṠ TŢŤŦṪṮ UÙÚÛÜŨŪŬŮŰŲƯǓỦ VṼ WŴẀẂẄẆ XẊẌ YÝŶŸẎỲỶỸ ZŹŻŽƵẐ
i aàáâãäåāăąǎǟǡả bḃḇ cçćĉċč dďđḋḏḑ eèéêëēĕėęěẻẽ fḟ gĝğġģǥǧǵḡ hĥħḣḧḩẖ iìíîïĩīĭįǐỉ jĵǰ kķǩḱḵ lĺļľŀłḻ mḿṁ nñńņňʼnṅṉ oòóôõöøōŏőơǒǫǭỏ pṕṗ q rŕŗřṙṟ sśŝşšṡ tţťŧṫṯẗ uùúûüũūŭůűųưǔủ vṽ wŵẁẃẅẇẘ xẋẍ yýÿŷẏẙỳỷỹ zźżžƶẑ
j 012❤
ב
בג
א

View File

@@ -38,12 +38,23 @@ STARTTEST
:" circular list (at the same time test lists containing lists)
:mz (set-car! (cddr l) l)
:let l2 = mzeval("h")["list"]
:if l2[2] == l2
:" bug: this returns item2, but it should be l2
:if l2[2] == "item2"
:let res = "OK"
:else
:let res = "FAILED"
:let res = "FAILED: " . l2[2]
:endif
:call setline(search("^3"), "circular test " . res)
:" funcrefs
:mz (define vim:max (vim-eval "function('max')"))
:mz (define m (vim:max '(1 100 8)))
:let m = mzeval('m')
:if m == 100
:let fref_res = "OK"
:else
:let fref_res = "FAILED: " . m
:end
:call append(line('$'), 'funcrefs '. fref_res)
:?^1?,$w! test.out
:qa!
ENDTEST

View File

@@ -3,3 +3,4 @@ scalar test OK
2 line 2
dictionary with list OK
circular test OK
funcrefs OK

View File

@@ -725,6 +725,38 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
792,
/**/
791,
/**/
790,
/**/
789,
/**/
788,
/**/
787,
/**/
786,
/**/
785,
/**/
784,
/**/
783,
/**/
782,
/**/
781,
/**/
780,
/**/
779,
/**/
778,
/**/
777,
/**/
776,
/**/