mirror of
https://github.com/zoriya/vim.git
synced 2025-12-26 00:56:08 +00:00
Compare commits
21 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
595cad2ea1 | ||
|
|
00462ffb7d | ||
|
|
9952c102dd | ||
|
|
745c6eb29b | ||
|
|
917789fdf7 | ||
|
|
e6a2fa6573 | ||
|
|
dd40734800 | ||
|
|
95235e64d8 | ||
|
|
0300e465aa | ||
|
|
3b26239341 | ||
|
|
3b7ac49e26 | ||
|
|
7cba6c0636 | ||
|
|
bec9c20884 | ||
|
|
9be4481892 | ||
|
|
78c93e4b6a | ||
|
|
00b764aa41 | ||
|
|
f0d9e00537 | ||
|
|
966d71c852 | ||
|
|
65f04f67f1 | ||
|
|
4dee1bb0db | ||
|
|
4e4f529792 |
@@ -1,4 +1,4 @@
|
||||
*change.txt* For Vim version 7.4. Last change: 2013 Jul 17
|
||||
*change.txt* For Vim version 7.4. Last change: 2013 Aug 25
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1126,6 +1126,8 @@ less than one line (the small delete register is used then). An exception is
|
||||
made for the delete operator with these movement commands: |%|, |(|, |)|, |`|,
|
||||
|/|, |?|, |n|, |N|, |{| and |}|. Register "1 is always used then (this is Vi
|
||||
compatible). The "- register is used as well if the delete is within a line.
|
||||
Note that these character may be mapped. E.g. |%| is mapped by the matchit
|
||||
plugin.
|
||||
With each successive deletion or change, Vim shifts the previous contents
|
||||
of register 1 into register 2, 2 into 3, and so forth, losing the previous
|
||||
contents of register 9.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*eval.txt* For Vim version 7.4. Last change: 2013 Aug 03
|
||||
*eval.txt* For Vim version 7.4. Last change: 2013 Aug 24
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -123,6 +123,7 @@ around the arguments, to invoke the function it refers to. Example: >
|
||||
:echo Fn()
|
||||
< *E704* *E705* *E707*
|
||||
A Funcref variable must start with a capital, "s:", "w:", "t:" or "b:". You
|
||||
can use "g:" but the following name must still start with a capital. You
|
||||
cannot have both a Funcref variable and a function with the same name.
|
||||
|
||||
A special case is defining a function and directly assigning its Funcref to a
|
||||
@@ -6337,6 +6338,7 @@ There are three types of features:
|
||||
< Note that it's possible for patch 147 to be omitted even though 148 is
|
||||
included.
|
||||
|
||||
acl Compiled with |ACL| support.
|
||||
all_builtin_terms Compiled with all builtin terminals enabled.
|
||||
amiga Amiga version of Vim.
|
||||
arabic Compiled with Arabic support |Arabic|.
|
||||
@@ -6503,7 +6505,9 @@ windows Compiled with support for more than one window.
|
||||
writebackup Compiled with 'writebackup' default on.
|
||||
xfontset Compiled with X fontset support |xfontset|.
|
||||
xim Compiled with X input method support |xim|.
|
||||
xpm_w32 Compiled with pixmap support for Win32.
|
||||
xpm Compiled with pixmap support.
|
||||
xpm_w32 Compiled with pixmap support for Win32. (Only for
|
||||
backward compatibility. Use "xpm" instead.)
|
||||
xsmp Compiled with X session management support.
|
||||
xsmp_interact Compiled with interactive X session management support.
|
||||
xterm_clipboard Compiled with support for xterm clipboard.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*if_lua.txt* For Vim version 7.4. Last change: 2012 Jun 29
|
||||
*if_lua.txt* For Vim version 7.4. Last change: 2013 Sep 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Luis Carvalho
|
||||
@@ -135,7 +135,7 @@ Vim evaluation and command execution, and others.
|
||||
<
|
||||
vim.funcref({name}) Returns a Funcref to function {name} (see
|
||||
|Funcref|). It is equivalent to Vim's
|
||||
"function".
|
||||
"function". NOT IMPLEMENTED YET
|
||||
|
||||
vim.buffer([arg]) If "arg" is a number, returns buffer with
|
||||
number "arg" in the buffer list or, if "arg"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*map.txt* For Vim version 7.4. Last change: 2013 Aug 03
|
||||
*map.txt* For Vim version 7.4. Last change: 2013 Aug 22
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -380,7 +380,7 @@ it's just used here for this situation.
|
||||
The simplest way to load a set of related language mappings is by using the
|
||||
'keymap' option. See |45.5|.
|
||||
In Insert mode and in Command-line mode the mappings can be disabled with
|
||||
the CTRL-^ command |i_CTRL-^| |c_CTRL-^| These commands change the value of
|
||||
the CTRL-^ command |i_CTRL-^| |c_CTRL-^|. These commands change the value of
|
||||
the 'iminsert' option. When starting to enter a normal command line (not a
|
||||
search pattern) the mappings are disabled until a CTRL-^ is typed. The state
|
||||
last used is remembered for Insert mode and Search patterns separately. The
|
||||
@@ -1359,6 +1359,8 @@ There are some special cases as well:
|
||||
In the cases of the -count and -register attributes, if the optional argument
|
||||
is supplied, it is removed from the argument list and is available to the
|
||||
replacement text separately.
|
||||
Note that these arguments can be abbreviated, but that is a deprecated
|
||||
feature. Use the full name for new scripts.
|
||||
|
||||
Replacement text
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 7.4. Last change: 2013 Jul 09
|
||||
*options.txt* For Vim version 7.4. Last change: 2013 Aug 22
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1884,8 +1884,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
global
|
||||
{not in Vi}
|
||||
A sequence of single character flags. When a character is present
|
||||
this indicates vi-compatible behavior. This is used for things where
|
||||
not being vi-compatible is mostly or sometimes preferred.
|
||||
this indicates Vi-compatible behavior. This is used for things where
|
||||
not being Vi-compatible is mostly or sometimes preferred.
|
||||
'cpoptions' stands for "compatible-options".
|
||||
Commas can be added for readability.
|
||||
To avoid problems with flags that are added in the future, use the
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*os_vms.txt* For Vim version 7.4. Last change: 2011 Aug 14
|
||||
*os_vms.txt* For Vim version 7.4. Last change: 2013 Aug 22
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL
|
||||
@@ -24,7 +24,7 @@ prompt.
|
||||
|
||||
1. Getting started *vms-started*
|
||||
|
||||
Vim (Vi IMproved) is a vi-compatible text editor that runs on nearly every
|
||||
Vim (Vi IMproved) is a Vi-compatible text editor that runs on nearly every
|
||||
operating system known to humanity. Now use Vim on OpenVMS too, in character
|
||||
or X/Motif environment. It is fully featured and absolutely compatible with
|
||||
Vim on other operating systems.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*syntax.txt* For Vim version 7.4. Last change: 2013 Jul 05
|
||||
*syntax.txt* For Vim version 7.4. Last change: 2013 Aug 22
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -3156,18 +3156,16 @@ The g:vimsyn_embed option allows users to select what, if any, types of
|
||||
embedded script highlighting they wish to have. >
|
||||
|
||||
g:vimsyn_embed == 0 : don't embed any scripts
|
||||
g:vimsyn_embed =~ 'm' : embed mzscheme (but only if vim supports it)
|
||||
g:vimsyn_embed =~ 'p' : embed perl (but only if vim supports it)
|
||||
g:vimsyn_embed =~ 'P' : embed python (but only if vim supports it)
|
||||
g:vimsyn_embed =~ 'r' : embed ruby (but only if vim supports it)
|
||||
g:vimsyn_embed =~ 't' : embed tcl (but only if vim supports it)
|
||||
g:vimsyn_embed =~ 'm' : support embedded mzscheme
|
||||
g:vimsyn_embed =~ 'p' : support embedded perl
|
||||
g:vimsyn_embed =~ 'P' : support embedded python
|
||||
g:vimsyn_embed =~ 'r' : support embedded ruby
|
||||
g:vimsyn_embed =~ 't' : support embedded tcl
|
||||
<
|
||||
By default, g:vimsyn_embed is "mpPr"; ie. syntax/vim.vim will support
|
||||
highlighting mzscheme, perl, python, and ruby by default. Vim's has("tcl")
|
||||
test appears to hang vim when tcl is not truly available. Thus, by default,
|
||||
tcl is not supported for embedding (but those of you who like tcl embedded in
|
||||
their vim syntax highlighting can simply include it in the g:vimembedscript
|
||||
option).
|
||||
By default, g:vimsyn_embed is a string supporting interpreters that your vim
|
||||
itself supports. Concatenate multiple characters to support multiple types
|
||||
of embedded interpreters; ie. g:vimsyn_embed= "mp" supports embedded mzscheme
|
||||
and embedded perl.
|
||||
*g:vimsyn_folding*
|
||||
|
||||
Some folding is now supported with syntax/vim.vim: >
|
||||
|
||||
@@ -1140,6 +1140,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
|
||||
+GUI_Photon various.txt /*+GUI_Photon*
|
||||
+GUI_neXtaw various.txt /*+GUI_neXtaw*
|
||||
+X11 various.txt /*+X11*
|
||||
+acl various.txt /*+acl*
|
||||
+arabic various.txt /*+arabic*
|
||||
+autocmd various.txt /*+autocmd*
|
||||
+balloon_eval various.txt /*+balloon_eval*
|
||||
@@ -1262,6 +1263,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
|
||||
+writebackup various.txt /*+writebackup*
|
||||
+xfontset various.txt /*+xfontset*
|
||||
+xim various.txt /*+xim*
|
||||
+xpm various.txt /*+xpm*
|
||||
+xpm_w32 various.txt /*+xpm_w32*
|
||||
+xsmp various.txt /*+xsmp*
|
||||
+xsmp_interact various.txt /*+xsmp_interact*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 7.4. Last change: 2013 Aug 10
|
||||
*todo.txt* For Vim version 7.4. Last change: 2013 Sep 05
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -34,9 +34,48 @@ not be repeated below, unless there is extra information.
|
||||
*known-bugs*
|
||||
-------------------- Known bugs and current work -----------------------
|
||||
|
||||
NFA engine mismatch, with example. (ZyX, 2013 Aug 29)
|
||||
|
||||
php syntax file update. (Jason Woofenden, Aug 30)
|
||||
|
||||
Problem positioning the cursor after auto-formatting without a comment. (Tor
|
||||
Perkins, 2013 Sep 1)
|
||||
|
||||
Popup menu: first item is not selected when typing more than one character?
|
||||
|
||||
Patch to add async functionality. (Geoff Greer, 2013 Sep 1)
|
||||
|
||||
Patch to avoid mouse cursor flickering. (Ken Takata,, 2013 Sep 2)
|
||||
|
||||
Should win_redr_custom() not be allowed to use recursively?
|
||||
(Yasuhiro Matsumoto, 2013 Aug 15)
|
||||
|
||||
NFA engine combining character mismatch. (glts, 2013 Aug 27)
|
||||
Remark Dominique, Aug 27
|
||||
|
||||
Issue 164: freeze on regexp search.
|
||||
|
||||
Python: ":py raw_input('prompt')" doesn't work. (Manu Hack)
|
||||
|
||||
Patch to add "acl" and "xpm" as a feature. (Ken Takata, 2013 Jul 8)
|
||||
Patch to fix substitute prompt with line number. (Benoit Pierre, 2013 Aug 27,
|
||||
third message)
|
||||
|
||||
Patch to avoid problem with colon in file name. (Yasuhiro Matsumoto, 2013 Sep
|
||||
5) Only copy file name when needed.
|
||||
|
||||
Include systemverilog file? Two votes yes.
|
||||
|
||||
Wrapping around end of file does not work for "." after "cgn". (Dimitar
|
||||
Dimitrov)
|
||||
Patch by Christian Brabandt, 2013 Aug 22
|
||||
|
||||
Problem with 'spellsuggest' file, only works for some words.
|
||||
(Cesar Romani, 2013 Aug 20) Depends on file name? (Aug 24)
|
||||
Additional remark by glts: the suggested words are marked bad?
|
||||
|
||||
Syntax highlighting slow (hangs) in SASS file. (Niek Bosch, 2013 Aug 21)
|
||||
|
||||
Adding "~" to 'cdpath' doesn't work for completion? (Davido, 2013 Aug 19)
|
||||
|
||||
Patch to make has() check for Vim version and patch at the same time.
|
||||
(Marc Weber, 2013 Jun 7)
|
||||
@@ -46,13 +85,22 @@ highlight group. Add a "\zs" after it?
|
||||
|
||||
Go through more coverity reports.
|
||||
|
||||
"gUgn" cannot be repeated, while "dgn" can.
|
||||
With "$" in 'cpoptions' the popup menu isn't fully drawn. (Matti Niemenmaa,
|
||||
2013 Sep 5)
|
||||
|
||||
"gUgn" cannot be repeated, while "dgn" can. (Dimitar Dimitrov)
|
||||
Patch by Christian Brabandt (2013 Aug 12)
|
||||
|
||||
Several Win32 functions are not using Unicode.
|
||||
Patches to fix this. (Ken Takata, 2013 Aug 9)
|
||||
|
||||
/[b-a] gives error E16, should probably be E769.
|
||||
|
||||
:help gives example for z?, but it does not work. m? and t? do work.
|
||||
|
||||
Patch to add funcref to Lua. (Luis Carvalho, 2013 Sep 4)
|
||||
Missing tests.
|
||||
|
||||
Discussion about canonicalization of Hebrew. (Ron Aaron, 2011 April 10)
|
||||
|
||||
Patch to make external commands work with multi-byte characters on Win32 when
|
||||
@@ -85,7 +133,7 @@ Not 100% sure this is the right solution.
|
||||
|
||||
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)
|
||||
Stocker, 2012 Jan 5; 2013 Aug 20)
|
||||
|
||||
Patch to support expression argument to sort() instead of a function name.
|
||||
Yasuhiro Matsumoto, 2013 May 31.
|
||||
@@ -94,6 +142,10 @@ Or should we add a more general mechanism, like lambda functions?
|
||||
Problem caused by patch 7.3.638: window->open does not update window
|
||||
correctly. Issue 91.
|
||||
|
||||
8 'backupdir' and 'directory' should use $TMPDIR, $TMP and/or $TEMP when
|
||||
defined.
|
||||
Issue 28.
|
||||
|
||||
Patch to fix that 'cedit' is recognized after :normal. (Christian Brabandt,
|
||||
2013 Mar 19, later message)
|
||||
|
||||
@@ -108,6 +160,8 @@ carried over when using :global. (Christian Brabandt, 2013 Jun 19)
|
||||
Bug with 'cursorline' in diff mode. Line being scrolled into view gets
|
||||
highlighted as the cursor line. (Alessandro Ivaldi, 2013 Jun 4)
|
||||
|
||||
Two highlighting bugs. (Zyx, 2013 Aug 18)
|
||||
|
||||
Patch to add the bufferlist() function. (Yegappan Lakshmanan, 2013 May 5)
|
||||
May 17: with winlist() and tabpagelist().
|
||||
May 19: with local variables.
|
||||
@@ -119,6 +173,8 @@ Patch to support 'u' in interactive substitute. (Christian Brabandt, 2012 Sep
|
||||
Patch from Christian Brabandt to make the "buffer" argument for ":sign place"
|
||||
optional. (2013 Jul 12)
|
||||
|
||||
Dialog is too big on Linux too. (David Fishburn, 2013 Sep 2)
|
||||
|
||||
Patch to allow setting w:quickfix_title via setqflist() and setloclist()
|
||||
functions. (Christian Brabandt, 2013 May 8, update May 21)
|
||||
Patch to add getlocstack() / setlocstack(). (Christian Brabandt, 2013 May 14)
|
||||
@@ -126,6 +182,9 @@ Second one. Update May 22.
|
||||
|
||||
Patch to make fold updates much faster. (Christian Brabandt, 2012 Dec)
|
||||
|
||||
TCL: With MSVC 2010 doesn't find Tcl_FindExecutable. (tux)
|
||||
Patch to define it. (Ken Takata, 2013 Aug 12) Is this right?
|
||||
|
||||
MS-Windows: Patch to make tests copy files to avoid changing the fileformat of
|
||||
the files under version control. (Taro Muraoka, 2013 Jul 5)
|
||||
|
||||
@@ -167,8 +226,17 @@ Patch to make confirm() display colors. (Christian Brabandt, 2012 Nov 9)
|
||||
|
||||
Patch to add functions for signs. (Christian Brabandt, 2013 Jan 27)
|
||||
|
||||
Do we need some way (option) to show the sign column even when there are no
|
||||
signs? Patch by Christian Brabandt, 2013 Aug 22.
|
||||
|
||||
Patch to remove flicker from popup menu. (Yasuhiro Matsumoto, 2013 Aug 15)
|
||||
|
||||
Patch to use directX to draw text on Windows. Adds the 'renderoptions'
|
||||
option. (Taro Muraoka, 2013 Jan 25, update 2013 Apr 3, May 14)
|
||||
Fixes this problem:
|
||||
8 Win32: Multi-byte characters are not displayed, even though the same font
|
||||
in Notepad can display them. (Srinath Avadhanula) Try with the
|
||||
UTF-8-demo.txt page with Andale Mono.
|
||||
|
||||
Patch to add 'completeselect' option. Specifies how to select a candidate in
|
||||
insert completion. (Shougo, 2013 May 29)
|
||||
@@ -272,6 +340,9 @@ Do give the prompt? Quit with an error?
|
||||
|
||||
Patch to list user digraphs. (Christian Brabandt, 2012 Apr 14)
|
||||
|
||||
Patch to add digraph() function. (Christian Brabandt, 2013 Aug 22, update Aug
|
||||
24)
|
||||
|
||||
Patch for input method status. (Hirohito Higashi, 2012 Apr 18)
|
||||
|
||||
Patch to use .png icons for the toolbar on MS-Windows. (Martin Gieseking, 2013
|
||||
@@ -396,7 +467,7 @@ cleared. See test64.
|
||||
Changes to manpage plugin. (Elias Toivanen, 2011 Jul 25)
|
||||
|
||||
Patch to make "z=" work when 'spell' is off. Does this have nasty side
|
||||
effects? (Christian Brabandt, 2012 Aug 5)
|
||||
effects? (Christian Brabandt, 2012 Aug 5, Update 2013 Aug 12)
|
||||
Would also need to do this for spellbadword() and spellsuggest().
|
||||
|
||||
Patch for variable tabstops.
|
||||
@@ -456,6 +527,9 @@ With a filler line in diff mode, it isn't displayed in the column with line
|
||||
number, but it is in the sign column. Doesn't look right. (ZyX 2011 Jun 5)
|
||||
Patch by Christian Brabandt, 2011 Jun 5. Introduces new problems.
|
||||
|
||||
Add jump() function. (Marcin Szamotulski, 2013 Aug 29)
|
||||
Is this needed? CTRL-O and CTRL-I do the same, just more difficult to use.
|
||||
|
||||
8 Add a command to jump to the next character highlighted with "Error".
|
||||
Patch by Christian Brabandt, uses ]e [e ]t and [t. 2011 Aug 9.
|
||||
|
||||
@@ -573,8 +647,7 @@ setpos() does not restore cursor position after :normal. (Tyru, 2010 Aug 11)
|
||||
|
||||
getpos()/setpos() don't include curswant. getpos() could return a fifth
|
||||
element. setpos() could accept an optional fifth element.
|
||||
Patch by Christian Brabandt, 2010 Sep 6. Check that new argument is optional
|
||||
and that it's documented.
|
||||
Patch by Christian Brabandt, 2010 Sep 6. Again 2013 Aug 22.
|
||||
|
||||
With "tw=55 fo+=a" typing space before ) doesn't work well. (Scott Mcdermott,
|
||||
2010 Oct 24)
|
||||
@@ -759,6 +832,7 @@ Setting 'tags' to "tagsdir/*" does not find "tagsdir/tags". (Steven K. Wong,
|
||||
|
||||
Patch to add farsi handling to arabic.c (Ali Gholami Rudi, 2009 May 2)
|
||||
Added test, updates, June 23.
|
||||
Updated for 7.4: http://litcave.rudi.ir/farsi_vim.diff
|
||||
|
||||
Patch to add "focusonly" to 'scrollopt', so that scrollbind also applies in
|
||||
window that doesn't have focus. (Jonathon Mah, 2009 Jan 12)
|
||||
@@ -1685,7 +1759,7 @@ More patches:
|
||||
- testdir/Make_dos_sh.mak for running tests with MingW. (Bill Mccarthy, 2008
|
||||
Sep 13)
|
||||
- Patch for adding "space" item in 'listchars'. (Jérémie Roquet, 2009 Oct 29,
|
||||
Docs patch Oct 30)
|
||||
Docs patch Oct 30, update David Burgin (glts) 2013 Aug 24)
|
||||
- Replace ccomplete.vim by cppcomplete.vim from www.vim.org? script 1520 by
|
||||
Vissale Neang. (Martin Stubenschrott) Asked Vissale to make the scripts
|
||||
more friendly for the Vim distribution.
|
||||
@@ -1887,9 +1961,6 @@ Win32 GUI known bugs:
|
||||
8 Use another default for 'termencoding': the active codepage. Means that
|
||||
when 'encoding' is changed typing characters still works properly.
|
||||
Alternative: use the Unicode functions to obtain typed characters.
|
||||
8 Win32: Multi-byte characters are not displayed, even though the same font
|
||||
in Notepad can display them. (Srinath Avadhanula) Try with the
|
||||
UTF-8-demo.txt page with Andale Mono.
|
||||
7 The cursor color indicating IME mode doesn't work properly. (Shizhu Pan,
|
||||
2004 May 9)
|
||||
8 Win32: When clicking on the gvim title bar, which gives it focus, produces
|
||||
@@ -2272,8 +2343,6 @@ Macintosh:
|
||||
character. (Yasuhiro Matsumoto) It should return 1 when used on a tail
|
||||
byte, like for utf-8. Store second byte of double-byte in ScreenLines2[]
|
||||
(like for DBCS_JPNU) and put a zero in the second byte (like for UTF-8).
|
||||
8 'backupdir' and 'directory' should use $TMPDIR, $TMP and/or $TEMP when
|
||||
defined.
|
||||
7 Inside a function with "perl <<EOF" a line with "$i++" is recognized as an
|
||||
":insert" command, causing the following "endfunction" not to be found.
|
||||
Add skipping this perl construction inside function definitions.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*undo.txt* For Vim version 7.4. Last change: 2012 Mar 04
|
||||
*undo.txt* For Vim version 7.4. Last change: 2013 Aug 22
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -57,7 +57,7 @@ Use "u" to undo changes until the buffer becomes unchanged.
|
||||
2. Two ways of undo *undo-two-ways*
|
||||
|
||||
How undo and redo commands work depends on the 'u' flag in 'cpoptions'.
|
||||
There is the Vim way ('u' excluded) and the vi-compatible way ('u' included).
|
||||
There is the Vim way ('u' excluded) and the Vi-compatible way ('u' included).
|
||||
In the Vim way, "uu" undoes two changes. In the Vi-compatible way, "uu" does
|
||||
nothing (undoes an undo).
|
||||
|
||||
|
||||
@@ -291,6 +291,7 @@ g8 Print the hex values of the bytes used in the
|
||||
in the normal, big and huge versions of Vim.
|
||||
|
||||
*+feature-list*
|
||||
*+acl* |ACL| support included
|
||||
*+ARP* Amiga only: ARP support included
|
||||
B *+arabic* |Arabic| language support
|
||||
N *+autocmd* |:autocmd|, automatic commands
|
||||
@@ -426,6 +427,7 @@ S *+windows* more than one window
|
||||
m *+writebackup* |'writebackup'| is default on
|
||||
m *+xim* X input method |xim|
|
||||
*+xfontset* X fontset support |xfontset|
|
||||
*+xpm* pixmap support
|
||||
m *+xpm_w32* Win32 GUI only: pixmap support |w32-xpm-support|
|
||||
*+xsmp* XSMP (X session management) support
|
||||
*+xsmp_interact* interactive XSMP (X session management) support
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*version7.txt* For Vim version 7.4. Last change: 2013 Aug 10
|
||||
*version7.txt* For Vim version 7.4. Last change: 2013 Sep 03
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -10293,7 +10293,7 @@ Functions:
|
||||
Added special |expand()| argument that expands to the current line
|
||||
number.
|
||||
|
||||
Made it possible to force |char2nr()| always give unicode codepoints
|
||||
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|
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*vi_diff.txt* For Vim version 7.4. Last change: 2012 Aug 08
|
||||
*vi_diff.txt* For Vim version 7.4. Last change: 2013 Aug 22
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -150,7 +150,7 @@ Support for different systems.
|
||||
Multi level undo. |undo|
|
||||
'u' goes backward in time, 'CTRL-R' goes forward again. Set option
|
||||
'undolevels' to the number of changes to be remembered (default 1000).
|
||||
Set 'undolevels' to 0 for a vi-compatible one level undo. Set it to
|
||||
Set 'undolevels' to 0 for a Vi-compatible one level undo. Set it to
|
||||
-1 for no undo at all.
|
||||
When all changes in a buffer have been undone, the buffer is not
|
||||
considered changed anymore. You can exit it with :q, without <!>.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: Vim help file
|
||||
" Maintainer: Bram Moolenaar (Bram@vim.org)
|
||||
" Last Change: 2013 Jul 07
|
||||
" Last Change: 2013 Sep 05
|
||||
|
||||
" Quit when a (custom) syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@@ -44,7 +44,7 @@ syn match helpVim "Vim version [0-9.a-z]\+"
|
||||
syn match helpVim "VIM REFERENCE.*"
|
||||
syn match helpOption "'[a-z]\{2,\}'"
|
||||
syn match helpOption "'t_..'"
|
||||
syn match helpCommand "`[^` ]\+`"hs=s+1,he=e-1 contains=helpBacktick
|
||||
syn match helpCommand "`[^` \t]\+`"hs=s+1,he=e-1 contains=helpBacktick
|
||||
syn match helpHeader "\s*\zs.\{-}\ze\s\=\~$" nextgroup=helpIgnore
|
||||
syn match helpGraphic ".* \ze`$" nextgroup=helpIgnore
|
||||
if has("conceal")
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
" Language: Mail file
|
||||
" Previous Maintainer: Felix von Leitner <leitner@math.fu-berlin.de>
|
||||
" Maintainer: GI <a@b.c>, where a='gi1242+vim', b='gmail', c='com'
|
||||
" Last Change: Thu 02 Feb 2012 08:47:04 PM EST
|
||||
" Last Change: Wed 14 Aug 2013 08:24:52 AM PDT
|
||||
|
||||
" Quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@@ -55,7 +55,7 @@ syn region mailSignature keepend contains=@mailLinks,@mailQuoteExps,@NoSpell sta
|
||||
|
||||
" Treat verbatim Text special.
|
||||
syn region mailVerbatim contains=@NoSpell keepend start="^#v+$" end="^#v-$" fold
|
||||
syn region mailVerbatim contains=@mailQuoteExps,@NoSpell start="^\z(\(> \?\)\+\)#v+$" end="\z1#v-$" fold
|
||||
syn region mailVerbatim contains=@mailQuoteExps,@NoSpell keepend start="^\z(\(> \?\)\+\)#v+$" end="\z1#v-$" fold
|
||||
|
||||
" URLs start with a known protocol or www,web,w3.
|
||||
syn match mailURL contains=@NoSpell `\v<(((https?|ftp|gopher)://|(mailto|file|news):)[^' <>"]+|(www|web|w3)[a-z0-9_-]*\.[a-z0-9._-]+\.[^' <>"]+)[a-z0-9/]`
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: php PHP 3/4/5
|
||||
" Maintainer: Jason Woofenden <jason@jasonwoof.com>
|
||||
" Last Change: Dec 11, 2012
|
||||
" Last Change: Aug 28, 2013
|
||||
" 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>
|
||||
@@ -616,6 +616,11 @@ else
|
||||
exec "syn sync fromstart"
|
||||
endif
|
||||
|
||||
syntax match phpDocCustomTags "@[a-zA-Z]*\(\s\+\|\n\|\r\)" containedin=phpComment
|
||||
syntax region phpDocTags start="{@\(example\|id\|internal\|inheritdoc\|link\|source\|toc\|tutorial\)" end="}" containedin=phpComment
|
||||
syntax match phpDocTags "@\(abstract\|access\|author\|category\|copyright\|deprecated\|example\|final\|global\|ignore\|internal\|license\|link\|method\|name\|package\|param\|property\|return\|see\|since\|static\|staticvar\|subpackage\|tutorial\|uses\|var\|version\|contributor\|modified\|filename\|description\|filesource\|throws\)\(\s\+\)\?" containedin=phpComment
|
||||
syntax match phpDocTodo "@\(todo\|fixme\|xxx\)\(\s\+\)\?" containedin=phpComment
|
||||
|
||||
" Define the default highlighting.
|
||||
" For version 5.7 and earlier: only when not done already
|
||||
" For version 5.8 and later: only when an item doesn't have highlighting yet
|
||||
@@ -630,6 +635,8 @@ if version >= 508 || !exists("did_php_syn_inits")
|
||||
HiLink phpConstant Constant
|
||||
HiLink phpCoreConstant Constant
|
||||
HiLink phpComment Comment
|
||||
HiLink phpDocTags PreProc
|
||||
HiLink phpDocCustomTags Type
|
||||
HiLink phpException Exception
|
||||
HiLink phpBoolean Boolean
|
||||
HiLink phpStorageClass StorageClass
|
||||
@@ -668,6 +675,7 @@ if version >= 508 || !exists("did_php_syn_inits")
|
||||
HiLink phpInterpSimpleCurly Delimiter
|
||||
HiLink phpInterpVarname Identifier
|
||||
HiLink phpTodo Todo
|
||||
HiLink phpDocTodo Todo
|
||||
HiLink phpMemberSelector Structure
|
||||
if exists("php_oldStyle")
|
||||
hi phpIntVar guifg=Red ctermfg=DarkRed
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" Vim syntax file
|
||||
" Language: Vim 7.3 script
|
||||
" Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||
" Last Change: Jul 05, 2013
|
||||
" Version: 7.3-26
|
||||
" Language: Vim 7.4 script
|
||||
" Maintainer: Charles E. Campbell <NdrOchipS@PcampbellAfamily.Mbiz>
|
||||
" Last Change: Aug 16, 2013
|
||||
" Version: 7.4-1
|
||||
" Automatically generated keyword lists: {{{1
|
||||
|
||||
" Quit when a syntax file was already loaded {{{2
|
||||
@@ -550,15 +550,31 @@ syn region vimGlobal matchgroup=Statement start='\<v\%[global]!\=/' skip='\\.' e
|
||||
" Allows users to specify the type of embedded script highlighting
|
||||
" they want: (perl/python/ruby/tcl support)
|
||||
" g:vimsyn_embed == 0 : don't embed any scripts
|
||||
" g:vimsyn_embed ~= 'l' : embed lua (but only if vim supports it)
|
||||
" g:vimsyn_embed ~= 'm' : embed mzscheme (but only if vim supports it)
|
||||
" g:vimsyn_embed ~= 'p' : embed perl (but only if vim supports it)
|
||||
" g:vimsyn_embed ~= 'P' : embed python (but only if vim supports it)
|
||||
" g:vimsyn_embed ~= 'r' : embed ruby (but only if vim supports it)
|
||||
" g:vimsyn_embed ~= 't' : embed tcl (but only if vim supports it)
|
||||
if !exists("g:vimsyn_embed")
|
||||
let g:vimsyn_embed= "lmpPr"
|
||||
" g:vimsyn_embed ~= 'l' : embed lua
|
||||
" g:vimsyn_embed ~= 'm' : embed mzscheme
|
||||
" g:vimsyn_embed ~= 'p' : embed perl
|
||||
" g:vimsyn_embed ~= 'P' : embed python
|
||||
" g:vimsyn_embed ~= 'r' : embed ruby
|
||||
" g:vimsyn_embed ~= 't' : embed tcl
|
||||
if has("win32") || has("win95") || has("win64") || has("win16")
|
||||
" apparently has("tcl") has been hanging vim on some windows systems with cygwin
|
||||
let s:trytcl= (&shell !~ '\<\%(bash\>\|4[nN][tT]\|\<zsh\)\>\%(\.exe\)\=$')
|
||||
else
|
||||
let s:trytcl= 1
|
||||
endif
|
||||
if !exists("g:vimsyn_embed")
|
||||
let g:vimsyn_embed= ""
|
||||
if has("lua") |let g:vimsyn_embed= g:vimsyn_embed."l"|endif
|
||||
if has("mzscheme") |let g:vimsyn_embed= g:vimsyn_embed."m"|endif
|
||||
if has("perl") |let g:vimsyn_embed= g:vimsyn_embed."p"|endif
|
||||
if has("python") |let g:vimsyn_embed= g:vimsyn_embed."P"
|
||||
elseif has("python3")|let g:vimsyn_embed= g:vimsyn_embed."P"|endif
|
||||
if has("ruby") |let g:vimsyn_embed= g:vimsyn_embed."r"|endif
|
||||
if s:trytcl
|
||||
if has("tcl") |let g:vimsyn_embed= g:vimsyn_embed."t"|endif
|
||||
endif
|
||||
endif
|
||||
unlet s:trytcl
|
||||
|
||||
" [-- lua --] {{{3
|
||||
let s:luapath= fnameescape(expand("<sfile>:p:h")."/lua.vim")
|
||||
@@ -570,7 +586,7 @@ if !filereadable(s:luapath)
|
||||
endif
|
||||
endfor
|
||||
endif
|
||||
if (g:vimsyn_embed =~ 'l' && has("lua")) && filereadable(s:luapath)
|
||||
if (g:vimsyn_embed =~ 'l') && filereadable(s:luapath)
|
||||
unlet! b:current_syntax
|
||||
exe "syn include @vimLuaScript ".s:luapath
|
||||
if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'l'
|
||||
@@ -597,7 +613,7 @@ if !filereadable(s:perlpath)
|
||||
endif
|
||||
endfor
|
||||
endif
|
||||
if (g:vimsyn_embed =~ 'p' && has("perl")) && filereadable(s:perlpath)
|
||||
if (g:vimsyn_embed =~ 'p') && filereadable(s:perlpath)
|
||||
unlet! b:current_syntax
|
||||
exe "syn include @vimPerlScript ".s:perlpath
|
||||
if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'p'
|
||||
@@ -624,7 +640,7 @@ if !filereadable(s:rubypath)
|
||||
endif
|
||||
endfor
|
||||
endif
|
||||
if (g:vimsyn_embed =~ 'r' && has("ruby")) && filereadable(s:rubypath)
|
||||
if (g:vimsyn_embed =~ 'r') && filereadable(s:rubypath)
|
||||
unlet! b:current_syntax
|
||||
exe "syn include @vimRubyScript ".s:rubypath
|
||||
if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'r'
|
||||
@@ -650,7 +666,7 @@ if !filereadable(s:pythonpath)
|
||||
endif
|
||||
endfor
|
||||
endif
|
||||
if g:vimsyn_embed =~ 'P' && (has("python") || has("python3")) && filereadable(s:pythonpath)
|
||||
if g:vimsyn_embed =~ 'P' && filereadable(s:pythonpath)
|
||||
unlet! b:current_syntax
|
||||
exe "syn include @vimPythonScript ".s:pythonpath
|
||||
if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'P'
|
||||
@@ -668,43 +684,31 @@ endif
|
||||
unlet s:pythonpath
|
||||
|
||||
" [-- tcl --] {{{3
|
||||
if has("win32") || has("win95") || has("win64") || has("win16")
|
||||
" apparently has("tcl") has been hanging vim on some windows systems with cygwin
|
||||
let s:trytcl= (&shell !~ '\<\%(bash\>\|4[nN][tT]\|\<zsh\)\>\%(\.exe\)\=$')
|
||||
else
|
||||
let s:trytcl= 1
|
||||
endif
|
||||
if s:trytcl
|
||||
let s:tclpath= fnameescape(expand("<sfile>:p:h")."/tcl.vim")
|
||||
if !filereadable(s:tclpath)
|
||||
for s:tclpath in split(globpath(&rtp,"syntax/tcl.vim"),"\n")
|
||||
if filereadable(fnameescape(s:tclpath))
|
||||
let s:tclpath= fnameescape(s:tclpath)
|
||||
break
|
||||
endif
|
||||
endfor
|
||||
endif
|
||||
if (g:vimsyn_embed =~ 't' && has("tcl")) && filereadable(s:tclpath)
|
||||
unlet! b:current_syntax
|
||||
exe "syn include @vimTclScript ".s:tclpath
|
||||
if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 't'
|
||||
syn region vimTclRegion fold matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimTclScript
|
||||
syn region vimTclRegion fold matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+ contains=@vimTclScript
|
||||
else
|
||||
syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimTclScript
|
||||
syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+ contains=@vimTclScript
|
||||
let s:tclpath= fnameescape(expand("<sfile>:p:h")."/tcl.vim")
|
||||
if !filereadable(s:tclpath)
|
||||
for s:tclpath in split(globpath(&rtp,"syntax/tcl.vim"),"\n")
|
||||
if filereadable(fnameescape(s:tclpath))
|
||||
let s:tclpath= fnameescape(s:tclpath)
|
||||
break
|
||||
endif
|
||||
syn cluster vimFuncBodyList add=vimTclScript
|
||||
endfor
|
||||
endif
|
||||
if (g:vimsyn_embed =~ 't') && filereadable(s:tclpath)
|
||||
unlet! b:current_syntax
|
||||
exe "syn include @vimTclScript ".s:tclpath
|
||||
if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 't'
|
||||
syn region vimTclRegion fold matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimTclScript
|
||||
syn region vimTclRegion fold matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+ contains=@vimTclScript
|
||||
else
|
||||
syn region vimEmbedError start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+
|
||||
syn region vimEmbedError start=+tc[l]\=\s*<<\s*$+ end=+\.$+
|
||||
syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimTclScript
|
||||
syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+ contains=@vimTclScript
|
||||
endif
|
||||
unlet s:tclpath
|
||||
syn cluster vimFuncBodyList add=vimTclScript
|
||||
else
|
||||
syn region vimEmbedError start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+
|
||||
syn region vimEmbedError start=+tc[l]\=\s*<<\s*$+ end=+\.$+
|
||||
endif
|
||||
unlet s:trytcl
|
||||
unlet s:tclpath
|
||||
|
||||
" [-- mzscheme --] {{{3
|
||||
let s:mzschemepath= fnameescape(expand("<sfile>:p:h")."/scheme.vim")
|
||||
|
||||
@@ -108,9 +108,10 @@ execute 'syn match yamlFlowMappingKey /'.s:ns_plain_in.'\ze\s*:/ contained '.
|
||||
syn match yamlFlowMappingMerge /<<\ze\s*:/ contained nextgroup=yamlKeyValueDelimiter
|
||||
|
||||
syn match yamlBlockCollectionItemStart '^\s*\zs-\%(\s\+-\)*\s' nextgroup=yamlBlockMappingKey,yamlBlockMappingMerge
|
||||
execute 'syn match yamlBlockMappingKey /^\s*\zs'.s:ns_plain_out.'\ze\s*:\%(\s\|$\)/ '.
|
||||
" Use the old regexp engine, the NFA engine doesn't like all the \@ items.
|
||||
execute 'syn match yamlBlockMappingKey /\%#=1^\s*\zs'.s:ns_plain_out.'\ze\s*:\%(\s\|$\)/ '.
|
||||
\'nextgroup=yamlKeyValueDelimiter'
|
||||
execute 'syn match yamlBlockMappingKey /\s*\zs'.s:ns_plain_out.'\ze\s*:\%(\s\|$\)/ contained '.
|
||||
execute 'syn match yamlBlockMappingKey /\%#=1\s*\zs'.s:ns_plain_out.'\ze\s*:\%(\s\|$\)/ contained '.
|
||||
\'nextgroup=yamlKeyValueDelimiter'
|
||||
syn match yamlBlockMappingMerge /^\s*\zs<<\ze:\%(\s\|$\)/ nextgroup=yamlKeyValueDelimiter
|
||||
syn match yamlBlockMappingMerge /<<\ze\s*:\%(\s\|$\)/ nextgroup=yamlKeyValueDelimiter contained
|
||||
|
||||
@@ -121,7 +121,7 @@ NOTA: A medida que vaya avanzando en este tutor no intente memorizar,
|
||||
h (izquierda) j (abajo) k (arriba) l (derecha)
|
||||
|
||||
2. Para acceder a Vim (desde el s<EFBFBD>mbolo del sistema %) escriba:
|
||||
vin FILENAME <INTRO>
|
||||
vim FILENAME <INTRO>
|
||||
|
||||
3. Para salir de Vim escriba: <ESC> :q! <INTRO> para eliminar todos
|
||||
los cambios.
|
||||
|
||||
@@ -31,12 +31,12 @@ endif
|
||||
ifeq ($(CROSS),yes)
|
||||
DEL = rm
|
||||
ifeq ($(MINGWOLD),yes)
|
||||
CXXFLAGS := -O2 -mno-cygwin -fvtable-thunks
|
||||
CXXFLAGS := -O2 -fvtable-thunks
|
||||
else
|
||||
CXXFLAGS := -O2 -mno-cygwin
|
||||
CXXFLAGS := -O2
|
||||
endif
|
||||
else
|
||||
CXXFLAGS := -O2 -mno-cygwin
|
||||
CXXFLAGS := -O2
|
||||
ifneq (sh.exe, $(SHELL))
|
||||
DEL = rm
|
||||
else
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#
|
||||
# Makefile for VIM on Win32, using Cygnus gcc
|
||||
# Last updated by Dan Sharp. Last Change: 2013 Apr 22
|
||||
# Last updated by Dan Sharp. Last Change: 2013 Sep 19
|
||||
#
|
||||
# Also read INSTALLpc.txt!
|
||||
#
|
||||
@@ -439,8 +439,6 @@ endif
|
||||
##############################
|
||||
ifeq (yes, $(USEDLL))
|
||||
DEFINES += -D_MAX_PATH=256 -D__CYGWIN__
|
||||
else
|
||||
INCLUDES += -mno-cygwin
|
||||
endif
|
||||
|
||||
##############################
|
||||
|
||||
@@ -1203,7 +1203,7 @@ ex_diffoff(eap)
|
||||
|
||||
for (wp = firstwin; wp != NULL; wp = wp->w_next)
|
||||
{
|
||||
if (wp == curwin || (eap->forceit && wp->w_p_diff))
|
||||
if (eap->forceit ? wp->w_p_diff : wp == curwin)
|
||||
{
|
||||
/* Set 'diff', 'scrollbind' off and 'wrap' on. If option values
|
||||
* were saved in diff_win_options() restore them. */
|
||||
|
||||
19
src/edit.c
19
src/edit.c
@@ -3467,7 +3467,6 @@ ins_compl_new_leader()
|
||||
}
|
||||
|
||||
compl_enter_selects = !compl_used_match;
|
||||
compl_shown_match = compl_curr_match = compl_first_match;
|
||||
|
||||
/* Show the popup menu with a different set of matches. */
|
||||
ins_compl_show_pum();
|
||||
@@ -5184,9 +5183,21 @@ ins_complete(c)
|
||||
}
|
||||
else if (ctrl_x_mode == CTRL_X_FILES)
|
||||
{
|
||||
while (--startcol >= 0 && vim_isfilec(line[startcol]))
|
||||
;
|
||||
compl_col += ++startcol;
|
||||
/* Go back to just before the first filename character. */
|
||||
if (startcol > 0)
|
||||
{
|
||||
char_u *p = line + startcol;
|
||||
|
||||
mb_ptr_back(line, p);
|
||||
while (p > line && vim_isfilec(PTR2CHAR(p)))
|
||||
mb_ptr_back(line, p);
|
||||
if (p == line && vim_isfilec(PTR2CHAR(p)))
|
||||
startcol = 0;
|
||||
else
|
||||
startcol = (int)(p - line) + 1;
|
||||
}
|
||||
|
||||
compl_col += startcol;
|
||||
compl_length = (int)curs_col - startcol;
|
||||
compl_pattern = addstar(line + compl_col, compl_length,
|
||||
EXPAND_FILES);
|
||||
|
||||
17
src/fileio.c
17
src/fileio.c
@@ -428,13 +428,13 @@ readfile(fname, sfname, from, lines_to_skip, lines_to_read, eap, flags)
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef UNIX
|
||||
/*
|
||||
* On Unix it is possible to read a directory, so we have to
|
||||
* check for it before the mch_open().
|
||||
*/
|
||||
if (!read_stdin && !read_buffer)
|
||||
{
|
||||
#ifdef UNIX
|
||||
/*
|
||||
* On Unix it is possible to read a directory, so we have to
|
||||
* check for it before the mch_open().
|
||||
*/
|
||||
perm = mch_getperm(fname);
|
||||
if (perm >= 0 && !S_ISREG(perm) /* not a regular file ... */
|
||||
# ifdef S_ISFIFO
|
||||
@@ -457,8 +457,8 @@ readfile(fname, sfname, from, lines_to_skip, lines_to_read, eap, flags)
|
||||
msg_scroll = msg_save;
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
# if defined(MSDOS) || defined(MSWIN) || defined(OS2)
|
||||
#endif
|
||||
#if defined(MSDOS) || defined(MSWIN) || defined(OS2)
|
||||
/*
|
||||
* MS-Windows allows opening a device, but we will probably get stuck
|
||||
* trying to read it.
|
||||
@@ -470,9 +470,8 @@ readfile(fname, sfname, from, lines_to_skip, lines_to_read, eap, flags)
|
||||
msg_scroll = msg_save;
|
||||
return FAIL;
|
||||
}
|
||||
# endif
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Set default or forced 'fileformat' and 'binary'. */
|
||||
set_file_options(set_options, eap);
|
||||
|
||||
@@ -9174,6 +9174,8 @@ prepare_to_exit()
|
||||
/*
|
||||
* Preserve files and exit.
|
||||
* When called IObuff must contain a message.
|
||||
* NOTE: This may be called from deathtrap() in a signal handler, avoid unsafe
|
||||
* functions, such as allocating memory.
|
||||
*/
|
||||
void
|
||||
preserve_exit()
|
||||
@@ -9196,7 +9198,7 @@ preserve_exit()
|
||||
{
|
||||
if (buf->b_ml.ml_mfp != NULL && buf->b_ml.ml_mfp->mf_fname != NULL)
|
||||
{
|
||||
OUT_STR(_("Vim: preserving files...\n"));
|
||||
OUT_STR("Vim: preserving files...\n");
|
||||
screen_start(); /* don't know where cursor is now */
|
||||
out_flush();
|
||||
ml_sync_all(FALSE, FALSE); /* preserve all swap files */
|
||||
@@ -9206,7 +9208,7 @@ preserve_exit()
|
||||
|
||||
ml_close_all(FALSE); /* close all memfiles, without deleting */
|
||||
|
||||
OUT_STR(_("Vim: Finished.\n"));
|
||||
OUT_STR("Vim: Finished.\n");
|
||||
|
||||
getout(1);
|
||||
}
|
||||
|
||||
14
src/misc2.c
14
src/misc2.c
@@ -6496,13 +6496,15 @@ get3c(fd)
|
||||
get4c(fd)
|
||||
FILE *fd;
|
||||
{
|
||||
int n;
|
||||
/* Use unsigned rather than int otherwise result is undefined
|
||||
* when left-shift sets the MSB. */
|
||||
unsigned n;
|
||||
|
||||
n = getc(fd);
|
||||
n = (n << 8) + getc(fd);
|
||||
n = (n << 8) + getc(fd);
|
||||
n = (n << 8) + getc(fd);
|
||||
return n;
|
||||
n = (unsigned)getc(fd);
|
||||
n = (n << 8) + (unsigned)getc(fd);
|
||||
n = (n << 8) + (unsigned)getc(fd);
|
||||
n = (n << 8) + (unsigned)getc(fd);
|
||||
return (int)n;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -957,8 +957,10 @@ mch_didjmp()
|
||||
|
||||
/*
|
||||
* This function handles deadly signals.
|
||||
* It tries to preserve any swap file and exit properly.
|
||||
* It tries to preserve any swap files and exit properly.
|
||||
* (partly from Elvis).
|
||||
* NOTE: Avoid unsafe functions, such as allocating memory, they can result in
|
||||
* a deadlock.
|
||||
*/
|
||||
static RETSIGTYPE
|
||||
deathtrap SIGDEFARG(sigarg)
|
||||
@@ -1090,18 +1092,23 @@ deathtrap SIGDEFARG(sigarg)
|
||||
}
|
||||
if (entered == 2)
|
||||
{
|
||||
OUT_STR(_("Vim: Double signal, exiting\n"));
|
||||
/* No translation, it may call malloc(). */
|
||||
OUT_STR("Vim: Double signal, exiting\n");
|
||||
out_flush();
|
||||
getout(1);
|
||||
}
|
||||
|
||||
/* No translation, it may call malloc(). */
|
||||
#ifdef SIGHASARG
|
||||
sprintf((char *)IObuff, _("Vim: Caught deadly signal %s\n"),
|
||||
sprintf((char *)IObuff, "Vim: Caught deadly signal %s\n",
|
||||
signal_info[i].name);
|
||||
#else
|
||||
sprintf((char *)IObuff, _("Vim: Caught deadly signal\n"));
|
||||
sprintf((char *)IObuff, "Vim: Caught deadly signal\n");
|
||||
#endif
|
||||
preserve_exit(); /* preserve files and exit */
|
||||
|
||||
/* Preserve files and exit. This sets the really_exiting flag to prevent
|
||||
* calling free(). */
|
||||
preserve_exit();
|
||||
|
||||
#ifdef NBDEBUG
|
||||
reset_signals();
|
||||
|
||||
195
src/os_win32.c
195
src/os_win32.c
@@ -2500,9 +2500,125 @@ mch_check_win(
|
||||
}
|
||||
|
||||
|
||||
#ifdef FEAT_MBYTE
|
||||
/*
|
||||
* fname_casew(): Wide version of fname_case(). Set the case of the file name,
|
||||
* if it already exists. When "len" is > 0, also expand short to long
|
||||
* filenames.
|
||||
* Return FAIL if wide functions are not available, OK otherwise.
|
||||
* NOTE: much of this is identical to fname_case(), keep in sync!
|
||||
*/
|
||||
static int
|
||||
fname_casew(
|
||||
WCHAR *name,
|
||||
int len)
|
||||
{
|
||||
WCHAR szTrueName[_MAX_PATH + 2];
|
||||
WCHAR szTrueNameTemp[_MAX_PATH + 2];
|
||||
WCHAR *ptrue, *ptruePrev;
|
||||
WCHAR *porig, *porigPrev;
|
||||
int flen;
|
||||
WIN32_FIND_DATAW fb;
|
||||
HANDLE hFind;
|
||||
int c;
|
||||
int slen;
|
||||
|
||||
flen = (int)wcslen(name);
|
||||
if (flen > _MAX_PATH)
|
||||
return OK;
|
||||
|
||||
/* slash_adjust(name) not needed, already adjusted by fname_case(). */
|
||||
|
||||
/* Build the new name in szTrueName[] one component at a time. */
|
||||
porig = name;
|
||||
ptrue = szTrueName;
|
||||
|
||||
if (iswalpha(porig[0]) && porig[1] == L':')
|
||||
{
|
||||
/* copy leading drive letter */
|
||||
*ptrue++ = *porig++;
|
||||
*ptrue++ = *porig++;
|
||||
*ptrue = NUL; /* in case nothing follows */
|
||||
}
|
||||
|
||||
while (*porig != NUL)
|
||||
{
|
||||
/* copy \ characters */
|
||||
while (*porig == psepc)
|
||||
*ptrue++ = *porig++;
|
||||
|
||||
ptruePrev = ptrue;
|
||||
porigPrev = porig;
|
||||
while (*porig != NUL && *porig != psepc)
|
||||
{
|
||||
*ptrue++ = *porig++;
|
||||
}
|
||||
*ptrue = NUL;
|
||||
|
||||
/* To avoid a slow failure append "\*" when searching a directory,
|
||||
* server or network share. */
|
||||
wcscpy(szTrueNameTemp, szTrueName);
|
||||
slen = (int)wcslen(szTrueNameTemp);
|
||||
if (*porig == psepc && slen + 2 < _MAX_PATH)
|
||||
wcscpy(szTrueNameTemp + slen, L"\\*");
|
||||
|
||||
/* Skip "", "." and "..". */
|
||||
if (ptrue > ptruePrev
|
||||
&& (ptruePrev[0] != L'.'
|
||||
|| (ptruePrev[1] != NUL
|
||||
&& (ptruePrev[1] != L'.' || ptruePrev[2] != NUL)))
|
||||
&& (hFind = FindFirstFileW(szTrueNameTemp, &fb))
|
||||
!= INVALID_HANDLE_VALUE)
|
||||
{
|
||||
c = *porig;
|
||||
*porig = NUL;
|
||||
|
||||
/* Only use the match when it's the same name (ignoring case) or
|
||||
* expansion is allowed and there is a match with the short name
|
||||
* and there is enough room. */
|
||||
if (_wcsicoll(porigPrev, fb.cFileName) == 0
|
||||
|| (len > 0
|
||||
&& (_wcsicoll(porigPrev, fb.cAlternateFileName) == 0
|
||||
&& (int)(ptruePrev - szTrueName)
|
||||
+ (int)wcslen(fb.cFileName) < len)))
|
||||
{
|
||||
wcscpy(ptruePrev, fb.cFileName);
|
||||
|
||||
/* Look for exact match and prefer it if found. Must be a
|
||||
* long name, otherwise there would be only one match. */
|
||||
while (FindNextFileW(hFind, &fb))
|
||||
{
|
||||
if (*fb.cAlternateFileName != NUL
|
||||
&& (wcscoll(porigPrev, fb.cFileName) == 0
|
||||
|| (len > 0
|
||||
&& (_wcsicoll(porigPrev,
|
||||
fb.cAlternateFileName) == 0
|
||||
&& (int)(ptruePrev - szTrueName)
|
||||
+ (int)wcslen(fb.cFileName) < len))))
|
||||
{
|
||||
wcscpy(ptruePrev, fb.cFileName);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
FindClose(hFind);
|
||||
*porig = c;
|
||||
ptrue = ptruePrev + wcslen(ptruePrev);
|
||||
}
|
||||
else if (hFind == INVALID_HANDLE_VALUE
|
||||
&& GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
wcscpy(name, szTrueName);
|
||||
return OK;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* fname_case(): Set the case of the file name, if it already exists.
|
||||
* When "len" is > 0, also expand short to long filenames.
|
||||
* NOTE: much of this is identical to fname_casew(), keep in sync!
|
||||
*/
|
||||
void
|
||||
fname_case(
|
||||
@@ -2520,11 +2636,44 @@ fname_case(
|
||||
int slen;
|
||||
|
||||
flen = (int)STRLEN(name);
|
||||
if (flen == 0 || flen > _MAX_PATH)
|
||||
if (flen == 0)
|
||||
return;
|
||||
|
||||
slash_adjust(name);
|
||||
|
||||
#ifdef FEAT_MBYTE
|
||||
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||
{
|
||||
WCHAR *p = enc_to_utf16(name, NULL);
|
||||
|
||||
if (p != NULL)
|
||||
{
|
||||
char_u *q;
|
||||
WCHAR buf[_MAX_PATH + 2];
|
||||
|
||||
wcscpy(buf, p);
|
||||
vim_free(p);
|
||||
|
||||
if (fname_casew(buf, (len > 0) ? _MAX_PATH : 0) == OK)
|
||||
{
|
||||
q = utf16_to_enc(buf, NULL);
|
||||
if (q != NULL)
|
||||
{
|
||||
vim_strncpy(name, q, (len > 0) ? len - 1 : flen);
|
||||
vim_free(q);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
/* Retry with non-wide function (for Windows 98). */
|
||||
}
|
||||
#endif
|
||||
|
||||
/* If 'enc' is utf-8, flen can be larger than _MAX_PATH.
|
||||
* So we should check this after calling wide function. */
|
||||
if (flen > _MAX_PATH)
|
||||
return;
|
||||
|
||||
/* Build the new name in szTrueName[] one component at a time. */
|
||||
porig = name;
|
||||
ptrue = szTrueName;
|
||||
@@ -3107,6 +3256,9 @@ mch_nodetype(char_u *name)
|
||||
{
|
||||
HANDLE hFile;
|
||||
int type;
|
||||
#ifdef FEAT_MBYTE
|
||||
WCHAR *wn = NULL;
|
||||
#endif
|
||||
|
||||
/* We can't open a file with a name "\\.\con" or "\\.\prn" and trying to
|
||||
* read from it later will cause Vim to hang. Thus return NODE_WRITABLE
|
||||
@@ -3114,14 +3266,41 @@ mch_nodetype(char_u *name)
|
||||
if (STRNCMP(name, "\\\\.\\", 4) == 0)
|
||||
return NODE_WRITABLE;
|
||||
|
||||
hFile = CreateFile(name, /* file name */
|
||||
GENERIC_WRITE, /* access mode */
|
||||
0, /* share mode */
|
||||
NULL, /* security descriptor */
|
||||
OPEN_EXISTING, /* creation disposition */
|
||||
0, /* file attributes */
|
||||
NULL); /* handle to template file */
|
||||
#ifdef FEAT_MBYTE
|
||||
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||
{
|
||||
wn = enc_to_utf16(name, NULL);
|
||||
if (wn != NULL)
|
||||
{
|
||||
hFile = CreateFileW(wn, /* file name */
|
||||
GENERIC_WRITE, /* access mode */
|
||||
0, /* share mode */
|
||||
NULL, /* security descriptor */
|
||||
OPEN_EXISTING, /* creation disposition */
|
||||
0, /* file attributes */
|
||||
NULL); /* handle to template file */
|
||||
if (hFile == INVALID_HANDLE_VALUE
|
||||
&& GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
|
||||
{
|
||||
/* Retry with non-wide function (for Windows 98). */
|
||||
vim_free(wn);
|
||||
wn = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (wn == NULL)
|
||||
#endif
|
||||
hFile = CreateFile(name, /* file name */
|
||||
GENERIC_WRITE, /* access mode */
|
||||
0, /* share mode */
|
||||
NULL, /* security descriptor */
|
||||
OPEN_EXISTING, /* creation disposition */
|
||||
0, /* file attributes */
|
||||
NULL); /* handle to template file */
|
||||
|
||||
#ifdef FEAT_MBYTE
|
||||
vim_free(wn);
|
||||
#endif
|
||||
if (hFile == INVALID_HANDLE_VALUE)
|
||||
return NODE_NORMAL;
|
||||
|
||||
|
||||
@@ -9,8 +9,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: vim_7.4_ru\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-07-08 00:47+0400\n"
|
||||
"PO-Revision-Date: 2013-07-08 00:47+0400\n"
|
||||
"POT-Creation-Date: 2013-08-31 16:42+0400\n"
|
||||
"PO-Revision-Date: 2013-08-31 21:11+0400\n"
|
||||
"Last-Translator: Sergey Alyoshin <alyoshin.s@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: Russian\n"
|
||||
@@ -568,8 +568,9 @@ msgstr "E725:
|
||||
msgid "E808: Number or Float required"
|
||||
msgstr "E808: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
|
||||
#. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> p()" <20> E741 <20> E742
|
||||
msgid "add() argument"
|
||||
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> add()"
|
||||
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> add()"
|
||||
|
||||
msgid "E699: Too many arguments"
|
||||
msgstr "E699: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
@@ -589,14 +590,17 @@ msgstr "&Ok"
|
||||
msgid "E737: Key already exists: %s"
|
||||
msgstr "E737: <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %s"
|
||||
|
||||
#. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> p()" <20> E741 <20> E742
|
||||
msgid "extend() argument"
|
||||
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> extend()"
|
||||
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> extend()"
|
||||
|
||||
#. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> p()" <20> E741 <20> E742
|
||||
msgid "map() argument"
|
||||
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> map()"
|
||||
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> map()"
|
||||
|
||||
#. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> p()" <20> E741 <20> E742
|
||||
msgid "filter() argument"
|
||||
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> filter()"
|
||||
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> filter()"
|
||||
|
||||
#, c-format
|
||||
msgid "+-%s%3ld lines: "
|
||||
@@ -616,8 +620,9 @@ msgstr ""
|
||||
msgid "called inputrestore() more often than inputsave()"
|
||||
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> inputrestore() <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> inputsave()"
|
||||
|
||||
#. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> p()" <20> E741 <20> E742
|
||||
msgid "insert() argument"
|
||||
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> insert()"
|
||||
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> insert()"
|
||||
|
||||
msgid "E786: Range not allowed"
|
||||
msgstr "E786: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
@@ -644,20 +649,23 @@ msgstr "E241:
|
||||
msgid "E277: Unable to read a server reply"
|
||||
msgstr "E277: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
|
||||
#. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> p()" <20> E741 <20> E742
|
||||
msgid "remove() argument"
|
||||
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> remove()"
|
||||
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> remove()"
|
||||
|
||||
msgid "E655: Too many symbolic links (cycle?)"
|
||||
msgstr "E655: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>?)"
|
||||
|
||||
#. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> p()" <20> E741 <20> E742
|
||||
msgid "reverse() argument"
|
||||
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> reverse()"
|
||||
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> reverse()"
|
||||
|
||||
msgid "E258: Unable to send to client"
|
||||
msgstr "E258: <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
|
||||
#. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> p()" <20> E741 <20> E742
|
||||
msgid "sort() argument"
|
||||
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> sort()"
|
||||
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> sort()"
|
||||
|
||||
msgid "E702: Sort compare function failed"
|
||||
msgstr "E702: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
@@ -707,13 +715,15 @@ msgstr ""
|
||||
msgid "E705: Variable name conflicts with existing function: %s"
|
||||
msgstr "E705: <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %s"
|
||||
|
||||
#. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> %s = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> p"
|
||||
#, c-format
|
||||
msgid "E741: Value is locked: %s"
|
||||
msgstr "E741: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: %s"
|
||||
msgstr "E741: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %s <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
|
||||
msgid "Unknown"
|
||||
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
|
||||
#. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> %s = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> p()"
|
||||
#, c-format
|
||||
msgid "E742: Cannot change value of %s"
|
||||
msgstr "E742: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %s"
|
||||
|
||||
32
src/po/ru.po
32
src/po/ru.po
@@ -9,8 +9,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: vim_7.4_ru\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-07-08 00:47+0400\n"
|
||||
"PO-Revision-Date: 2013-07-08 00:47+0400\n"
|
||||
"POT-Creation-Date: 2013-08-31 16:42+0400\n"
|
||||
"PO-Revision-Date: 2013-08-31 21:11+0400\n"
|
||||
"Last-Translator: Sergey Alyoshin <alyoshin.s@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: Russian\n"
|
||||
@@ -568,8 +568,9 @@ msgstr "E725: Вызов функции dict без словаря: %s"
|
||||
msgid "E808: Number or Float required"
|
||||
msgstr "E808: Требуется целое число или с плавающей точкой"
|
||||
|
||||
#. Используется для получения "значение параметра p()" в E741 и E742
|
||||
msgid "add() argument"
|
||||
msgstr "параметр add()"
|
||||
msgstr "параметра add()"
|
||||
|
||||
msgid "E699: Too many arguments"
|
||||
msgstr "E699: Слишком много параметров"
|
||||
@@ -589,14 +590,17 @@ msgstr "&Ok"
|
||||
msgid "E737: Key already exists: %s"
|
||||
msgstr "E737: Ключ уже существует: %s"
|
||||
|
||||
#. Используется для получения "значение параметра p()" в E741 и E742
|
||||
msgid "extend() argument"
|
||||
msgstr "параметр extend()"
|
||||
msgstr "параметра extend()"
|
||||
|
||||
#. Используется для получения "значение параметра p()" в E741 и E742
|
||||
msgid "map() argument"
|
||||
msgstr "параметр map()"
|
||||
msgstr "параметра map()"
|
||||
|
||||
#. Используется для получения "значение параметра p()" в E741 и E742
|
||||
msgid "filter() argument"
|
||||
msgstr "параметр filter()"
|
||||
msgstr "параметра filter()"
|
||||
|
||||
#, c-format
|
||||
msgid "+-%s%3ld lines: "
|
||||
@@ -616,8 +620,9 @@ msgstr ""
|
||||
msgid "called inputrestore() more often than inputsave()"
|
||||
msgstr "Функция inputrestore() вызывается чаще, чем функция inputsave()"
|
||||
|
||||
#. Используется для получения "значение параметра p()" в E741 и E742
|
||||
msgid "insert() argument"
|
||||
msgstr "параметр insert()"
|
||||
msgstr "параметра insert()"
|
||||
|
||||
msgid "E786: Range not allowed"
|
||||
msgstr "E786: Диапазон не допускается"
|
||||
@@ -644,20 +649,23 @@ msgstr "E241: Не могу отправить сообщение для %s"
|
||||
msgid "E277: Unable to read a server reply"
|
||||
msgstr "E277: Сервер не отвечает"
|
||||
|
||||
#. Используется для получения "значение параметра p()" в E741 и E742
|
||||
msgid "remove() argument"
|
||||
msgstr "параметр remove()"
|
||||
msgstr "параметра remove()"
|
||||
|
||||
msgid "E655: Too many symbolic links (cycle?)"
|
||||
msgstr "E655: Слишком много символических ссылок (цикл?)"
|
||||
|
||||
#. Используется для получения "значение параметра p()" в E741 и E742
|
||||
msgid "reverse() argument"
|
||||
msgstr "параметр reverse()"
|
||||
msgstr "параметра reverse()"
|
||||
|
||||
msgid "E258: Unable to send to client"
|
||||
msgstr "E258: Не могу ответить клиенту"
|
||||
|
||||
#. Используется для получения "значение параметра p()" в E741 и E742
|
||||
msgid "sort() argument"
|
||||
msgstr "параметр sort()"
|
||||
msgstr "параметра sort()"
|
||||
|
||||
msgid "E702: Sort compare function failed"
|
||||
msgstr "E702: Неудачное завершение функции сравнения при сортировке"
|
||||
@@ -707,13 +715,15 @@ msgstr ""
|
||||
msgid "E705: Variable name conflicts with existing function: %s"
|
||||
msgstr "E705: Имя переменной конфликтует с существующей функцией: %s"
|
||||
|
||||
#. Используется с %s = "параметера p"
|
||||
#, c-format
|
||||
msgid "E741: Value is locked: %s"
|
||||
msgstr "E741: Значение заблокировано: %s"
|
||||
msgstr "E741: Значение %s заблокировано"
|
||||
|
||||
msgid "Unknown"
|
||||
msgstr "Неизвестно"
|
||||
|
||||
#. Используется с %s = "параметера p()"
|
||||
#, c-format
|
||||
msgid "E742: Cannot change value of %s"
|
||||
msgstr "E742: Невозможно изменить значение %s"
|
||||
|
||||
@@ -8016,12 +8016,11 @@ vim_regcomp(expr_arg, re_flags)
|
||||
}
|
||||
#endif
|
||||
/*
|
||||
* If NFA engine failed, then revert to the backtracking engine.
|
||||
* Except when there was a syntax error, which was properly handled by
|
||||
* NFA engine.
|
||||
*/
|
||||
* If the NFA engine failed, the backtracking engine won't work either.
|
||||
*
|
||||
if (regexp_engine == AUTOMATIC_ENGINE)
|
||||
prog = bt_regengine.regcomp(expr, re_flags);
|
||||
*/
|
||||
}
|
||||
|
||||
return prog;
|
||||
|
||||
334
src/regexp_nfa.c
334
src/regexp_nfa.c
@@ -742,7 +742,12 @@ nfa_recognize_char_class(start, end, extra_newl)
|
||||
nfa_emit_equi_class(c)
|
||||
int c;
|
||||
{
|
||||
#define EMIT2(c) EMIT(c); EMIT(NFA_CONCAT);
|
||||
#define EMIT2(c) EMIT(c); EMIT(NFA_CONCAT);
|
||||
#ifdef FEAT_MBYTE
|
||||
# define EMITMBC(c) EMIT(c); EMIT(NFA_CONCAT);
|
||||
#else
|
||||
# define EMITMBC(c)
|
||||
#endif
|
||||
|
||||
#ifdef FEAT_MBYTE
|
||||
if (enc_utf8 || STRCMP(p_enc, "latin1") == 0
|
||||
@@ -753,92 +758,338 @@ nfa_emit_equi_class(c)
|
||||
{
|
||||
case 'A': case 0300: case 0301: case 0302:
|
||||
case 0303: case 0304: case 0305:
|
||||
EMIT2('A'); EMIT2(0300); EMIT2(0301);
|
||||
EMIT2(0302); EMIT2(0303); EMIT2(0304);
|
||||
EMIT2(0305);
|
||||
CASEMBC(0x100) CASEMBC(0x102) CASEMBC(0x104) CASEMBC(0x1cd)
|
||||
CASEMBC(0x1de) CASEMBC(0x1e0) CASEMBC(0x1ea2)
|
||||
EMIT2('A'); EMIT2(0300); EMIT2(0301); EMIT2(0302);
|
||||
EMIT2(0303); EMIT2(0304); EMIT2(0305);
|
||||
EMITMBC(0x100) EMITMBC(0x102) EMITMBC(0x104)
|
||||
EMITMBC(0x1cd) EMITMBC(0x1de) EMITMBC(0x1e0)
|
||||
EMITMBC(0x1ea2)
|
||||
return OK;
|
||||
|
||||
case 'B': CASEMBC(0x1e02) CASEMBC(0x1e06)
|
||||
EMIT2('B'); EMITMBC(0x1e02) EMITMBC(0x1e06)
|
||||
return OK;
|
||||
|
||||
case 'C': case 0307:
|
||||
EMIT2('C'); EMIT2(0307);
|
||||
CASEMBC(0x106) CASEMBC(0x108) CASEMBC(0x10a) CASEMBC(0x10c)
|
||||
EMIT2('C'); EMIT2(0307); EMITMBC(0x106) EMITMBC(0x108)
|
||||
EMITMBC(0x10a) EMITMBC(0x10c)
|
||||
return OK;
|
||||
|
||||
case 'D': CASEMBC(0x10e) CASEMBC(0x110) CASEMBC(0x1e0a)
|
||||
CASEMBC(0x1e0e) CASEMBC(0x1e10)
|
||||
EMIT2('D'); EMITMBC(0x10e) EMITMBC(0x110) EMITMBC(0x1e0a)
|
||||
EMITMBC(0x1e0e) EMITMBC(0x1e10)
|
||||
return OK;
|
||||
|
||||
case 'E': case 0310: case 0311: case 0312: case 0313:
|
||||
EMIT2('E'); EMIT2(0310); EMIT2(0311);
|
||||
EMIT2(0312); EMIT2(0313);
|
||||
CASEMBC(0x112) CASEMBC(0x114) CASEMBC(0x116) CASEMBC(0x118)
|
||||
CASEMBC(0x11a) CASEMBC(0x1eba) CASEMBC(0x1ebc)
|
||||
EMIT2('E'); EMIT2(0310); EMIT2(0311); EMIT2(0312);
|
||||
EMIT2(0313);
|
||||
EMITMBC(0x112) EMITMBC(0x114) EMITMBC(0x116)
|
||||
EMITMBC(0x118) EMITMBC(0x11a) EMITMBC(0x1eba)
|
||||
EMITMBC(0x1ebc)
|
||||
return OK;
|
||||
|
||||
case 'F': CASEMBC(0x1e1e)
|
||||
EMIT2('F'); EMITMBC(0x1e1e)
|
||||
return OK;
|
||||
|
||||
case 'G': CASEMBC(0x11c) CASEMBC(0x11e) CASEMBC(0x120)
|
||||
CASEMBC(0x122) CASEMBC(0x1e4) CASEMBC(0x1e6) CASEMBC(0x1f4)
|
||||
CASEMBC(0x1e20)
|
||||
EMIT2('G'); EMITMBC(0x11c) EMITMBC(0x11e) EMITMBC(0x120)
|
||||
EMITMBC(0x122) EMITMBC(0x1e4) EMITMBC(0x1e6)
|
||||
EMITMBC(0x1f4) EMITMBC(0x1e20)
|
||||
return OK;
|
||||
|
||||
case 'H': CASEMBC(0x124) CASEMBC(0x126) CASEMBC(0x1e22)
|
||||
CASEMBC(0x1e26) CASEMBC(0x1e28)
|
||||
EMIT2('H'); EMITMBC(0x124) EMITMBC(0x126) EMITMBC(0x1e22)
|
||||
EMITMBC(0x1e26) EMITMBC(0x1e28)
|
||||
return OK;
|
||||
|
||||
case 'I': case 0314: case 0315: case 0316: case 0317:
|
||||
EMIT2('I'); EMIT2(0314); EMIT2(0315);
|
||||
EMIT2(0316); EMIT2(0317);
|
||||
CASEMBC(0x128) CASEMBC(0x12a) CASEMBC(0x12c) CASEMBC(0x12e)
|
||||
CASEMBC(0x130) CASEMBC(0x1cf) CASEMBC(0x1ec8)
|
||||
EMIT2('I'); EMIT2(0314); EMIT2(0315); EMIT2(0316);
|
||||
EMIT2(0317); EMITMBC(0x128) EMITMBC(0x12a)
|
||||
EMITMBC(0x12c) EMITMBC(0x12e) EMITMBC(0x130)
|
||||
EMITMBC(0x1cf) EMITMBC(0x1ec8)
|
||||
return OK;
|
||||
|
||||
case 'J': CASEMBC(0x134)
|
||||
EMIT2('J'); EMITMBC(0x134)
|
||||
return OK;
|
||||
|
||||
case 'K': CASEMBC(0x136) CASEMBC(0x1e8) CASEMBC(0x1e30)
|
||||
CASEMBC(0x1e34)
|
||||
EMIT2('K'); EMITMBC(0x136) EMITMBC(0x1e8) EMITMBC(0x1e30)
|
||||
EMITMBC(0x1e34)
|
||||
return OK;
|
||||
|
||||
case 'L': CASEMBC(0x139) CASEMBC(0x13b) CASEMBC(0x13d)
|
||||
CASEMBC(0x13f) CASEMBC(0x141) CASEMBC(0x1e3a)
|
||||
EMIT2('L'); EMITMBC(0x139) EMITMBC(0x13b) EMITMBC(0x13d)
|
||||
EMITMBC(0x13f) EMITMBC(0x141) EMITMBC(0x1e3a)
|
||||
return OK;
|
||||
|
||||
case 'M': CASEMBC(0x1e3e) CASEMBC(0x1e40)
|
||||
EMIT2('M'); EMITMBC(0x1e3e) EMITMBC(0x1e40)
|
||||
return OK;
|
||||
|
||||
case 'N': case 0321:
|
||||
EMIT2('N'); EMIT2(0321);
|
||||
CASEMBC(0x143) CASEMBC(0x145) CASEMBC(0x147) CASEMBC(0x1e44)
|
||||
CASEMBC(0x1e48)
|
||||
EMIT2('N'); EMIT2(0321); EMITMBC(0x143) EMITMBC(0x145)
|
||||
EMITMBC(0x147) EMITMBC(0x1e44) EMITMBC(0x1e48)
|
||||
return OK;
|
||||
|
||||
case 'O': case 0322: case 0323: case 0324: case 0325:
|
||||
case 0326:
|
||||
EMIT2('O'); EMIT2(0322); EMIT2(0323);
|
||||
EMIT2(0324); EMIT2(0325); EMIT2(0326);
|
||||
case 0326: case 0330:
|
||||
CASEMBC(0x14c) CASEMBC(0x14e) CASEMBC(0x150) CASEMBC(0x1a0)
|
||||
CASEMBC(0x1d1) CASEMBC(0x1ea) CASEMBC(0x1ec) CASEMBC(0x1ece)
|
||||
EMIT2('O'); EMIT2(0322); EMIT2(0323); EMIT2(0324);
|
||||
EMIT2(0325); EMIT2(0326); EMIT2(0330);
|
||||
EMITMBC(0x14c) EMITMBC(0x14e) EMITMBC(0x150)
|
||||
EMITMBC(0x1a0) EMITMBC(0x1d1) EMITMBC(0x1ea)
|
||||
EMITMBC(0x1ec) EMITMBC(0x1ece)
|
||||
return OK;
|
||||
|
||||
case 'P': case 0x1e54: case 0x1e56:
|
||||
EMIT2('P'); EMITMBC(0x1e54) EMITMBC(0x1e56)
|
||||
return OK;
|
||||
|
||||
case 'R': CASEMBC(0x154) CASEMBC(0x156) CASEMBC(0x158)
|
||||
CASEMBC(0x1e58) CASEMBC(0x1e5e)
|
||||
EMIT2('R'); EMITMBC(0x154) EMITMBC(0x156) EMITMBC(0x158)
|
||||
EMITMBC(0x1e58) EMITMBC(0x1e5e)
|
||||
return OK;
|
||||
|
||||
case 'S': CASEMBC(0x15a) CASEMBC(0x15c) CASEMBC(0x15e)
|
||||
CASEMBC(0x160) CASEMBC(0x1e60)
|
||||
EMIT2('S'); EMITMBC(0x15a) EMITMBC(0x15c) EMITMBC(0x15e)
|
||||
EMITMBC(0x160) EMITMBC(0x1e60)
|
||||
return OK;
|
||||
|
||||
case 'T': CASEMBC(0x162) CASEMBC(0x164) CASEMBC(0x166)
|
||||
CASEMBC(0x1e6a) CASEMBC(0x1e6e)
|
||||
EMIT2('T'); EMITMBC(0x162) EMITMBC(0x164) EMITMBC(0x166)
|
||||
EMITMBC(0x1e6a) EMITMBC(0x1e6e)
|
||||
return OK;
|
||||
|
||||
case 'U': case 0331: case 0332: case 0333: case 0334:
|
||||
EMIT2('U'); EMIT2(0331); EMIT2(0332);
|
||||
EMIT2(0333); EMIT2(0334);
|
||||
CASEMBC(0x168) CASEMBC(0x16a) CASEMBC(0x16c) CASEMBC(0x16e)
|
||||
CASEMBC(0x170) CASEMBC(0x172) CASEMBC(0x1af) CASEMBC(0x1d3)
|
||||
CASEMBC(0x1ee6)
|
||||
EMIT2('U'); EMIT2(0331); EMIT2(0332); EMIT2(0333);
|
||||
EMIT2(0334); EMITMBC(0x168) EMITMBC(0x16a)
|
||||
EMITMBC(0x16c) EMITMBC(0x16e) EMITMBC(0x170)
|
||||
EMITMBC(0x172) EMITMBC(0x1af) EMITMBC(0x1d3)
|
||||
EMITMBC(0x1ee6)
|
||||
return OK;
|
||||
|
||||
case 'V': CASEMBC(0x1e7c)
|
||||
EMIT2('V'); EMITMBC(0x1e7c)
|
||||
return OK;
|
||||
|
||||
case 'W': CASEMBC(0x174) CASEMBC(0x1e80) CASEMBC(0x1e82)
|
||||
CASEMBC(0x1e84) CASEMBC(0x1e86)
|
||||
EMIT2('W'); EMITMBC(0x174) EMITMBC(0x1e80) EMITMBC(0x1e82)
|
||||
EMITMBC(0x1e84) EMITMBC(0x1e86)
|
||||
return OK;
|
||||
|
||||
case 'X': CASEMBC(0x1e8a) CASEMBC(0x1e8c)
|
||||
EMIT2('X'); EMITMBC(0x1e8a) EMITMBC(0x1e8c)
|
||||
return OK;
|
||||
|
||||
case 'Y': case 0335:
|
||||
EMIT2('Y'); EMIT2(0335);
|
||||
CASEMBC(0x176) CASEMBC(0x178) CASEMBC(0x1e8e) CASEMBC(0x1ef2)
|
||||
CASEMBC(0x1ef6) CASEMBC(0x1ef8)
|
||||
EMIT2('Y'); EMIT2(0335); EMITMBC(0x176) EMITMBC(0x178)
|
||||
EMITMBC(0x1e8e) EMITMBC(0x1ef2) EMITMBC(0x1ef6)
|
||||
EMITMBC(0x1ef8)
|
||||
return OK;
|
||||
|
||||
case 'Z': CASEMBC(0x179) CASEMBC(0x17b) CASEMBC(0x17d)
|
||||
CASEMBC(0x1b5) CASEMBC(0x1e90) CASEMBC(0x1e94)
|
||||
EMIT2('Z'); EMITMBC(0x179) EMITMBC(0x17b) EMITMBC(0x17d)
|
||||
EMITMBC(0x1b5) EMITMBC(0x1e90) EMITMBC(0x1e94)
|
||||
return OK;
|
||||
|
||||
case 'a': case 0340: case 0341: case 0342:
|
||||
case 0343: case 0344: case 0345:
|
||||
EMIT2('a'); EMIT2(0340); EMIT2(0341);
|
||||
EMIT2(0342); EMIT2(0343); EMIT2(0344);
|
||||
EMIT2(0345);
|
||||
CASEMBC(0x101) CASEMBC(0x103) CASEMBC(0x105) CASEMBC(0x1ce)
|
||||
CASEMBC(0x1df) CASEMBC(0x1e1) CASEMBC(0x1ea3)
|
||||
EMIT2('a'); EMIT2(0340); EMIT2(0341); EMIT2(0342);
|
||||
EMIT2(0343); EMIT2(0344); EMIT2(0345);
|
||||
EMITMBC(0x101) EMITMBC(0x103) EMITMBC(0x105)
|
||||
EMITMBC(0x1ce) EMITMBC(0x1df) EMITMBC(0x1e1)
|
||||
EMITMBC(0x1ea3)
|
||||
return OK;
|
||||
|
||||
case 'b': CASEMBC(0x1e03) CASEMBC(0x1e07)
|
||||
EMIT2('b'); EMITMBC(0x1e03) EMITMBC(0x1e07)
|
||||
return OK;
|
||||
|
||||
case 'c': case 0347:
|
||||
EMIT2('c'); EMIT2(0347);
|
||||
CASEMBC(0x107) CASEMBC(0x109) CASEMBC(0x10b) CASEMBC(0x10d)
|
||||
EMIT2('c'); EMIT2(0347); EMITMBC(0x107) EMITMBC(0x109)
|
||||
EMITMBC(0x10b) EMITMBC(0x10d)
|
||||
return OK;
|
||||
|
||||
case 'd': CASEMBC(0x10f) CASEMBC(0x111) CASEMBC(0x1d0b)
|
||||
CASEMBC(0x1e11)
|
||||
EMIT2('d'); EMITMBC(0x10f) EMITMBC(0x111) EMITMBC(0x1e0b)
|
||||
EMITMBC(0x01e0f) EMITMBC(0x1e11)
|
||||
return OK;
|
||||
|
||||
case 'e': case 0350: case 0351: case 0352: case 0353:
|
||||
EMIT2('e'); EMIT2(0350); EMIT2(0351);
|
||||
EMIT2(0352); EMIT2(0353);
|
||||
CASEMBC(0x113) CASEMBC(0x115) CASEMBC(0x117) CASEMBC(0x119)
|
||||
CASEMBC(0x11b) CASEMBC(0x1ebb) CASEMBC(0x1ebd)
|
||||
EMIT2('e'); EMIT2(0350); EMIT2(0351); EMIT2(0352);
|
||||
EMIT2(0353); EMITMBC(0x113) EMITMBC(0x115)
|
||||
EMITMBC(0x117) EMITMBC(0x119) EMITMBC(0x11b)
|
||||
EMITMBC(0x1ebb) EMITMBC(0x1ebd)
|
||||
return OK;
|
||||
|
||||
case 'f': CASEMBC(0x1e1f)
|
||||
EMIT2('f'); EMITMBC(0x1e1f)
|
||||
return OK;
|
||||
|
||||
case 'g': CASEMBC(0x11d) CASEMBC(0x11f) CASEMBC(0x121)
|
||||
CASEMBC(0x123) CASEMBC(0x1e5) CASEMBC(0x1e7) CASEMBC(0x1f5)
|
||||
CASEMBC(0x1e21)
|
||||
EMIT2('g'); EMITMBC(0x11d) EMITMBC(0x11f) EMITMBC(0x121)
|
||||
EMITMBC(0x123) EMITMBC(0x1e5) EMITMBC(0x1e7)
|
||||
EMITMBC(0x1f5) EMITMBC(0x1e21)
|
||||
return OK;
|
||||
|
||||
case 'h': CASEMBC(0x125) CASEMBC(0x127) CASEMBC(0x1e23)
|
||||
CASEMBC(0x1e27) CASEMBC(0x1e29) CASEMBC(0x1e96)
|
||||
EMIT2('h'); EMITMBC(0x125) EMITMBC(0x127) EMITMBC(0x1e23)
|
||||
EMITMBC(0x1e27) EMITMBC(0x1e29) EMITMBC(0x1e96)
|
||||
return OK;
|
||||
|
||||
case 'i': case 0354: case 0355: case 0356: case 0357:
|
||||
EMIT2('i'); EMIT2(0354); EMIT2(0355);
|
||||
EMIT2(0356); EMIT2(0357);
|
||||
CASEMBC(0x129) CASEMBC(0x12b) CASEMBC(0x12d) CASEMBC(0x12f)
|
||||
CASEMBC(0x1d0) CASEMBC(0x1ec9)
|
||||
EMIT2('i'); EMIT2(0354); EMIT2(0355); EMIT2(0356);
|
||||
EMIT2(0357); EMITMBC(0x129) EMITMBC(0x12b)
|
||||
EMITMBC(0x12d) EMITMBC(0x12f) EMITMBC(0x1d0)
|
||||
EMITMBC(0x1ec9)
|
||||
return OK;
|
||||
|
||||
case 'j': CASEMBC(0x135) CASEMBC(0x1f0)
|
||||
EMIT2('j'); EMITMBC(0x135) EMITMBC(0x1f0)
|
||||
return OK;
|
||||
|
||||
case 'k': CASEMBC(0x137) CASEMBC(0x1e9) CASEMBC(0x1e31)
|
||||
CASEMBC(0x1e35)
|
||||
EMIT2('k'); EMITMBC(0x137) EMITMBC(0x1e9) EMITMBC(0x1e31)
|
||||
EMITMBC(0x1e35)
|
||||
return OK;
|
||||
|
||||
case 'l': CASEMBC(0x13a) CASEMBC(0x13c) CASEMBC(0x13e)
|
||||
CASEMBC(0x140) CASEMBC(0x142) CASEMBC(0x1e3b)
|
||||
EMIT2('l'); EMITMBC(0x13a) EMITMBC(0x13c) EMITMBC(0x13e)
|
||||
EMITMBC(0x140) EMITMBC(0x142) EMITMBC(0x1e3b)
|
||||
return OK;
|
||||
|
||||
case 'm': CASEMBC(0x1e3f) CASEMBC(0x1e41)
|
||||
EMIT2('m'); EMITMBC(0x1e3f) EMITMBC(0x1e41)
|
||||
return OK;
|
||||
|
||||
case 'n': case 0361:
|
||||
EMIT2('n'); EMIT2(0361);
|
||||
CASEMBC(0x144) CASEMBC(0x146) CASEMBC(0x148) CASEMBC(0x149)
|
||||
CASEMBC(0x1e45) CASEMBC(0x1e49)
|
||||
EMIT2('n'); EMIT2(0361); EMITMBC(0x144) EMITMBC(0x146)
|
||||
EMITMBC(0x148) EMITMBC(0x149) EMITMBC(0x1e45)
|
||||
EMITMBC(0x1e49)
|
||||
return OK;
|
||||
|
||||
case 'o': case 0362: case 0363: case 0364: case 0365:
|
||||
case 0366:
|
||||
EMIT2('o'); EMIT2(0362); EMIT2(0363);
|
||||
EMIT2(0364); EMIT2(0365); EMIT2(0366);
|
||||
case 0366: case 0370:
|
||||
CASEMBC(0x14d) CASEMBC(0x14f) CASEMBC(0x151) CASEMBC(0x1a1)
|
||||
CASEMBC(0x1d2) CASEMBC(0x1eb) CASEMBC(0x1ed) CASEMBC(0x1ecf)
|
||||
EMIT2('o'); EMIT2(0362); EMIT2(0363); EMIT2(0364);
|
||||
EMIT2(0365); EMIT2(0366); EMIT2(0370);
|
||||
EMITMBC(0x14d) EMITMBC(0x14f) EMITMBC(0x151)
|
||||
EMITMBC(0x1a1) EMITMBC(0x1d2) EMITMBC(0x1eb)
|
||||
EMITMBC(0x1ed) EMITMBC(0x1ecf)
|
||||
return OK;
|
||||
|
||||
case 'p': CASEMBC(0x1e55) CASEMBC(0x1e57)
|
||||
EMIT2('p'); EMITMBC(0x1e55) EMITMBC(0x1e57)
|
||||
return OK;
|
||||
|
||||
case 'r': CASEMBC(0x155) CASEMBC(0x157) CASEMBC(0x159)
|
||||
CASEMBC(0x1e59) CASEMBC(0x1e5f)
|
||||
EMIT2('r'); EMITMBC(0x155) EMITMBC(0x157) EMITMBC(0x159)
|
||||
EMITMBC(0x1e59) EMITMBC(0x1e5f)
|
||||
return OK;
|
||||
|
||||
case 's': CASEMBC(0x15b) CASEMBC(0x15d) CASEMBC(0x15f)
|
||||
CASEMBC(0x161) CASEMBC(0x1e61)
|
||||
EMIT2('s'); EMITMBC(0x15b) EMITMBC(0x15d) EMITMBC(0x15f)
|
||||
EMITMBC(0x161) EMITMBC(0x1e61)
|
||||
return OK;
|
||||
|
||||
case 't': CASEMBC(0x163) CASEMBC(0x165) CASEMBC(0x167)
|
||||
CASEMBC(0x1e6b) CASEMBC(0x1e6f) CASEMBC(0x1e97)
|
||||
EMIT2('t'); EMITMBC(0x163) EMITMBC(0x165) EMITMBC(0x167)
|
||||
EMITMBC(0x1e6b) EMITMBC(0x1e6f) EMITMBC(0x1e97)
|
||||
return OK;
|
||||
|
||||
case 'u': case 0371: case 0372: case 0373: case 0374:
|
||||
EMIT2('u'); EMIT2(0371); EMIT2(0372);
|
||||
EMIT2(0373); EMIT2(0374);
|
||||
CASEMBC(0x169) CASEMBC(0x16b) CASEMBC(0x16d) CASEMBC(0x16f)
|
||||
CASEMBC(0x171) CASEMBC(0x173) CASEMBC(0x1b0) CASEMBC(0x1d4)
|
||||
CASEMBC(0x1ee7)
|
||||
EMIT2('u'); EMIT2(0371); EMIT2(0372); EMIT2(0373);
|
||||
EMIT2(0374); EMITMBC(0x169) EMITMBC(0x16b)
|
||||
EMITMBC(0x16d) EMITMBC(0x16f) EMITMBC(0x171)
|
||||
EMITMBC(0x173) EMITMBC(0x1b0) EMITMBC(0x1d4)
|
||||
EMITMBC(0x1ee7)
|
||||
return OK;
|
||||
|
||||
case 'v': CASEMBC(0x1e7d)
|
||||
EMIT2('v'); EMITMBC(0x1e7d)
|
||||
return OK;
|
||||
|
||||
case 'w': CASEMBC(0x175) CASEMBC(0x1e81) CASEMBC(0x1e83)
|
||||
CASEMBC(0x1e85) CASEMBC(0x1e87) CASEMBC(0x1e98)
|
||||
EMIT2('w'); EMITMBC(0x175) EMITMBC(0x1e81) EMITMBC(0x1e83)
|
||||
EMITMBC(0x1e85) EMITMBC(0x1e87) EMITMBC(0x1e98)
|
||||
return OK;
|
||||
|
||||
case 'x': CASEMBC(0x1e8b) CASEMBC(0x1e8d)
|
||||
EMIT2('x'); EMITMBC(0x1e8b) EMITMBC(0x1e8d)
|
||||
return OK;
|
||||
|
||||
case 'y': case 0375: case 0377:
|
||||
EMIT2('y'); EMIT2(0375); EMIT2(0377);
|
||||
CASEMBC(0x177) CASEMBC(0x1e8f) CASEMBC(0x1e99)
|
||||
CASEMBC(0x1ef3) CASEMBC(0x1ef7) CASEMBC(0x1ef9)
|
||||
EMIT2('y'); EMIT2(0375); EMIT2(0377); EMITMBC(0x177)
|
||||
EMITMBC(0x1e8f) EMITMBC(0x1e99) EMITMBC(0x1ef3)
|
||||
EMITMBC(0x1ef7) EMITMBC(0x1ef9)
|
||||
return OK;
|
||||
|
||||
default:
|
||||
return FAIL;
|
||||
case 'z': CASEMBC(0x17a) CASEMBC(0x17c) CASEMBC(0x17e)
|
||||
CASEMBC(0x1b6) CASEMBC(0x1e91) CASEMBC(0x1e95)
|
||||
EMIT2('z'); EMITMBC(0x17a) EMITMBC(0x17c) EMITMBC(0x17e)
|
||||
EMITMBC(0x1b6) EMITMBC(0x1e91) EMITMBC(0x1e95)
|
||||
return OK;
|
||||
|
||||
/* default: character itself */
|
||||
}
|
||||
}
|
||||
|
||||
EMIT(c);
|
||||
EMIT2(c);
|
||||
return OK;
|
||||
#undef EMIT2
|
||||
#undef EMITMBC
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1132,8 +1383,9 @@ nfa_regatom()
|
||||
EMSG2_RET_FAIL(
|
||||
_("E678: Invalid character after %s%%[dxouU]"),
|
||||
reg_magic == MAGIC_ALL);
|
||||
/* A NUL is stored in the text as NL */
|
||||
/* TODO: what if a composing character follows? */
|
||||
EMIT(nr);
|
||||
EMIT(nr == 0 ? 0x0a : nr);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -4209,10 +4461,11 @@ skip_add:
|
||||
break;
|
||||
|
||||
case NFA_MCLOSE:
|
||||
if (nfa_has_zend)
|
||||
if (nfa_has_zend && (REG_MULTI
|
||||
? subs->norm.list.multi[0].end.lnum >= 0
|
||||
: subs->norm.list.line[0].end != NULL))
|
||||
{
|
||||
/* Do not overwrite the position set by \ze. If no \ze
|
||||
* encountered end will be set in nfa_regtry(). */
|
||||
/* Do not overwrite the position set by \ze. */
|
||||
subs = addstate(l, state->out, subs, pim, off);
|
||||
break;
|
||||
}
|
||||
@@ -5322,7 +5575,10 @@ nfa_regmatch(prog, start, submatch, m)
|
||||
log_subsexpr(m);
|
||||
#endif
|
||||
nfa_match = TRUE;
|
||||
break;
|
||||
/* See comment above at "goto nextchar". */
|
||||
if (nextlist->n == 0)
|
||||
clen = 0;
|
||||
goto nextchar;
|
||||
|
||||
case NFA_START_INVISIBLE:
|
||||
case NFA_START_INVISIBLE_FIRST:
|
||||
|
||||
12
src/tag.c
12
src/tag.c
@@ -1797,13 +1797,16 @@ line_read_in:
|
||||
*/
|
||||
if (state == TS_START)
|
||||
{
|
||||
/* The header ends when the line sorts below "!_TAG_".
|
||||
* There may be non-header items before the header though,
|
||||
* e.g. "!" itself. When case is folded lower case letters
|
||||
* sort before "_". */
|
||||
/* The header ends when the line sorts below "!_TAG_". When
|
||||
* case is folded lower case letters sort before "_". */
|
||||
if (STRNCMP(lbuf, "!_TAG_", 6) <= 0
|
||||
|| (lbuf[0] == '!' && ASCII_ISLOWER(lbuf[1])))
|
||||
{
|
||||
if (STRNCMP(lbuf, "!_TAG_", 6) != 0)
|
||||
/* Non-header item before the header, e.g. "!" itself.
|
||||
*/
|
||||
goto parse_line;
|
||||
|
||||
/*
|
||||
* Read header line.
|
||||
*/
|
||||
@@ -1898,6 +1901,7 @@ line_read_in:
|
||||
#endif
|
||||
}
|
||||
|
||||
parse_line:
|
||||
/*
|
||||
* Figure out where the different strings are in this line.
|
||||
* For "normal" tags: Do a quick check if the tag matches.
|
||||
|
||||
@@ -33,7 +33,8 @@ SCRIPTS = test1.out test3.out test4.out test5.out test6.out \
|
||||
test76.out test77.out test78.out test79.out test80.out \
|
||||
test81.out test82.out test83.out test84.out test88.out \
|
||||
test89.out test90.out test91.out test92.out test93.out \
|
||||
test94.out test95.out test96.out test97.out test98.out
|
||||
test94.out test95.out test96.out test97.out test98.out \
|
||||
test99.out
|
||||
|
||||
.SUFFIXES: .in .out
|
||||
|
||||
@@ -148,3 +149,4 @@ test95.out: test95.in
|
||||
test96.out: test96.in
|
||||
test97.out: test97.in
|
||||
test98.out: test98.in
|
||||
test99.out: test99.in
|
||||
|
||||
@@ -32,7 +32,7 @@ SCRIPTS = test3.out test4.out test5.out test6.out test7.out \
|
||||
test79.out test80.out test81.out test82.out test83.out \
|
||||
test84.out test85.out test86.out test87.out test88.out \
|
||||
test89.out test90.out test91.out test92.out test93.out \
|
||||
test94.out test95.out test96.out test98.out
|
||||
test94.out test95.out test96.out test98.out test99.out
|
||||
|
||||
SCRIPTS32 = test50.out test70.out
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ SCRIPTS = test3.out test4.out test5.out test6.out test7.out \
|
||||
test79.out test80.out test81.out test82.out test83.out \
|
||||
test84.out test85.out test86.out test87.out test88.out \
|
||||
test89.out test90.out test91.out test92.out test93.out \
|
||||
test94.out test95.out test96.out test98.out
|
||||
test94.out test95.out test96.out test98.out test99.out
|
||||
|
||||
SCRIPTS32 = test50.out test70.out
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ SCRIPTS = test1.out test3.out test4.out test5.out test6.out \
|
||||
test76.out test77.out test78.out test79.out test80.out \
|
||||
test81.out test82.out test83.out test84.out test88.out \
|
||||
test89.out test90.out test91.out test92.out test93.out \
|
||||
test94.out test95.out test96.out test98.out
|
||||
test94.out test95.out test96.out test98.out test99.out
|
||||
|
||||
.SUFFIXES: .in .out
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
# Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
|
||||
# Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
|
||||
#
|
||||
# Last change: 2013 Jul 09
|
||||
# Last change: 2013 Sep 19
|
||||
#
|
||||
# This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
|
||||
# Edit the lines in the Configuration section below to select.
|
||||
@@ -78,7 +78,7 @@ SCRIPT = test1.out test2.out test3.out test4.out test5.out \
|
||||
test77.out test78.out test79.out test80.out test81.out \
|
||||
test82.out test83.out test84.out test88.out test89.out \
|
||||
test90.out test91.out test92.out test93.out test94.out \
|
||||
test95.out test96.out test97.out test98.out
|
||||
test95.out test96.out test97.out test98.out test99.out
|
||||
|
||||
# Known problems:
|
||||
# Test 30: a problem around mac format - unknown reason
|
||||
|
||||
@@ -29,7 +29,8 @@ SCRIPTS = test1.out test2.out test3.out test4.out test5.out test6.out \
|
||||
test79.out test80.out test81.out test82.out test83.out \
|
||||
test84.out test85.out test86.out test87.out test88.out \
|
||||
test89.out test90.out test91.out test92.out test93.out \
|
||||
test94.out test95.out test96.out test97.out test98.out
|
||||
test94.out test95.out test96.out test97.out test98.out \
|
||||
test99.out
|
||||
|
||||
SCRIPTS_GUI = test16.out
|
||||
|
||||
|
||||
@@ -36,6 +36,9 @@ kOM
|
||||
:w Xtest11.one
|
||||
:w Xtest11.two
|
||||
OIXA
|
||||
:" use CTRL-X CTRL-F to complete Xtest11.one, remove it and then use
|
||||
:" CTRL-X CTRL-F again to verify this doesn't cause trouble.
|
||||
OXddk
|
||||
:se cpt=w
|
||||
OST
|
||||
:se cpt=u nohid
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
Tests for regexp with multi-byte encoding and various magic settings.
|
||||
Test matchstr() with a count and multi-byte chars.
|
||||
See test99 for exactly the same test with re=2.
|
||||
|
||||
STARTTEST
|
||||
:so mbyte.vim
|
||||
:set nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo
|
||||
:set re=1
|
||||
/^1
|
||||
/a*b\{2}c\+/e
|
||||
x/\Md\*e\{2}f\+/e
|
||||
|
||||
@@ -328,6 +328,7 @@ STARTTEST
|
||||
:call add(tl, [2, 'abc \zsmatch\ze abc', 'abc abc abc match abc abc', 'match'])
|
||||
:call add(tl, [2, '\v(a \zsif .*){2}', 'a if then a if last', 'if last', 'a if last'])
|
||||
:call add(tl, [2, '\>\zs.', 'aword. ', '.'])
|
||||
:call add(tl, [2, '\s\+\ze\[/\|\s\zs\s\+', 'is [a t', ' '])
|
||||
:"
|
||||
:"""" Tests for \@= and \& features
|
||||
:call add(tl, [2, 'abc\@=', 'abc', 'ab'])
|
||||
@@ -372,6 +373,7 @@ STARTTEST
|
||||
:call add(tl, [2, '\%x20', 'yes no', ' '])
|
||||
:call add(tl, [2, '\%u0020', 'yes no', ' '])
|
||||
:call add(tl, [2, '\%U00000020', 'yes no', ' '])
|
||||
:call add(tl, [2, '\%d0', "yes\x0ano", "\x0a"])
|
||||
:"
|
||||
:""""" \%[abc]
|
||||
:call add(tl, [2, 'foo\%[bar]', 'fobar'])
|
||||
@@ -427,6 +429,7 @@ STARTTEST
|
||||
:""""" \@>
|
||||
:call add(tl, [2, '\(a*\)\@>a', 'aaaa'])
|
||||
:call add(tl, [2, '\(a*\)\@>b', 'aaab', 'aaab', 'aaa'])
|
||||
:call add(tl, [2, '^\(.\{-}b\)\@>.', ' abcbd', ' abc', ' ab'])
|
||||
:" TODO: BT engine does not restore submatch after failure
|
||||
:call add(tl, [1, '\(a*\)\@>a\|a\+', 'aaaa', 'aaaa'])
|
||||
:"
|
||||
|
||||
@@ -752,6 +752,9 @@ OK 2 - \v(a \zsif .*){2}
|
||||
OK 0 - \>\zs.
|
||||
OK 1 - \>\zs.
|
||||
OK 2 - \>\zs.
|
||||
OK 0 - \s\+\ze\[/\|\s\zs\s\+
|
||||
OK 1 - \s\+\ze\[/\|\s\zs\s\+
|
||||
OK 2 - \s\+\ze\[/\|\s\zs\s\+
|
||||
OK 0 - abc\@=
|
||||
OK 1 - abc\@=
|
||||
OK 2 - abc\@=
|
||||
@@ -860,6 +863,9 @@ OK 2 - \%u0020
|
||||
OK 0 - \%U00000020
|
||||
OK 1 - \%U00000020
|
||||
OK 2 - \%U00000020
|
||||
OK 0 - \%d0
|
||||
OK 1 - \%d0
|
||||
OK 2 - \%d0
|
||||
OK 0 - foo\%[bar]
|
||||
OK 1 - foo\%[bar]
|
||||
OK 2 - foo\%[bar]
|
||||
@@ -983,6 +989,9 @@ OK 2 - \(a*\)\@>a
|
||||
OK 0 - \(a*\)\@>b
|
||||
OK 1 - \(a*\)\@>b
|
||||
OK 2 - \(a*\)\@>b
|
||||
OK 0 - ^\(.\{-}b\)\@>.
|
||||
OK 1 - ^\(.\{-}b\)\@>.
|
||||
OK 2 - ^\(.\{-}b\)\@>.
|
||||
OK 0 - \(a*\)\@>a\|a\+
|
||||
OK 2 - \(a*\)\@>a\|a\+
|
||||
OK 0 - \_[^8-9]\+
|
||||
|
||||
68
src/testdir/test99.in
Normal file
68
src/testdir/test99.in
Normal file
@@ -0,0 +1,68 @@
|
||||
Tests for regexp with multi-byte encoding and various magic settings.
|
||||
Test matchstr() with a count and multi-byte chars.
|
||||
See test44 for exactly the same test with re=1.
|
||||
|
||||
STARTTEST
|
||||
:so mbyte.vim
|
||||
:set nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo
|
||||
:set re=2
|
||||
/^1
|
||||
/a*b\{2}c\+/e
|
||||
x/\Md\*e\{2}f\+/e
|
||||
x:set nomagic
|
||||
/g\*h\{2}i\+/e
|
||||
x/\mj*k\{2}l\+/e
|
||||
x/\vm*n{2}o+/e
|
||||
x/\V^aa$
|
||||
x:set magic
|
||||
/\v(a)(b)\2\1\1/e
|
||||
x/\V[ab]\(\[xy]\)\1
|
||||
x:" Now search for multi-byte without composing char
|
||||
/ม
|
||||
x:" Now search for multi-byte with composing char
|
||||
/ม่
|
||||
x:" find word by change of word class
|
||||
/ち\<カヨ\>は
|
||||
x:" Test \%u, [\u] and friends
|
||||
/\%u20ac
|
||||
x/[\u4f7f\u5929]\+
|
||||
x/\%U12345678
|
||||
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:let @w=':%s#comb[i]nations#œ̄ṣ́m̥̄ᾱ̆́#g'
|
||||
:@w
|
||||
:?^1?,$w! test.out
|
||||
:e! test.out
|
||||
G:put =matchstr(\"אבגד\", \".\", 0, 2) " ב
|
||||
:put =matchstr(\"אבגד\", \"..\", 0, 2) " בג
|
||||
:put =matchstr(\"אבגד\", \".\", 0, 0) " א
|
||||
:put =matchstr(\"אבגד\", \".\", 4, -1) " ג
|
||||
:w!
|
||||
:qa!
|
||||
ENDTEST
|
||||
|
||||
1 a aa abb abbccc
|
||||
2 d dd dee deefff
|
||||
3 g gg ghh ghhiii
|
||||
4 j jj jkk jkklll
|
||||
5 m mm mnn mnnooo
|
||||
6 x ^aa$ x
|
||||
7 (a)(b) abbaa
|
||||
8 axx [ab]xx
|
||||
9 หม่x อมx
|
||||
a อมx หม่x
|
||||
b ちカヨは
|
||||
c x ¬€x
|
||||
d 天使x
|
||||
e <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>y
|
||||
f <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>z
|
||||
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
|
||||
k combinations
|
||||
24
src/testdir/test99.ok
Normal file
24
src/testdir/test99.ok
Normal file
@@ -0,0 +1,24 @@
|
||||
1 a aa abb abbcc
|
||||
2 d dd dee deeff
|
||||
3 g gg ghh ghhii
|
||||
4 j jj jkk jkkll
|
||||
5 m mm mnn mnnoo
|
||||
6 x aa$ x
|
||||
7 (a)(b) abba
|
||||
8 axx ab]xx
|
||||
9 หม่x อx
|
||||
a อมx หx
|
||||
b カヨは
|
||||
c x ¬x
|
||||
d 使x
|
||||
e y
|
||||
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❤
|
||||
k œ̄ṣ́m̥̄ᾱ̆́
|
||||
ב
|
||||
בג
|
||||
א
|
||||
ג
|
||||
@@ -1604,10 +1604,11 @@ u_read_undo(name, hash, orig_name)
|
||||
|
||||
#ifdef UNIX
|
||||
/* For safety we only read an undo file if the owner is equal to the
|
||||
* owner of the text file. */
|
||||
* owner of the text file or equal to the current user. */
|
||||
if (mch_stat((char *)orig_name, &st_orig) >= 0
|
||||
&& mch_stat((char *)file_name, &st_undo) >= 0
|
||||
&& st_orig.st_uid != st_undo.st_uid)
|
||||
&& st_orig.st_uid != st_undo.st_uid
|
||||
&& st_undo.st_uid != getuid())
|
||||
{
|
||||
if (p_verbose > 0)
|
||||
{
|
||||
|
||||
@@ -738,6 +738,44 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
32,
|
||||
/**/
|
||||
31,
|
||||
/**/
|
||||
30,
|
||||
/**/
|
||||
29,
|
||||
/**/
|
||||
28,
|
||||
/**/
|
||||
27,
|
||||
/**/
|
||||
26,
|
||||
/**/
|
||||
25,
|
||||
/**/
|
||||
24,
|
||||
/**/
|
||||
23,
|
||||
/**/
|
||||
22,
|
||||
/**/
|
||||
21,
|
||||
/**/
|
||||
20,
|
||||
/**/
|
||||
19,
|
||||
/**/
|
||||
18,
|
||||
/**/
|
||||
17,
|
||||
/**/
|
||||
16,
|
||||
/**/
|
||||
15,
|
||||
/**/
|
||||
14,
|
||||
/**/
|
||||
13,
|
||||
/**/
|
||||
|
||||
@@ -8,7 +8,7 @@ ifeq (yes, $(USEDLL))
|
||||
DEFINES =
|
||||
LIBS = -lc
|
||||
else
|
||||
DEFINES = -mno-cygwin
|
||||
DEFINES =
|
||||
LIBS =
|
||||
endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user