Compare commits

..

18 Commits

Author SHA1 Message Date
Bram Moolenaar
79739e163b updated for version 7.3.348
Problem:    "call range(1, 947948399)" causes a crash. (ZyX)
Solution:   Avoid a loop in the out of memory message.
2011-10-26 11:41:00 +02:00
Bram Moolenaar
b931d74b06 updated for version 7.3.347
Problem:    When dropping text from a browser on Vim it receives HTML even
            though "html" is excluded from 'clipboard'. (Andrei Avk)
Solution:   Fix the condition for TARGET_HTML.
2011-10-26 11:36:25 +02:00
Bram Moolenaar
1514667a24 Updated runtime files. 2011-10-20 22:22:38 +02:00
Bram Moolenaar
e3cc6d4223 updated for version 7.3.346
Problem:    It's hard to test netbeans commands.
Solution:   Process netbeans commands after :sleep. (Xavier de Gaye)
2011-10-20 21:58:34 +02:00
Bram Moolenaar
6cc00c75c1 updated for version 7.3.345 2011-10-20 21:41:09 +02:00
Bram Moolenaar
cd6fe97e6b updated for version 7.3.344
Problem:    Problem with GUI startup related to XInitThreads.
Solution:   Use read() and write() instead of fputs() and fread(). (James
            Vega)
2011-10-20 21:28:01 +02:00
Bram Moolenaar
c842748302 updated for version 7.3.343
Problem:    No mouse support for urxvt.
Solution:   Implement urxvt mouse support, also for > 252 columns.  (Yiding
            Jia)
2011-10-20 21:09:35 +02:00
Bram Moolenaar
62dbdc4a5a updated for version 7.3.342
Problem:    Code not in Vim style.
Solution:   Fix the style. (Elias Diem)
2011-10-20 18:24:22 +02:00
Bram Moolenaar
667b4d2db9 updated for version 7.3.341
Problem:    Local help files are only listed in help.txt, not in translated
            help files.
Solution:   Also find translated help files. (Yasuhiro Matsumoto)
2011-10-20 18:17:42 +02:00
Bram Moolenaar
f34dc6537d updated for version 7.3.340
Problem:    When 'verbosefile' is set ftplugof.vim can give an error.
Solution:   Only remove filetypeplugin autocommands when they exist. (Yasuhiro
            Matsumoto)
2011-10-20 18:12:32 +02:00
Bram Moolenaar
a4594f6b82 updated for version 7.3.339
Problem:    "make shadow" doesn't link all test files.
Solution:   Add a line in Makefile and Filelist.
2011-10-20 16:35:35 +02:00
Bram Moolenaar
b3479bd229 updated for version 7.3.338
Problem:    Using getchar() in an expression mapping doesn't work well.
Solution:   Don't save and restore the typeahead. (James Vega)
2011-10-12 22:02:14 +02:00
Bram Moolenaar
2e7b1df8fa updated for version 7.3.337
Problem:    Screen doesn't update after resizing the xterm until a character
            is typed.
Solution:   When the select call is interrupted check do_resize. (Taylor
            Hedberg)
2011-10-12 21:04:20 +02:00
Bram Moolenaar
e06461a821 updated for version 7.3.336
Problem:    When a tags file specifies an encoding different from 'enc' it
            may hang and using a pattern doesn't work.
Solution:   Convert the whole line.  Continue reading the header after the
            SORT tag.  Add test83. (Yukihiro Nakadaira)
2011-10-12 19:53:52 +02:00
Bram Moolenaar
725a962194 updated for version 7.3.335
Problem:    When 'imdisable' is reset from an autocommand in Insert mode it
            doesn't take effect.
Solution:   Call im_set_active() in Insert mode. (Taro Muraoka)
2011-10-12 16:57:13 +02:00
Bram Moolenaar
08c51aabc4 updated for version 7.3.334
Problem:    Latest MingW about XSUBPP referencing itself. (Gongqian Li)
Solution:   Rename the first use to XSUBPPTRY.
2011-10-12 14:11:45 +02:00
Bram Moolenaar
ca0c9fcda0 updated for version 7.3.333
Problem:    Using "." to repeat a Visual delete counts the size in bytes, not
            characters.  (Connor Lane Smith)
Solution:   Store the virtual column numbers instead of byte positions.
2011-10-04 21:22:44 +02:00
Bram Moolenaar
e79d1535cf updated for version 7.3.332
Problem:    Indent after "public:" is not increased in C++ code. (Lech Lorens)
Solution:   Check for namespace after the regular checks. (partly by Martin
            Gieseking)
2011-10-04 18:03:47 +02:00
63 changed files with 1625 additions and 727 deletions

View File

@@ -81,6 +81,7 @@ SRC_ALL = \
src/testdir/test[0-9]*.ok \
src/testdir/test49.vim \
src/testdir/test60.vim \
src/testdir/test83-tags? \
src/proto.h \
src/proto/blowfish.pro \
src/proto/buffer.pro \

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
" vimball.vim : construct a file containing both paths and files
" Author: Charles E. Campbell, Jr.
" Date: Apr 02, 2011
" Version: 33
" Date: Sep 26, 2011
" Version: 34
" GetLatestVimScripts: 1502 1 :AutoInstall: vimball.vim
" Copyright: (c) 2004-2011 by Charles E. Campbell, Jr.
" The VIM LICENSE applies to Vimball.vim, and Vimball.txt
@@ -14,7 +14,7 @@
if &cp || exists("g:loaded_vimball")
finish
endif
let g:loaded_vimball = "v33"
let g:loaded_vimball = "v34"
if v:version < 702
echohl WarningMsg
echo "***warning*** this version of vimball needs vim 7.2"
@@ -220,7 +220,16 @@ fun! vimball#Vimball(really,...)
" go to vim plugin home
if a:0 > 0
" let user specify the directory where the vimball is to be unpacked.
" If, however, the user did not specify a full path, set the home to be below the current directory
let home= expand(a:1)
if has("win32") || has("win95") || has("win64") || has("win16")
if home !~ '^\a:[/\\]'
let home= getcwd().'/'.a:1
endif
elseif home !~ '^/'
let home= getcwd().'/'.a:1
endif
else
let home= vimball#VimballHome()
endif
@@ -282,11 +291,14 @@ fun! vimball#Vimball(really,...)
" call Decho("making directories if they don't exist yet (fname<".fname.">)")
let fnamebuf= substitute(fname,'\\','/','g')
let dirpath = substitute(home,'\\','/','g')
" call Decho("init: fnamebuf<".fnamebuf.">")
" call Decho("init: dirpath <".dirpath.">")
while fnamebuf =~ '/'
let dirname = dirpath."/".substitute(fnamebuf,'/.*$','','')
let dirpath = dirname
let fnamebuf = substitute(fnamebuf,'^.\{-}/\(.*\)$','\1','')
" call Decho("dirname<".dirname.">")
" call Decho("dirpath<".dirpath.">")
if !isdirectory(dirname)
" call Decho("making <".dirname.">")
if exists("g:vimball_mkdir")
@@ -569,9 +581,19 @@ endfun
fun! s:ChgDir(newdir)
" call Dfunc("ChgDir(newdir<".a:newdir.">)")
if (has("win32") || has("win95") || has("win64") || has("win16"))
exe 'silent cd '.fnameescape(substitute(a:newdir,'/','\\','g'))
try
exe 'silent cd '.fnameescape(substitute(a:newdir,'/','\\','g'))
catch /^Vim\%((\a\+)\)\=:E/
call mkdir(fnameescape(substitute(a:newdir,'/','\\','g')))
exe 'silent cd '.fnameescape(substitute(a:newdir,'/','\\','g'))
endtry
else
exe 'silent cd '.fnameescape(a:newdir)
try
exe 'silent cd '.fnameescape(a:newdir)
catch /^Vim\%((\a\+)\)\=:E/
call mkdir(fnameescape(a:newdir))
exe 'silent cd '.fnameescape(a:newdir)
endtry
endif
" call Dret("ChgDir : curdir<".getcwd().">")
endfun

View File

@@ -1,4 +1,4 @@
*eval.txt* For Vim version 7.3. Last change: 2011 Aug 29
*eval.txt* For Vim version 7.3. Last change: 2011 Sep 30
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -6374,7 +6374,7 @@ last defined. Example: >
<
See |:verbose-cmd| for more information.
*E124* *E125*
*E124* *E125* *E853*
:fu[nction][!] {name}([arguments]) [range] [abort] [dict]
Define a new function by the name {name}. The name
must be made of alphanumeric characters and '_', and

View File

@@ -1,4 +1,4 @@
*map.txt* For Vim version 7.3. Last change: 2011 Aug 19
*map.txt* For Vim version 7.3. Last change: 2011 Oct 12
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -237,11 +237,18 @@ For this reason the following is blocked:
- Editing another buffer.
- The |:normal| command.
- Moving the cursor is allowed, but it is restored afterwards.
- You can use getchar(), but the existing typeahead isn't seen and new
typeahead is discarded.
If you want the mapping to do any of these let the returned characters do
that.
You can use getchar(), it consumes typeahead if there is any. E.g., if you
have these mappings: >
inoremap <expr> <C-L> nr2char(getchar())
inoremap <expr> <C-L>x "foo"
If you now type CTRL-L nothing happens yet, Vim needs the next character to
decide what mapping to use. If you type 'x' the second mapping is used and
"foo" is inserted. If you type 'a' the first mapping is used, getchar() gets
the 'a' and returns it.
Here is an example that inserts a list number that increases: >
let counter = 0
inoremap <expr> <C-L> ListItem()

View File

@@ -1,4 +1,4 @@
*mbyte.txt* For Vim version 7.3. Last change: 2011 Jul 18
*mbyte.txt* For Vim version 7.3. Last change: 2011 Oct 15
VIM REFERENCE MANUAL by Bram Moolenaar et al.
@@ -797,8 +797,8 @@ is suitable for complex input, such as CJK.
number of Hira-gana characters are 76. So, first, we pre-input text as
pronounced in Hira-gana, second, we convert Hira-gana to Kanji or Kata-Kana,
if needed. There are some Kana-Kanji conversion server: jserver
(distributed with Wnn, see below) and canna. Canna could be found at:
ftp://ftp.nec.co.jp/pub/Canna/ (no longer works).
(distributed with Wnn, see below) and canna. Canna can be found at:
http://canna.sourceforge.jp/
There is a good input system: Wnn4.2. Wnn 4.2 contains,
xwnmo (|IM-server|)

View File

@@ -1,4 +1,4 @@
*netbeans.txt* For Vim version 7.3. Last change: 2010 Sep 29
*netbeans.txt* For Vim version 7.3. Last change: 2011 Oct 20
VIM REFERENCE MANUAL by Gordon Prieur et al.
@@ -263,6 +263,12 @@ The messages are currently sent over a socket. Since the messages are in
plain UTF-8 text this protocol could also be used with any other communication
mechanism.
Netbeans messages are processed when Vim is idle, waiting for user input.
When Vim is run in non-interactive mode, for example when running an automated
test case that sources a Vim script, the idle loop may not be called often
enough. In that case, insert |sleep| commands in the Vim script. The |sleep|
command does invoke Netbeans messages processing.
6.1 Kinds of messages |nb-messages|
6.2 Terms |nb-terms|
6.3 Commands |nb-commands|
@@ -833,11 +839,16 @@ These errors occur when a message violates the protocol:
signs.
*:nbkey*
:nb[key] {key} Pass the {key} to the Vim Controller for processing
When a hot-key has been installed with the specialKeys command, this command
can be used to generate a hotkey messages to the Vim Controller. The events
newDotAndMark, keyCommand and keyAtPos are generated (in this order).
:nb[key] {key} Pass the {key} to the Vim Controller for processing.
When a hot-key has been installed with the specialKeys
command, this command can be used to generate a hotkey
message to the Vim Controller.
This command can also be used to pass any text to the
Vim Controller. It is used by Pyclewn, for example,
to build the complete set of gdb commands as Vim user
commands.
The events newDotAndMark, keyCommand and keyAtPos are
generated (in this order).
==============================================================================

View File

@@ -1,4 +1,4 @@
*options.txt* For Vim version 7.3. Last change: 2011 Sep 09
*options.txt* For Vim version 7.3. Last change: 2011 Sep 30
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -6762,8 +6762,8 @@ A jump table for the options with a short description can be found at |Q_op|.
usetab Like "useopen", but also consider windows in other tab
pages.
split If included, split the current window before loading
a buffer. Otherwise: do not split, use current window.
Supported in |quickfix| commands that display errors.
a buffer for a |quickfix| command that display errors.
Otherwise: do not split, use current window.
newtab Like "split", but open a new tab page. Overrules
"split" when both are present.

View File

