Merge remote-tracking branch 'vim/master'

This commit is contained in:
Kazuki Sakamoto
2016-06-20 16:21:06 -07:00
22 changed files with 682 additions and 100 deletions
+2
View File
@@ -379,8 +379,10 @@ SRC_DOS_BIN = \
src/xpm/include/*.h \
src/xpm/x64/lib/libXpm.a \
src/xpm/x64/lib/libXpm.lib \
src/xpm/x64/lib-vc14/libXpm.lib \
src/xpm/x86/lib/libXpm.a \
src/xpm/x86/lib/libXpm.lib \
src/xpm/x86/lib-vc14/libXpm.lib \
nsis/icons/*.bmp \
nsis/icons/*.ico \
+2 -1
View File
@@ -1,4 +1,4 @@
*quickref.txt* For Vim version 7.4. Last change: 2016 Apr 29
*quickref.txt* For Vim version 7.4. Last change: 2016 Jun 14
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -836,6 +836,7 @@ Short explanation of each option: *option-list*
'printmbcharset' 'pmbcs' CJK character set to be used for :hardcopy
'printmbfont' 'pmbfn' font names to be used for CJK output of :hardcopy
'printoptions' 'popt' controls the format of :hardcopy output
'prompt' 'prompt' enable prompt in Ex mode
'pumheight' 'ph' maximum height of the popup menu
'pythondll' name of the Python 2 dynamic library
'pythonthreedll' name of the Python 3 dynamic library
+5 -1
View File
@@ -1,4 +1,4 @@
*starting.txt* For Vim version 7.4. Last change: 2016 Jun 12
*starting.txt* For Vim version 7.4. Last change: 2016 Jun 15
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1436,6 +1436,10 @@ always kept. This is used for:
- Contents of non-empty registers.
- The jump list
- File marks
The timestamp feature was added before Vim 8.0. Older versions of Vim,
starting with 7.4.1131, will keep the items with timestamp, but not use them.
Thus when using both an older and a newer version of Vim the most recent data
will be kept.
Notes for Unix:
- The file protection for the viminfo file will be set to prevent other users
+16 -12
View File
@@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.4. Last change: 2016 Jun 12
*todo.txt* For Vim version 7.4. Last change: 2016 Jun 16
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -35,10 +35,7 @@ not be repeated below, unless there is extra information.
-------------------- Known bugs and current work -----------------------
Further implement 'barline' in viminfo:
- jumplist: merge with vi_jumplist.
- Use timestamp for more items: locations, marks.
- Docs: lines are copied by Vim since 7.4.1131
- Check if debug history works.
Problem with setqflist([]): grep 4 times, ":colder 3", setqflist([]) will
clear the next list, not the current one. Ramel Eshed, Jun 8.
@@ -64,7 +61,8 @@ Later
- job_start(): run job in a newly opened terminal.
With xterm could use -S{pty}.
Quickfix improvements for backgroupd building and grepping:
Quickfix improvements for background building and grepping:
(Yegappan might do some of this)
- Move 'efm' parsing to a separate function. If 'efm' is the same as last
time re-use the fmt_first list.
- Do not clear "dir_stack", "directory" and "file_stack", "currfile" when
@@ -77,6 +75,8 @@ Quickfix improvements for backgroupd building and grepping:
buffers. (Ramel Eshed)
Regexp problems:
- When using automatic engine selection there is a false match. Forcing
either engine works OK. (fritzophrenic, 2016 Jun 15, #867)
- Since 7.4.704 the old regex engine fails to match [[:print:]] in 0xf6.
(Manuel Ortega, 2016 Apr 24)
Test fails on Mac. Avoid using isalpha(), isalnum(), etc? Depends on
@@ -125,9 +125,14 @@ Regexp problems:
- Search for /\%d0\+ causes error E363 in a file with consecutive NUL
characters. (Christian Brabandt, 2016 Jun 7)
jsonencode(): should convert to utf-8. (Nikolai Pavlov, 2016 Jan 23)
Patch to fix problem with GUI termcode. (Kazunobu Kuriyama, 2016 Jun 15)
json_encode(): should convert to utf-8. (Nikolai Pavlov, 2016 Jan 23)
What if there is an invalid character?
Should json_encode()/json_decode() restrict recursiveness?
Or avoid recursiveness.
Once .exe with updated installer is available: Add remark to download page
about /S and /D options (Ken Takata, 2016 Apr 13)
@@ -149,6 +154,7 @@ Yasuhiro Matsumoto, 2013 May 31.
Or should we add a more general mechanism, like a lambda() function?
Patch by Yasuhiro Matsumoto, 2014 Sep 16, update 2016 Apr 17.
Correction for test, Ken Takata, 2016 May 27.
Merged patch: Ken Takata, 2016 Jun 15.
Problem with whitespace in errorformat. (Gerd Wachsmuth, 2016 May 15, #807)
@@ -222,6 +228,7 @@ Update 2016 Mar 28. Can include all parts into one dist patch.
Patch to support 64 bit ints for Number. (Ken Takata, 2016 Jan 21)
Update 2016 Apr 24.
Update 2016 Jun 14, includes some tests.
Patch to improve cscope. (Adrian Kocis, #843)
@@ -274,9 +281,6 @@ Patch to make tests pass with EBCDIC. (Owen Leibman, 2016 Apr 10)
When repeating the 'confirm' dialog one needs to press Enter. (ds26gte, 2016
Apr 17) #762
Should jsonencode()/jsondecode() restrict recursiveness?
Or avoid recursiveness.
Use vim.vim syntax highlighting for help file examples, but without ":" in
'iskeyword' for syntax.
@@ -285,6 +289,9 @@ Patch to make "%:h:h" return "." instead of the full path.
Remove SPACE_IN_FILENAME ? What could possibly go wrong?
When command names are very long :command output is difficult to read. Use a
maximum for the column width? (#871)
Patch to change GUI behavior: instead of changing the window size change the
lines/columns when menu/toolbar/etc. is added/removed. (Ychin, 2016 Mar 20,
#703)
@@ -496,9 +503,6 @@ Breaks test_eval. Inefficient, can we only compute y_width when needed?
Patch to use different terminal mode settings for system(). (Hayaki Saito)
Does this work for everybody?
Patch to fix that wide characters do not work properly after exiting.
(Yasuhiro Matsumoto, 2015 May 24) Better patch to come.
Patch to add wordcount(). Same info as g CTRL-G. (Christian Brabandt, 2015
Nov 17)
+3 -3
View File
@@ -1,4 +1,4 @@
*usr_41.txt* For Vim version 7.4. Last change: 2016 Jun 11
*usr_41.txt* For Vim version 7.4. Last change: 2016 Jun 13
VIM USER MANUAL - by Bram Moolenaar
@@ -938,8 +938,8 @@ Inter-process communication: *channel-functions*
ch_log() write a message in the channel log file
ch_logfile() set the channel log file
ch_setoptions() set the options for a channel
jsonencode() encode an expression to a JSON string
jsondecode() decode a JSON string to Vim types
json_encode() encode an expression to a JSON string
json_decode() decode a JSON string to Vim types
js_encode() encode an expression to a JSON string
js_decode() decode a JSON string to Vim types
+19 -3
View File
@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: man
" Maintainer: SungHyun Nam <goweol@gmail.com>
" Last Change: 2016 Feb 04
" Last Change: 2016 Jun 20
" To make the ":Man" command available before editing a manual page, source
" this script from your startup vimrc file.
@@ -150,7 +150,17 @@ func <SID>GetPage(...)
endwhile
endif
if &filetype != "man"
new
if exists("g:ft_man_open_mode")
if g:ft_man_open_mode == "vert"
vnew
elseif g:ft_man_open_mode == "tab"
tabnew
else
new
endif
else
new
endif
setl nonu fdc=0
endif
endif
@@ -160,10 +170,15 @@ func <SID>GetPage(...)
setl ma nonu nornu nofen
silent exec "norm 1GdG"
let unsetwidth = 0
if empty($MANWIDTH)
let $MANWIDTH = winwidth(0)
let unsetwidth = 1
endif
silent exec "r!/usr/bin/man ".s:GetCmdArg(sect, page)." | col -b"
if unsetwidth
let $MANWIDTH = ''
endif
" Remove blank lines from top and bottom.
while getline(1) =~ '^\s*$'
silent keepj norm ggdd
@@ -175,6 +190,7 @@ func <SID>GetPage(...)
setl ft=man nomod
setl bufhidden=hide
setl nobuflisted
setl noma
endfunc
func <SID>PopPage()
@@ -195,4 +211,4 @@ endfunc
endif
" vim: set sw=2:
" vim: set sw=2 ts=8 noet:
+196
View File
@@ -0,0 +1,196 @@
" Vim Keymap file for Vietnamese through Telex method
" Maintainer: Raphael McSinyx <vn.mcsinyx@gmail.com>
" Last Change: 2016-06-13
scriptencoding utf-8
let b:keymap_name = "vi"
loadkeymap
A\\ A
AF À
AS Á
AR
AX Ã
AJ
AW Ă
AW\\ Ă
AWF
AWS
AWR
AWX
AWJ
AA Â
AA\\ Â
AAF
AAS
AAR
AAX
AAJ
D\\ D
DD Đ
E E
E\\ E
EF È
ES É
ER
EX
EJ
EE Ê
EE\\ Ê
EEF
EES
EER
EEX
EEJ
I\\ I
IF Ì
IS Í
IR
IX Ĩ
IJ
O\\ O
OF Ò
OS Ó
OR
OX Õ
OJ
OO Ô
OO\\ Ô
OOF
OOS
OOR
OOX
OOJ
OW Ơ
OW\\ Ơ
OWF
OWS
OWR
OWX
OWJ
U\\ U
UF Ù
US Ú
UR
UX Ũ
UJ
UW Ư
UW\\ Ư
UWF
UWS
UWR
UWX
UWJ
Y\\ Y
YF
YS Ý
YR
YX
YJ
a\\ a
af à
as á
ar
ax ã
aj
aw ă
aw\\ ă
awf
aws
awr
awx
awj
aa â
aa\\ â
aaf
aas
aar
aax
aaj
d\\ d
dd đ
e\\ e
ef è
es é
er
ex
ej
ee ê
ee\\ ê
eef
ees ế
eer
eex
eej
i\\ i
if ì
is í
ir
ix ĩ
ij
o\\ o
of ò
os ó
or
ox õ
oj
oo ô
oo\\ ô
oof
oos
oor
oox
ooj
ow ơ
ow\\ ơ
owf
ows
owr
owx
owj
u\\ u
uf ù
us ú
ur
ux ũ
uj
uw ư
uw\\ ư
uwf
uws
uwr
uwx
uwj
y\\ y
yf
ys ý
yr
yx
yj
+196
View File
@@ -0,0 +1,196 @@
" Vim Keymap file for Vietnamese through VNI method
" Maintainer: Raphael McSinyx <vn.mcsinyx@gmail.com>
" Last Change: 2016-06-13
scriptencoding utf-8
let b:keymap_name = "vi"
loadkeymap
A\\ A
A1 Á
A2 À
A3
A4 Ã
A5
A8 Ă
A8\\ Ă
A81
A82
A83
A84
A85
A6 Â
A6\\ Â
A61
A62
A63
A64
A65
D D
D\\ D
D9 Đ
E\\ E
E1 É
E2 È
E3
E4
E5
E6 Ê
E6\\ Ê
E61
E62
E63
E64
E65
I\\ I
I1 Í
I2 Ì
I3
I4 Ĩ
I5
O\\ O
O1 Ó
O2 Ò
O3
O4 Õ
O5
O6 Ô
O6\\ Ô
O61
O62
O63
O64
O65
O7 Ơ
O7\\ Ơ
O71
O72
O73
O74
O75
U\\ U
U1 Ú
U2 Ù
U3
U4 Ũ
U5
U7 Ư
U7\\ Ư
U71
U72
U73
U74
U75
Y\\ Y
Y1 Ý
Y2
Y3
Y4
Y5
a\\ a
a1 á
a2 à
a3
a4 ã
a5
a8 ă
a8\\ ă
a81
a82
a83
a84
a85
a6 â
a6\\ â
a61
a62
a63
a64
a65
d\\ d
d9 đ
e\\ e
e1 é
e2 è
e3
e4
e5
e6 ê
e6\\ ê
e61 ế
e62
e63
e64
e65
i\\ i
i1 í
i2 ì
i3
i4 ĩ
i5
o\\ o
o1 ó
o2 ò
o3
o4 õ
o5
o6 ô
o6\\ ô
o61
o62
o63
o64
o65
o7 ơ
o7\\ ơ
o71
o72
o73
o74
o75
u\\ u
u1 ú
u2 ù
u3
u4 ũ
u5
u7 ư
u7\\ ư
u71
u72
u73
u74
u75
y\\ y
y1 ý
y2
y3
y4
y5
+11 -9
View File
@@ -2,7 +2,7 @@
" Language: reStructuredText documentation format
" Maintainer: Marshall Ward <marshall.ward@gmail.com>
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Latest Revision: 2016-01-05
" Latest Revision: 2016-06-17
if exists("b:current_syntax")
finish
@@ -137,7 +137,7 @@ syn match rstStandaloneHyperlink contains=@NoSpell
\ "\<\%(\%(\%(https\=\|file\|ftp\|gopher\)://\|\%(mailto\|news\):\)[^[:space:]'\"<>]\+\|www[[:alnum:]_-]*\.[[:alnum:]_-]\+\.[^[:space:]'\"<>]\+\)[[:alnum:]/]"
syn region rstCodeBlock contained matchgroup=rstDirective
\ start=+\%(sourcecode\|code\%(-block\)\=\)::\_s*\n\ze\z(\s\+\)+
\ start=+\%(sourcecode\|code\%(-block\)\=\)::\s\+\w*\_s*\n\ze\z(\s\+\)+
\ skip=+^$+
\ end=+^\z1\@!+
\ contains=@NoSpell
@@ -153,10 +153,11 @@ for code in g:rst_syntax_code_list
" guard against setting 'isk' option which might cause problems (issue #108)
let prior_isk = &l:iskeyword
exe 'syn include @rst'.code.' syntax/'.code.'.vim'
exe 'syn region rstDirective'.code.' matchgroup=rstDirective fold '
\.'start=#\%(sourcecode\|code\%(-block\)\=\)::\s\+'.code.'\_s*\n\ze\z(\s\+\)# '
\.'skip=#^$# '
\.'end=#^\z1\@!# contains=@NoSpell,@rst'.code
exe 'syn region rstDirective'.code.' matchgroup=rstDirective fold'
\.' start=#\%(sourcecode\|code\%(-block\)\=\)::\s\+'.code.'\_s*\n\ze\z(\s\+\)#'
\.' skip=#^$#'
\.' end=#^\z1\@!#'
\.' contains=@NoSpell,@rst'.code
exe 'syn cluster rstDirectives add=rstDirective'.code
" reset 'isk' setting, if it has been changed
if &l:iskeyword !=# prior_isk
@@ -185,10 +186,11 @@ hi def link rstHyperlinkTarget String
hi def link rstExDirective String
hi def link rstSubstitutionDefinition rstDirective
hi def link rstDelimiter Delimiter
" TODO: I dunno...
hi def rstEmphasis term=italic cterm=italic gui=italic
hi def link rstEmphasis Underlined
hi def link rstStrongEmphasis Special
"term=bold cterm=bold gui=bold
" TODO Append these atttributes somehow
"hi def rstEmphasis term=italic cterm=italic gui=italic
"hi def rstStrongEmphasis term=bold cterm=bold gui=bold
hi def link rstInterpretedTextOrHyperlinkReference Identifier
hi def link rstInlineLiteral String
hi def link rstSubstitutionReference PreProc
+55 -40
View File
@@ -255,6 +255,45 @@ MAKEFLAGS_GVIMEXT = DEBUG=yes
!endif
# Check VC version.
!if [echo MSVCVER=_MSC_VER> msvcver.c && $(CC) /EP msvcver.c > msvcver.~ 2> nul]
!message *** ERROR
!message Cannot run Visual C to determine its version. Make sure cl.exe is in your PATH.
!message This can usually be done by running "vcvarsall.bat", located in the bin directory where Visual Studio was installed.
!error Make aborted.
!else
!include msvcver.~
!if [del msvcver.c msvcver.~]
!endif
!endif
!if $(MSVCVER) < 1900
MSVC_MAJOR = ($(MSVCVER) / 100 - 6)
MSVCRT_VER = ($(MSVCVER) / 10 - 60)
!else
MSVC_MAJOR = ($(MSVCVER) / 100 - 5)
MSVCRT_VER = ($(MSVCVER) / 10 - 50)
!endif
# Calculate MSVCRT_VER
!if [(set /a MSVCRT_VER="$(MSVCRT_VER)" > nul) && set MSVCRT_VER > msvcrtver.~] == 0
!include msvcrtver.~
!if [del msvcrtver.~]
!endif
!endif
# Base name of the msvcrXX.dll
!if $(MSVCRT_VER) <= 60
MSVCRT_NAME = msvcrt
!else
MSVCRT_NAME = msvcr$(MSVCRT_VER)
!endif
!if $(MSVC_MAJOR) == 6
CPU = ix86
!endif
# Flag to turn on Win64 compatibility warnings for VC7.x and VC8.
WP64CHECK = /Wp64
@@ -294,8 +333,9 @@ CHANNEL = $(GUI)
!endif
!endif
# Only allow NETBEANS and XPM for a GUI build and CHANNEL.
# GUI sepcific features.
!if "$(GUI)" == "yes"
# Only allow NETBEANS for a GUI build and CHANNEL.
!if "$(NETBEANS)" == "yes" && "$(CHANNEL)" == "yes"
# NETBEANS - Include support for Netbeans integration
NETBEANS_PRO = proto/netbeans.pro
@@ -317,8 +357,11 @@ DIRECTX_INCL = gui_dwrite.h
DIRECTX_OBJ = $(OUTDIR)\gui_dwrite.obj
!endif
# Only allow XPM for a GUI build.
!ifndef XPM
# XPM is not set, use the included xpm files, depending on the architecture.
!ifndef USE_MSVCRT
# Both XPM and USE_MSVCRT are not set, use the included xpm files, depending
# on the architecture.
!if "$(CPU)" == "AMD64"
XPM = xpm\x64
!elseif "$(CPU)" == "i386"
@@ -326,13 +369,22 @@ XPM = xpm\x86
!else
XPM = no
!endif
!endif
!else # USE_MSVCRT
XPM = no
!endif # USE_MSVCRT
!endif # XPM
!if "$(XPM)" != "no"
# XPM - Include support for XPM signs
# See the xpm directory for more information.
XPM_OBJ = $(OBJDIR)/xpm_w32.obj
XPM_DEFS = -DFEAT_XPM_W32
!if $(MSVC_MAJOR) >= 14
# VC14 cannot use a library built by VC12 or eariler, because VC14 uses
# Universal CRT.
XPM_LIB = $(XPM)\lib-vc14\libXpm.lib
!else
XPM_LIB = $(XPM)\lib\libXpm.lib
!endif
XPM_INC = -I $(XPM)\include -I $(XPM)\..\include
!endif
!endif
@@ -395,43 +447,6 @@ DEL_TREE = deltree /y
INTDIR=$(OBJDIR)
OUTDIR=$(OBJDIR)
!if [echo MSVCVER=_MSC_VER> msvcver.c && $(CC) /EP msvcver.c > msvcver.~ 2> nul]
!message *** ERROR
!message Cannot run Visual C to determine its version. Make sure cl.exe is in your PATH.
!message This can usually be done by running "vcvarsall.bat", located in the bin directory where Visual Studio was installed.
!error Make aborted.
!else
!include msvcver.~
!if [del msvcver.c msvcver.~]
!endif
!endif
!if $(MSVCVER) < 1900
MSVC_MAJOR = ($(MSVCVER) / 100 - 6)
MSVCRT_VER = ($(MSVCVER) / 10 - 60)
!else
MSVC_MAJOR = ($(MSVCVER) / 100 - 5)
MSVCRT_VER = ($(MSVCVER) / 10 - 50)
!endif
# Calculate MSVCRT_VER
!if [(set /a MSVCRT_VER="$(MSVCRT_VER)" > nul) && set MSVCRT_VER > msvcrtver.~] == 0
!include msvcrtver.~
!if [del msvcrtver.~]
!endif
!endif
# Base name of the msvcrXX.dll
!if $(MSVCRT_VER) <= 60
MSVCRT_NAME = msvcrt
!else
MSVCRT_NAME = msvcr$(MSVCRT_VER)
!endif
!if $(MSVC_MAJOR) == 6
CPU = ix86
!endif
# Convert processor ID to MVC-compatible number
!if $(MSVC_MAJOR) < 8
!if "$(CPUNR)" == "i386"
+25 -14
View File
@@ -2559,8 +2559,9 @@ barline_writestring(FILE *fd, char_u *s, int remaining_start)
/*
* Parse a viminfo line starting with '|'.
* Add each decoded value to "values".
* Returns TRUE if the next line is to be read after using the parsed values.
*/
static void
static int
barline_parse(vir_T *virp, char_u *text, garray_T *values)
{
char_u *p = text;
@@ -2569,6 +2570,7 @@ barline_parse(vir_T *virp, char_u *text, garray_T *values)
bval_T *value;
int i;
int allocated = FALSE;
int eof;
#ifdef FEAT_MBYTE
char_u *sconv;
int converted;
@@ -2611,21 +2613,24 @@ barline_parse(vir_T *virp, char_u *text, garray_T *values)
* |{bartype},>{length of "{text}{text2}"}
* |<"{text1}
* |<{text2}",{value}
* Length includes the quotes.
*/
++p;
len = getdigits(&p);
buf = alloc((int)(len + 1));
if (buf == NULL)
return;
return TRUE;
p = buf;
for (todo = len; todo > 0; todo -= n)
{
if (viminfo_readline(virp) || virp->vir_line[0] != '|'
eof = viminfo_readline(virp);
if (eof || virp->vir_line[0] != '|'
|| virp->vir_line[1] != '<')
{
/* file was truncated or garbled */
/* File was truncated or garbled. Read another line if
* this one starts with '|'. */
vim_free(buf);
return;
return eof || virp->vir_line[0] == '|';
}
/* Get length of text, excluding |< and NL chars. */
n = STRLEN(virp->vir_line);
@@ -2651,10 +2656,12 @@ barline_parse(vir_T *virp, char_u *text, garray_T *values)
* |{bartype},{lots of values},>
* |<{value},{value}
*/
if (viminfo_readline(virp) || virp->vir_line[0] != '|'
eof = viminfo_readline(virp);
if (eof || virp->vir_line[0] != '|'
|| virp->vir_line[1] != '<')
/* file was truncated or garbled */
return;
/* File was truncated or garbled. Read another line if
* this one starts with '|'. */
return eof || virp->vir_line[0] == '|';
p = virp->vir_line + 2;
}
}
@@ -2675,7 +2682,7 @@ barline_parse(vir_T *virp, char_u *text, garray_T *values)
while (*p != '"')
{
if (*p == NL || *p == NUL)
return; /* syntax error, drop the value */
return TRUE; /* syntax error, drop the value */
if (*p == '\\')
{
++p;
@@ -2734,6 +2741,7 @@ barline_parse(vir_T *virp, char_u *text, garray_T *values)
else
break;
}
return TRUE;
}
static int
@@ -2744,6 +2752,7 @@ read_viminfo_barline(vir_T *virp, int got_encoding, int force, int writing)
garray_T values;
bval_T *vp;
int i;
int read_next = TRUE;
/* The format is: |{bartype},{value},...
* For a very long string:
@@ -2772,7 +2781,7 @@ read_viminfo_barline(vir_T *virp, int got_encoding, int force, int writing)
* doesn't understand the version. */
if (!got_encoding)
{
barline_parse(virp, p, &values);
read_next = barline_parse(virp, p, &values);
vp = (bval_T *)values.ga_data;
if (values.ga_len > 0 && vp->bv_type == BVAL_NR)
virp->vir_version = vp->bv_nr;
@@ -2780,17 +2789,17 @@ read_viminfo_barline(vir_T *virp, int got_encoding, int force, int writing)
break;
case BARTYPE_HISTORY:
barline_parse(virp, p, &values);
read_next = barline_parse(virp, p, &values);
handle_viminfo_history(&values, writing);
break;
case BARTYPE_REGISTER:
barline_parse(virp, p, &values);
read_next = barline_parse(virp, p, &values);
handle_viminfo_register(&values, force);
break;
case BARTYPE_MARK:
barline_parse(virp, p, &values);
read_next = barline_parse(virp, p, &values);
handle_viminfo_mark(&values, force);
break;
@@ -2808,7 +2817,9 @@ read_viminfo_barline(vir_T *virp, int got_encoding, int force, int writing)
ga_clear(&values);
}
return viminfo_readline(virp);
if (read_next)
return viminfo_readline(virp);
return FALSE;
}
static void
+1 -3
View File
@@ -1522,12 +1522,10 @@ handle_viminfo_mark(garray_T *values, int force)
++idx;
break;
}
/* idx cannot be zero now */
if (idx < 0 && curwin->w_jumplistlen < JUMPLISTSIZE)
/* insert as the oldest entry */
idx = 0;
else if (idx == 0 && curwin->w_jumplistlen == JUMPLISTSIZE)
/* no space to insert as the oldest entry */
idx = -1;
}
else if (curwin->w_jumplistlen < JUMPLISTSIZE)
/* insert as oldest entry */
+60 -7
View File
@@ -5488,11 +5488,23 @@ do_addsub(
{
if (dobin)
while (col > 0 && vim_isbdigit(ptr[col]))
{
--col;
#ifdef FEAT_MBYTE
if (has_mbyte)
col -= (*mb_head_off)(ptr, ptr + col);
#endif
}
if (dohex)
while (col > 0 && vim_isxdigit(ptr[col]))
{
--col;
#ifdef FEAT_MBYTE
if (has_mbyte)
col -= (*mb_head_off)(ptr, ptr + col);
#endif
}
if ( dobin
&& dohex
@@ -5500,6 +5512,10 @@ do_addsub(
&& (ptr[col] == 'X'
|| ptr[col] == 'x')
&& ptr[col - 1] == '0'
#ifdef FEAT_MBYTE
&& (!has_mbyte ||
!(*mb_head_off)(ptr, ptr + col - 1))
#endif
&& vim_isxdigit(ptr[col + 1]))))
{
@@ -5508,7 +5524,13 @@ do_addsub(
col = pos->col;
while (col > 0 && vim_isdigit(ptr[col]))
{
col--;
#ifdef FEAT_MBYTE
if (has_mbyte)
col -= (*mb_head_off)(ptr, ptr + col);
#endif
}
}
if (( dohex
@@ -5516,16 +5538,28 @@ do_addsub(
&& (ptr[col] == 'X'
|| ptr[col] == 'x')
&& ptr[col - 1] == '0'
#ifdef FEAT_MBYTE
&& (!has_mbyte ||
!(*mb_head_off)(ptr, ptr + col - 1))
#endif
&& vim_isxdigit(ptr[col + 1])) ||
( dobin
&& col > 0
&& (ptr[col] == 'B'
|| ptr[col] == 'b')
&& ptr[col - 1] == '0'
#ifdef FEAT_MBYTE
&& (!has_mbyte ||
!(*mb_head_off)(ptr, ptr + col - 1))
#endif
&& vim_isbdigit(ptr[col + 1])))
{
/* Found hexadecimal or binary number, move to its start. */
--col;
#ifdef FEAT_MBYTE
if (has_mbyte)
col -= (*mb_head_off)(ptr, ptr + col);
#endif
}
else
{
@@ -5537,12 +5571,18 @@ do_addsub(
while (ptr[col] != NUL
&& !vim_isdigit(ptr[col])
&& !(doalp && ASCII_ISALPHA(ptr[col])))
++col;
col += MB_PTR2LEN(ptr + col);
while (col > 0
&& vim_isdigit(ptr[col - 1])
&& !(doalp && ASCII_ISALPHA(ptr[col])))
{
--col;
#ifdef FEAT_MBYTE
if (has_mbyte)
col -= (*mb_head_off)(ptr, ptr + col);
#endif
}
}
}
@@ -5552,14 +5592,21 @@ do_addsub(
&& !vim_isdigit(ptr[col])
&& !(doalp && ASCII_ISALPHA(ptr[col])))
{
++col;
--length;
int mb_len = MB_PTR2LEN(ptr + col);
col += mb_len;
length -= mb_len;
}
if (length == 0)
goto theend;
if (col > pos->col && ptr[col - 1] == '-')
if (col > pos->col && ptr[col - 1] == '-'
#ifdef FEAT_MBYTE
&& (!has_mbyte ||
!(*mb_head_off)(ptr, ptr + col - 1))
#endif
)
{
negative = TRUE;
was_positive = FALSE;
@@ -5622,7 +5669,12 @@ do_addsub(
}
else
{
if (col > 0 && ptr[col - 1] == '-' && !visual)
if (col > 0 && ptr[col - 1] == '-'
#ifdef FEAT_MBYTE
&& (!has_mbyte ||
!(*mb_head_off)(ptr, ptr + col - 1))
#endif
&& !visual)
{
/* negative number */
--col;
@@ -6036,8 +6088,9 @@ handle_viminfo_register(garray_T *values, int force)
&& (timestamp == 0 || y_ptr->y_time_set > timestamp))
return;
for (i = 0; i < y_ptr->y_size; i++)
vim_free(y_ptr->y_array[i]);
if (y_ptr->y_array != NULL)
for (i = 0; i < y_ptr->y_size; i++)
vim_free(y_ptr->y_array[i]);
vim_free(y_ptr->y_array);
if (y_read_regs == NULL)
+1 -1
View File
@@ -2126,7 +2126,7 @@ msgid "E490: No fold found"
msgstr "E490: Non trovo alcuna piegatura"
msgid "E350: Cannot create fold with current 'foldmethod'"
msgstr "E350: Non posso create piegatura con il 'foldmethod' in uso"
msgstr "E350: Non posso creare piegatura con il 'foldmethod' in uso"
msgid "E351: Cannot delete fold with current 'foldmethod'"
msgstr "E351: Non posso cancellare piegatura con il 'foldmethod' in uso"
+7 -4
View File
@@ -623,8 +623,8 @@ qf_init_ext(
if (buflnum > lnumlast)
break;
p_buf = ml_get_buf(buf, buflnum++, FALSE);
linelen = (int)STRLEN(p_buf);
if (linelen > IOSIZE - 2)
len = (int)STRLEN(p_buf);
if (len > IOSIZE - 2)
{
linebuf = qf_grow_linebuf(&growbuf, &growbufsiz, len,
&linelen);
@@ -632,7 +632,10 @@ qf_init_ext(
goto qf_init_end;
}
else
{
linebuf = IObuff;
linelen = len;
}
vim_strncpy(linebuf, p_buf, linelen);
}
}
@@ -1435,8 +1438,8 @@ qf_get_fnum(char_u *directory, char_u *fname)
}
/*
* push dirbuf onto the directory stack and return pointer to actual dir or
* NULL on error
* Push dirbuf onto the directory stack and return pointer to actual dir or
* NULL on error.
*/
static char_u *
qf_push_dir(char_u *dirbuf, struct dir_stack_T **stackptr)
+5 -2
View File
@@ -8995,9 +8995,12 @@ can_clear(char_u *p)
|| gui.in_use
#endif
#ifdef FEAT_TERMGUICOLORS
|| (p_tgc && cterm_normal_bg_gui_color != (long_u)INVALCOLOR)
|| (p_tgc && cterm_normal_bg_gui_color == (long_u)INVALCOLOR)
|| (!p_tgc && cterm_normal_bg_color == 0)
#else
|| cterm_normal_bg_color == 0
#endif
|| cterm_normal_bg_color == 0 || *T_UT != NUL));
|| *T_UT != NUL));
}
/*
+1
View File
@@ -175,6 +175,7 @@ NEW_TESTS = test_arglist.res \
test_increment.res \
test_json.res \
test_langmap.res \
test_man.res \
test_matchadd_conceal.res \
test_packadd.res \
test_perl.res \
+59
View File
@@ -0,0 +1,59 @@
runtime ftplugin/man.vim
function Test_g_ft_man_open_mode()
let l:w = winwidth(1)
vnew
let l:h = winheight(1)
q
" split horizontally
let wincnt = winnr('$')
Man 'vim'
if wincnt == winnr('$')
" Vim manual page cannot be found.
return
endif
call assert_equal(l:w, winwidth(1))
call assert_true(l:h > winheight(1))
call assert_equal(1, tabpagenr('$'))
call assert_equal(1, tabpagenr())
q
" split horizontally
let g:ft_man_open_mode = "horz"
Man 'vim'
call assert_equal(l:w, winwidth(1))
call assert_true(l:h > winheight(1))
call assert_equal(1, tabpagenr('$'))
call assert_equal(1, tabpagenr())
q
" split vertically
let g:ft_man_open_mode = "vert"
Man 'vim'
call assert_true(l:w > winwidth(1))
call assert_equal(l:h, winheight(1))
call assert_equal(1, tabpagenr('$'))
call assert_equal(1, tabpagenr())
q
" separate tab
let g:ft_man_open_mode = "tab"
Man 'vim'
call assert_equal(l:w, winwidth(1))
call assert_equal(l:h, winheight(1))
call assert_equal(2, tabpagenr('$'))
call assert_equal(2, tabpagenr())
q
endfunction
function Test_nomodifiable()
let wincnt = winnr('$')
Man 'vim'
if wincnt == winnr('$')
" Vim manual page cannot be found.
return
endif
call assert_false(&l:modifiable)
q
endfunction
+2
View File
@@ -653,6 +653,8 @@ endfunction
" Test for quickfix directory stack support
function! s:dir_stack_tests(cchar)
call s:setup_commands(a:cchar)
let save_efm=&efm
set efm=%DEntering\ dir\ '%f',%f:%l:%m,%XLeaving\ dir\ '%f'
+16
View File
@@ -768,6 +768,22 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1949,
/**/
1948,
/**/
1947,
/**/
1946,
/**/
1945,
/**/
1944,
/**/
1943,
/**/
1942,
/**/
1941,
/**/
Binary file not shown.
Binary file not shown.