@@ -1,4 +1,4 @@
*pattern.txt* For Vim version 7.3. Last change: 2011 Jul 20
*pattern.txt* For Vim version 7.3. Last change: 2011 Sep 28
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -21,7 +21,7 @@ explanations are in chapter 27 |usr_27.txt|.
10. Highlighting matches |match-highlight|
==============================================================================
1. Search commands *search-commands* *E486*
1. Search commands *search-commands*
*/*
/{pattern}[/]<CR> Search forward for the [count]'th occurrence of
@@ -150,6 +150,11 @@ use <Esc> to abandon the search.
All matches for the last used search pattern will be highlighted if you set
the 'hlsearch' option. This can be suspended with the |:nohlsearch| command.
When no match is found you get the error: *E486* Pattern not found
Note that for the |:global| command this behaves like a normal message, for Vi
compatibility. For the |:s| command the "e" flag can be used to avoid the
error message |:s_flags|.
*search-offset* *{offset}*
These commands search for the specified pattern. With "/" and "?" an
additional offset may be given. There are two types of offsets: line offsets

View File

@@ -1,4 +1,4 @@
*pi_netrw.txt* For Vim version 7.3. Last change: 2011 May 31
*pi_netrw.txt* For Vim version 7.3. Last change: 2011 Sep 26
-----------------------------------------------------
NETRW REFERENCE MANUAL by Charles E. Campbell, Jr.
@@ -89,7 +89,7 @@ Copyright: Copyright (C) 1999-2011 Charles E Campbell, Jr *netrw-copyright*
Marked Files: Unmarking............................|netrw-mu|
Netrw Browser Variables............................|netrw-browser-var|
Netrw Browsing And Option Incompatibilities........|netrw-incompatible|
Netrw Settings.....................................|netrw-settings|
Netrw Settings Window..............................|netrw-settings-window|
Obtaining A File...................................|netrw-O|
Preview Window.....................................|netrw-p|
Previous Window....................................|netrw-P|
@@ -294,14 +294,14 @@ DIRECTORY LISTING *netrw-trailingslash* *netrw-dirlist* {{{2
CHANGING USERID AND PASSWORD *netrw-chgup* *netrw-userpass* {{{2
Attempts to use ftp will prompt you for a user-id and a password.
These will be saved in global variables g:netrw_uid and
s:netrw_passwd; subsequent uses of ftp will re-use those two items to
simplify the further use of ftp. However, if you need to use a
different user id and/or password, you'll want to call NetUserPass()
These will be saved in global variables |g:netrw_uid| and
|s:netrw_passwd|; subsequent use of ftp will re-use those two strings,
thereby simplifying use of ftp. However, if you need to use a
different user id and/or password, you'll want to call |NetUserPass()|
first. To work around the need to enter passwords, check if your ftp
supports a <.netrc> file in your home directory. Also see
|netrw-passwd| (and if you're using ssh/scp hoping to figure out how
to not need to use passwords, look at |netrw-ssh-hack|).
to not need to use passwords for scp, look at |netrw-ssh-hack|).
:NetUserPass [uid [password]] -- prompts as needed
:call NetUserPass() -- prompts for uid and password
@@ -331,7 +331,8 @@ settings are described below, in |netrw-browser-options|, and in
netrw edits a file. The file is first edited, and
then the function reference (|Funcref|) is called.
This variable may also hold a |List| of Funcrefs.
(default) not defined
(default) not defined. (the capital in g:Netrw...
is required by its holding a function reference)
>
Example: place in .vimrc; affects all file opening
fun! MyFuncRef()
@@ -479,6 +480,9 @@ variable (ex. scp uses the variable g:netrw_scp_cmd, which is defaulted to
let g:netrw_scp_cmd = '"c:\Program Files\PuTTY\pscp.exe" -q -batch'
let g:netrw_sftp_cmd= '"c:\Program Files\PuTTY\psftp.exe"'
<
(note: it has been reported that windows 7 with putty v0.6's "-batch" option
doesn't work, so its best to leave it off for that system)
See |netrw-p8| for more about putty, pscp, psftp, etc.
Ftp, an old protocol, seems to be blessed by numerous implementations.
@@ -716,13 +720,16 @@ below, a {netfile} is an url to a remote file.
==============================================================================
8. Variables and Options *netrw-options* *netrw-var* {{{1
8. Variables and Options *netrw-settings* {{{1
(if you're interested in the netrw browser settings, see: |netrw-browser-var|)
(also see: |netrw-options| |netrw-variables| |netrw-protocol|
|netrw-browser-settings| |netrw-browser-options|
|netrw-browser-var| )
The <netrw.vim> script provides several variables which act as options to
affect <netrw.vim>'s file transfer behavior. These variables typically may be
set in the user's <.vimrc> file: (see also |netrw-settings| |netrw-protocol|)
*netrw-options*
>
-------------
Netrw Options
@@ -754,6 +761,7 @@ set in the user's <.vimrc> file: (see also |netrw-settings| |netrw-protocol|)
=1 use default method to do ftp >
-----------------------------------------------------------------------
<
*netrw-internal-variables*
The script will also make use of the following variables internally, albeit
temporarily.
>
@@ -1147,15 +1155,14 @@ allows one to open a new window to hold the new directory listing or file. A
horizontal split is used. (for vertical splitting, see |netrw-v|)
Normally, the o key splits the window horizontally with the new window and
cursor at the top. To change to splitting the window horizontally with the
new window and cursor at the bottom, have
let g:netrw_alto = 1
in your <.vimrc>. (also see |netrw-t| |netrw-T| |netrw-v|)
cursor at the top.
Associated setting variables: |g:netrw_alto| |g:netrw_winsize|
Related Actions |netrw-cr| |netrw-p| |netrw-t| |netrw-T| |netrw-v|
Associated setting variables:
|g:netrw_alto| control above/below splitting
|g:netrw_winsize| control initial sizing
BROWSING WITH A NEW TAB *netrw-t* *netrw-T* {{{2
@@ -1164,8 +1171,9 @@ allows one to open a new window holding the new directory listing or file in
a new tab. The "T" version puts the file or directory into a background tab
(see |gT|)
Related actions: |netrw-o| |netrw-v|
Related Actions |netrw-cr| |netrw-o| |netrw-p| |netrw-v|
Associated setting variables:
|g:netrw_winsize| control initial sizing
BROWSING WITH A VERTICALLY SPLIT WINDOW *netrw-v* {{{2
@@ -1174,18 +1182,18 @@ allows one to open a new window to hold the new directory listing or file. A
vertical split is used. (for horizontal splitting, see |netrw-o|)
Normally, the v key splits the window vertically with the new window and
cursor at the left. To change to splitting the window vertically with the new
window and cursor at the right, have
let g:netrw_altv = 1
in your <.vimrc>. (also see: |netrw-o| |netrw-t| |netrw-T|)
cursor at the left.
There is only one tree listing buffer; using "v" on a displayed subdirectory
will split the screen, but the same buffer will be shown twice.
Associated setting variable: |g:netrw_altv| |g:netrw_winsize|
Related Actions |netrw-cr| |netrw-o| |netrw-t| |netrw-T| |netrw-v|
Associated setting variables:
|g:netrw_altv| control right/left splitting
|g:netrw_winsize| control initial sizing
CHANGE LISTING STYLE (THIN LONG WIDE TREE) *netrw-i* {{{2
@@ -1386,6 +1394,7 @@ to remove it again using the g:netrw_rmf_cmd variable. Its default value is:
g:netrw_rmf_cmd: ssh HOSTNAME rm -f
Related topics: |netrw-d|
Associated setting variable: |g:netrw_local_rmdir| |g:netrw_rm_cmd|
|g:netrw_rmdir_cmd| |g:netrw_ssh_cmd|
@@ -1520,7 +1529,7 @@ What it means:
Associated setting variables: |g:netrw_hide| |g:netrw_list_hide|
Associated topics: |netrw-a| |netrw-gh| |netrw-mh|
*netrw-sort-sequence*
EDITING THE SORTING SEQUENCE *netrw-S* *netrw-sortsequence* {{{2
When "Sorted by" is name, one may specify priority via the sorting sequence
@@ -1723,9 +1732,9 @@ directory's name. A bare <CR> at that point will abort the making of the
directory. Attempts to make a local directory that already exists (as either
a file or a directory) will be detected, reported on, and ignored.
Currently, making a directory via ftp is not supported.
Associated setting variable: |g:netrw_local_mkdir| |g:netrw_mkdir_cmd|
Related topics: |netrw-D|
Associated setting variables: |g:netrw_local_mkdir| |g:netrw_mkdir_cmd|
|g:netrw_remote_mkdir|
MAKING THE BROWSING DIRECTORY THE CURRENT DIRECTORY *netrw-c* {{{2
@@ -1953,10 +1962,11 @@ MARKED FILES: UNMARKING *netrw-mu* {{{2
The "mu" mapping will unmark all currently marked files.
*netrw-browser-settings*
NETRW BROWSER VARIABLES *netrw-browser-options* *netrw-browser-var* {{{2
(if you're interested in the netrw file transfer settings, see |netrw-options|)
(if you're interested in the netrw file transfer settings, see |netrw-options|
and |netrw-protocol|)
The <netrw.vim> browser provides settings in the form of variables which
you may modify; by placing these settings in your <.vimrc>, you may customize
@@ -2006,6 +2016,15 @@ your browsing preferences. (see also: |netrw-settings|)
Will compress marked files with this
command
*g:Netrw_corehandler* Allows one to specify something additional
to do when handling <core> files via netrw's
browser's "x" command (see |netrw-x|). If
present, g:Netrw_corehandler specifies
either one or more function references
(see |Funcref|). (the capital g:Netrw...
is required its holding a function reference)
*g:netrw_ctags* ="ctags"
The default external program used to create tags
@@ -2157,6 +2176,7 @@ your browsing preferences. (see also: |netrw-settings|)
columnar.
*g:netrw_mkdir_cmd* command for making a remote directory
via ssh (also see |g:netrw_remote_mkdir|)
default: "ssh USEPORT HOSTNAME mkdir"
*g:netrw_mousemaps* =1 (default) enables mouse buttons while
@@ -2167,6 +2187,15 @@ your browsing preferences. (see also: |netrw-settings|)
rightmouse : remove file/directory
=0: disables mouse maps
*g:netrw_nobeval* doesn't exist (default)
If this variable exists, then balloon
evaluation will be suppressed
(see |'ballooneval'|)
*g:netrw_remote_mkdir* command for making a local directory
via ftp (also see |g:netrw_mkdir_cmd|)
default: "mkdir"
*g:netrw_retmap* if it exists and is set to one, then:
* if in a netrw-selected file, AND
* no normal-mode <2-leftmouse> mapping exists,
@@ -2279,6 +2308,9 @@ your browsing preferences. (see also: |netrw-settings|)
is an integer describing the percentage of the
current netrw buffer's window to be used for
the new window.
If g:netrw_winsize is less than zero, then
the absolute value of g:netrw_winsize lines
or columns will be used for the new window.
default: 50 (for 50%)
*g:netrw_xstrlen* Controls how netrw computes string lengths,
@@ -2313,7 +2345,7 @@ file you edit; this apparently also applies to directories. In other words,
autochdir sets the current directory to that containing the "file" (even if
that "file" is itself a directory).
NETRW BROWSER SETTINGS *netrw-settings* {{{2
NETRW SETTINGS WINDOW *netrw-settings-window* {{{2
With the NetrwSettings.vim plugin, >
:NetrwSettings
@@ -2356,7 +2388,6 @@ Related topics:
* To automatically make the currently browsed directory the current
directory, see |g:netrw_keepdir|.
*netrw-createfile*
OPEN A NEW FILE IN NETRW'S CURRENT DIRECTORY *netrw-%*
@@ -2390,8 +2421,7 @@ PREVIOUS WINDOW *netrw-P* *netrw-prvwin* {{{2
To edit a file or directory in the previously used (last accessed) window (see
:he |CTRL-W_p|), press a "P". If there's only one window, then the one window
will be horizontally split (above/below splitting is controlled by
|g:netrw_alto|, and its initial size is controlled by |g:netrw_winsize|).
will be horizontally split (by default).
If there's more than one window, the previous window will be re-used on
the selected file/directory. If the previous window's associated buffer
@@ -2399,6 +2429,13 @@ has been modified, and there's only one window with that buffer, then
the user will be asked if s/he wishes to save the buffer first (yes,
no, or cancel).
Related Actions |netrw-cr| |netrw-o| |netrw-t| |netrw-T| |netrw-v|
Associated setting variables:
|g:netrw_alto| control above/below splitting
|g:netrw_altv| control right/left splitting
|g:netrw_preview| control horizontal vs vertical splitting
|g:netrw_winsize| control initial sizing
REFRESHING THE LISTING *netrw-ctrl-l* *netrw-ctrl_l* {{{2
@@ -2804,6 +2841,30 @@ which is loaded automatically at startup (assuming :set nocp).
==============================================================================
12. History *netrw-history* {{{1
v143: Jun 01, 2011 * |g:netrw_winsize| will accept a negative
number; the absolute value of it will then
be used to specify lines/columns instead of
a percentage.
Jul 05, 2011 * the "d" map now supports mkdir via ftp
See |netrw-d| and |g:netrw_remote_mkdir|
Jul 11, 2011 * Changed Explore!, Sexplore!, and Vexplore
to use a percentage of |winwidth()| instead
of a percentage of |winheight()|.
Jul 11, 2011 * included support for https://... I'm just
beginning to test this, however.
Aug 01, 2011 * changed RestoreOptions to also restore
cursor position in netrw buffers.
Aug 12, 2011 * added a note about "%" to the balloon
Aug 30, 2011 * if |g:netrw_nobeval| exists, then balloon
evaluation is suppressed.
Aug 31, 2011 * (Benjamin R Haskell) provided a patch that
implements non-standard port handling for
files opened via the remote browser.
Aug 31, 2011 * Fixed a **//pattern Explorer bug
Sep 15, 2011 * (reported by Francesco Campana) netrw
now permits the "@" to be part of the
user id (if there's an @ that appears
to the right).
v142: Apr 06, 2011 * I modified NetrwRemoteListing() to use
shellescape(fnameescape(s:path),1) for
the benefit of those using scp://.../

View File

@@ -1,4 +1,4 @@
*pi_vimball.txt* For Vim version 7.3. Last change: 2011 Aug 14
*pi_vimball.txt* For Vim version 7.3. Last change: 2011 Sep 26
----------------
Vimball Archiver
@@ -177,6 +177,8 @@ WINDOWS *vimball-windows*
==============================================================================
4. Vimball History *vimball-history* {{{1
34 : Sep 22, 2011 * "UseVimball path" now supports a non-full path by
prepending the current directory to it.
33 : Apr 02, 2011 * Gave priority to *.vmb over *.vba
* Changed silent! to sil! (shorter)
* Safed |'swf'| setting (during vimball extraction,

View File

@@ -1,4 +1,4 @@
*syntax.txt* For Vim version 7.3. Last change: 2011 Sep 21
*syntax.txt* For Vim version 7.3. Last change: 2011 Sep 30
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -2723,7 +2723,7 @@ in your <.vimrc>, and :set fdm=syntax. I suggest doing the latter via a
modeline at the end of your LaTeX file: >
% vim: fdm=syntax
If your system becomes too slow, then you might wish to look into >
https://vimhelp.appspot.com/vim_faq.txt.html#faq-29.7
http://vim.wikia.com/wiki/Keep_folds_closed_while_inserting_text
<
*tex-nospell*
Tex: Don't Want Spell Checking In Comments? ~

View File

@@ -4235,6 +4235,7 @@ E85 options.txt /*E85*
E850 change.txt /*E850*
E851 gui_x11.txt /*E851*
E852 gui_x11.txt /*E852*
E853 eval.txt /*E853*
E86 windows.txt /*E86*
E87 windows.txt /*E87*
E88 windows.txt /*E88*
@@ -5759,6 +5760,7 @@ g- undo.txt /*g-*
g0 motion.txt /*g0*
g8 various.txt /*g8*
g:NetrwTopLvlMenu pi_netrw.txt /*g:NetrwTopLvlMenu*
g:Netrw_corehandler pi_netrw.txt /*g:Netrw_corehandler*
g:Netrw_funcref pi_netrw.txt /*g:Netrw_funcref*
g:ada#Comment ft_ada.txt /*g:ada#Comment*
g:ada#Ctags_Kinds ft_ada.txt /*g:ada#Ctags_Kinds*
@@ -5846,9 +5848,11 @@ g:netrw_maxfilenamelen pi_netrw.txt /*g:netrw_maxfilenamelen*
g:netrw_menu pi_netrw.txt /*g:netrw_menu*
g:netrw_mkdir_cmd pi_netrw.txt /*g:netrw_mkdir_cmd*
g:netrw_mousemaps pi_netrw.txt /*g:netrw_mousemaps*
g:netrw_nobeval pi_netrw.txt /*g:netrw_nobeval*
g:netrw_nogx pi_netrw.txt /*g:netrw_nogx*
g:netrw_preview pi_netrw.txt /*g:netrw_preview*
g:netrw_rcp_cmd pi_netrw.txt /*g:netrw_rcp_cmd*
g:netrw_remote_mkdir pi_netrw.txt /*g:netrw_remote_mkdir*
g:netrw_retmap pi_netrw.txt /*g:netrw_retmap*
g:netrw_rm_cmd pi_netrw.txt /*g:netrw_rm_cmd*
g:netrw_rmdir_cmd pi_netrw.txt /*g:netrw_rmdir_cmd*
@@ -5876,6 +5880,8 @@ g:netrw_use_nt_rcp pi_netrw.txt /*g:netrw_use_nt_rcp*
g:netrw_win95ftp pi_netrw.txt /*g:netrw_win95ftp*
g:netrw_winsize pi_netrw.txt /*g:netrw_winsize*
g:netrw_xstrlen pi_netrw.txt /*g:netrw_xstrlen*
g:sh_isk syntax.txt /*g:sh_isk*
g:sh_noisk syntax.txt /*g:sh_noisk*
g:syntax_on syntax.txt /*g:syntax_on*
g:tar_browseoptions pi_tar.txt /*g:tar_browseoptions*
g:tar_cmd pi_tar.txt /*g:tar_cmd*
@@ -6767,6 +6773,7 @@ netrw-browse-cmds pi_netrw.txt /*netrw-browse-cmds*
netrw-browse-maps pi_netrw.txt /*netrw-browse-maps*
netrw-browser pi_netrw.txt /*netrw-browser*
netrw-browser-options pi_netrw.txt /*netrw-browser-options*
netrw-browser-settings pi_netrw.txt /*netrw-browser-settings*
netrw-browser-var pi_netrw.txt /*netrw-browser-var*
netrw-browsing pi_netrw.txt /*netrw-browsing*
netrw-c pi_netrw.txt /*netrw-c*
@@ -6815,6 +6822,7 @@ netrw-history pi_netrw.txt /*netrw-history*
netrw-horiz pi_netrw.txt /*netrw-horiz*
netrw-i pi_netrw.txt /*netrw-i*
netrw-incompatible pi_netrw.txt /*netrw-incompatible*
netrw-internal-variables pi_netrw.txt /*netrw-internal-variables*
netrw-intro-browse pi_netrw.txt /*netrw-intro-browse*
netrw-leftmouse pi_netrw.txt /*netrw-leftmouse*
netrw-list pi_netrw.txt /*netrw-list*
@@ -6892,8 +6900,10 @@ netrw-rexplore pi_netrw.txt /*netrw-rexplore*
netrw-rightmouse pi_netrw.txt /*netrw-rightmouse*
netrw-s pi_netrw.txt /*netrw-s*
netrw-settings pi_netrw.txt /*netrw-settings*
netrw-settings-window pi_netrw.txt /*netrw-settings-window*
netrw-sexplore pi_netrw.txt /*netrw-sexplore*
netrw-sort pi_netrw.txt /*netrw-sort*
netrw-sort-sequence pi_netrw.txt /*netrw-sort-sequence*
netrw-sortsequence pi_netrw.txt /*netrw-sortsequence*
netrw-source pi_netrw.txt /*netrw-source*
netrw-ssh-hack pi_netrw.txt /*netrw-ssh-hack*
@@ -6912,7 +6922,6 @@ netrw-updir pi_netrw.txt /*netrw-updir*
netrw-urls pi_netrw.txt /*netrw-urls*
netrw-userpass pi_netrw.txt /*netrw-userpass*
netrw-v pi_netrw.txt /*netrw-v*
netrw-var pi_netrw.txt /*netrw-var*
netrw-variables pi_netrw.txt /*netrw-variables*
netrw-vexplore pi_netrw.txt /*netrw-vexplore*
netrw-write pi_netrw.txt /*netrw-write*
@@ -7447,6 +7456,8 @@ setuid change.txt /*setuid*
setwinvar() eval.txt /*setwinvar()*
sftp pi_netrw.txt /*sftp*
sgml.vim syntax.txt /*sgml.vim*
sh-awk syntax.txt /*sh-awk*
sh-embed syntax.txt /*sh-embed*
sh.vim syntax.txt /*sh.vim*
shell-window tips.txt /*shell-window*
shell_error-variable eval.txt /*shell_error-variable*

View File

@@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.3. Last change: 2011 Sep 21
*todo.txt* For Vim version 7.3. Last change: 2011 Oct 20
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -34,27 +34,30 @@ not be repeated below, unless there is extra information.
*known-bugs*
-------------------- Known bugs and current work -----------------------
Patch for redirection. (Yasuhiro Matsumoto, 2011 Sep 15) 2nd patch.
Another on Sep 15?
Patch for DFLT_EFM. (Ben Boeckel, 2011 Sep 14)
Code style patch. (Elias Diem, 2011 Sep 19)
Patch for 'transparency' option. (Ben Boeckel, 2011 Sep 14)
Do we want this? Also Sergiu Dotenco, 2011 Sep 17.
Patch for gui_w32.c: call DefWindowProc(). (Sergiu Dotenco, 2011 Sep 15, 17)
Once syntax and other runtime files have been fixed: add "set cp" to
check.vim. Use a function to run both with 'cp' and 'nocp'.
Patch to use task dialogs when available. (Sergiu Dotenco, 2011 Sep 15, 17)
Addition Sep 16.
Patch for alpha-blended icons and toolbar height. (Sergiu Dotenco, 2011 Sep 15, 17)
Change to #ifdef for PDP_RETVAL. (Sergiu Dotenco, 2011 Sep 17, patch 2)
Windows stuff:
- Patch for gui_w32.c: call DefWindowProc(). (Sergiu Dotenco, 2011 Sep 15, 17)
- Patch to use task dialogs when available. (Sergiu Dotenco, 2011 Sep 15, 17)
Addition Sep 16.
- Patch for alpha-blended icons and toolbar height. (Sergiu Dotenco, 2011 Sep
15, 17)
- Patch for redirection. (Yasuhiro Matsumoto, 2011 Sep 15) 2nd patch. Another
on Sep 15? Can't reproduce it. Only with vim.exe, compiled with Mingw?
Patch for phpcomplete.vim (Benjamin Haskell) picked up by maintainer?
Something weird with text formatting when 'compatible' is set.
Only formats from Insert starting point, even when using "gqj"?
(Peter Wagenaar, 2011 Oct 20)
FocusGained event received event though it's in 'eventignore'?
(Ben Fritz, 2011 Sep 25)
Add voting item: modern plugin management (automatic updates, handle
dependencies).
Add links to http://vimcasts.org/ and http://vimgolf.com/
@@ -62,14 +65,13 @@ Read http://www.charlietanksley.net/philtex/sane-vim-plugin-management/
Go through more coverity reports.
Patch for Issue #9: http://code.google.com/p/vim/issues/detail?id=9
C++ indenting. martin.gieseking
Better D/Dtrace detection. (Jesse Phillips, 2011 Oct 18)
Using "." to repeat a Visual delete counts bytes, not characters. Can this be
fixed? (Connor Lane Smith, 2011 Sep 1)
Patch for not showing dict methods in completion. (Yasuhiro Matsumoto, 2011
Oct 7) Move "<" methods to the end. Fix for compiler warnings, Oct 13.
Patch to allow getchar() in expression mapping.
Why was typeahead saved and restored? (James Vega, 2011 Aug 31)
FPE exception in mbyte.c. Stack trace: (Lomy, 2011 Sep 26)
Can't reproduce it.
Crash in autocomplete, valgrind log. (Greg Weber, 2011 Apr 22)
@@ -81,9 +83,20 @@ Patch to fail if configure can't find an interface, such as Python.
Patch to support UTF-8 for Hangul. (Shawn Y.H. Kim, 2011 May 1)
Needs more work.
Other way to start Mzscheme. Tim Brown, 2011 Oct 5: change main call.
Later patch by Sergey Khorev, 2011 Oct 9.
Patch to add getsid(). (Tyru, 2011 Oct 2) Do we want this? Update Oct 4.
Or use expand('<sid>')?
Patch for glob() returning a list. (Christian Brabandt, 2011 Aug 24, second
one)
Patch to highlight cursor line number. (Howard Buchholz (lhb), 2011 Oct 18)
Docs fix for v:register. (Ingo Karkat, 2011 Sep 26, 27)
v:register doesn't work exactly as expected. (David Fishburn, 2011 Sep 20)
Patch for: (Christian Brabandt, 2011 Aug 22)
- Make it possible to enter "r<C-E>" and "r<C-Y>" (get character from line
below/above).
@@ -92,11 +105,25 @@ Patch for: (Christian Brabandt, 2011 Aug 24, updated patch)
8 ":sign unplace * file={filename}" should work. Also: ":sign unplace *
buffer={bufnr}". So one can remove all signs for one file/buffer.
Patch to add "onselected" callback for completion. (Taro Muraoka, 2011 Sep 24)
Problem with winfixheight and resizing. (Yukihiro Nakadaira, 2011 Sep 17)
Patch Sep 18.
Patch for has('unnamedplus') docs. (Tony Mechelynck, 2011 Sep 27)
And one for gui_x11.txt.
Problem with l: dictionary being locked in a function. (ZyX, 2011 Jul 21)
Patch to sort functions starting with '<' after others. Omit dict functions,
they can't be called. (Yasuhiro Matsumoto, 2011 Oct 11)
Updated syntax file for ssh_config, maintainer doesn't respond.
(Leonard Ehrenfried, 2011 Sep 26)
"fC" doesn't position the cursor correctly when there are concealed
characters. Patch by Christian Brabandt, 2011 Oct 11)
'cursorline' is displayed too short when there are concealed characters and
'list' is set. (Dennis Preiser)
Patch 7.3.116 was the wrong solution.
@@ -166,8 +193,6 @@ string() can't parse back "inf" and "nan". Fix documentation or fix code?
Make 'formatprg' global-local. (Sung Pae)
v:register doesn't work exactly as expected. (David Fishburn, 2011 Sep 20)
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.
@@ -299,6 +324,8 @@ the system encoding (usually utf-8).
Problem producing tags file when hebrew.frx is present. It has a BOM.
Results in E670. (Tony Mechelynck, 2010 May 2)
'beval' option should be global-local.
Ruby: ":ruby print $buffer.number" returns zero.
setpos() does not restore cursor position after :normal. (Tyru, 2010 Aug 11)
@@ -461,15 +488,10 @@ Disable updating folds while completion is active? (Peter Odding, 2010 Jun 9)
Using ":call foo#d.f()" doesn't autoload the "foo.vim" file. Works OK for
echo, just not for ":call" and ":call call()". (Ted, 2011 Mar 17)
Cannot use getchar() inside :normal and using an expression mapping. Is this
supposed to work? (XyX, 2010 Sep 22)
When a:base in 'completefunc' starts with a number it's passed as a number,
not a string. (Sean Ma) Need to add flag to call_func_retlist() to force a
string value.
There is no command line completion for ":lmap".
":e ~br<Tab>" does not complete to ":e /home/bram/". Would need to use
getpwent() to find all the matches.

View File

@@ -1,4 +1,4 @@
*various.txt* For Vim version 7.3. Last change: 2011 May 19
*various.txt* For Vim version 7.3. Last change: 2011 Oct 1st
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -602,6 +602,10 @@ K Run a program to lookup the keyword under the
"gs" stands for "goto sleep".
While sleeping the cursor is positioned in the text,
if at a visible position. {not in Vi}
Also process the received netbeans messages. {only
available when compiled with the |+netbeans_intg|
feature}
*g_CTRL-A*
g CTRL-A Only when Vim was compiled with MEM_PROFILING defined

View File

@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2011 Sep 07
" Last Change: 2011 Oct 08
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
@@ -754,6 +754,11 @@ au BufNewFile,BufRead */usr/**/gnupg/options.skel setf gpg
" gnash(1) configuration files
au BufNewFile,BufRead gnashrc,.gnashrc,gnashpluginrc,.gnashpluginrc setf gnash
" Gitolite
au BufNewFile,BufRead gitolite.conf setf gitolite
au BufNewFile,BufRead */gitolite-admin/conf/* call s:StarSetf('gitolite')
au BufNewFile,BufRead {,.}gitolite.rc,example.gitolite.rc setf perl
" Gnuplot scripts
au BufNewFile,BufRead *.gpi setf gnuplot

View File

@@ -1,11 +1,13 @@
" Vim support file to switch off loading plugins for file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2002 Apr 04
" Last Change: 2011 Oct 20
if exists("did_load_ftplugin")
unlet did_load_ftplugin
endif
" Remove all autocommands in the filetypeplugin group
silent! au! filetypeplugin *
" Remove all autocommands in the filetypeplugin group, if any exist.
if exists("#filetypeplugin")
silent! au! filetypeplugin *
endif

View File

@@ -1,7 +1,7 @@
" Vim indent file
" Language: R
" Author: Jakson Alves de Aquino <jalvesaq@gmail.com>
" Last Change: Wed Aug 31, 2011 12:24AM
" Last Change: Fri Oct 14, 2011 09:50PM
" Only load this indent file when no other was loaded.
@@ -455,19 +455,29 @@ function GetRIndent()
return ind
endif
if g:r_indent_align_args == 0 && bb != 0
let ind += bb * &sw
return ind
endif
if ind == pind || (ind == (pind + &sw) && pline =~ '{$' && ppost_else == 0)
return ind
endif
while pind < ind && plnum > 0 && ppb == 0
let pline = getline(plnum)
let pbb = s:Get_paren_balance(pline, '[', ']')
while pind < ind && plnum > 0 && ppb == 0 && pbb == 0
let ind = pind
let plnum = s:Get_prev_line(plnum)
let pline = getline(plnum)
let ppb = s:Get_paren_balance(pline, '(', ')')
let pbb = s:Get_paren_balance(pline, '[', ']')
while pline =~ '^\s*else'
let plnum = s:Get_matching_if(plnum, 1)
let pline = getline(plnum)
let ppb = s:Get_paren_balance(pline, '(', ')')
let pbb = s:Get_paren_balance(pline, '[', ']')
endwhile
let pind = indent(plnum)
if ind == (pind + &sw) && pline =~ '{$'

View File

@@ -1,8 +1,8 @@
" VHDL indent ('93 syntax)
" Language: VHDL
" Maintainer: Gerald Lai <laigera+vim?gmail.com>
" Version: 1.56
" Last Change: 2010 Jun 29
" Version: 1.58
" Last Change: 2011 Sep 27
" URL: http://www.vim.org/scripts/script.php?script_id=1450
" only load this indent file when no other was loaded
@@ -95,7 +95,7 @@ function GetVHDLindent()
" ****************************************************************************************
" indent: align generic variables & port names
" keywords: "generic", "map", "port" + "(", provided current line is part of mapping
" keywords: "procedure" + name, "generic", "map", "port" + "(", provided current line is part of mapping
" where: anywhere in previous 2 lines
" find following previous non-comment line
let pn = prevnonblank(prevn - 1)
@@ -104,7 +104,7 @@ function GetVHDLindent()
let pn = prevnonblank(pn - 1)
let ps = getline(pn)
endwhile
if (curs =~ '^\s*)' || curs =~? '^\s*\%(\<\%(generic\|map\|port\)\>.*\)\@<!\S\+\s*\%(=>\s*\S\+\|:[^=]\@=\s*\%(\%(in\|out\|inout\|buffer\|linkage\)\>\|\w\+\s\+:=\)\)') && (prevs =~? s:NC.'\<\%(generic\|map\|port\)\s*(\%(\s*\w\)\=' || (ps =~? s:NC.'\<\%(generic\|map\|port\)'.s:ES && prevs =~ '^\s*('))
if (curs =~ '^\s*)' || curs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*\%(=>\s*\S\+\|:[^=]\@=\s*\%(\%(in\|out\|inout\|buffer\|linkage\)\>\|\w\+\s\+:=\)\)') && (prevs =~? s:NC.'\<\%(procedure\s\+\S\+\|generic\|map\|port\)\s*(\%(\s*\w\)\=' || (ps =~? s:NC.'\<\%(procedure\|generic\|map\|port\)'.s:ES && prevs =~ '^\s*('))
" align closing ")" with opening "("
if curs =~ '^\s*)'
return ind2 + stridx(prevs_noi, '(')
@@ -160,12 +160,12 @@ function GetVHDLindent()
" make sure one of these is true
" keywords: variable + "<=" without ";" ending
" where: start of previous non-comment line
" keywords: "generic", "map", "port"
" keywords: "procedure", "generic", "map", "port"
" where: anywhere in previous non-comment line
" keyword: "("
" where: start of previous non-comment line
if m < 3 && ps !~? '^\s*\S\+\s*<=[^;]*'.s:ES
if ps =~? s:NC.'\<\%(generic\|map\|port\)\>' || ps =~ '^\s*('
if ps =~? s:NC.'\<\%(procedure\|generic\|map\|port\)\>' || ps =~ '^\s*('
let ind = t
endif
break
@@ -207,14 +207,26 @@ function GetVHDLindent()
" keyword: "begin"
" where: anywhere in current line
if curs =~? s:NC.'\<begin\>'
let ind = ind - &sw
" find previous opening statement of
" keywords: "architecture", "block", "entity", "function", "generate", "procedure", "process"
let s2 = s:NC.s:NE.'\<\%(architecture\|block\|entity\|function\|generate\|procedure\|process\)\>'
if (curs !~? s2.'.*'.s:NC.'\<begin\>.*'.s:ES && prevs =~? s2) || m == 1
let ind = ind + &sw
let pn = prevnonblank(curn - 1)
let ps = getline(pn)
while pn > 0 && (ps =~ '^\s*--' || ps !~? s2)
let pn = prevnonblank(pn - 1)
let ps = getline(pn)
if (ps =~? s:NC.'\<begin\>')
return indent(pn) - &sw
endif
endwhile
if (pn == 0)
return ind - &sw
else
return indent(pn)
endif
return ind
endif
" indent: +sw if previous line is previous opening statement
@@ -319,8 +331,13 @@ function GetVHDLindent()
" indent: -sw
" keywords: "else", "elsif", "end" + "block", "for", "function", "generate", "if", "loop", "procedure", "process", "record", "units"
" where: start of current line
if curs =~? '^\s*\%(else\|elsif\|end\s\+\%(block\|for\|function\|generate\|if\|loop\|procedure\|process\|record\|units\)\)\>'
return ind - &sw
let s5 = 'block\|for\|function\|generate\|if\|loop\|procedure\|process\|record\|units'
if curs =~? '^\s*\%(else\|elsif\|end\s\+\%('.s5.'\)\)\>'
if prevs =~? '^\s*\%(elsif\|'.s5.'\)'
return ind
else
return ind - &sw
endif
endif
" indent: backtrace previous non-comment lines
@@ -395,9 +412,9 @@ function GetVHDLindent()
" ****************************************************************************************
" indent: maintain indent of previous opening statement
" keywords: without "generic", "map", "port" + ":" but not ":=" + "in", "out", "inout", "buffer", "linkage", variable & ":="
" keywords: without "procedure", "generic", "map", "port" + ":" but not ":=" + "in", "out", "inout", "buffer", "linkage", variable & ":="
" where: start of current line
if curs =~? '^\s*\%(\<\%(generic\|map\|port\)\>.*\)\@<!\S\+\s*:[^=]\@=\s*\%(\%(in\|out\|inout\|buffer\|linkage\)\>\|\w\+\s\+:=\)'
if curs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=]\@=\s*\%(\%(in\|out\|inout\|buffer\|linkage\)\>\|\w\+\s\+:=\)'
return ind2
endif

View File

@@ -1,6 +1,6 @@
" netrwPlugin.vim: Handles file transfer and remote directory listing across a network
" PLUGIN SECTION
" Date: Feb 10, 2011
" Date: Aug 24, 2011
" Maintainer: Charles E Campbell, Jr <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
" Copyright: Copyright (C) 1999-2008 Charles E. Campbell, Jr. {{{1
@@ -20,7 +20,7 @@
if &cp || exists("g:loaded_netrwPlugin")
finish
endif
let g:loaded_netrwPlugin = "v142"
let g:loaded_netrwPlugin = "v143"
if v:version < 702
echohl WarningMsg | echo "***netrw*** you need vim version 7.2 for this version of netrw" | echohl None
finish
@@ -47,20 +47,15 @@ augroup END
" Network Browsing Reading Writing: {{{2
augroup Network
au!
if has("win32") || has("win95") || has("win64") || has("win16")
au BufReadCmd file://* call netrw#FileUrlRead(expand("<amatch>"))
else
au BufReadCmd file://* call netrw#FileUrlRead(expand("<amatch>"))
au BufReadCmd file://localhost/* call netrw#FileUrlRead(substitute(expand("<amatch>")),'file://localhost/','file:///','')
endif
au BufReadCmd ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau BufReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(2,expand("<amatch>"))|exe "silent doau BufReadPost ".fnameescape(expand("<amatch>"))
au FileReadCmd ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau FileReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(1,expand("<amatch>"))|exe "silent doau FileReadPost ".fnameescape(expand("<amatch>"))
au BufWriteCmd ftp://*,rcp://*,scp://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau BufWritePre ".fnameescape(expand("<amatch>"))|exe 'Nwrite '.fnameescape(expand("<amatch>"))|exe "silent doau BufWritePost ".fnameescape(expand("<amatch>"))
au FileWriteCmd ftp://*,rcp://*,scp://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau FileWritePre ".fnameescape(expand("<amatch>"))|exe "'[,']".'Nwrite '.fnameescape(expand("<amatch>"))|exe "silent doau FileWritePost ".fnameescape(expand("<amatch>"))
au BufReadCmd file://* call netrw#FileUrlRead(expand("<amatch>"))
au BufReadCmd ftp://*,rcp://*,scp://*,http://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau BufReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(2,expand("<amatch>"))|exe "silent doau BufReadPost ".fnameescape(expand("<amatch>"))
au FileReadCmd ftp://*,rcp://*,scp://*,http://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau FileReadPre ".fnameescape(expand("<amatch>"))|call netrw#Nread(1,expand("<amatch>"))|exe "silent doau FileReadPost ".fnameescape(expand("<amatch>"))
au BufWriteCmd ftp://*,rcp://*,scp://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau BufWritePre ".fnameescape(expand("<amatch>"))|exe 'Nwrite '.fnameescape(expand("<amatch>"))|exe "silent doau BufWritePost ".fnameescape(expand("<amatch>"))
au FileWriteCmd ftp://*,rcp://*,scp://*,dav://*,davs://*,rsync://*,sftp://* exe "silent doau FileWritePre ".fnameescape(expand("<amatch>"))|exe "'[,']".'Nwrite '.fnameescape(expand("<amatch>"))|exe "silent doau FileWritePost ".fnameescape(expand("<amatch>"))
try
au SourceCmd ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://* exe 'Nsource '.fnameescape(expand("<amatch>"))
au SourceCmd ftp://*,rcp://*,scp://*,http://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe 'Nsource '.fnameescape(expand("<amatch>"))
catch /^Vim\%((\a\+)\)\=:E216/
au SourcePre ftp://*,rcp://*,scp://*,http://*,dav://*,davs://*,rsync://*,sftp://* exe 'Nsource '.fnameescape(expand("<amatch>"))
au SourcePre ftp://*,rcp://*,scp://*,http://*,https://*,dav://*,davs://*,rsync://*,sftp://* exe 'Nsource '.fnameescape(expand("<amatch>"))
endtry
augroup END

View File

@@ -16,7 +16,7 @@
if &cp || exists("g:loaded_vimballPlugin")
finish
endif
let g:loaded_vimballPlugin = "v33"
let g:loaded_vimballPlugin = "v34"
let s:keepcpo = &cpo
set cpo&vim

View File

@@ -0,0 +1,80 @@
" Vim syntax file
" Language: gitolite configuration
" URL: https://github.com/tmatilai/gitolite.vim
" Maintainer: Teemu Matilainen <teemu.matilainen@iki.fi>
" Last Change: 2011-10-05
if exists("b:current_syntax")
finish
endif
" Comment
syn match gitoliteComment "\(^\|\s\)#.*" contains=gitoliteTodo
syn keyword gitoliteTodo TODO FIXME XXX NOT contained
" Groups, users and repos
syn match gitoliteGroupDef "\(^\s*\)\@<=@[^=]\{-1,}\(\s*=\)\@=" contains=gitoliteSpaceError,gitoliteUserError nextgroup=gitoliteGroupDefSep
syn match gitoliteGroupDefSep "\s*=" contained nextgroup=gitoliteRepoLine
syn match gitoliteRepoDef "^\s*repo\s" nextgroup=gitoliteRepoLine
syn match gitoliteRepoLine ".*" contained transparent contains=gitoliteGroup,gitoliteWildRepo,gitoliteCreator,gitoliteExtCmdHelper,gitoliteRepoError,gitoliteComment
syn match gitoliteUserLine ".*" contained transparent contains=gitoliteGroup,gitolitePreProc,gitoliteUserError,gitoliteComment
syn match gitoliteWildRepo "[ \t=]\@<=[^ \t]*[\\^$|()[\]*?{}][^ \t]*" contained contains=gitoliteCreator,gitoliteRepoError
syn match gitoliteGroup "[ \t=]\@<=@[^ \t]\+" contained contains=gitoliteUserError
syn keyword gitoliteCreator CREATER CREATOR contained
syn keyword gitolitePreProc CREATER CREATOR READERS WRITERS contained
syn match gitoliteExtCmdHelper "[ \t=]\@<=EXTCMD/" contained nextgroup=gitoliteExtCmd
syn match gitoliteExtCmd "rsync\(\s\|$\)" contained
" Illegal characters
syn match gitoliteRepoError "[^ \t0-9a-zA-Z._@+/\\^$|()[\]*?{}-]\+" contained
syn match gitoliteUserError "[^ \t0-9a-zA-Z._@+-]\+" contained
syn match gitoliteSpaceError "\s\+" contained
" Permission
syn match gitoliteKeyword "^\s*\(C\|R\|RW\|RW+\|RWC\|RW+C\|RWD\|RW+D\|RWCD\|RW+CD\)[ \t=]\@=" nextgroup=gitoliteRefex
syn match gitoliteKeyword "^\s*-[ \t=]\@=" nextgroup=gitoliteDenyRefex
syn match gitoliteRefex "[^=]*="he=e-1 contained contains=gitoliteSpecialRefex,gitoliteGroup nextgroup=gitoliteUserLine
syn match gitoliteDenyRefex "[^=]*="he=e-1 contained contains=gitoliteSpecialRefex,gitoliteGroup nextgroup=gitoliteDenyUsers
syn match gitoliteSpecialRefex "\sNAME/"he=e-1 contained
syn match gitoliteSpecialRefex "/USER/"hs=s+1,he=e-1 contained
syn match gitoliteDenyUsers ".*" contained contains=gitoliteUserError,gitoliteComment
" Configuration
syn match gitoliteKeyword "^\s*config\s\+" nextgroup=gitoliteConfVariable
syn match gitoliteConfVariable "[^=]*" contained
" Include
syn match gitoliteInclude "^\s*\(include\|subconf\)\s"
" String
syn region gitoliteString start=+"+ end=+"+ oneline
" Define the default highlighting
hi def link gitoliteComment Comment
hi def link gitoliteTodo Todo
hi def link gitoliteGroupDef gitoliteGroup
hi def link gitoliteGroup Identifier
hi def link gitoliteWildRepo Special
hi def link gitoliteRepoError gitoliteError
hi def link gitoliteUserError gitoliteError
hi def link gitoliteSpaceError gitoliteError
hi def link gitoliteError Error
hi def link gitoliteCreator gitolitePreProc
hi def link gitolitePreProc PreProc
hi def link gitoliteExtCmdHelper PreProc
hi def link gitoliteExtCmd Special
hi def link gitoliteRepoDef Type
hi def link gitoliteKeyword Keyword
hi def link gitoliteRefex String
hi def link gitoliteDenyRefex gitoliteRefex
hi def link gitoliteSpecialRefex PreProc
hi def link gitoliteDenyUsers WarningMsg
hi def link gitoliteConfVariable Identifier
hi def link gitoliteInclude Include
hi def link gitoliteString String
let b:current_syntax = "gitolite"

View File

@@ -22,7 +22,7 @@ syn match netrwDir "\.\{1,2}/" contains=netrwClassify,@NoSpell
syn match netrwDir "\%(\S\+ \)*\S\+/" contains=netrwClassify,@NoSpell
syn match netrwSizeDate "\<\d\+\s\d\{1,2}/\d\{1,2}/\d\{4}\s" skipwhite contains=netrwDateSep,@NoSpell nextgroup=netrwTime
syn match netrwSymLink "\%(\S\+ \)*\S\+@\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
syn match netrwExe "\%(\S\+ \)*\S\+\*\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
syn match netrwExe "\%(\S\+ \)*\S*[^~]\*\ze\%(\s\{2,}\|$\)" contains=netrwClassify,@NoSpell
syn match netrwTreeBar "^\%([-+|] \)\+" contains=netrwTreeBarSpace nextgroup=@netrwTreeGroup
syn match netrwTreeBarSpace " " contained
@@ -63,7 +63,7 @@ if exists("g:netrw_special_syntax") && netrw_special_syntax
syn match netrwObj "\(\S\+ \)*\S*\.\%(o\|obj\)\>" contains=netrwTreeBar,@NoSpell
syn match netrwTags "\<tags\>" contains=netrwTreeBar,@NoSpell
syn match netrwTags "\<\(ANmenu\|ANtags\)\>" contains=netrwTreeBar,@NoSpell
syn match netrwTilde "\(\S\+ \)*\S\+\~\>" contains=netrwTreeBar,@NoSpell
syn match netrwTilde "\(\S\+ \)*\S\+\~\*\=\>" contains=netrwTreeBar,@NoSpell
syn match netrwTmp "\<tmp\(\S\+ \)*\S\+\>\|\(\S\+ \)*\S*tmp\>" contains=netrwTreeBar,@NoSpell
endif

View File

@@ -1,7 +1,7 @@
" Vim syntax file
" Language: php PHP 3/4/5
" Maintainer: Jason Woofenden <jason@jasonwoof.com>
" Last Change: July 29, 2011
" Last Change: Oct 20, 2011
" 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>
@@ -110,6 +110,10 @@ if exists( "php_htmlInStrings")
syn cluster phpAddStrings add=@htmlTop
endif
" make sure we can use \ at the begining of the line to do a continuation
let s:cpo_save = &cpo
set cpo&vim
syn case match
" Env Variables
@@ -691,4 +695,8 @@ if main_syntax == 'php'
unlet main_syntax
endif
" put cpoptions back the way we found it
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8 sts=2 sw=2 expandtab

View File

@@ -2,7 +2,7 @@
" Language: R Help File
" Maintainer: Jakson Aquino <jalvesaq@gmail.com>
" Former Maintainer: Johannes Ranke <jranke@uni-bremen.de>
" Last Change: Sat Feb 19, 2011 02:13PM
" Last Change: Fri Oct 14, 2011 09:54PM
" Version: 0.7.4
" SVN: $Id: rhelp.vim 90 2010-11-22 10:58:11Z ranke $
" Remarks: - Includes R syntax highlighting in the appropriate
@@ -192,9 +192,9 @@ syn match rhelpDelimiter "{\|\[\|(\|)\|\]\|}"
syn match rhelpComment /%.*$/
" Error {{{1
syn region rhelpRegion matchgroup=Delimiter start=/(/ matchgroup=Delimiter end=/)/ transparent contains=ALLBUT,rhelpError,rhelpBraceError,rhelpCurlyError
syn region rhelpRegion matchgroup=Delimiter start=/{/ matchgroup=Delimiter end=/}/ transparent contains=ALLBUT,rhelpError,rhelpBraceError,rhelpParenError
syn region rhelpRegion matchgroup=Delimiter start=/\[/ matchgroup=Delimiter end=/]/ transparent contains=ALLBUT,rhelpError,rhelpCurlyError,rhelpParenError
syn region rhelpRegion matchgroup=Delimiter start=/(/ matchgroup=Delimiter end=/)/ contains=@Spell,rhelpCodeSpecial,rhelpComment,rhelpDelimiter,rhelpDots,rhelpFreesec,rhelpFreesubsec,rhelpIdentifier,rhelpKeyword,rhelpLink,rhelpPreProc,rhelpRComment,rhelpRcode,rhelpRegion,rhelpS4method,rhelpSection,rhelpSexpr,rhelpSpecialChar,rhelpString,rhelpType,rhelpVerbatim
syn region rhelpRegion matchgroup=Delimiter start=/{/ matchgroup=Delimiter end=/}/ contains=@Spell,rhelpCodeSpecial,rhelpComment,rhelpDelimiter,rhelpDots,rhelpFreesec,rhelpFreesubsec,rhelpIdentifier,rhelpKeyword,rhelpLink,rhelpPreProc,rhelpRComment,rhelpRcode,rhelpRegion,rhelpS4method,rhelpSection,rhelpSexpr,rhelpSpecialChar,rhelpString,rhelpType,rhelpVerbatim
syn region rhelpRegion matchgroup=Delimiter start=/\[/ matchgroup=Delimiter end=/]/ contains=@Spell,rhelpCodeSpecial,rhelpComment,rhelpDelimiter,rhelpDots,rhelpFreesec,rhelpFreesubsec,rhelpIdentifier,rhelpKeyword,rhelpLink,rhelpPreProc,rhelpRComment,rhelpRcode,rhelpRegion,rhelpS4method,rhelpSection,rhelpSexpr,rhelpSpecialChar,rhelpString,rhelpType,rhelpVerbatim
syn match rhelpError /[)\]}]/
syn match rhelpBraceError /[)}]/ contained
syn match rhelpCurlyError /[)\]]/ contained

View File

@@ -43,11 +43,11 @@ syn keyword sqrSection begin-program begin-report begin-setup
syn keyword sqrSection end-footing end-heading end-procedure
syn keyword sqrSection end-program end-report end-setup
syn keyword sqrParagraph alter-color-map alter-conection
syn keyword sqrParagraph alter-color-map alter-connection
syn keyword sqrParagraph alter-locale alter-printer alter-report
syn keyword sqrParagraph begin-document begin-execute begin-select
syn keyword sqrParagraph begin-sql declare-chart declare-image
syn keyword sqrParagraph declare-color-map declare-conection
syn keyword sqrParagraph declare-color-map declare-connection
syn keyword sqrParagraph declare-layout declare-printer
syn keyword sqrParagraph declare-report declare-procedure
syn keyword sqrParagraph declare-toc declare-variable end-declare
@@ -224,16 +224,16 @@ if version >= 600
" See also the sqrString section above for handling of ! characters
" inside of strings. (Those patterns override the ones below.)
syn match sqrComment /!\@<!!\([^!=].*\|$\)/ contains=sqrTodo
" the ! can't be preceeded by another !,
" the ! can't be preceded by another !,
" and must be followed by at least one
" character other than ! or =, or immediately
" by the end-of-line
syn match sqrComment /^!=.*/ contains=sqrTodo
syn match sqrComment /^!!.*/ contains=sqrTodo
syn match sqrError /^\s\+\zs!=.*/
" it's an error to have "!=" preceeded by
" it's an error to have "!=" preceded by
" just whitespace on the line ("!="
" preceeded by non-whitespace is treated
" preceded by non-whitespace is treated
" as neither a comment nor an error, since
" it is often correct, i.e.
" if #count != 7
@@ -259,7 +259,7 @@ endif
" 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 hightlighting yet.
" For version 5.8 and later, only when an item doesn't have highlighting yet.
if version >= 508 || !exists("did_sqr_syn_inits")
if version < 508
let did_sqr_syn_inits = 1

View File

@@ -1,8 +1,8 @@
" Vim syntax file
" Language: TeX
" Maintainer: Dr. Charles E. Campbell, Jr. <NdrchipO@ScampbellPfamily.AbizM>
" Last Change: Aug 22, 2011
" Version: 68
" Last Change: Oct 12, 2011
" Version: 69
" URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
"
" Notes: {{{1
@@ -37,6 +37,8 @@ if version < 600
elseif exists("b:current_syntax")
finish
endif
let s:keepcpo= &cpo
set cpo&vim
scriptencoding utf-8
" Define the default highlighting. {{{1
@@ -1217,7 +1219,9 @@ if did_tex_syntax_inits == 1
delcommand HiLink
endif
" Current Syntax: {{{1
" Cleanup: {{{1
unlet s:extfname
let b:current_syntax = "tex"
let &cpo = s:keepcpo
unlet s:keepcpo
" vim: ts=8 fdm=marker

View File

@@ -108,10 +108,10 @@ endif
# on NT, it's here:
PERLLIB=$(PERL)/lib
PERLLIBS=$(PERLLIB)/Core
XSUBPP=$(PERLLIB)/ExtUtils/xsubpp
XSUBPP_EXISTS=$(shell perl -e "print 1 unless -e '$(XSUBPP)'")
XSUBPPTRY=$(PERLLIB)/ExtUtils/xsubpp
XSUBPP_EXISTS=$(shell perl -e "print 1 unless -e '$(XSUBPPTRY)'")
ifeq "$(XSUBPP_EXISTS)" ""
XSUBPP=perl $(XSUBPP)
XSUBPP=perl $(XSUBPPTRY)
else
XSUBPP=xsubpp
endif

View File

@@ -2328,6 +2328,7 @@ shadow: runtime pixmaps
../../testdir/vimrc.unix \
../../testdir/*.in \
../../testdir/*.vim \
../../testdir/test83-tags? \
../../testdir/*.ok .
# Link needed for doing "make install" in a shadow directory.

View File

@@ -5982,6 +5982,7 @@ fix_help_buffer()
char_u *line;
int in_example = FALSE;
int len;
char_u *fname;
char_u *p;
char_u *rt;
int mustfree;
@@ -6028,124 +6029,187 @@ fix_help_buffer()
}
/*
* In the "help.txt" file, add the locally added help files.
* This uses the very first line in the help file.
* In the "help.txt" and "help.abx" file, add the locally added help
* files. This uses the very first line in the help file.
*/
if (fnamecmp(gettail(curbuf->b_fname), "help.txt") == 0)
fname = gettail(curbuf->b_fname);
if (fnamecmp(fname, "help.txt") == 0
#ifdef FEAT_MULTI_LANG
|| (fnamencmp(fname, "help.", 5) == 0
&& ASCII_ISALPHA(fname[5])
&& ASCII_ISALPHA(fname[6])
&& TOLOWER_ASC(fname[7]) == 'x'
&& fname[8] == NUL)
#endif
)
{
for (lnum = 1; lnum < curbuf->b_ml.ml_line_count; ++lnum)
{
line = ml_get_buf(curbuf, lnum, FALSE);
if (strstr((char *)line, "*local-additions*") != NULL)
if (strstr((char *)line, "*local-additions*") == NULL)
continue;
/* Go through all directories in 'runtimepath', skipping
* $VIMRUNTIME. */
p = p_rtp;
while (*p != NUL)
{
/* Go through all directories in 'runtimepath', skipping
* $VIMRUNTIME. */
p = p_rtp;
while (*p != NUL)
copy_option_part(&p, NameBuff, MAXPATHL, ",");
mustfree = FALSE;
rt = vim_getenv((char_u *)"VIMRUNTIME", &mustfree);
if (fullpathcmp(rt, NameBuff, FALSE) != FPC_SAME)
{
copy_option_part(&p, NameBuff, MAXPATHL, ",");
mustfree = FALSE;
rt = vim_getenv((char_u *)"VIMRUNTIME", &mustfree);
if (fullpathcmp(rt, NameBuff, FALSE) != FPC_SAME)
{
int fcount;
char_u **fnames;
FILE *fd;
char_u *s;
int fi;
int fcount;
char_u **fnames;
FILE *fd;
char_u *s;
int fi;
#ifdef FEAT_MBYTE
vimconv_T vc;
char_u *cp;
vimconv_T vc;
char_u *cp;
#endif
/* Find all "doc/ *.txt" files in this directory. */
add_pathsep(NameBuff);
STRCAT(NameBuff, "doc/*.txt");
if (gen_expand_wildcards(1, &NameBuff, &fcount,
&fnames, EW_FILE|EW_SILENT) == OK
&& fcount > 0)
{
for (fi = 0; fi < fcount; ++fi)
{
fd = mch_fopen((char *)fnames[fi], "r");
if (fd != NULL)
{
vim_fgets(IObuff, IOSIZE, fd);
if (IObuff[0] == '*'
&& (s = vim_strchr(IObuff + 1, '*'))
!= NULL)
{
#ifdef FEAT_MBYTE
int this_utf = MAYBE;
#endif
/* Change tag definition to a
* reference and remove <CR>/<NL>. */
IObuff[0] = '|';
*s = '|';
while (*s != NUL)
{
if (*s == '\r' || *s == '\n')
*s = NUL;
#ifdef FEAT_MBYTE
/* The text is utf-8 when a byte
* above 127 is found and no
* illegal byte sequence is found.
*/
if (*s >= 0x80 && this_utf != FALSE)
{
int l;
this_utf = TRUE;
l = utf_ptr2len(s);
if (l == 1)
this_utf = FALSE;
s += l - 1;
}
#endif
++s;
}
#ifdef FEAT_MBYTE
/* The help file is latin1 or utf-8;
* conversion to the current
* 'encoding' may be required. */
vc.vc_type = CONV_NONE;
convert_setup(&vc, (char_u *)(
this_utf == TRUE ? "utf-8"
: "latin1"), p_enc);
if (vc.vc_type == CONV_NONE)
/* No conversion needed. */
cp = IObuff;
else
{
/* Do the conversion. If it fails
* use the unconverted text. */
cp = string_convert(&vc, IObuff,
NULL);
if (cp == NULL)
cp = IObuff;
}
convert_setup(&vc, NULL, NULL);
ml_append(lnum, cp, (colnr_T)0, FALSE);
if (cp != IObuff)
vim_free(cp);
/* Find all "doc/ *.txt" files in this directory. */
add_pathsep(NameBuff);
#ifdef FEAT_MULTI_LANG
STRCAT(NameBuff, "doc/*.??[tx]");
#else
ml_append(lnum, IObuff, (colnr_T)0,
FALSE);
STRCAT(NameBuff, "doc/*.txt");
#endif
++lnum;
}
fclose(fd);
if (gen_expand_wildcards(1, &NameBuff, &fcount,
&fnames, EW_FILE|EW_SILENT) == OK
&& fcount > 0)
{
#ifdef FEAT_MULTI_LANG
int i1;
int i2;
char_u *f1;
char_u *f2;
char_u *t1;
char_u *e1;
char_u *e2;
/* If foo.abx is found use it instead of foo.txt in
* the same directory. */
for (i1 = 0; i1 < fcount; ++i1)
{
for (i2 = 0; i2 < fcount; ++i2)
{
if (i1 == i2)
continue;
if (fnames[i1] == NULL || fnames[i2] == NULL)
continue;
f1 = fnames[i1];
f2 = fnames[i2];
t1 = gettail(f1);
if (fnamencmp(f1, f2, t1 - f1) != 0)
continue;
e1 = vim_strrchr(t1, '.');
e2 = vim_strrchr(gettail(f2), '.');
if (e1 == NUL || e2 == NUL)
continue;
if (fnamecmp(e1, ".txt") != 0
&& fnamecmp(e1, fname + 4) != 0)
{
/* Not .txt and not .abx, remove it. */
vim_free(fnames[i1]);
fnames[i1] = NULL;
continue;
}
if (fnamencmp(f1, f2, e1 - f1) != 0)
continue;
if (fnamecmp(e1, ".txt") == 0
&& fnamecmp(e2, fname + 4) == 0)
{
/* use .abx instead of .txt */
vim_free(fnames[i1]);
fnames[i1] = NULL;
}
}
FreeWild(fcount, fnames);
}
#endif
for (fi = 0; fi < fcount; ++fi)
{
if (fnames[fi] == NULL)
continue;
fd = mch_fopen((char *)fnames[fi], "r");
if (fd != NULL)
{
vim_fgets(IObuff, IOSIZE, fd);
if (IObuff[0] == '*'
&& (s = vim_strchr(IObuff + 1, '*'))
!= NULL)
{
#ifdef FEAT_MBYTE
int this_utf = MAYBE;
#endif
/* Change tag definition to a
* reference and remove <CR>/<NL>. */
IObuff[0] = '|';
*s = '|';
while (*s != NUL)
{
if (*s == '\r' || *s == '\n')
*s = NUL;
#ifdef FEAT_MBYTE
/* The text is utf-8 when a byte
* above 127 is found and no
* illegal byte sequence is found.
*/
if (*s >= 0x80 && this_utf != FALSE)
{
int l;
this_utf = TRUE;
l = utf_ptr2len(s);
if (l == 1)
this_utf = FALSE;
s += l - 1;
}
#endif
++s;
}
#ifdef FEAT_MBYTE
/* The help file is latin1 or utf-8;
* conversion to the current
* 'encoding' may be required. */
vc.vc_type = CONV_NONE;
convert_setup(&vc, (char_u *)(
this_utf == TRUE ? "utf-8"
: "latin1"), p_enc);
if (vc.vc_type == CONV_NONE)
/* No conversion needed. */
cp = IObuff;
else
{
/* Do the conversion. If it fails
* use the unconverted text. */
cp = string_convert(&vc, IObuff,
NULL);
if (cp == NULL)
cp = IObuff;
}
convert_setup(&vc, NULL, NULL);
ml_append(lnum, cp, (colnr_T)0, FALSE);
if (cp != IObuff)
vim_free(cp);
#else
ml_append(lnum, IObuff, (colnr_T)0,
FALSE);
#endif
++lnum;
}
fclose(fd);
}
}
FreeWild(fcount, fnames);
}
if (mustfree)
vim_free(rt);
}
break;
if (mustfree)
vim_free(rt);
}
break;
}
}
}

View File

@@ -4153,6 +4153,9 @@ ex_language(eap)
# ifdef FEAT_EVAL
/* Set v:lang, v:lc_time and v:ctype to the final result. */
set_lang_var();
# endif
# ifdef FEAT_TITLE
maketitle();
# endif
}
}

View File

@@ -8205,6 +8205,12 @@ do_sleep(msec)
{
ui_delay(msec - done > 1000L ? 1000L : msec - done, TRUE);
ui_breakcheck();
#ifdef FEAT_NETBEANS_INTG
/* Process the netbeans messages that may have been received in the
* call to ui_breakcheck() when the GUI is in use. This may occur when
* running a test case. */
netbeans_parse_messages();
#endif
}
}

View File

@@ -1053,6 +1053,9 @@
# ifdef FEAT_BIG
# define FEAT_MOUSE_DEC
# endif
# ifdef FEAT_BIG
# define FEAT_MOUSE_URXVT
# endif
# if defined(FEAT_NORMAL) && (defined(MSDOS) || defined(WIN3264))
# define DOS_MOUSE
# endif
@@ -1068,13 +1071,23 @@
#if defined(FEAT_NORMAL) && defined(HAVE_SYSMOUSE)
# define FEAT_SYSMOUSE
#endif
/* urxvt is a small variation of mouse_xterm, and shares its code */
#if defined(FEAT_MOUSE_URXVT) && !defined(FEAT_MOUSE_XTERM)
# define FEAT_MOUSE_XTERM
#endif
/* Define FEAT_MOUSE when any of the above is defined or FEAT_GUI. */
#if !defined(FEAT_MOUSE_TTY) \
&& (defined(FEAT_MOUSE_XTERM) \
|| defined(FEAT_MOUSE_NET) || defined(FEAT_MOUSE_DEC) \
|| defined(DOS_MOUSE) || defined(FEAT_MOUSE_GPM) \
|| defined(FEAT_MOUSE_JSB) || defined(FEAT_MOUSE_PTERM) \
|| defined(FEAT_SYSMOUSE))
|| defined(FEAT_MOUSE_NET) \
|| defined(FEAT_MOUSE_DEC) \
|| defined(DOS_MOUSE) \
|| defined(FEAT_MOUSE_GPM) \
|| defined(FEAT_MOUSE_JSB) \
|| defined(FEAT_MOUSE_PTERM) \
|| defined(FEAT_SYSMOUSE) \
|| defined(FEAT_MOUSE_URXVT))
# define FEAT_MOUSE_TTY /* include non-GUI mouse support */
#endif
#if !defined(FEAT_MOUSE) && (defined(FEAT_MOUSE_TTY) || defined(FEAT_GUI))

View File

@@ -2460,27 +2460,18 @@ vgetorpeek(advance)
/*
* Handle ":map <expr>": evaluate the {rhs} as an
* expression. Save and restore the typeahead so that
* getchar() can be used. Also save and restore the
* command line for "normal :".
* expression. Also save and restore the command line
* for "normal :".
*/
if (mp->m_expr)
{
tasave_T tabuf;
int save_vgetc_busy = vgetc_busy;
save_typeahead(&tabuf);
if (tabuf.typebuf_valid)
{
vgetc_busy = 0;
save_m_keys = vim_strsave(mp->m_keys);
save_m_str = vim_strsave(mp->m_str);
s = eval_map_expr(save_m_str, NUL);
vgetc_busy = save_vgetc_busy;
}
else
s = NULL;
restore_typeahead(&tabuf);
vgetc_busy = 0;
save_m_keys = vim_strsave(mp->m_keys);
save_m_str = vim_strsave(mp->m_str);
s = eval_map_expr(save_m_str, NUL);
vgetc_busy = save_vgetc_busy;
}
else
#endif

View File

@@ -212,7 +212,6 @@ gui_do_fork()
int status;
int exit_status;
pid_t pid = -1;
FILE *parent_file;
/* Setup a pipe between the child and the parent, so that the parent
* knows when the child has done the setsid() call and is allowed to
@@ -290,19 +289,17 @@ gui_do_fork()
gui_mch_forked();
# endif
if (!pipe_error)
parent_file = fdopen(pipefd[1], "w");
else
parent_file = NULL;
/* Try to start the GUI */
gui_attempt_start();
/* Notify the parent */
if (parent_file != NULL)
if (!pipe_error)
{
fputs(gui.in_use ? "ok" : "fail", parent_file);
fclose(parent_file);
if (gui.in_use)
write_eintr(pipefd[1], "ok", 3);
else
write_eintr(pipefd[1], "fail", 5);
close(pipefd[1]);
}
/* If we failed to start the GUI, exit now. */
@@ -323,17 +320,16 @@ gui_do_fork()
static int
gui_read_child_pipe(int fd)
{
size_t bytes_read;
FILE *file;
char buffer[10];
long bytes_read;
#define READ_BUFFER_SIZE 10
char buffer[READ_BUFFER_SIZE];
file = fdopen(fd, "r");
if (!file)
bytes_read = read_eintr(fd, buffer, READ_BUFFER_SIZE - 1);
#undef READ_BUFFER_SIZE
close(fd);
if (bytes_read < 0)
return GUI_CHILD_IO_ERROR;
bytes_read = fread(buffer, sizeof(char), sizeof(buffer)-1, file);
buffer[bytes_read] = '\0';
fclose(file);
buffer[bytes_read] = NUL;
if (strcmp(buffer, "ok") == 0)
return GUI_CHILD_OK;
return GUI_CHILD_FAILED;

View File

@@ -3081,7 +3081,7 @@ gui_gtk_set_dnd_targets(void)
for (i = 0; i < (int)N_DND_TARGETS; ++i)
{
if (!clip_html && selection_targets[i].info == TARGET_HTML)
if (!clip_html && dnd_targets[i].info == TARGET_HTML)
n_targets--;
else
targets[j++] = dnd_targets[i];

View File

@@ -92,13 +92,13 @@
*/
#define KS_TEAROFF 244
/* used for JSB term mouse */
/* Used for JSB term mouse. */
#define KS_JSBTERM_MOUSE 243
/* used a termcap entry that produces a normal character */
/* Used a termcap entry that produces a normal character. */
#define KS_KEY 242
/* Used for the qnx pterm mouse */
/* Used for the qnx pterm mouse. */
#define KS_PTERM_MOUSE 241
/* Used for click in a tab pages label. */
@@ -107,6 +107,9 @@
/* Used for menu in a tab pages line. */
#define KS_TABMENU 239
/* Used for the urxvt mouse. */
#define KS_URXVT_MOUSE 238
/*
* Filler used after KS_SPECIAL and others
*/

View File

@@ -6389,6 +6389,7 @@ get_c_indent()
int lookfor_cpp_namespace = FALSE;
int cont_amount = 0; /* amount for continuation line */
int original_line_islabel;
int added_to_amount = 0;
for (options = curbuf->b_p_cino; *options; )
{
@@ -7216,52 +7217,59 @@ get_c_indent()
else
amount += ind_continuation;
}
else if (lookfor_cpp_namespace)
else
{
if (curwin->w_cursor.lnum == ourscope)
continue;
if (curwin->w_cursor.lnum == 0
|| curwin->w_cursor.lnum
< ourscope - FIND_NAMESPACE_LIM)
break;
l = ml_get_curline();
/*
* If we're in a comment now, skip to the start of the
* comment.
*/
trypos = find_start_comment(ind_maxcomment);
if (trypos != NULL)
{
curwin->w_cursor.lnum = trypos->lnum + 1;
curwin->w_cursor.col = 0;
continue;
}
/*
* Skip preprocessor directives and blank lines.
*/
if (cin_ispreproc_cont(&l, &curwin->w_cursor.lnum))
continue;
if (cin_is_cpp_namespace(l))
{
amount += ind_cpp_namespace;
break;
}
if (cin_nocode(l))
continue;
}
else if (lookfor != LOOKFOR_TERM
if (lookfor != LOOKFOR_TERM
&& lookfor != LOOKFOR_CPP_BASECLASS)
{
amount = scope_amount;
if (theline[0] == '{')
amount += ind_open_extra;
{
amount = scope_amount;
if (theline[0] == '{')
{
amount += ind_open_extra;
added_to_amount = ind_open_extra;
}
}
if (lookfor_cpp_namespace)
{
/*
* Looking for C++ namespace, need to look further
* back.
*/
if (curwin->w_cursor.lnum == ourscope)
continue;
if (curwin->w_cursor.lnum == 0
|| curwin->w_cursor.lnum
< ourscope - FIND_NAMESPACE_LIM)
break;
l = ml_get_curline();
/* If we're in a comment now, skip to the start of
* the comment. */
trypos = find_start_comment(ind_maxcomment);
if (trypos != NULL)
{
curwin->w_cursor.lnum = trypos->lnum + 1;
curwin->w_cursor.col = 0;
continue;
}
/* Skip preprocessor directives and blank lines. */
if (cin_ispreproc_cont(&l, &curwin->w_cursor.lnum))
continue;
/* Finally the actual check for "namespace". */
if (cin_is_cpp_namespace(l))
{
amount += ind_cpp_namespace - added_to_amount;
break;
}
if (cin_nocode(l))
continue;
}
}
break;
}

View File

@@ -1012,8 +1012,12 @@ do_outofmem_msg(size)
{
/* Don't hide this message */
emsg_silent = 0;
EMSGN(_("E342: Out of memory! (allocating %lu bytes)"), size);
/* Must come first to avoid coming back here when printing the error
* message fails, e.g. when setting v:errmsg. */
did_outofmem_msg = TRUE;
EMSGN(_("E342: Out of memory! (allocating %lu bytes)"), size);
}
}

View File

@@ -14,6 +14,13 @@
* which are *between* characters, whereas vim uses line number
* and column number which are *on* characters.
* See ":help netbeans-protocol" for explanation.
*
* The Netbeans messages are received and queued in the gui event loop, or in
* the select loop when Vim runs in a terminal. These messages are processed
* by netbeans_parse_messages() which is invoked in the idle loop when Vim is
* waiting for user input. The function netbeans_parse_messages() is also
* called from the ":sleep" command, to allow the execution of test cases that
* may not invoke the idle loop.
*/
#include "vim.h"

View File

@@ -20,7 +20,7 @@
*/
static int resel_VIsual_mode = NUL; /* 'v', 'V', or Ctrl-V */
static linenr_T resel_VIsual_line_count; /* number of lines */
static colnr_T resel_VIsual_col; /* nr of cols or end col */
static colnr_T resel_VIsual_vcol; /* nr of cols or end col */
static int restart_VIsual_select = 0;
#endif
@@ -1436,7 +1436,7 @@ do_pending_operator(cap, old_col, gui_yank)
/* The visual area is remembered for redo */
static int redo_VIsual_mode = NUL; /* 'v', 'V', or Ctrl-V */
static linenr_T redo_VIsual_line_count; /* number of lines */
static colnr_T redo_VIsual_col; /* number of cols or end column */
static colnr_T redo_VIsual_vcol; /* number of cols or end column */
static long redo_VIsual_count; /* count for Visual operator */
# ifdef FEAT_VIRTUALEDIT
int include_line_break = FALSE;
@@ -1549,22 +1549,31 @@ do_pending_operator(cap, old_col, gui_yank)
#ifdef FEAT_VISUAL
if (redo_VIsual_busy)
{
/* Redo of an operation on a Visual area. Use the same size from
* redo_VIsual_line_count and redo_VIsual_vcol. */
oap->start = curwin->w_cursor;
curwin->w_cursor.lnum += redo_VIsual_line_count - 1;
if (curwin->w_cursor.lnum > curbuf->b_ml.ml_line_count)
curwin->w_cursor.lnum = curbuf->b_ml.ml_line_count;
VIsual_mode = redo_VIsual_mode;
if (VIsual_mode == 'v')
if (redo_VIsual_vcol == MAXCOL || VIsual_mode == 'v')
{
if (redo_VIsual_line_count <= 1)
curwin->w_cursor.col += redo_VIsual_col - 1;
if (VIsual_mode == 'v')
{
if (redo_VIsual_line_count <= 1)
{
validate_virtcol();
curwin->w_curswant =
curwin->w_virtcol + redo_VIsual_vcol - 1;
}
else
curwin->w_curswant = redo_VIsual_vcol;
}
else
curwin->w_cursor.col = redo_VIsual_col;
}
if (redo_VIsual_col == MAXCOL)
{
curwin->w_curswant = MAXCOL;
coladvance((colnr_T)MAXCOL);
{
curwin->w_curswant = MAXCOL;
}
coladvance(curwin->w_curswant);
}
cap->count0 = redo_VIsual_count;
if (redo_VIsual_count != 0)
@@ -1710,7 +1719,7 @@ do_pending_operator(cap, old_col, gui_yank)
}
}
else if (redo_VIsual_busy)
oap->end_vcol = oap->start_vcol + redo_VIsual_col - 1;
oap->end_vcol = oap->start_vcol + redo_VIsual_vcol - 1;
/*
* Correct oap->end.col and oap->start.col to be the
* upper-left and lower-right corner of the block area.
@@ -1735,13 +1744,22 @@ do_pending_operator(cap, old_col, gui_yank)
*/
resel_VIsual_mode = VIsual_mode;
if (curwin->w_curswant == MAXCOL)
resel_VIsual_col = MAXCOL;
else if (VIsual_mode == Ctrl_V)
resel_VIsual_col = oap->end_vcol - oap->start_vcol + 1;
else if (oap->line_count > 1)
resel_VIsual_col = oap->end.col;
resel_VIsual_vcol = MAXCOL;
else
resel_VIsual_col = oap->end.col - oap->start.col + 1;
{
if (VIsual_mode != Ctrl_V)
getvvcol(curwin, &(oap->end),
NULL, NULL, &oap->end_vcol);
if (VIsual_mode == Ctrl_V || oap->line_count <= 1)
{
if (VIsual_mode != Ctrl_V)
getvvcol(curwin, &(oap->start),
&oap->start_vcol, NULL, NULL);
resel_VIsual_vcol = oap->end_vcol - oap->start_vcol + 1;
}
else
resel_VIsual_vcol = oap->end_vcol;
}
resel_VIsual_line_count = oap->line_count;
}
@@ -1769,7 +1787,7 @@ do_pending_operator(cap, old_col, gui_yank)
if (!redo_VIsual_busy)
{
redo_VIsual_mode = resel_VIsual_mode;
redo_VIsual_col = resel_VIsual_col;
redo_VIsual_vcol = resel_VIsual_vcol;
redo_VIsual_line_count = resel_VIsual_line_count;
redo_VIsual_count = cap->count0;
}
@@ -7631,12 +7649,16 @@ nv_visual(cap)
if (VIsual_mode == 'v')
{
if (resel_VIsual_line_count <= 1)
curwin->w_cursor.col += resel_VIsual_col * cap->count0 - 1;
{
validate_virtcol();
curwin->w_curswant = curwin->w_virtcol
+ resel_VIsual_vcol * cap->count0 - 1;
}
else
curwin->w_cursor.col = resel_VIsual_col;
check_cursor_col();
curwin->w_curswant = resel_VIsual_vcol;
coladvance(curwin->w_curswant);
}
if (resel_VIsual_col == MAXCOL)
if (resel_VIsual_vcol == MAXCOL)
{
curwin->w_curswant = MAXCOL;
coladvance((colnr_T)MAXCOL);
@@ -7645,7 +7667,7 @@ nv_visual(cap)
{
validate_virtcol();
curwin->w_curswant = curwin->w_virtcol
+ resel_VIsual_col * cap->count0 - 1;
+ resel_VIsual_vcol * cap->count0 - 1;
coladvance(curwin->w_curswant);
}
else

View File

@@ -7806,6 +7806,10 @@ set_bool_option(opt_idx, varp, value, opt_flags)
/* Only de-activate it here, it will be enabled when changing mode. */
if (p_imdisable)
im_set_active(FALSE);
else if (State & INSERT)
/* When the option is set from an autocommand, it may need to take
* effect right away. */
im_set_active(curbuf->b_p_iminsert == B_IMODE_IM);
}
#endif

View File

@@ -819,7 +819,7 @@ EXTERN long p_ttyscroll; /* 'ttyscroll' */
EXTERN char_u *p_ttym; /* 'ttymouse' */
EXTERN unsigned ttym_flags;
# ifdef IN_OPTION_C
static char *(p_ttym_values[]) = {"xterm", "xterm2", "dec", "netterm", "jsbterm", "pterm", NULL};
static char *(p_ttym_values[]) = {"xterm", "xterm2", "dec", "netterm", "jsbterm", "pterm", "urxvt", NULL};
# endif
# define TTYM_XTERM 0x01
# define TTYM_XTERM2 0x02
@@ -827,6 +827,7 @@ static char *(p_ttym_values[]) = {"xterm", "xterm2", "dec", "netterm", "jsbterm"
# define TTYM_NETTERM 0x08
# define TTYM_JSBTERM 0x10
# define TTYM_PTERM 0x20
# define TTYM_URXVT 0x40
#endif
EXTERN char_u *p_udir; /* 'undodir' */
EXTERN long p_ul; /* 'undolevels' */

View File

@@ -1022,7 +1022,7 @@ mch_get_shellsize()
/* insure longword alignment */
#ifdef __amigaos4__
if(!(id = AllocDosObject(DOS_INFODATA, 0)))
if (!(id = AllocDosObject(DOS_INFODATA, 0)))
goto out;
#else
id = (struct InfoData *)(((long)id_a + 3L) & ~3L);

View File

@@ -77,7 +77,7 @@ mac_string_convert(ptr, len, lenp, fail_on_error, from_enc, to_enc, unconvlenp)
*unconvlenp = 0;
cfstr = CFStringCreateWithBytes(NULL, ptr, len, from, 0);
if(cfstr == NULL)
if (cfstr == NULL)
fprintf(stderr, "Encoding failed\n");
/* When conversion failed, try excluding bytes from the end, helps when
* there is an incomplete byte sequence. Only do up to 6 bytes to avoid

View File

@@ -2158,10 +2158,13 @@ use_xterm_like_mouse(name)
* Return non-zero when using an xterm mouse, according to 'ttymouse'.
* Return 1 for "xterm".
* Return 2 for "xterm2".
* Return 3 for "urxvt".
*/
int
use_xterm_mouse()
{
if (ttym_flags == TTYM_URXVT)
return 3;
if (ttym_flags == TTYM_XTERM2)
return 2;
if (ttym_flags == TTYM_XTERM)
@@ -3318,6 +3321,17 @@ mch_setmouse(on)
return;
xterm_mouse_vers = use_xterm_mouse();
# ifdef FEAT_MOUSE_URXVT
if (ttym_flags == TTYM_URXVT) {
out_str_nf((char_u *)
(on
? IF_EB("\033[?1015h", ESC_STR "[?1015h")
: IF_EB("\033[?1015l", ESC_STR "[?1015l")));
ison = on;
}
# endif
if (xterm_mouse_vers > 0)
{
if (on) /* enable mouse events, use mouse tracking if available */
@@ -3434,6 +3448,9 @@ check_mouse_termcode()
{
# ifdef FEAT_MOUSE_XTERM
if (use_xterm_mouse()
# ifdef FEAT_MOUSE_URXVT
&& use_xterm_mouse() != 3
# endif
# ifdef FEAT_GUI
&& !gui.in_use
# endif
@@ -3523,6 +3540,27 @@ check_mouse_termcode()
else
del_mouse_termcode(KS_PTERM_MOUSE);
# endif
# ifdef FEAT_MOUSE_URXVT
/* same as the dec mouse */
if (use_xterm_mouse() == 3
# ifdef FEAT_GUI
&& !gui.in_use
# endif
)
{
set_mouse_termcode(KS_URXVT_MOUSE, (char_u *)(term_is_8bit(T_NAME)
? IF_EB("\233", CSI_STR)
: IF_EB("\033[", ESC_STR "[")));
if (*p_mouse != NUL)
{
mch_setmouse(FALSE);
setmouse();
}
}
else
del_mouse_termcode(KS_URXVT_MOUSE);
# endif
}
#endif
@@ -5146,11 +5184,18 @@ select_eintr:
# endif
# ifdef EINTR
if (ret == -1 && errno == EINTR)
{
/* Check whether window has been resized, EINTR may be caused by
* SIGWINCH. */
if (do_resize)
handle_resize();
/* Interrupted by a signal, need to try again. We ignore msec
* here, because we do want to check even after a timeout if
* characters are available. Needed for reading output of an
* external command after the process has finished. */
goto select_eintr;
}
# endif
# ifdef __TANDEM
if (ret == -1 && errno == ENOTSUP)

View File

@@ -243,9 +243,9 @@ mch_system(char *cmd, int options)
/* Wait for the command to terminate before continuing */
while (GetModuleUsage((HINSTANCE)h_module) > 0 && again )
{
while( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) && again )
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) && again)
{
if(msg.message == WM_QUIT)
if (msg.message == WM_QUIT)
{
PostQuitMessage(msg.wParam);

View File

@@ -1700,7 +1700,7 @@ msgid ""
"&Load File"
msgstr ""
"&OK\n"
"&Lese Datei"
"&Lies Datei"
#, c-format
msgid "E462: Could not prepare for reloading \"%s\""

249
src/tag.c
View File

@@ -1277,6 +1277,7 @@ find_tags(pat, num_matches, matchesp, flags, mincount, buf_ffname)
{
FILE *fp;
char_u *lbuf; /* line buffer */
int lbuf_size = LSIZE; /* length of lbuf */
char_u *tag_fname; /* name of tag file */
tagname_T tn; /* info for get_tagfname() */
int first_file; /* trying first tag file */
@@ -1291,6 +1292,7 @@ find_tags(pat, num_matches, matchesp, flags, mincount, buf_ffname)
char_u *s;
int i;
#ifdef FEAT_TAG_BINS
int tag_file_sorted = NUL; /* !_TAG_FILE_SORTED value */
struct tag_search_info /* Binary search file offsets */
{
off_t low_offset; /* offset for first char of first line that
@@ -1360,13 +1362,8 @@ find_tags(pat, num_matches, matchesp, flags, mincount, buf_ffname)
char_u *saved_pat = NULL; /* copy of pat[] */
#endif
/* Use two sets of variables for the pattern: "orgpat" holds the values
* for the original pattern and "convpat" converted from 'encoding' to
* encoding of the tags file. "pats" point to either one of these. */
pat_T *pats;
pat_T orgpat; /* holds unconverted pattern info */
#ifdef FEAT_MBYTE
pat_T convpat; /* holds converted pattern info */
vimconv_T vimconv;
#endif
@@ -1390,7 +1387,6 @@ find_tags(pat, num_matches, matchesp, flags, mincount, buf_ffname)
help_save = curbuf->b_help;
orgpat.pat = pat;
pats = &orgpat;
#ifdef FEAT_MBYTE
vimconv.vc_type = CONV_NONE;
#endif
@@ -1398,7 +1394,7 @@ find_tags(pat, num_matches, matchesp, flags, mincount, buf_ffname)
/*
* Allocate memory for the buffers that are used
*/
lbuf = alloc(LSIZE);
lbuf = alloc(lbuf_size);
tag_fname = alloc(MAXPATHL + 1);
#ifdef FEAT_EMACS_TAGS
ebuf = alloc(LSIZE);
@@ -1424,30 +1420,30 @@ find_tags(pat, num_matches, matchesp, flags, mincount, buf_ffname)
if (help_only) /* want tags from help file */
curbuf->b_help = TRUE; /* will be restored later */
pats->len = (int)STRLEN(pat);
orgpat.len = (int)STRLEN(pat);
#ifdef FEAT_MULTI_LANG
if (curbuf->b_help)
{
/* When "@ab" is specified use only the "ab" language, otherwise
* search all languages. */
if (pats->len > 3 && pat[pats->len - 3] == '@'
&& ASCII_ISALPHA(pat[pats->len - 2])
&& ASCII_ISALPHA(pat[pats->len - 1]))
if (orgpat.len > 3 && pat[orgpat.len - 3] == '@'
&& ASCII_ISALPHA(pat[orgpat.len - 2])
&& ASCII_ISALPHA(pat[orgpat.len - 1]))
{
saved_pat = vim_strnsave(pat, pats->len - 3);
saved_pat = vim_strnsave(pat, orgpat.len - 3);
if (saved_pat != NULL)
{
help_lang_find = &pat[pats->len - 2];
pats->pat = saved_pat;
pats->len -= 3;
help_lang_find = &pat[orgpat.len - 2];
orgpat.pat = saved_pat;
orgpat.len -= 3;
}
}
}
#endif
if (p_tl != 0 && pats->len > p_tl) /* adjust for 'taglength' */
pats->len = p_tl;
if (p_tl != 0 && orgpat.len > p_tl) /* adjust for 'taglength' */
orgpat.len = p_tl;
prepare_pats(pats, has_re);
prepare_pats(&orgpat, has_re);
#ifdef FEAT_TAG_BINS
/* This is only to avoid a compiler warning for using search_info
@@ -1466,13 +1462,13 @@ find_tags(pat, num_matches, matchesp, flags, mincount, buf_ffname)
* Only ignore case when TAG_NOIC not used or 'ignorecase' set.
*/
#ifdef FEAT_TAG_BINS
pats->regmatch.rm_ic = ((p_ic || !noic)
&& (findall || pats->headlen == 0 || !p_tbs));
orgpat.regmatch.rm_ic = ((p_ic || !noic)
&& (findall || orgpat.headlen == 0 || !p_tbs));
for (round = 1; round <= 2; ++round)
{
linear = (pats->headlen == 0 || !p_tbs || round == 2);
linear = (orgpat.headlen == 0 || !p_tbs || round == 2);
#else
pats->regmatch.rm_ic = (p_ic || !noic);
orgpat.regmatch.rm_ic = (p_ic || !noic);
#endif
/*
@@ -1701,6 +1697,36 @@ find_tags(pat, num_matches, matchesp, flags, mincount, buf_ffname)
}
line_read_in:
#ifdef FEAT_MBYTE
if (vimconv.vc_type != CONV_NONE)
{
char_u *conv_line;
int len;
/* Convert every line. Converting the pattern from 'enc' to
* the tags file encoding doesn't work, because characters are
* not recognized. */
conv_line = string_convert(&vimconv, lbuf, NULL);
if (conv_line != NULL)
{
/* Copy or swap lbuf and conv_line. */
len = (int)STRLEN(conv_line) + 1;
if (len > lbuf_size)
{
vim_free(lbuf);
lbuf = conv_line;
lbuf_size = len;
}
else
{
STRCPY(lbuf, conv_line);
vim_free(conv_line);
}
}
}
#endif
#ifdef FEAT_EMACS_TAGS
/*
* Emacs tags line with CTRL-L: New file name on next line.
@@ -1770,6 +1796,33 @@ line_read_in:
*/
if (state == TS_START)
{
if (STRNCMP(lbuf, "!_TAG_", 6) <= 0)
{
/*
* Read header line.
*/
#ifdef FEAT_TAG_BINS
if (STRNCMP(lbuf, "!_TAG_FILE_SORTED\t", 18) == 0)
tag_file_sorted = lbuf[18];
#endif
#ifdef FEAT_MBYTE
if (STRNCMP(lbuf, "!_TAG_FILE_ENCODING\t", 20) == 0)
{
/* Prepare to convert every line from the specified
* encoding to 'encoding'. */
for (p = lbuf + 20; *p > ' ' && *p < 127; ++p)
;
*p = NUL;
convert_setup(&vimconv, lbuf + 20, p_enc);
}
#endif
/* Read the next line. Unrecognized flags are ignored. */
continue;
}
/* Headers ends. */
#ifdef FEAT_TAG_BINS
/*
* When there is no tag head, or ignoring case, need to do a
@@ -1786,24 +1839,20 @@ line_read_in:
if (linear)
# endif
state = TS_LINEAR;
else if (STRNCMP(lbuf, "!_TAG_", 6) > 0)
else if (tag_file_sorted == NUL)
state = TS_BINARY;
else if (STRNCMP(lbuf, "!_TAG_FILE_SORTED\t", 18) == 0)
else if (tag_file_sorted == '1')
state = TS_BINARY;
else if (tag_file_sorted == '2')
{
/* Check sorted flag */
if (lbuf[18] == '1')
state = TS_BINARY;
else if (lbuf[18] == '2')
{
state = TS_BINARY;
sortic = TRUE;
pats->regmatch.rm_ic = (p_ic || !noic);
}
else
state = TS_LINEAR;
state = TS_BINARY;
sortic = TRUE;
orgpat.regmatch.rm_ic = (p_ic || !noic);
}
else
state = TS_LINEAR;
if (state == TS_BINARY && pats->regmatch.rm_ic && !sortic)
if (state == TS_BINARY && orgpat.regmatch.rm_ic && !sortic)
{
/* binary search won't work for ignoring case, use linear
* search. */
@@ -1843,40 +1892,12 @@ line_read_in:
#endif
}
#ifdef FEAT_MBYTE
if (lbuf[0] == '!' && pats == &orgpat
&& STRNCMP(lbuf, "!_TAG_FILE_ENCODING\t", 20) == 0)
{
/* Convert the search pattern from 'encoding' to the
* specified encoding. */
for (p = lbuf + 20; *p > ' ' && *p < 127; ++p)
;
*p = NUL;
convert_setup(&vimconv, p_enc, lbuf + 20);
if (vimconv.vc_type != CONV_NONE)
{
convpat.pat = string_convert(&vimconv, pats->pat, NULL);
if (convpat.pat != NULL)
{
pats = &convpat;
pats->len = (int)STRLEN(pats->pat);
prepare_pats(pats, has_re);
pats->regmatch.rm_ic = orgpat.regmatch.rm_ic;
}
}
/* Prepare for converting a match the other way around. */
convert_setup(&vimconv, lbuf + 20, p_enc);
continue;
}
#endif
/*
* Figure out where the different strings are in this line.
* For "normal" tags: Do a quick check if the tag matches.
* This speeds up tag searching a lot!
*/
if (pats->headlen
if (orgpat.headlen
#ifdef FEAT_EMACS_TAGS
&& !is_etag
#endif
@@ -1933,9 +1954,9 @@ line_read_in:
cmplen = (int)(tagp.tagname_end - tagp.tagname);
if (p_tl != 0 && cmplen > p_tl) /* adjust for 'taglength' */
cmplen = p_tl;
if (has_re && pats->headlen < cmplen)
cmplen = pats->headlen;
else if (state == TS_LINEAR && pats->headlen != cmplen)
if (has_re && orgpat.headlen < cmplen)
cmplen = orgpat.headlen;
else if (state == TS_LINEAR && orgpat.headlen != cmplen)
continue;
#ifdef FEAT_TAG_BINS
@@ -1954,10 +1975,10 @@ line_read_in:
* Compare the current tag with the searched tag.
*/
if (sortic)
tagcmp = tag_strnicmp(tagp.tagname, pats->head,
tagcmp = tag_strnicmp(tagp.tagname, orgpat.head,
(size_t)cmplen);
else
tagcmp = STRNCMP(tagp.tagname, pats->head, cmplen);
tagcmp = STRNCMP(tagp.tagname, orgpat.head, cmplen);
/*
* A match with a shorter tag means to search forward.
@@ -1965,9 +1986,9 @@ line_read_in:
*/
if (tagcmp == 0)
{
if (cmplen < pats->headlen)
if (cmplen < orgpat.headlen)
tagcmp = -1;
else if (cmplen > pats->headlen)
else if (cmplen > orgpat.headlen)
tagcmp = 1;
}
@@ -2011,7 +2032,7 @@ line_read_in:
}
else if (state == TS_SKIP_BACK)
{
if (MB_STRNICMP(tagp.tagname, pats->head, cmplen) != 0)
if (MB_STRNICMP(tagp.tagname, orgpat.head, cmplen) != 0)
state = TS_STEP_FORWARD;
else
/* Have to skip back more. Restore the curr_offset
@@ -2021,7 +2042,7 @@ line_read_in:
}
else if (state == TS_STEP_FORWARD)
{
if (MB_STRNICMP(tagp.tagname, pats->head, cmplen) != 0)
if (MB_STRNICMP(tagp.tagname, orgpat.head, cmplen) != 0)
{
if ((off_t)ftell(fp) > search_info.match_offset)
break; /* past last match */
@@ -2032,7 +2053,7 @@ line_read_in:
else
#endif
/* skip this match if it can't match */
if (MB_STRNICMP(tagp.tagname, pats->head, cmplen) != 0)
if (MB_STRNICMP(tagp.tagname, orgpat.head, cmplen) != 0)
continue;
/*
@@ -2083,41 +2104,41 @@ line_read_in:
if (p_tl != 0 && cmplen > p_tl) /* adjust for 'taglength' */
cmplen = p_tl;
/* if tag length does not match, don't try comparing */
if (pats->len != cmplen)
if (orgpat.len != cmplen)
match = FALSE;
else
{
if (pats->regmatch.rm_ic)
if (orgpat.regmatch.rm_ic)
{
match = (MB_STRNICMP(tagp.tagname, pats->pat, cmplen) == 0);
match = (MB_STRNICMP(tagp.tagname, orgpat.pat, cmplen) == 0);
if (match)
match_no_ic = (STRNCMP(tagp.tagname, pats->pat,
match_no_ic = (STRNCMP(tagp.tagname, orgpat.pat,
cmplen) == 0);
}
else
match = (STRNCMP(tagp.tagname, pats->pat, cmplen) == 0);
match = (STRNCMP(tagp.tagname, orgpat.pat, cmplen) == 0);
}
/*
* Has a regexp: Also find tags matching regexp.
*/
match_re = FALSE;
if (!match && pats->regmatch.regprog != NULL)
if (!match && orgpat.regmatch.regprog != NULL)
{
int cc;
cc = *tagp.tagname_end;
*tagp.tagname_end = NUL;
match = vim_regexec(&pats->regmatch, tagp.tagname, (colnr_T)0);
match = vim_regexec(&orgpat.regmatch, tagp.tagname, (colnr_T)0);
if (match)
{
matchoff = (int)(pats->regmatch.startp[0] - tagp.tagname);
if (pats->regmatch.rm_ic)
matchoff = (int)(orgpat.regmatch.startp[0] - tagp.tagname);
if (orgpat.regmatch.rm_ic)
{
pats->regmatch.rm_ic = FALSE;
match_no_ic = vim_regexec(&pats->regmatch, tagp.tagname,
orgpat.regmatch.rm_ic = FALSE;
match_no_ic = vim_regexec(&orgpat.regmatch, tagp.tagname,
(colnr_T)0);
pats->regmatch.rm_ic = TRUE;
orgpat.regmatch.rm_ic = TRUE;
}
}
*tagp.tagname_end = cc;
@@ -2174,7 +2195,7 @@ line_read_in:
else
mtt = MT_GL_OTH;
}
if (pats->regmatch.rm_ic && !match_no_ic)
if (orgpat.regmatch.rm_ic && !match_no_ic)
mtt += MT_IC_OFF;
if (match_re)
mtt += MT_RE_OFF;
@@ -2187,35 +2208,6 @@ line_read_in:
*/
if (ga_grow(&ga_match[mtt], 1) == OK)
{
#ifdef FEAT_MBYTE
char_u *conv_line = NULL;
char_u *lbuf_line = lbuf;
if (vimconv.vc_type != CONV_NONE)
{
/* Convert the tag line from the encoding of the tags
* file to 'encoding'. Then parse the line again. */
conv_line = string_convert(&vimconv, lbuf, NULL);
if (conv_line != NULL)
{
if (parse_tag_line(conv_line,
#ifdef FEAT_EMACS_TAGS
is_etag,
#endif
&tagp) == OK)
lbuf_line = conv_line;
else
/* doesn't work, go back to unconverted line. */
(void)parse_tag_line(lbuf,
#ifdef FEAT_EMACS_TAGS
is_etag,
#endif
&tagp);
}
}
#else
# define lbuf_line lbuf
#endif
if (help_only)
{
#ifdef FEAT_MULTI_LANG
@@ -2307,7 +2299,7 @@ line_read_in:
* without Emacs tags: <mtt><tag_fname><NUL><lbuf>
*/
len = (int)STRLEN(tag_fname)
+ (int)STRLEN(lbuf_line) + 3;
+ (int)STRLEN(lbuf) + 3;
#ifdef FEAT_EMACS_TAGS
if (is_etag)
len += (int)STRLEN(ebuf) + 1;
@@ -2337,7 +2329,7 @@ line_read_in:
else
*s++ = NUL;
#endif
STRCPY(s, lbuf_line);
STRCPY(s, lbuf);
}
}
@@ -2373,10 +2365,6 @@ line_read_in:
else
vim_free(mfp);
}
#ifdef FEAT_MBYTE
/* Note: this makes the values in "tagp" invalid! */
vim_free(conv_line);
#endif
}
else /* Out of memory! Just forget about the rest. */
{
@@ -2415,19 +2403,12 @@ line_read_in:
}
#endif
#ifdef FEAT_MBYTE
if (pats == &convpat)
{
/* Go back from converted pattern to original pattern. */
vim_free(pats->pat);
vim_free(pats->regmatch.regprog);
orgpat.regmatch.rm_ic = pats->regmatch.rm_ic;
pats = &orgpat;
}
if (vimconv.vc_type != CONV_NONE)
convert_setup(&vimconv, NULL, NULL);
#endif
#ifdef FEAT_TAG_BINS
tag_file_sorted = NUL;
if (sort_error)
{
EMSG2(_("E432: Tags file not sorted: %s"), tag_fname);
@@ -2461,13 +2442,13 @@ line_read_in:
#ifdef FEAT_TAG_BINS
/* stop searching when already did a linear search, or when TAG_NOIC
* used, and 'ignorecase' not set or already did case-ignore search */
if (stop_searching || linear || (!p_ic && noic) || pats->regmatch.rm_ic)
if (stop_searching || linear || (!p_ic && noic) || orgpat.regmatch.rm_ic)
break;
# ifdef FEAT_CSCOPE
if (use_cscope)
break;
# endif
pats->regmatch.rm_ic = TRUE; /* try another time while ignoring case */
orgpat.regmatch.rm_ic = TRUE; /* try another time while ignoring case */
}
#endif
@@ -2480,7 +2461,7 @@ line_read_in:
findtag_end:
vim_free(lbuf);
vim_free(pats->regmatch.regprog);
vim_free(orgpat.regmatch.regprog);
vim_free(tag_fname);
#ifdef FEAT_EMACS_TAGS
vim_free(ebuf);

View File

@@ -29,7 +29,7 @@ SCRIPTS = test1.out test3.out test4.out test5.out test6.out \
test66.out test67.out test68.out test69.out test70.out \
test71.out test72.out test73.out test74.out test75.out \
test76.out test77.out test78.out test79.out test80.out \
test81.out test82.out
test81.out test82.out test83.out
.SUFFIXES: .in .out
@@ -131,3 +131,4 @@ test79.out: test79.in
test80.out: test80.in
test81.out: test81.in
test82.out: test82.in
test83.out: test83.in

View File

@@ -29,7 +29,7 @@ SCRIPTS = test3.out test4.out test5.out test6.out test7.out \
test42.out test52.out test65.out test66.out test67.out \
test68.out test69.out test71.out test72.out test73.out \
test74.out test75.out test76.out test77.out test78.out \
test79.out test80.out test81.out test82.out
test79.out test80.out test81.out test82.out test83.out
SCRIPTS32 = test50.out test70.out

View File

@@ -49,7 +49,7 @@ SCRIPTS = test3.out test4.out test5.out test6.out test7.out \
test42.out test52.out test65.out test66.out test67.out \
test68.out test69.out test71.out test72.out test73.out \
test74.out test75.out test76.out test77.out test78.out \
test79.out test80.out test81.out test82.out
test79.out test80.out test81.out test82.out test83.out
SCRIPTS32 = test50.out test70.out

View File

@@ -29,7 +29,7 @@ SCRIPTS = test1.out test3.out test4.out test5.out test6.out \
test66.out test67.out test68.out test69.out test70.out \
test71.out test72.out test73.out test74.out test75.out \
test76.out test77.out test78.out test79.out test80.out \
test81.out test82.out
test81.out test82.out test83.out
.SUFFIXES: .in .out

View File

@@ -76,7 +76,7 @@ SCRIPT = test1.out test2.out test3.out test4.out test5.out \
test66.out test67.out test68.out test69.out \
test71.out test72.out test74.out test75.out test76.out \
test77.out test78.out test79.out test80.out test81.out \
test82.out
test82.out test83.out
# Known problems:
# Test 30: a problem around mac format - unknown reason

View File

@@ -26,7 +26,7 @@ SCRIPTS = test1.out test2.out test3.out test4.out test5.out test6.out \
test64.out test65.out test66.out test67.out test68.out \
test69.out test70.out test71.out test72.out test73.out \
test74.out test75.out test76.out test77.out test78.out \
test79.out test80.out test81.out test82.out
test79.out test80.out test81.out test82.out test83.out
SCRIPTS_GUI = test16.out
@@ -72,7 +72,7 @@ test1.out: test1.in
fi \
else echo $* NO OUTPUT >>test.log; \
fi"
-rm -rf X* test.ok viminfo
# -rm -rf X* test.ok viminfo
test49.out: test49.vim

View File

@@ -1308,6 +1308,20 @@ protected:
int Test() { return FALSE; }
public: // comment
void testfall();
protected:
void testfall();
};
STARTTEST
:set cino=(0,gs,hs
2kdd]]=][
ENDTEST
class Foo : public Bar
{
public:
virtual void method1(void) = 0;
virtual void method2(int arg1,
int arg2,
int arg3) = 0;

View File

@@ -1190,6 +1190,16 @@ protected:
};
class Foo : public Bar
{
public:
virtual void method1(void) = 0;
virtual void method2(int arg1,
int arg2,
int arg3) = 0;
};
void
foo()
{

View File

@@ -1,5 +1,5 @@
xxx4asdf fail nop ok 9 333
XX111XX
XX111-XX
---222---
1. one
2. two

2
src/testdir/test83-tags2 Normal file
View File

@@ -0,0 +1,2 @@
!_TAG_FILE_ENCODING cp932 //
<EFBFBD>`<60>a<EFBFBD>b Xtags2.txt /<2F>`<60>a<EFBFBD>b

102
src/testdir/test83-tags3 Normal file
View File

@@ -0,0 +1,102 @@
!_TAG_FILE_SORTED 1 //
!_TAG_FILE_ENCODING cp932 //
abc1 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc2 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc3 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc4 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc5 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc6 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc7 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc8 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc9 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc10 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc11 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc12 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc13 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc14 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc15 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc16 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc17 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc18 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc19 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc20 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc21 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc22 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc23 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc24 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc25 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc26 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc27 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc28 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc29 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc30 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc31 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc32 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc33 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc34 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc35 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc36 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc37 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc38 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc39 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc40 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc41 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc42 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc43 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc44 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc45 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc46 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc47 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc48 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc49 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc50 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc51 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc52 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc53 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc54 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc55 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc56 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc57 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc58 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc59 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc60 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc61 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc62 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc63 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc64 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc65 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc66 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc67 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc68 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc69 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc70 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc71 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc72 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc73 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc74 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc75 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc76 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc77 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc78 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc79 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc80 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc81 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc82 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc83 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc84 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc85 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc86 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc87 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc88 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc89 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc90 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc91 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc92 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc93 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc94 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc95 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc96 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc97 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc98 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc99 Xtags3.txt /<2F>`<60>a<EFBFBD>b
abc100 Xtags3.txt /<2F>`<60>a<EFBFBD>b

76
src/testdir/test83.in Normal file
View File

@@ -0,0 +1,76 @@
Tests for tag search with !_TAG_FILE_ENCODING.
STARTTEST
:so mbyte.vim
:if !has('iconv')
: e! test.ok
: w! test.out
: qa!
:endif
:set enc=utf8
:/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
:/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
:/^text for tags3$/,/^text for tags3$/+1w! Xtags3.txt
:/^tags1$/+1,/^tags1-end$/-1w! Xtags1
ggdG
:call setline('.', 'Results of test83')
:" case1:
:new
:set tags=Xtags1
:let v:errmsg = ''
:tag abcdefghijklmnopqrs
:if v:errmsg =~ 'E426:' || getline('.') != 'abcdefghijklmnopqrs'
: close
: put ='case1: failed'
:else
: close
: put ='case1: ok'
:endif
:" case2:
:new
:set tags=test83-tags2
:let v:errmsg = ''
:tag /.
:if v:errmsg =~ 'E426:' || getline('.') != ''
: close
: put ='case2: failed'
:else
: close
: put ='case2: ok'
:endif
:" case3:
:new
:set tags=test83-tags3
:let v:errmsg = ''
:tag abc50
:if v:errmsg =~ 'E426:' || getline('.') != ''
: close
: put ='case3: failed'
:else
: close
: put ='case3: ok'
:endif
:close
:wq! test.out
ENDTEST
text for tags1
abcdefghijklmnopqrs
text for tags2
text for tags3
tags1
!_TAG_FILE_ENCODING utf-8 //
abcdefghijklmnopqrs Xtags1.txt /abcdefghijklmnopqrs
tags1-end

4
src/testdir/test83.ok Normal file
View File

@@ -0,0 +1,4 @@
Results of test83
case1: ok
case2: ok
case3: ok

View File

@@ -379,6 +379,11 @@ static char *(features[]) =
# else
"-mouse_xterm",
# endif
# ifdef FEAT_MOUSE_URXVT
"+mouse_urxvt",
# else
"-mouse_urxvt",
# endif
#endif
#ifdef __QNX__
# ifdef FEAT_MOUSE_PTERM
@@ -709,6 +714,40 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
348,
/**/
347,
/**/
346,
/**/
345,
/**/
344,
/**/
343,
/**/
342,
/**/
341,
/**/
340,
/**/
339,
/**/
338,
/**/
337,
/**/
336,
/**/
335,
/**/
334,
/**/
333,
/**/
332,
/**/
331,
/**/