Merge remote-tracking branch 'vim/master'

This commit is contained in:
Kazuki Sakamoto
2016-07-19 20:53:39 -07:00
40 changed files with 8572 additions and 7323 deletions
+3
View File
@@ -78,6 +78,8 @@ SRC_ALL = \
src/sha256.c \
src/structs.h \
src/spell.c \
src/spell.h \
src/spellfile.c \
src/syntax.c \
src/tag.c \
src/term.c \
@@ -172,6 +174,7 @@ SRC_ALL = \
src/proto/search.pro \
src/proto/sha256.pro \
src/proto/spell.pro \
src/proto/spellfile.pro \
src/proto/syntax.pro \
src/proto/tag.pro \
src/proto/term.pro \
+15 -1
View File
@@ -1,4 +1,4 @@
*autocmd.txt* For Vim version 7.4. Last change: 2016 Jun 09
*autocmd.txt* For Vim version 7.4. Last change: 2016 Jul 19
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -293,6 +293,9 @@ Name triggered by ~
|CursorMoved| the cursor was moved in Normal mode
|CursorMovedI| the cursor was moved in Insert mode
|WinNew| after creating a new window
|TabNew| after creating a new tab page
|TabClosed| after closing a tab page
|WinEnter| after entering another window
|WinLeave| before leaving a window
|TabEnter| after entering another tab page
@@ -874,6 +877,8 @@ Syntax When the 'syntax' option has been set. The
where this option was set, and <amatch> for
the new value of 'syntax'.
See |:syn-on|.
*TabClosed*
TabClosed After closing a tab page.
*TabEnter*
TabEnter Just after entering a tab page. |tab-page|
After triggering the WinEnter and before
@@ -882,6 +887,10 @@ TabEnter Just after entering a tab page. |tab-page|
TabLeave Just before leaving a tab page. |tab-page|
A WinLeave event will have been triggered
first.
*TabNew*
TabNew When a tab page was created. |tab-page|
A WinEnter event will have been triggered
first, TabEnter follows.
*TermChanged*
TermChanged After the value of 'term' has changed. Useful
for re-loading the syntax file to update the
@@ -967,6 +976,11 @@ WinLeave Before leaving a window. If the window to be
WinLeave autocommands (but not for ":new").
Not used for ":qa" or ":q" when exiting Vim.
*WinNew*
WinNew When a new window was created. Not done for
the fist window, when Vim has just started.
Before a WinEnter event.
==============================================================================
6. Patterns *autocmd-patterns* *{pat}*
+21
View File
@@ -1827,6 +1827,27 @@ v:swapcommand Normal mode command to be executed after a file has been
example, when jumping to a tag the value is ":tag tagname\r".
For ":edit +cmd file" the value is ":cmd\r".
*v:t_TYPE* *v:t_bool* *t_bool-varialble*
v:t_bool Value of Boolean type. Read-only. See: |type()|
*v:t_channel* *t_channel-varialble*
v:t_channel Value of Channel type. Read-only. See: |type()|
*v:t_dict* *t_dict-varialble*
v:t_dict Value of Dictionary type. Read-only. See: |type()|
*v:t_float* *t_float-varialble*
v:t_float Value of Float type. Read-only. See: |type()|
*v:t_func* *t_func-varialble*
v:t_func Value of Funcref type. Read-only. See: |type()|
*v:t_job* *t_job-varialble*
v:t_job Value of Job type. Read-only. See: |type()|
*v:t_list* *t_list-varialble*
v:t_list Value of List type. Read-only. See: |type()|
*v:t_none* *t_none-varialble*
v:t_none Value of None type. Read-only. See: |type()|
*v:t_number* *t_number-varialble*
v:t_number Value of Number type. Read-only. See: |type()|
*v:t_string* *t_string-varialble*
v:t_string Value of String type. Read-only. See: |type()|
*v:termresponse* *termresponse-variable*
v:termresponse The escape sequence returned by the terminal for the |t_RV|
termcap entry. It is set when Vim receives an escape sequence
+30 -1
View File
@@ -1,4 +1,3 @@
! $XConsortium: rgb.txt,v 10.41 94/02/20 18:39:36 rws Exp $
255 250 250 snow
248 248 255 ghost white
248 248 255 GhostWhite
@@ -58,6 +57,14 @@
119 136 153 LightSlateGrey
190 190 190 gray
190 190 190 grey
190 190 190 x11 gray
190 190 190 X11Gray
190 190 190 x11 grey
190 190 190 X11Grey
128 128 128 web gray
128 128 128 WebGray
128 128 128 web grey
128 128 128 WebGrey
211 211 211 light grey
211 211 211 LightGrey
211 211 211 light gray
@@ -106,6 +113,7 @@
72 209 204 MediumTurquoise
64 224 208 turquoise
0 255 255 cyan
0 255 255 aqua
224 255 255 light cyan
224 255 255 LightCyan
95 158 160 cadet blue
@@ -132,6 +140,11 @@
124 252 0 lawn green
124 252 0 LawnGreen
0 255 0 green
0 255 0 lime
0 255 0 x11 green
0 255 0 X11Green
0 128 0 web green
0 128 0 WebGreen
127 255 0 chartreuse
0 250 154 medium spring green
0 250 154 MediumSpringGreen
@@ -203,11 +216,16 @@
219 112 147 pale violet red
219 112 147 PaleVioletRed
176 48 96 maroon
176 48 96 x11 maroon
176 48 96 X11Maroon
128 0 0 web maroon
128 0 0 WebMaroon
199 21 133 medium violet red
199 21 133 MediumVioletRed
208 32 144 violet red
208 32 144 VioletRed
255 0 255 magenta
255 0 255 fuchsia
238 130 238 violet
221 160 221 plum
218 112 214 orchid
@@ -220,6 +238,10 @@
138 43 226 blue violet
138 43 226 BlueViolet
160 32 240 purple
160 32 240 x11 purple
160 32 240 X11Purple
128 0 128 web purple
128 0 128 WebPurple
147 112 219 medium purple
147 112 219 MediumPurple
216 191 216 thistle
@@ -751,3 +773,10 @@
139 0 0 DarkRed
144 238 144 light green
144 238 144 LightGreen
220 20 60 crimson
75 0 130 indigo
128 128 0 olive
102 51 153 rebecca purple
102 51 153 RebeccaPurple
192 192 192 silver
0 128 128 teal
+1
View File
@@ -582,6 +582,7 @@ vimobj = \
$(OBJDIR)\search.obj \
$(OBJDIR)\sha256.obj \
$(OBJDIR)\spell.obj \
$(OBJDIR)\spellfile.obj \
$(OBJDIR)\syntax.obj \
$(OBJDIR)\tag.obj \
$(OBJDIR)\term.obj \
+1
View File
@@ -653,6 +653,7 @@ OBJ = \
$(OUTDIR)/search.o \
$(OUTDIR)/sha256.o \
$(OUTDIR)/spell.o \
$(OUTDIR)/spellfile.o \
$(OUTDIR)/syntax.o \
$(OUTDIR)/tag.o \
$(OUTDIR)/term.o \
+5 -1
View File
@@ -72,6 +72,7 @@ SRC = \
search.c \
sha256.c \
spell.c \
spellfile.c \
syntax.c \
tag.c \
term.c \
@@ -127,6 +128,7 @@ OBJ = o/arabic.o \
o/search.o \
o/sha256.o \
o/spell.o \
o/spellfile.o \
o/syntax.o \
o/tag.o \
o/term.o \
@@ -250,7 +252,9 @@ o/search.o: search.c $(SYMS) regexp.h
o/sha256.o: sha256.c $(SYMS)
o/spell.o: spell.c $(SYMS)
o/spell.o: spell.c $(SYMS) spell.h
o/spellfile.o: spellfile.c $(SYMS) spell.h
o/syntax.o: syntax.c $(SYMS)
+5
View File
@@ -258,6 +258,7 @@ LINK32_OBJS= \
"$(INTDIR)/search.obj" \
"$(INTDIR)/sha256.obj" \
"$(INTDIR)/spell.obj" \
"$(INTDIR)/spellfile.obj" \
"$(INTDIR)/syntax.obj" \
"$(INTDIR)/tag.obj" \
"$(INTDIR)/term.obj" \
@@ -678,6 +679,10 @@ SOURCE=.\spell.c
# End Source File
# Begin Source File
SOURCE=.\spellfile.c
# End Source File
# Begin Source File
SOURCE=.\syntax.c
# End Source File
# Begin Source File
+6
View File
@@ -82,6 +82,7 @@ SRC = arabic.c \
search.c \
sha256.c \
spell.c \
spellfile.c \
syntax.c \
tag.c \
term.c \
@@ -139,6 +140,7 @@ OBJ = obj/arabic.o \
obj/search.o \
obj/sha256.o \
obj/spell.o \
obj/spellfile.o \
obj/syntax.o \
obj/tag.o \
obj/term.o \
@@ -194,6 +196,7 @@ PRO = proto/arabic.pro \
proto/search.pro \
proto/sha256.pro \
proto/spell.pro \
proto/spellfile.pro \
proto/syntax.pro \
proto/tag.pro \
proto/term.pro \
@@ -389,6 +392,9 @@ obj/sha256.o: sha256.c
obj/spell.o: spell.c
$(CCSYM) $@ spell.c
obj/spellfile.o: spellfile.c
$(CCSYM) $@ spellfile.c
obj/syntax.o: syntax.c
$(CCSYM) $@ syntax.c
+1
View File
@@ -70,6 +70,7 @@ SRC = arabic.c \
search.c \
sha256.c \
spell.c \
spellfile.c \
syntax.c \
tag.c \
term.c \
+4
View File
@@ -597,6 +597,7 @@ OBJ = \
$(OUTDIR)\search.obj \
$(OUTDIR)\sha256.obj \
$(OUTDIR)\spell.obj \
$(OUTDIR)\spellfile.obj \
$(OUTDIR)\syntax.obj \
$(OUTDIR)\tag.obj \
$(OUTDIR)\term.obj \
@@ -1306,6 +1307,8 @@ $(OUTDIR)/sha256.obj: $(OUTDIR) sha256.c $(INCL)
$(OUTDIR)/spell.obj: $(OUTDIR) spell.c $(INCL)
$(OUTDIR)/spellfile.obj: $(OUTDIR) spellfile.c $(INCL)
$(OUTDIR)/syntax.obj: $(OUTDIR) syntax.c $(INCL)
$(OUTDIR)/tag.obj: $(OUTDIR) tag.c $(INCL)
@@ -1411,6 +1414,7 @@ proto.h: \
proto/search.pro \
proto/sha256.pro \
proto/spell.pro \
proto/spellfile.pro \
proto/syntax.pro \
proto/tag.pro \
proto/term.pro \
+5
View File
@@ -135,6 +135,7 @@ SRC = \
search.c \
sha256.c \
spell.c \
spellfile.c \
syntax.c \
tag.c \
term.c \
@@ -191,6 +192,7 @@ OBJ = \
search.o \
sha256.o \
spell.o \
spellfile.o \
syntax.o \
tag.o \
term.o \
@@ -247,6 +249,7 @@ PRO = \
proto/search.pro \
proto/sha256.pro \
proto/spell.pro \
proto/spellfile.pro \
proto/syntax.pro \
proto/tag.pro \
proto/term.pro \
@@ -403,6 +406,8 @@ sha256.o: sha256.c
proto/sha256.pro: sha256.c
spell.o: spell.c
proto/spell.pro: spell.c
spellfile.o: spellfile.c
proto/spellfile.pro: spellfile.c
syntax.o: syntax.c
proto/syntax.pro: syntax.c
tag.o: tag.c
+194 -176
View File
@@ -602,6 +602,10 @@ AUTOCONF = autoconf
# PURIFY - remove the # to use the "purify" program (hoi Nia++!)
#PURIFY = purify
# VALGRIND - remove the # to use valgrind for memory leaks and access errors.
# Used for the unittest targets.
# VALGRIND = valgrind --tool=memcheck --leak-check=yes --num-callers=25 --log-file=valgrind.$@
# NBDEBUG - debugging the netbeans interface.
#EXTRA_DEFS = -DNBDEBUG
@@ -1544,6 +1548,7 @@ BASIC_SRC = \
search.c \
sha256.c \
spell.c \
spellfile.c \
syntax.c \
tag.c \
term.c \
@@ -1584,6 +1589,7 @@ MESSAGE_TEST_TARGET = message_test$(EXEEXT)
UNITTEST_SRC = $(JSON_TEST_SRC) $(MEMFILE_TEST_SRC) $(MESSAGE_TEST_SRC)
UNITTEST_TARGETS = $(JSON_TEST_TARGET) $(MEMFILE_TEST_TARGET) $(MESSAGE_TEST_TARGET)
RUN_UNITTESTS = run_json_test run_memfile_test run_message_test
# All sources, also the ones that are not configured
ALL_SRC = $(BASIC_SRC) $(ALL_GUI_SRC) $(UNITTEST_SRC) $(EXTRA_SRC)
@@ -1646,6 +1652,7 @@ OBJ_COMMON = \
objects/search.o \
objects/sha256.o \
objects/spell.o \
objects/spellfile.o \
objects/syntax.o \
objects/tag.o \
objects/term.o \
@@ -1747,6 +1754,7 @@ PRO_AUTO = \
search.pro \
sha256.pro \
spell.pro \
spellfile.pro \
syntax.pro \
tag.pro \
term.pro \
@@ -2004,19 +2012,16 @@ unittesttargets:
$(MAKE) -f Makefile $(UNITTEST_TARGETS)
# Execute the unittests one by one.
unittest unittests: $(UNITTEST_TARGETS)
@for t in $(UNITTEST_TARGETS); do \
./$$t || exit 1; echo $$t passed; \
done
unittest unittests: $(RUN_UNITTESTS)
run_json_test: $(JSON_TEST_TARGET)
./$(JSON_TEST_TARGET)
$(VALGRIND) ./$(JSON_TEST_TARGET) || exit 1; echo $* passed;
run_memfile_test: $(MEMFILE_TEST_TARGET)
./$(MEMFILE_TEST_TARGET)
$(VALGRIND) ./$(MEMFILE_TEST_TARGET) || exit 1; echo $* passed;
run_message_test: $(MESSAGE_TEST_TARGET)
./$(MESSAGE_TEST_TARGET)
$(VALGRIND) ./$(MESSAGE_TEST_TARGET) || exit 1; echo $* passed;
# Run individual OLD style test, assuming that Vim was already compiled.
test1 \
@@ -3086,6 +3091,9 @@ objects/sha256.o: sha256.c
objects/spell.o: spell.c
$(CCC) -o $@ spell.c
objects/spellfile.o: spellfile.c
$(CCC) -o $@ spellfile.c
objects/syntax.o: syntax.c
$(CCC) -o $@ syntax.c
@@ -3243,244 +3251,252 @@ macvimclean:
### Dependencies:
objects/arabic.o: arabic.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/blowfish.o: blowfish.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
objects/buffer.o: buffer.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h version.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h version.h
objects/charset.o: charset.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/crypt.o: crypt.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/crypt_zip.o: crypt_zip.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
objects/dict.o: dict.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/diff.o: diff.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/digraph.o: digraph.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/edit.o: edit.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/eval.o: eval.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h version.h
objects/evalfunc.o: evalfunc.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h version.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h version.h
objects/evalfunc.o: evalfunc.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h version.h
objects/ex_cmds.o: ex_cmds.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h version.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h version.h
objects/ex_cmds2.o: ex_cmds2.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h version.h
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h version.h
objects/ex_docmd.o: ex_docmd.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
objects/ex_eval.o: ex_eval.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/ex_getln.o: ex_getln.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
objects/farsi.o: farsi.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/fileio.o: fileio.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/fold.o: fold.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/getchar.o: getchar.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/hardcopy.o: hardcopy.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h version.h
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h version.h
objects/hashtab.o: hashtab.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/if_cscope.o: if_cscope.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h if_cscope.h
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h if_cscope.h
objects/if_xcmdsrv.o: if_xcmdsrv.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h version.h
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h version.h
objects/json.o: json.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/list.o: list.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/main.o: main.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/mark.o: mark.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/memfile.o: memfile.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/memline.o: memline.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/menu.o: menu.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/message.o: message.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/misc1.o: misc1.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h version.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h version.h
objects/misc2.o: misc2.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/move.o: move.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/mbyte.o: mbyte.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/normal.o: normal.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/ops.o: ops.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h ascii.h \
keymap.h term.h macros.h option.h structs.h regexp.h gui.h gui_beval.h \
proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h farsi.h arabic.h
proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h globals.h farsi.h \
arabic.h
objects/option.o: option.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/os_unix.o: os_unix.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h os_unixx.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h os_unixx.h
objects/pathdef.o: auto/pathdef.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
objects/popupmnu.o: popupmnu.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
objects/quickfix.o: quickfix.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
objects/regexp.o: regexp.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h regexp_nfa.c
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h regexp_nfa.c
objects/screen.o: screen.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/search.o: search.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/sha256.o: sha256.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/spell.o: spell.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/spellfile.o: spellfile.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
objects/syntax.o: syntax.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/tag.o: tag.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h ascii.h \
keymap.h term.h macros.h option.h structs.h regexp.h gui.h gui_beval.h \
proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h farsi.h arabic.h
proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h globals.h farsi.h \
arabic.h
objects/term.o: term.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/ui.o: ui.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h ascii.h \
keymap.h term.h macros.h option.h structs.h regexp.h gui.h gui_beval.h \
proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h farsi.h arabic.h
proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h globals.h farsi.h \
arabic.h
objects/undo.o: undo.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
objects/userfunc.o: userfunc.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/userfunc.o: userfunc.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
objects/version.o: version.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h version.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h version.h
objects/window.o: window.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/gui.o: gui.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h ascii.h \
keymap.h term.h macros.h option.h structs.h regexp.h gui.h gui_beval.h \
proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h farsi.h arabic.h
proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h globals.h farsi.h \
arabic.h
objects/gui_gtk.o: gui_gtk.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h gui_gtk_f.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h gui_gtk_f.h
objects/gui_gtk_f.o: gui_gtk_f.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h gui_gtk_f.h
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h gui_gtk_f.h
objects/gui_motif.o: gui_motif.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h gui_xmebw.h ../pixmaps/alert.xpm \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h gui_xmebw.h ../pixmaps/alert.xpm \
../pixmaps/error.xpm ../pixmaps/generic.xpm ../pixmaps/info.xpm \
../pixmaps/quest.xpm gui_x11_pm.h ../pixmaps/tb_new.xpm \
../pixmaps/tb_open.xpm ../pixmaps/tb_close.xpm ../pixmaps/tb_save.xpm \
@@ -3500,16 +3516,16 @@ objects/gui_motif.o: gui_motif.c vim.h auto/config.h feature.h os_unix.h \
../pixmaps/tb_minwidth.xpm
objects/gui_xmdlg.o: gui_xmdlg.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
objects/gui_xmebw.o: gui_xmebw.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h gui_xmebwp.h gui_xmebw.h
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h gui_xmebwp.h gui_xmebw.h
objects/gui_athena.o: gui_athena.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h gui_at_sb.h gui_x11_pm.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h gui_at_sb.h gui_x11_pm.h \
../pixmaps/tb_new.xpm ../pixmaps/tb_open.xpm ../pixmaps/tb_close.xpm \
../pixmaps/tb_save.xpm ../pixmaps/tb_print.xpm ../pixmaps/tb_cut.xpm \
../pixmaps/tb_copy.xpm ../pixmaps/tb_paste.xpm ../pixmaps/tb_find.xpm \
@@ -3527,92 +3543,94 @@ objects/gui_athena.o: gui_athena.c vim.h auto/config.h feature.h os_unix.h \
../pixmaps/tb_minwidth.xpm
objects/gui_gtk_x11.o: gui_gtk_x11.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h auto/gui_gtk_gresources.h gui_gtk_f.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h auto/gui_gtk_gresources.h gui_gtk_f.h \
../runtime/vim32x32.xpm ../runtime/vim16x16.xpm ../runtime/vim48x48.xpm
objects/gui_x11.o: gui_x11.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h ../runtime/vim32x32.xpm ../runtime/vim16x16.xpm \
../runtime/vim48x48.xpm
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h ../runtime/vim32x32.xpm \
../runtime/vim16x16.xpm ../runtime/vim48x48.xpm
objects/gui_at_sb.o: gui_at_sb.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h gui_at_sb.h
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h gui_at_sb.h
objects/gui_at_fs.o: gui_at_fs.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h gui_at_sb.h
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h gui_at_sb.h
objects/pty.o: pty.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h ascii.h \
keymap.h term.h macros.h option.h structs.h regexp.h gui.h gui_beval.h \
proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h farsi.h arabic.h
proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h globals.h farsi.h \
arabic.h
objects/json_test.o: json_test.c main.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h json.c
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h json.c
objects/memfile_test.o: memfile_test.c main.c vim.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h \
structs.h regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h \
ex_cmds.h proto.h globals.h farsi.h arabic.h memfile.c
ex_cmds.h spell.h proto.h globals.h farsi.h arabic.h memfile.c
objects/message_test.o: message_test.c main.c vim.h auto/config.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h \
structs.h regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h \
ex_cmds.h proto.h globals.h farsi.h arabic.h message.c
ex_cmds.h spell.h proto.h globals.h farsi.h arabic.h message.c
objects/hangulin.o: hangulin.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
objects/if_lua.o: if_lua.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/if_mzsch.o: if_mzsch.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h if_mzsch.h
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h if_mzsch.h
objects/if_perl.o: auto/if_perl.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
objects/if_perlsfio.o: if_perlsfio.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
objects/if_python.o: if_python.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h if_py_both.h
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h if_py_both.h
objects/if_python3.o: if_python3.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h if_py_both.h
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h if_py_both.h
objects/if_tcl.o: if_tcl.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/if_ruby.o: if_ruby.c auto/config.h vim.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h version.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h version.h
objects/gui_beval.o: gui_beval.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h
objects/workshop.o: workshop.c auto/config.h integration.h vim.h feature.h \
os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h \
structs.h regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h \
ex_cmds.h proto.h globals.h farsi.h arabic.h version.h workshop.h
ex_cmds.h spell.h proto.h globals.h farsi.h arabic.h version.h \
workshop.h
objects/wsdebug.o: wsdebug.c
objects/integration.o: integration.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h integration.h
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h integration.h
objects/netbeans.o: netbeans.c vim.h auto/config.h feature.h os_unix.h \
auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h \
globals.h farsi.h arabic.h version.h
regexp.h gui.h gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h \
proto.h globals.h farsi.h arabic.h version.h
objects/channel.o: channel.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h proto.h globals.h \
farsi.h arabic.h
gui_beval.h proto/gui_beval.pro alloc.h ex_cmds.h spell.h proto.h \
globals.h farsi.h arabic.h
objects/gui_gtk_gresources.o: auto/gui_gtk_gresources.c
+27 -4
View File
@@ -177,6 +177,16 @@ static struct vimvar
{VV_NAME("none", VAR_SPECIAL), VV_RO},
{VV_NAME("vim_did_enter", VAR_NUMBER), VV_RO},
{VV_NAME("testing", VAR_NUMBER), 0},
{VV_NAME("t_number", VAR_NUMBER), VV_RO},
{VV_NAME("t_string", VAR_NUMBER), VV_RO},
{VV_NAME("t_func", VAR_NUMBER), VV_RO},
{VV_NAME("t_list", VAR_NUMBER), VV_RO},
{VV_NAME("t_dict", VAR_NUMBER), VV_RO},
{VV_NAME("t_float", VAR_NUMBER), VV_RO},
{VV_NAME("t_bool", VAR_NUMBER), VV_RO},
{VV_NAME("t_none", VAR_NUMBER), VV_RO},
{VV_NAME("t_job", VAR_NUMBER), VV_RO},
{VV_NAME("t_channel", VAR_NUMBER), VV_RO},
};
/* shorthand */
@@ -292,6 +302,17 @@ eval_init(void)
set_vim_var_nr(VV_NONE, VVAL_NONE);
set_vim_var_nr(VV_NULL, VVAL_NULL);
set_vim_var_nr(VV_TYPE_NUMBER, VAR_TYPE_NUMBER);
set_vim_var_nr(VV_TYPE_STRING, VAR_TYPE_STRING);
set_vim_var_nr(VV_TYPE_FUNC, VAR_TYPE_FUNC);
set_vim_var_nr(VV_TYPE_LIST, VAR_TYPE_LIST);
set_vim_var_nr(VV_TYPE_DICT, VAR_TYPE_DICT);
set_vim_var_nr(VV_TYPE_FLOAT, VAR_TYPE_FLOAT);
set_vim_var_nr(VV_TYPE_BOOL, VAR_TYPE_BOOL);
set_vim_var_nr(VV_TYPE_NONE, VAR_TYPE_NONE);
set_vim_var_nr(VV_TYPE_JOB, VAR_TYPE_JOB);
set_vim_var_nr(VV_TYPE_CHANNEL, VAR_TYPE_CHANNEL);
set_reg_var(0); /* default for v:register is not 0 but '"' */
#ifdef EBCDIC
@@ -9748,7 +9769,7 @@ repeat:
if (sub != NULL && str != NULL)
{
*usedlen = (int)(p + 1 - src);
s = do_string_sub(str, pat, sub, flags);
s = do_string_sub(str, pat, sub, NULL, flags);
if (s != NULL)
{
*fnamep = s;
@@ -9792,6 +9813,7 @@ repeat:
/*
* Perform a substitution on "str" with pattern "pat" and substitute "sub".
* When "sub" is NULL "expr" is used, must be a VAR_FUNC or VAR_PARTIAL.
* "flags" can be "g" to do a global substitute.
* Returns an allocated string, NULL for error.
*/
@@ -9800,6 +9822,7 @@ do_string_sub(
char_u *str,
char_u *pat,
char_u *sub,
typval_T *expr,
char_u *flags)
{
int sublen;
@@ -9852,7 +9875,7 @@ do_string_sub(
* - The substituted text.
* - The text after the match.
*/
sublen = vim_regsub(&regmatch, sub, tail, FALSE, TRUE, FALSE);
sublen = vim_regsub(&regmatch, sub, expr, tail, FALSE, TRUE, FALSE);
if (ga_grow(&ga, (int)((end - tail) + sublen -
(regmatch.endp[0] - regmatch.startp[0]))) == FAIL)
{
@@ -9864,7 +9887,7 @@ do_string_sub(
i = (int)(regmatch.startp[0] - tail);
mch_memmove((char_u *)ga.ga_data + ga.ga_len, tail, (size_t)i);
/* add the substituted text */
(void)vim_regsub(&regmatch, sub, (char_u *)ga.ga_data
(void)vim_regsub(&regmatch, sub, expr, (char_u *)ga.ga_data
+ ga.ga_len + i, TRUE, TRUE, FALSE);
ga.ga_len += i + sublen - 1;
tail = regmatch.endp[0];
@@ -9885,7 +9908,7 @@ do_string_sub(
if (p_cpo == empty_option)
p_cpo = save_cpo;
else
/* Darn, evaluating {sub} expression changed the value. */
/* Darn, evaluating {sub} expression or {expr} changed the value. */
free_string_option(save_cpo);
return ret;
+20 -13
View File
@@ -11088,14 +11088,21 @@ f_substitute(typval_T *argvars, typval_T *rettv)
char_u *str = get_tv_string_chk(&argvars[0]);
char_u *pat = get_tv_string_buf_chk(&argvars[1], patbuf);
char_u *sub = get_tv_string_buf_chk(&argvars[2], subbuf);
char_u *sub = NULL;
typval_T *expr = NULL;
char_u *flg = get_tv_string_buf_chk(&argvars[3], flagsbuf);
if (argvars[2].v_type == VAR_FUNC || argvars[2].v_type == VAR_PARTIAL)
expr = &argvars[2];
else
sub = get_tv_string_buf_chk(&argvars[2], subbuf);
rettv->v_type = VAR_STRING;
if (str == NULL || pat == NULL || sub == NULL || flg == NULL)
if (str == NULL || pat == NULL || (sub == NULL && expr == NULL)
|| flg == NULL)
rettv->vval.v_string = NULL;
else
rettv->vval.v_string = do_string_sub(str, pat, sub, flg);
rettv->vval.v_string = do_string_sub(str, pat, sub, expr, flg);
}
/*
@@ -12163,22 +12170,22 @@ f_type(typval_T *argvars, typval_T *rettv)
switch (argvars[0].v_type)
{
case VAR_NUMBER: n = 0; break;
case VAR_STRING: n = 1; break;
case VAR_NUMBER: n = VAR_TYPE_NUMBER; break;
case VAR_STRING: n = VAR_TYPE_STRING; break;
case VAR_PARTIAL:
case VAR_FUNC: n = 2; break;
case VAR_LIST: n = 3; break;
case VAR_DICT: n = 4; break;
case VAR_FLOAT: n = 5; break;
case VAR_FUNC: n = VAR_TYPE_FUNC; break;
case VAR_LIST: n = VAR_TYPE_LIST; break;
case VAR_DICT: n = VAR_TYPE_DICT; break;
case VAR_FLOAT: n = VAR_TYPE_FLOAT; break;
case VAR_SPECIAL:
if (argvars[0].vval.v_number == VVAL_FALSE
|| argvars[0].vval.v_number == VVAL_TRUE)
n = 6;
n = VAR_TYPE_BOOL;
else
n = 7;
n = VAR_TYPE_NONE;
break;
case VAR_JOB: n = 8; break;
case VAR_CHANNEL: n = 9; break;
case VAR_JOB: n = VAR_TYPE_JOB; break;
case VAR_CHANNEL: n = VAR_TYPE_CHANNEL; break;
case VAR_UNKNOWN:
EMSG2(_(e_intern2), "f_type(UNKNOWN)");
n = -1;
+3
View File
@@ -7744,6 +7744,8 @@ static struct event_name
{"StdinReadPre", EVENT_STDINREADPRE},
{"SwapExists", EVENT_SWAPEXISTS},
{"Syntax", EVENT_SYNTAX},
{"TabNew", EVENT_TABNEW},
{"TabClosed", EVENT_TABCLOSED},
{"TabEnter", EVENT_TABENTER},
{"TabLeave", EVENT_TABLEAVE},
{"TermChanged", EVENT_TERMCHANGED},
@@ -7754,6 +7756,7 @@ static struct event_name
{"VimEnter", EVENT_VIMENTER},
{"VimLeave", EVENT_VIMLEAVE},
{"VimLeavePre", EVENT_VIMLEAVEPRE},
{"WinNew", EVENT_WINNEW},
{"WinEnter", EVENT_WINENTER},
{"WinLeave", EVENT_WINLEAVE},
{"VimResized", EVENT_VIMRESIZED},
+17 -2
View File
@@ -298,9 +298,9 @@ trunc_string(
{
do
half = half - (*mb_head_off)(s, s + half - 1) - 1;
while (utf_iscomposing(utf_ptr2char(s + half)) && half > 0);
while (half > 0 && utf_iscomposing(utf_ptr2char(s + half)));
n = ptr2cells(s + half);
if (len + n > room)
if (len + n > room || half == 0)
break;
len += n;
i = half;
@@ -521,6 +521,21 @@ emsg_not_now(void)
return FALSE;
}
#if !defined(HAVE_STRERROR) || defined(PROTO)
/*
* Replacement for perror() that behaves more or less like emsg() was called.
* v:errmsg will be set and called_emsg will be set.
*/
void
do_perror(char *msg)
{
perror(msg);
++emsg_silent;
emsg((char_u *)msg);
--emsg_silent;
}
#endif
/*
* emsg() - display an error message
*
+37 -5
View File
@@ -28,37 +28,69 @@
static void
test_trunc_string(void)
{
char_u buf[40];
char_u *buf; /*allocated every time to find uninit errors */
char_u *s;
/* in place */
buf = alloc(40);
STRCPY(buf, "text");
trunc_string(buf, buf, 20, 40);
assert(STRCMP(buf, "text") == 0);
vim_free(buf);
buf = alloc(40);
STRCPY(buf, "a short text");
trunc_string(buf, buf, 20, 40);
assert(STRCMP(buf, "a short text") == 0);
vim_free(buf);
buf = alloc(40);
STRCPY(buf, "a text tha just fits");
trunc_string(buf, buf, 20, 40);
assert(STRCMP(buf, "a text tha just fits") == 0);
vim_free(buf);
buf = alloc(40);
STRCPY(buf, "a text that nott fits");
trunc_string(buf, buf, 20, 40);
assert(STRCMP(buf, "a text t...nott fits") == 0);
vim_free(buf);
/* copy from string to buf */
trunc_string((char_u *)"text", buf, 20, 40);
buf = alloc(40);
s = vim_strsave((char_u *)"text");
trunc_string(s, buf, 20, 40);
assert(STRCMP(buf, "text") == 0);
vim_free(buf);
vim_free(s);
trunc_string((char_u *)"a short text", buf, 20, 40);
buf = alloc(40);
s = vim_strsave((char_u *)"a text that fits");
trunc_string(s, buf, 34, 40);
assert(STRCMP(buf, "a text that fits") == 0);
vim_free(buf);
vim_free(s);
buf = alloc(40);
s = vim_strsave((char_u *)"a short text");
trunc_string(s, buf, 20, 40);
assert(STRCMP(buf, "a short text") == 0);
vim_free(buf);
vim_free(s);
trunc_string((char_u *)"a text tha just fits", buf, 20, 40);
buf = alloc(40);
s = vim_strsave((char_u *)"a text tha just fits");
trunc_string(s, buf, 20, 40);
assert(STRCMP(buf, "a text tha just fits") == 0);
vim_free(buf);
vim_free(s);
trunc_string((char_u *)"a text that nott fits", buf, 20, 40);
buf = alloc(40);
s = vim_strsave((char_u *)"a text that nott fits");
trunc_string(s, buf, 20, 40);
assert(STRCMP(buf, "a text t...nott fits") == 0);
vim_free(buf);
vim_free(s);
}
int
+1
View File
@@ -158,6 +158,7 @@ void qsort(void *base, size_t elm_count, size_t elm_size, int (*cmp)(const void
# endif
# include "search.pro"
# include "spell.pro"
# include "spellfile.pro"
# include "syntax.pro"
# include "tag.pro"
# include "term.pro"
+1 -1
View File
@@ -126,6 +126,6 @@ void assert_exception(typval_T *argvars);
void assert_fails(typval_T *argvars);
void fill_assert_error(garray_T *gap, typval_T *opt_msg_tv, char_u *exp_str, typval_T *exp_tv, typval_T *got_tv, assert_type_T atype);
int modify_fname(char_u *src, int *usedlen, char_u **fnamep, char_u **bufp, int *fnamelen);
char_u *do_string_sub(char_u *str, char_u *pat, char_u *sub, char_u *flags);
char_u *do_string_sub(char_u *str, char_u *pat, char_u *sub, typval_T *expr, char_u *flags);
void filter_map(typval_T *argvars, typval_T *rettv, int map);
/* vim: set ft=c : */
+1
View File
@@ -8,6 +8,7 @@ void trunc_string(char_u *s, char_u *buf, int room, int buflen);
void reset_last_sourcing(void);
void msg_source(int attr);
int emsg_not_now(void);
void do_perror(char *msg);
int emsg(char_u *s);
int emsg2(char_u *s, char_u *a1);
void emsg_invreg(int name);
+1 -1
View File
@@ -7,7 +7,7 @@ void free_regexp_stuff(void);
reg_extmatch_T *ref_extmatch(reg_extmatch_T *em);
void unref_extmatch(reg_extmatch_T *em);
char_u *regtilde(char_u *source, int magic);
int vim_regsub(regmatch_T *rmp, char_u *source, char_u *dest, int copy, int magic, int backslash);
int vim_regsub(regmatch_T *rmp, char_u *source, typval_T *expr, char_u *dest, int copy, int magic, int backslash);
int vim_regsub_multi(regmmatch_T *rmp, linenr_T lnum, char_u *source, char_u *dest, int copy, int magic, int backslash);
char_u *reg_submatch(int no);
list_T *reg_submatch_list(int no);
+16 -4
View File
@@ -2,20 +2,32 @@
int spell_check(win_T *wp, char_u *ptr, hlf_T *attrp, int *capcol, int docount);
int spell_move_to(win_T *wp, int dir, int allwords, int curline, hlf_T *attrp);
void spell_cat_line(char_u *buf, char_u *line, int maxlen);
char_u *spell_enc(void);
slang_T *slang_alloc(char_u *lang);
void slang_free(slang_T *lp);
void slang_clear(slang_T *lp);
void slang_clear_sug(slang_T *lp);
void count_common_word(slang_T *lp, char_u *word, int len, int count);
int byte_in_str(char_u *str, int n);
int init_syl_tab(slang_T *slang);
char_u *did_set_spelllang(win_T *wp);
int captype(char_u *word, char_u *end);
void spell_delete_wordlist(void);
void spell_free_all(void);
void spell_reload(void);
int spell_check_msm(void);
void ex_mkspell(exarg_T *eap);
void ex_spell(exarg_T *eap);
void spell_add_word(char_u *word, int len, int bad, int idx, int undo);
buf_T *open_spellbuf(void);
void close_spellbuf(buf_T *buf);
void clear_spell_chartab(spelltab_T *sp);
void init_spell_chartab(void);
int spell_iswordp_nmw(char_u *p, win_T *wp);
int spell_casefold(char_u *str, int len, char_u *buf, int buflen);
int spell_check_sps(void);
void spell_suggest(int count);
void ex_spellrepall(exarg_T *eap);
void spell_suggest_list(garray_T *gap, char_u *word, int maxcount, int need_cap, int interactive);
void onecap_copy(char_u *word, char_u *wcopy, int upper);
char_u *eval_soundfold(char_u *word);
void spell_soundfold(slang_T *slang, char_u *inword, int folded, char_u *res);
void ex_spellinfo(exarg_T *eap);
void ex_spelldump(exarg_T *eap);
void spell_dump_compl(char_u *pat, int ic, int *dir, int dumpflags_arg);
+9
View File
@@ -0,0 +1,9 @@
/* spellfile.c */
slang_T *spell_load_file(char_u *fname, char_u *lang, slang_T *old_lp, int silent);
void suggest_load_files(void);
int spell_check_msm(void);
void ex_mkspell(exarg_T *eap);
void mkspell(int fcount, char_u **fnames, int ascii, int over_write, int added_word);
void ex_spell(exarg_T *eap);
void spell_add_word(char_u *word, int len, int bad, int idx, int undo);
/* vim: set ft=c : */
+44 -8
View File
@@ -7169,7 +7169,7 @@ static fptr_T do_Upper(int *, int);
static fptr_T do_lower(int *, int);
static fptr_T do_Lower(int *, int);
static int vim_regsub_both(char_u *source, char_u *dest, int copy, int magic, int backslash);
static int vim_regsub_both(char_u *source, typval_T *expr, char_u *dest, int copy, int magic, int backslash);
static fptr_T
do_upper(int *d, int c)
@@ -7312,6 +7312,7 @@ static int submatch_line_lbr;
vim_regsub(
regmatch_T *rmp,
char_u *source,
typval_T *expr,
char_u *dest,
int copy,
int magic,
@@ -7322,7 +7323,7 @@ vim_regsub(
reg_maxline = 0;
reg_buf = curbuf;
reg_line_lbr = TRUE;
return vim_regsub_both(source, dest, copy, magic, backslash);
return vim_regsub_both(source, expr, dest, copy, magic, backslash);
}
#endif
@@ -7342,12 +7343,13 @@ vim_regsub_multi(
reg_firstlnum = lnum;
reg_maxline = curbuf->b_ml.ml_line_count - lnum;
reg_line_lbr = FALSE;
return vim_regsub_both(source, dest, copy, magic, backslash);
return vim_regsub_both(source, NULL, dest, copy, magic, backslash);
}
static int
vim_regsub_both(
char_u *source,
typval_T *expr,
char_u *dest,
int copy,
int magic,
@@ -7364,11 +7366,11 @@ vim_regsub_both(
linenr_T clnum = 0; /* init for GCC */
int len = 0; /* init for GCC */
#ifdef FEAT_EVAL
static char_u *eval_result = NULL;
static char_u *eval_result = NULL;
#endif
/* Be paranoid... */
if (source == NULL || dest == NULL)
if ((source == NULL && expr == NULL) || dest == NULL)
{
EMSG(_(e_null));
return 0;
@@ -7381,11 +7383,11 @@ vim_regsub_both(
/*
* When the substitute part starts with "\=" evaluate it as an expression.
*/
if (source[0] == '\\' && source[1] == '='
if (expr != NULL || (source[0] == '\\' && source[1] == '='
#ifdef FEAT_EVAL
&& !can_f_submatch /* can't do this recursively */
#endif
)
))
{
#ifdef FEAT_EVAL
/* To make sure that the length doesn't change between checking the
@@ -7406,6 +7408,7 @@ vim_regsub_both(
{
win_T *save_reg_win;
int save_ireg_ic;
int prev_can_f_submatch = can_f_submatch;
vim_free(eval_result);
@@ -7422,7 +7425,40 @@ vim_regsub_both(
save_ireg_ic = ireg_ic;
can_f_submatch = TRUE;
eval_result = eval_to_string(source + 2, NULL, TRUE);
if (expr != NULL)
{
typval_T argv[1];
int dummy;
char_u buf[NUMBUFLEN];
typval_T rettv;
rettv.v_type = VAR_STRING;
rettv.vval.v_string = NULL;
if (prev_can_f_submatch)
{
/* can't do this recursively */
}
else if (expr->v_type == VAR_FUNC)
{
s = expr->vval.v_string;
call_func(s, (int)STRLEN(s), &rettv, 0, argv,
0L, 0L, &dummy, TRUE, NULL, NULL);
}
else if (expr->v_type == VAR_PARTIAL)
{
partial_T *partial = expr->vval.v_partial;
s = partial->pt_name;
call_func(s, (int)STRLEN(s), &rettv, 0, argv,
0L, 0L, &dummy, TRUE, partial, NULL);
}
eval_result = get_tv_string_buf_chk(&rettv, buf);
if (eval_result != NULL)
eval_result = vim_strsave(eval_result);
}
else
eval_result = eval_to_string(source + 2, NULL, TRUE);
if (eval_result != NULL)
{
int had_backslash = FALSE;
+19 -7039
View File
File diff suppressed because it is too large Load Diff
+319
View File
@@ -0,0 +1,319 @@
/* vi:set ts=8 sts=4 sw=4:
*
* VIM - Vi IMproved by Bram Moolenaar
*
* Do ":help uganda" in Vim to read copying and usage conditions.
* Do ":help credits" in Vim to see a list of people who contributed.
* See README.txt for an overview of the Vim source code.
*/
/*
* spell.h: common code for spell checking, used by spell.c and spellfile.c.
*/
/* Use SPELL_PRINTTREE for debugging: dump the word tree after adding a word.
* Only use it for small word lists! */
#if 0
# define SPELL_PRINTTREE
#endif
/* Use SPELL_COMPRESS_ALLWAYS for debugging: compress the word tree after
* adding a word. Only use it for small word lists! */
#if 0
# define SPELL_COMPRESS_ALLWAYS
#endif
/* Use DEBUG_TRIEWALK to print the changes made in suggest_trie_walk() for a
* specific word. */
#if 0
# define DEBUG_TRIEWALK
#endif
#define MAXWLEN 254 /* Assume max. word len is this many bytes.
Some places assume a word length fits in a
byte, thus it can't be above 255.
Must be >= PFD_NOTSPECIAL. */
/* Type used for indexes in the word tree need to be at least 4 bytes. If int
* is 8 bytes we could use something smaller, but what? */
#if VIM_SIZEOF_INT > 3
typedef int idx_T;
#else
typedef long idx_T;
#endif
#ifdef FEAT_MBYTE
typedef int salfirst_T;
#else
typedef short salfirst_T;
#endif
/*
* Structure used to store words and other info for one language, loaded from
* a .spl file.
* The main access is through the tree in "sl_fbyts/sl_fidxs", storing the
* case-folded words. "sl_kbyts/sl_kidxs" is for keep-case words.
*
* The "byts" array stores the possible bytes in each tree node, preceded by
* the number of possible bytes, sorted on byte value:
* <len> <byte1> <byte2> ...
* The "idxs" array stores the index of the child node corresponding to the
* byte in "byts".
* Exception: when the byte is zero, the word may end here and "idxs" holds
* the flags, region mask and affixID for the word. There may be several
* zeros in sequence for alternative flag/region/affixID combinations.
*/
typedef struct slang_S slang_T;
struct slang_S
{
slang_T *sl_next; /* next language */
char_u *sl_name; /* language name "en", "en.rare", "nl", etc. */
char_u *sl_fname; /* name of .spl file */
int sl_add; /* TRUE if it's a .add file. */
char_u *sl_fbyts; /* case-folded word bytes */
idx_T *sl_fidxs; /* case-folded word indexes */
char_u *sl_kbyts; /* keep-case word bytes */
idx_T *sl_kidxs; /* keep-case word indexes */
char_u *sl_pbyts; /* prefix tree word bytes */
idx_T *sl_pidxs; /* prefix tree word indexes */
char_u *sl_info; /* infotext string or NULL */
char_u sl_regions[17]; /* table with up to 8 region names plus NUL */
char_u *sl_midword; /* MIDWORD string or NULL */
hashtab_T sl_wordcount; /* hashtable with word count, wordcount_T */
int sl_compmax; /* COMPOUNDWORDMAX (default: MAXWLEN) */
int sl_compminlen; /* COMPOUNDMIN (default: 0) */
int sl_compsylmax; /* COMPOUNDSYLMAX (default: MAXWLEN) */
int sl_compoptions; /* COMP_* flags */
garray_T sl_comppat; /* CHECKCOMPOUNDPATTERN items */
regprog_T *sl_compprog; /* COMPOUNDRULE turned into a regexp progrm
* (NULL when no compounding) */
char_u *sl_comprules; /* all COMPOUNDRULE concatenated (or NULL) */
char_u *sl_compstartflags; /* flags for first compound word */
char_u *sl_compallflags; /* all flags for compound words */
char_u sl_nobreak; /* When TRUE: no spaces between words */
char_u *sl_syllable; /* SYLLABLE repeatable chars or NULL */
garray_T sl_syl_items; /* syllable items */
int sl_prefixcnt; /* number of items in "sl_prefprog" */
regprog_T **sl_prefprog; /* table with regprogs for prefixes */
garray_T sl_rep; /* list of fromto_T entries from REP lines */
short sl_rep_first[256]; /* indexes where byte first appears, -1 if
there is none */
garray_T sl_sal; /* list of salitem_T entries from SAL lines */
salfirst_T sl_sal_first[256]; /* indexes where byte first appears, -1 if
there is none */
int sl_followup; /* SAL followup */
int sl_collapse; /* SAL collapse_result */
int sl_rem_accents; /* SAL remove_accents */
int sl_sofo; /* SOFOFROM and SOFOTO instead of SAL items:
* "sl_sal_first" maps chars, when has_mbyte
* "sl_sal" is a list of wide char lists. */
garray_T sl_repsal; /* list of fromto_T entries from REPSAL lines */
short sl_repsal_first[256]; /* sl_rep_first for REPSAL lines */
int sl_nosplitsugs; /* don't suggest splitting a word */
int sl_nocompoundsugs; /* don't suggest compounding */
/* Info from the .sug file. Loaded on demand. */
time_t sl_sugtime; /* timestamp for .sug file */
char_u *sl_sbyts; /* soundfolded word bytes */
idx_T *sl_sidxs; /* soundfolded word indexes */
buf_T *sl_sugbuf; /* buffer with word number table */
int sl_sugloaded; /* TRUE when .sug file was loaded or failed to
load */
int sl_has_map; /* TRUE if there is a MAP line */
#ifdef FEAT_MBYTE
hashtab_T sl_map_hash; /* MAP for multi-byte chars */
int sl_map_array[256]; /* MAP for first 256 chars */
#else
char_u sl_map_array[256]; /* MAP for first 256 chars */
#endif
hashtab_T sl_sounddone; /* table with soundfolded words that have
handled, see add_sound_suggest() */
};
#ifdef VMS
# define SPL_FNAME_TMPL "%s_%s.spl"
# define SPL_FNAME_ADD "_add."
# define SPL_FNAME_ASCII "_ascii."
#else
# define SPL_FNAME_TMPL "%s.%s.spl"
# define SPL_FNAME_ADD ".add."
# define SPL_FNAME_ASCII ".ascii."
#endif
/* Flags used for a word. Only the lowest byte can be used, the region byte
* comes above it. */
#define WF_REGION 0x01 /* region byte follows */
#define WF_ONECAP 0x02 /* word with one capital (or all capitals) */
#define WF_ALLCAP 0x04 /* word must be all capitals */
#define WF_RARE 0x08 /* rare word */
#define WF_BANNED 0x10 /* bad word */
#define WF_AFX 0x20 /* affix ID follows */
#define WF_FIXCAP 0x40 /* keep-case word, allcap not allowed */
#define WF_KEEPCAP 0x80 /* keep-case word */
/* for <flags2>, shifted up one byte to be used in wn_flags */
#define WF_HAS_AFF 0x0100 /* word includes affix */
#define WF_NEEDCOMP 0x0200 /* word only valid in compound */
#define WF_NOSUGGEST 0x0400 /* word not to be suggested */
#define WF_COMPROOT 0x0800 /* already compounded word, COMPOUNDROOT */
#define WF_NOCOMPBEF 0x1000 /* no compounding before this word */
#define WF_NOCOMPAFT 0x2000 /* no compounding after this word */
/* flags for <pflags> */
#define WFP_RARE 0x01 /* rare prefix */
#define WFP_NC 0x02 /* prefix is not combining */
#define WFP_UP 0x04 /* to-upper prefix */
#define WFP_COMPPERMIT 0x08 /* prefix with COMPOUNDPERMITFLAG */
#define WFP_COMPFORBID 0x10 /* prefix with COMPOUNDFORBIDFLAG */
/* Flags for postponed prefixes in "sl_pidxs". Must be above affixID (one
* byte) and prefcondnr (two bytes). */
#define WF_RAREPFX (WFP_RARE << 24) /* rare postponed prefix */
#define WF_PFX_NC (WFP_NC << 24) /* non-combining postponed prefix */
#define WF_PFX_UP (WFP_UP << 24) /* to-upper postponed prefix */
#define WF_PFX_COMPPERMIT (WFP_COMPPERMIT << 24) /* postponed prefix with
* COMPOUNDPERMITFLAG */
#define WF_PFX_COMPFORBID (WFP_COMPFORBID << 24) /* postponed prefix with
* COMPOUNDFORBIDFLAG */
/* flags for <compoptions> */
#define COMP_CHECKDUP 1 /* CHECKCOMPOUNDDUP */
#define COMP_CHECKREP 2 /* CHECKCOMPOUNDREP */
#define COMP_CHECKCASE 4 /* CHECKCOMPOUNDCASE */
#define COMP_CHECKTRIPLE 8 /* CHECKCOMPOUNDTRIPLE */
/* Info from "REP", "REPSAL" and "SAL" entries in ".aff" file used in si_rep,
* si_repsal, sl_rep, and si_sal. Not for sl_sal!
* One replacement: from "ft_from" to "ft_to". */
typedef struct fromto_S
{
char_u *ft_from;
char_u *ft_to;
} fromto_T;
/* Info from "SAL" entries in ".aff" file used in sl_sal.
* The info is split for quick processing by spell_soundfold().
* Note that "sm_oneof" and "sm_rules" point into sm_lead. */
typedef struct salitem_S
{
char_u *sm_lead; /* leading letters */
int sm_leadlen; /* length of "sm_lead" */
char_u *sm_oneof; /* letters from () or NULL */
char_u *sm_rules; /* rules like ^, $, priority */
char_u *sm_to; /* replacement. */
#ifdef FEAT_MBYTE
int *sm_lead_w; /* wide character copy of "sm_lead" */
int *sm_oneof_w; /* wide character copy of "sm_oneof" */
int *sm_to_w; /* wide character copy of "sm_to" */
#endif
} salitem_T;
/* Values for SP_*ERROR are negative, positive values are used by
* read_cnt_string(). */
#define SP_TRUNCERROR -1 /* spell file truncated error */
#define SP_FORMERROR -2 /* format error in spell file */
#define SP_OTHERERROR -3 /* other error while reading spell file */
/*
* Structure used in "b_langp", filled from 'spelllang'.
*/
typedef struct langp_S
{
slang_T *lp_slang; /* info for this language */
slang_T *lp_sallang; /* language used for sound folding or NULL */
slang_T *lp_replang; /* language used for REP items or NULL */
int lp_region; /* bitmask for region or REGION_ALL */
} langp_T;
#define LANGP_ENTRY(ga, i) (((langp_T *)(ga).ga_data) + (i))
#define VIMSUGMAGIC "VIMsug" /* string at start of Vim .sug file */
#define VIMSUGMAGICL 6
#define VIMSUGVERSION 1
/*
* The tables used for recognizing word characters according to spelling.
* These are only used for the first 256 characters of 'encoding'.
*/
typedef struct spelltab_S
{
char_u st_isw[256]; /* flags: is word char */
char_u st_isu[256]; /* flags: is uppercase char */
char_u st_fold[256]; /* chars: folded case */
char_u st_upper[256]; /* chars: upper case */
} spelltab_T;
/*
* Use our own character-case definitions, because the current locale may
* differ from what the .spl file uses.
* These must not be called with negative number!
*/
#ifndef FEAT_MBYTE
/* Non-multi-byte implementation. */
# define SPELL_TOFOLD(c) ((c) < 256 ? (int)spelltab.st_fold[c] : (c))
# define SPELL_TOUPPER(c) ((c) < 256 ? (int)spelltab.st_upper[c] : (c))
# define SPELL_ISUPPER(c) ((c) < 256 ? spelltab.st_isu[c] : FALSE)
#else
# if defined(HAVE_WCHAR_H)
# include <wchar.h> /* for towupper() and towlower() */
# endif
/* Multi-byte implementation. For Unicode we can call utf_*(), but don't do
* that for ASCII, because we don't want to use 'casemap' here. Otherwise use
* the "w" library function for characters above 255 if available. */
# ifdef HAVE_TOWLOWER
# define SPELL_TOFOLD(c) (enc_utf8 && (c) >= 128 ? utf_fold(c) \
: (c) < 256 ? (int)spelltab.st_fold[c] : (int)towlower(c))
# else
# define SPELL_TOFOLD(c) (enc_utf8 && (c) >= 128 ? utf_fold(c) \
: (c) < 256 ? (int)spelltab.st_fold[c] : (c))
# endif
# ifdef HAVE_TOWUPPER
# define SPELL_TOUPPER(c) (enc_utf8 && (c) >= 128 ? utf_toupper(c) \
: (c) < 256 ? (int)spelltab.st_upper[c] : (int)towupper(c))
# else
# define SPELL_TOUPPER(c) (enc_utf8 && (c) >= 128 ? utf_toupper(c) \
: (c) < 256 ? (int)spelltab.st_upper[c] : (c))
# endif
# ifdef HAVE_ISWUPPER
# define SPELL_ISUPPER(c) (enc_utf8 && (c) >= 128 ? utf_isupper(c) \
: (c) < 256 ? spelltab.st_isu[c] : iswupper(c))
# else
# define SPELL_ISUPPER(c) (enc_utf8 && (c) >= 128 ? utf_isupper(c) \
: (c) < 256 ? spelltab.st_isu[c] : (FALSE))
# endif
#endif
#ifdef FEAT_SPELL
/* First language that is loaded, start of the linked list of loaded
* languages. */
# ifdef IN_SPELL_C
# define SPELL_EXTERN
# define SPELL_INIT(x) x
# else
# define SPELL_EXTERN extern
# define SPELL_INIT(x)
# endif
SPELL_EXTERN slang_T *first_lang SPELL_INIT(= NULL);
/* file used for "zG" and "zW" */
SPELL_EXTERN char_u *int_wordlist SPELL_INIT(= NULL);
SPELL_EXTERN char e_format[] SPELL_INIT(= N_("E759: Format error in spell file"));
SPELL_EXTERN spelltab_T spelltab;
SPELL_EXTERN int did_set_spelltab;
#endif
+6749
View File
File diff suppressed because it is too large Load Diff
+67 -53
View File
@@ -6092,6 +6092,8 @@ gui_get_color_cmn(char_u *name)
guicolor_T color;
};
/* Only non X11 colors (not present in rgb.txt) and colors in
* color_names[], useful when $VIMRUNTIME is not found,. */
static struct rgbcolor_table_S rgb_table[] = {
{(char_u *)"black", RGB(0x00, 0x00, 0x00)},
{(char_u *)"blue", RGB(0x00, 0x00, 0xFF)},
@@ -6106,25 +6108,8 @@ gui_get_color_cmn(char_u *name)
{(char_u *)"darkred", RGB(0x8B, 0x00, 0x00)},
{(char_u *)"darkyellow", RGB(0x8B, 0x8B, 0x00)}, /* No X11 */
{(char_u *)"gray", RGB(0xBE, 0xBE, 0xBE)},
{(char_u *)"gray10", RGB(0x1A, 0x1A, 0x1A)},
{(char_u *)"gray20", RGB(0x33, 0x33, 0x33)},
{(char_u *)"gray30", RGB(0x4D, 0x4D, 0x4D)},
{(char_u *)"gray40", RGB(0x66, 0x66, 0x66)},
{(char_u *)"gray50", RGB(0x7F, 0x7F, 0x7F)},
{(char_u *)"gray60", RGB(0x99, 0x99, 0x99)},
{(char_u *)"gray70", RGB(0xB3, 0xB3, 0xB3)},
{(char_u *)"gray80", RGB(0xCC, 0xCC, 0xCC)},
{(char_u *)"gray90", RGB(0xE5, 0xE5, 0xE5)},
{(char_u *)"green", RGB(0x00, 0xFF, 0x00)},
{(char_u *)"grey", RGB(0xBE, 0xBE, 0xBE)},
{(char_u *)"grey10", RGB(0x1A, 0x1A, 0x1A)},
{(char_u *)"grey20", RGB(0x33, 0x33, 0x33)},
{(char_u *)"grey30", RGB(0x4D, 0x4D, 0x4D)},
{(char_u *)"grey40", RGB(0x66, 0x66, 0x66)},
{(char_u *)"grey50", RGB(0x7F, 0x7F, 0x7F)},
{(char_u *)"grey60", RGB(0x99, 0x99, 0x99)},
{(char_u *)"grey70", RGB(0xB3, 0xB3, 0xB3)},
{(char_u *)"grey80", RGB(0xCC, 0xCC, 0xCC)},
{(char_u *)"grey90", RGB(0xE5, 0xE5, 0xE5)},
{(char_u *)"lightblue", RGB(0xAD, 0xD8, 0xE6)},
{(char_u *)"lightcyan", RGB(0xE0, 0xFF, 0xFF)},
@@ -6135,16 +6120,14 @@ gui_get_color_cmn(char_u *name)
{(char_u *)"lightred", RGB(0xFF, 0x8B, 0x8B)}, /* No X11 */
{(char_u *)"lightyellow", RGB(0xFF, 0xFF, 0xE0)},
{(char_u *)"magenta", RGB(0xFF, 0x00, 0xFF)},
{(char_u *)"orange", RGB(0xFF, 0xA5, 0x00)},
{(char_u *)"purple", RGB(0xA0, 0x20, 0xF0)},
{(char_u *)"red", RGB(0xFF, 0x00, 0x00)},
{(char_u *)"seagreen", RGB(0x2E, 0x8B, 0x57)},
{(char_u *)"slateblue", RGB(0x6A, 0x5A, 0xCD)},
{(char_u *)"violet", RGB(0xEE, 0x82, 0xEE)},
{(char_u *)"white", RGB(0xFF, 0xFF, 0xFF)},
{(char_u *)"yellow", RGB(0xFF, 0xFF, 0x00)},
};
static struct rgbcolor_table_S *colornames_table;
static int size = 0;
if (name[0] == '#' && STRLEN(name) == 7)
{
@@ -6165,44 +6148,75 @@ gui_get_color_cmn(char_u *name)
/*
* Last attempt. Look in the file "$VIM/rgb.txt".
*/
fname = expand_env_save((char_u *)"$VIMRUNTIME/rgb.txt");
if (fname == NULL)
return INVALCOLOR;
fd = fopen((char *)fname, "rt");
vim_free(fname);
if (fd == NULL)
if (size == 0)
{
if (p_verbose > 1)
verb_msg((char_u *)_("Cannot open $VIMRUNTIME/rgb.txt"));
return INVALCOLOR;
}
int counting;
while (!feof(fd))
{
size_t len;
int pos;
/* colornames_table not yet initialized */
fname = expand_env_save((char_u *)"$VIMRUNTIME/rgb.txt");
if (fname == NULL)
return INVALCOLOR;
ignoredp = fgets(line, LINE_LEN, fd);
len = strlen(line);
if (len <= 1 || line[len - 1] != '\n')
continue;
line[len - 1] = '\0';
i = sscanf(line, "%d %d %d %n", &r, &g, &b, &pos);
if (i != 3)
continue;
if (STRICMP(line + pos, name) == 0)
fd = fopen((char *)fname, "rt");
vim_free(fname);
if (fd == NULL)
{
fclose(fd);
return (guicolor_T)RGB(r, g, b);
if (p_verbose > 1)
verb_msg((char_u *)_("Cannot open $VIMRUNTIME/rgb.txt"));
return INVALCOLOR;
}
for (counting = 1; counting >= 0; --counting)
{
if (!counting)
{
colornames_table = (struct rgbcolor_table_S *)alloc(
(unsigned)(sizeof(struct rgbcolor_table_S) * size));
if (colornames_table == NULL)
{
fclose(fd);
return INVALCOLOR;
}
rewind(fd);
}
size = 0;
while (!feof(fd))
{
size_t len;
int pos;
ignoredp = fgets(line, LINE_LEN, fd);
len = strlen(line);
if (len <= 1 || line[len - 1] != '\n')
continue;
line[len - 1] = '\0';
i = sscanf(line, "%d %d %d %n", &r, &g, &b, &pos);
if (i != 3)
continue;
if (!counting)
{
char_u *s = vim_strsave((char_u *)line + pos);
if (s == NULL)
return INVALCOLOR;
colornames_table[size].color_name = s;
colornames_table[size].color = (guicolor_T)RGB(r, g, b);
}
size++;
}
}
fclose(fd);
}
fclose(fd);
for (i = 0; i < size; i++)
if (STRICMP(name, colornames_table[i].color_name) == 0)
return colornames_table[i].color;
return INVALCOLOR;
}
#endif
+42
View File
@@ -78,3 +78,45 @@ function Test_autocmd_bufunload_with_tabnext()
tablast
quit
endfunc
func Test_win_tab_autocmd()
let g:record = []
augroup testing
au WinNew * call add(g:record, 'WinNew')
au WinEnter * call add(g:record, 'WinEnter')
au WinLeave * call add(g:record, 'WinLeave')
au TabNew * call add(g:record, 'TabNew')
au TabClosed * call add(g:record, 'TabClosed')
au TabEnter * call add(g:record, 'TabEnter')
au TabLeave * call add(g:record, 'TabLeave')
augroup END
split
tabnew
close
close
call assert_equal([
\ 'WinLeave', 'WinNew', 'WinEnter',
\ 'WinLeave', 'TabLeave', 'WinNew', 'WinEnter', 'TabNew', 'TabEnter',
\ 'WinLeave', 'TabLeave', 'TabClosed', 'WinEnter', 'TabEnter',
\ 'WinLeave', 'WinEnter'
\ ], g:record)
let g:record = []
tabnew somefile
tabnext
bwipe somefile
call assert_equal([
\ 'WinLeave', 'TabLeave', 'WinNew', 'WinEnter', 'TabNew', 'TabEnter',
\ 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter',
\ 'TabClosed'
\ ], g:record)
augroup testing
au!
augroup END
unlet g:record
endfunc
+2
View File
@@ -188,6 +188,7 @@ endfunc
" Test that we can open two channels.
func Ch_two_channels(port)
let handle = ch_open('localhost:' . a:port, s:chopt)
call assert_equal(v:t_channel, type(handle))
if ch_status(handle) == "fail"
call assert_false(1, "Can't open channel")
return
@@ -420,6 +421,7 @@ func Test_raw_pipe()
endif
call ch_log('Test_raw_pipe()')
let job = job_start(s:python . " test_channel_pipe.py", {'mode': 'raw'})
call assert_equal(v:t_job, type(job))
call assert_equal("run", job_status(job))
try
" For a change use the job where a channel is expected.
+18
View File
@@ -135,3 +135,21 @@ function Test_printf_64bit()
call assert_equal("123456789012345", printf('%d', 123456789012345))
endif
endfunc
func Test_substitute_expr()
let g:val = 'XXX'
call assert_equal('XXX', substitute('yyy', 'y*', '\=g:val', ''))
call assert_equal('XXX', substitute('yyy', 'y*', {-> g:val}, ''))
call assert_equal("-\u1b \uf2-", substitute("-%1b %f2-", '%\(\x\x\)',
\ '\=nr2char("0x" . submatch(1))', 'g'))
call assert_equal("-\u1b \uf2-", substitute("-%1b %f2-", '%\(\x\x\)',
\ {-> nr2char("0x" . submatch(1))}, 'g'))
call assert_equal('231', substitute('123', '\(.\)\(.\)\(.\)',
\ {-> submatch(2) . submatch(3) . submatch(1)}, ''))
func Recurse()
return substitute('yyy', 'y*', {-> g:val}, '')
endfunc
call assert_equal('--', substitute('xxx', 'x*', {-> '-' . Recurse() . '-'}, ''))
endfunc
+5
View File
@@ -46,3 +46,8 @@ function Test_lambda_fails()
call assert_fails('echo {a, a -> a + a}(1, 2)', 'E15:')
call assert_fails('echo {a, b -> a + b)}(1, 2)', 'E15:')
endfunc
func Test_not_lamda()
let x = {'>' : 'foo'}
call assert_equal('foo', x['>'])
endfunc
+4 -2
View File
@@ -53,8 +53,10 @@ endfunc
func Nb_file_auth(port)
call assert_fails('nbstart =notexist', 'E660:')
call writefile(['host=localhost', 'port=' . a:port, 'auth=bunny'], 'Xnbauth')
call setfperm('Xnbauth', "rw-r--r--")
call assert_fails('nbstart =Xnbauth', 'E668:')
if has('unix')
call setfperm('Xnbauth', "rw-r--r--")
call assert_fails('nbstart =Xnbauth', 'E668:')
endif
call setfperm('Xnbauth', "rw-------")
exe 'nbstart :localhost:' . a:port . ':bunny'
call assert_true(has("netbeans_enabled"))
+783
View File
@@ -33,3 +33,786 @@ func Test_missing_attr()
call assert_equal(fontname, synIDattr(hlID("Mine"), "font", 'gui'))
endif
endfunc
func Test_color_names()
let colors = [
\ 'AliceBlue',
\ 'AntiqueWhite',
\ 'AntiqueWhite1',
\ 'AntiqueWhite2',
\ 'AntiqueWhite3',
\ 'AntiqueWhite4',
\ 'BlanchedAlmond',
\ 'BlueViolet',
\ 'CadetBlue',
\ 'CadetBlue1',
\ 'CadetBlue2',
\ 'CadetBlue3',
\ 'CadetBlue4',
\ 'CornflowerBlue',
\ 'DarkBlue',
\ 'DarkCyan',
\ 'DarkGoldenrod',
\ 'DarkGoldenrod1',
\ 'DarkGoldenrod2',
\ 'DarkGoldenrod3',
\ 'DarkGoldenrod4',
\ 'DarkGray',
\ 'DarkGreen',
\ 'DarkGrey',
\ 'DarkKhaki',
\ 'DarkMagenta',
\ 'DarkOliveGreen',
\ 'DarkOliveGreen1',
\ 'DarkOliveGreen2',
\ 'DarkOliveGreen3',
\ 'DarkOliveGreen4',
\ 'DarkOrange',
\ 'DarkOrange1',
\ 'DarkOrange2',
\ 'DarkOrange3',
\ 'DarkOrange4',
\ 'DarkOrchid',
\ 'DarkOrchid1',
\ 'DarkOrchid2',
\ 'DarkOrchid3',
\ 'DarkOrchid4',
\ 'DarkRed',
\ 'DarkSalmon',
\ 'DarkSeaGreen',
\ 'DarkSeaGreen1',
\ 'DarkSeaGreen2',
\ 'DarkSeaGreen3',
\ 'DarkSeaGreen4',
\ 'DarkSlateBlue',
\ 'DarkSlateGray',
\ 'DarkSlateGray1',
\ 'DarkSlateGray2',
\ 'DarkSlateGray3',
\ 'DarkSlateGray4',
\ 'DarkSlateGrey',
\ 'DarkTurquoise',
\ 'DarkViolet',
\ 'DeepPink',
\ 'DeepPink1',
\ 'DeepPink2',
\ 'DeepPink3',
\ 'DeepPink4',
\ 'DeepSkyBlue',
\ 'DeepSkyBlue1',
\ 'DeepSkyBlue2',
\ 'DeepSkyBlue3',
\ 'DeepSkyBlue4',
\ 'DimGray',
\ 'DimGrey',
\ 'DodgerBlue',
\ 'DodgerBlue1',
\ 'DodgerBlue2',
\ 'DodgerBlue3',
\ 'DodgerBlue4',
\ 'FloralWhite',
\ 'ForestGreen',
\ 'GhostWhite',
\ 'GreenYellow',
\ 'HotPink',
\ 'HotPink1',
\ 'HotPink2',
\ 'HotPink3',
\ 'HotPink4',
\ 'IndianRed',
\ 'IndianRed1',
\ 'IndianRed2',
\ 'IndianRed3',
\ 'IndianRed4',
\ 'LavenderBlush',
\ 'LavenderBlush1',
\ 'LavenderBlush2',
\ 'LavenderBlush3',
\ 'LavenderBlush4',
\ 'LawnGreen',
\ 'LemonChiffon',
\ 'LemonChiffon1',
\ 'LemonChiffon2',
\ 'LemonChiffon3',
\ 'LemonChiffon4',
\ 'LightBlue',
\ 'LightBlue1',
\ 'LightBlue2',
\ 'LightBlue3',
\ 'LightBlue4',
\ 'LightCoral',
\ 'LightCyan',
\ 'LightCyan1',
\ 'LightCyan2',
\ 'LightCyan3',
\ 'LightCyan4',
\ 'LightGoldenrod',
\ 'LightGoldenrod1',
\ 'LightGoldenrod2',
\ 'LightGoldenrod3',
\ 'LightGoldenrod4',
\ 'LightGoldenrodYellow',
\ 'LightGray',
\ 'LightGreen',
\ 'LightGrey',
\ 'LightPink',
\ 'LightPink1',
\ 'LightPink2',
\ 'LightPink3',
\ 'LightPink4',
\ 'LightSalmon',
\ 'LightSalmon1',
\ 'LightSalmon2',
\ 'LightSalmon3',
\ 'LightSalmon4',
\ 'LightSeaGreen',
\ 'LightSkyBlue',
\ 'LightSkyBlue1',
\ 'LightSkyBlue2',
\ 'LightSkyBlue3',
\ 'LightSkyBlue4',
\ 'LightSlateBlue',
\ 'LightSlateGray',
\ 'LightSlateGrey',
\ 'LightSteelBlue',
\ 'LightSteelBlue1',
\ 'LightSteelBlue2',
\ 'LightSteelBlue3',
\ 'LightSteelBlue4',
\ 'LightYellow',
\ 'LightYellow1',
\ 'LightYellow2',
\ 'LightYellow3',
\ 'LightYellow4',
\ 'LimeGreen',
\ 'MediumAquamarine',
\ 'MediumBlue',
\ 'MediumOrchid',
\ 'MediumOrchid1',
\ 'MediumOrchid2',
\ 'MediumOrchid3',
\ 'MediumOrchid4',
\ 'MediumPurple',
\ 'MediumPurple1',
\ 'MediumPurple2',
\ 'MediumPurple3',
\ 'MediumPurple4',
\ 'MediumSeaGreen',
\ 'MediumSlateBlue',
\ 'MediumSpringGreen',
\ 'MediumTurquoise',
\ 'MediumVioletRed',
\ 'MidnightBlue',
\ 'MintCream',
\ 'MistyRose',
\ 'MistyRose1',
\ 'MistyRose2',
\ 'MistyRose3',
\ 'MistyRose4',
\ 'NavajoWhite',
\ 'NavajoWhite1',
\ 'NavajoWhite2',
\ 'NavajoWhite3',
\ 'NavajoWhite4',
\ 'NavyBlue',
\ 'OldLace',
\ 'OliveDrab',
\ 'OliveDrab1',
\ 'OliveDrab2',
\ 'OliveDrab3',
\ 'OliveDrab4',
\ 'OrangeRed',
\ 'OrangeRed1',
\ 'OrangeRed2',
\ 'OrangeRed3',
\ 'OrangeRed4',
\ 'PaleGoldenrod',
\ 'PaleGreen',
\ 'PaleGreen1',
\ 'PaleGreen2',
\ 'PaleGreen3',
\ 'PaleGreen4',
\ 'PaleTurquoise',
\ 'PaleTurquoise1',
\ 'PaleTurquoise2',
\ 'PaleTurquoise3',
\ 'PaleTurquoise4',
\ 'PaleVioletRed',
\ 'PaleVioletRed1',
\ 'PaleVioletRed2',
\ 'PaleVioletRed3',
\ 'PaleVioletRed4',
\ 'PapayaWhip',
\ 'PeachPuff',
\ 'PeachPuff1',
\ 'PeachPuff2',
\ 'PeachPuff3',
\ 'PeachPuff4',
\ 'PowderBlue',
\ 'RosyBrown',
\ 'RosyBrown1',
\ 'RosyBrown2',
\ 'RosyBrown3',
\ 'RosyBrown4',
\ 'RoyalBlue',
\ 'RoyalBlue1',
\ 'RoyalBlue2',
\ 'RoyalBlue3',
\ 'RoyalBlue4',
\ 'SaddleBrown',
\ 'SandyBrown',
\ 'SeaGreen',
\ 'SeaGreen1',
\ 'SeaGreen2',
\ 'SeaGreen3',
\ 'SeaGreen4',
\ 'SkyBlue',
\ 'SkyBlue1',
\ 'SkyBlue2',
\ 'SkyBlue3',
\ 'SkyBlue4',
\ 'SlateBlue',
\ 'SlateBlue1',
\ 'SlateBlue2',
\ 'SlateBlue3',
\ 'SlateBlue4',
\ 'SlateGray',
\ 'SlateGray1',
\ 'SlateGray2',
\ 'SlateGray3',
\ 'SlateGray4',
\ 'SlateGrey',
\ 'SpringGreen',
\ 'SpringGreen1',
\ 'SpringGreen2',
\ 'SpringGreen3',
\ 'SpringGreen4',
\ 'SteelBlue',
\ 'SteelBlue1',
\ 'SteelBlue2',
\ 'SteelBlue3',
\ 'SteelBlue4',
\ 'VioletRed',
\ 'VioletRed1',
\ 'VioletRed2',
\ 'VioletRed3',
\ 'VioletRed4',
\ 'WhiteSmoke',
\ 'YellowGreen',
\ 'alice blue',
\ 'antique white',
\ 'aquamarine',
\ 'aquamarine1',
\ 'aquamarine2',
\ 'aquamarine3',
\ 'aquamarine4',
\ 'azure',
\ 'azure1',
\ 'azure2',
\ 'azure3',
\ 'azure4',
\ 'beige',
\ 'bisque',
\ 'bisque1',
\ 'bisque2',
\ 'bisque3',
\ 'bisque4',
\ 'black',
\ 'blanched almond',
\ 'blue violet',
\ 'blue',
\ 'blue1',
\ 'blue2',
\ 'blue3',
\ 'blue4',
\ 'brown',
\ 'brown1',
\ 'brown2',
\ 'brown3',
\ 'brown4',
\ 'burlywood',
\ 'burlywood1',
\ 'burlywood2',
\ 'burlywood3',
\ 'burlywood4',
\ 'cadet blue',
\ 'chartreuse',
\ 'chartreuse1',
\ 'chartreuse2',
\ 'chartreuse3',
\ 'chartreuse4',
\ 'chocolate',
\ 'chocolate1',
\ 'chocolate2',
\ 'chocolate3',
\ 'chocolate4',
\ 'coral',
\ 'coral1',
\ 'coral2',
\ 'coral3',
\ 'coral4',
\ 'cornflower blue',
\ 'cornsilk',
\ 'cornsilk1',
\ 'cornsilk2',
\ 'cornsilk3',
\ 'cornsilk4',
\ 'cyan',
\ 'cyan1',
\ 'cyan2',
\ 'cyan3',
\ 'cyan4',
\ 'dark blue',
\ 'dark cyan',
\ 'dark goldenrod',
\ 'dark gray',
\ 'dark green',
\ 'dark grey',
\ 'dark khaki',
\ 'dark magenta',
\ 'dark olive green',
\ 'dark orange',
\ 'dark orchid',
\ 'dark red',
\ 'dark salmon',
\ 'dark sea green',
\ 'dark slate blue',
\ 'dark slate gray',
\ 'dark slate grey',
\ 'dark turquoise',
\ 'dark violet',
\ 'darkblue',
\ 'darkcyan',
\ 'darkgray',
\ 'darkgreen',
\ 'darkgrey',
\ 'darkmagenta',
\ 'darkred',
\ 'darkyellow',
\ 'deep pink',
\ 'deep sky blue',
\ 'dim gray',
\ 'dim grey',
\ 'dodger blue',
\ 'firebrick',
\ 'firebrick1',
\ 'firebrick2',
\ 'firebrick3',
\ 'firebrick4',
\ 'floral white',
\ 'forest green',
\ 'gainsboro',
\ 'ghost white',
\ 'gold',
\ 'gold1',
\ 'gold2',
\ 'gold3',
\ 'gold4',
\ 'goldenrod',
\ 'goldenrod1',
\ 'goldenrod2',
\ 'goldenrod3',
\ 'goldenrod4',
\ 'gray',
\ 'gray0',
\ 'gray1',
\ 'gray10',
\ 'gray100',
\ 'gray11',
\ 'gray12',
\ 'gray13',
\ 'gray14',
\ 'gray15',
\ 'gray16',
\ 'gray17',
\ 'gray18',
\ 'gray19',
\ 'gray2',
\ 'gray20',
\ 'gray21',
\ 'gray22',
\ 'gray23',
\ 'gray24',
\ 'gray25',
\ 'gray26',
\ 'gray27',
\ 'gray28',
\ 'gray29',
\ 'gray3',
\ 'gray30',
\ 'gray31',
\ 'gray32',
\ 'gray33',
\ 'gray34',
\ 'gray35',
\ 'gray36',
\ 'gray37',
\ 'gray38',
\ 'gray39',
\ 'gray4',
\ 'gray40',
\ 'gray41',
\ 'gray42',
\ 'gray43',
\ 'gray44',
\ 'gray45',
\ 'gray46',
\ 'gray47',
\ 'gray48',
\ 'gray49',
\ 'gray5',
\ 'gray50',
\ 'gray51',
\ 'gray52',
\ 'gray53',
\ 'gray54',
\ 'gray55',
\ 'gray56',
\ 'gray57',
\ 'gray58',
\ 'gray59',
\ 'gray6',
\ 'gray60',
\ 'gray61',
\ 'gray62',
\ 'gray63',
\ 'gray64',
\ 'gray65',
\ 'gray66',
\ 'gray67',
\ 'gray68',
\ 'gray69',
\ 'gray7',
\ 'gray70',
\ 'gray71',
\ 'gray72',
\ 'gray73',
\ 'gray74',
\ 'gray75',
\ 'gray76',
\ 'gray77',
\ 'gray78',
\ 'gray79',
\ 'gray8',
\ 'gray80',
\ 'gray81',
\ 'gray82',
\ 'gray83',
\ 'gray84',
\ 'gray85',
\ 'gray86',
\ 'gray87',
\ 'gray88',
\ 'gray89',
\ 'gray9',
\ 'gray90',
\ 'gray91',
\ 'gray92',
\ 'gray93',
\ 'gray94',
\ 'gray95',
\ 'gray96',
\ 'gray97',
\ 'gray98',
\ 'gray99',
\ 'green yellow',
\ 'green',
\ 'green1',
\ 'green2',
\ 'green3',
\ 'green4',
\ 'grey',
\ 'grey0',
\ 'grey1',
\ 'grey10',
\ 'grey100',
\ 'grey11',
\ 'grey12',
\ 'grey13',
\ 'grey14',
\ 'grey15',
\ 'grey16',
\ 'grey17',
\ 'grey18',
\ 'grey19',
\ 'grey2',
\ 'grey20',
\ 'grey21',
\ 'grey22',
\ 'grey23',
\ 'grey24',
\ 'grey25',
\ 'grey26',
\ 'grey27',
\ 'grey28',
\ 'grey29',
\ 'grey3',
\ 'grey30',
\ 'grey31',
\ 'grey32',
\ 'grey33',
\ 'grey34',
\ 'grey35',
\ 'grey36',
\ 'grey37',
\ 'grey38',
\ 'grey39',
\ 'grey4',
\ 'grey40',
\ 'grey41',
\ 'grey42',
\ 'grey43',
\ 'grey44',
\ 'grey45',
\ 'grey46',
\ 'grey47',
\ 'grey48',
\ 'grey49',
\ 'grey5',
\ 'grey50',
\ 'grey51',
\ 'grey52',
\ 'grey53',
\ 'grey54',
\ 'grey55',
\ 'grey56',
\ 'grey57',
\ 'grey58',
\ 'grey59',
\ 'grey6',
\ 'grey60',
\ 'grey61',
\ 'grey62',
\ 'grey63',
\ 'grey64',
\ 'grey65',
\ 'grey66',
\ 'grey67',
\ 'grey68',
\ 'grey69',
\ 'grey7',
\ 'grey70',
\ 'grey71',
\ 'grey72',
\ 'grey73',
\ 'grey74',
\ 'grey75',
\ 'grey76',
\ 'grey77',
\ 'grey78',
\ 'grey79',
\ 'grey8',
\ 'grey80',
\ 'grey81',
\ 'grey82',
\ 'grey83',
\ 'grey84',
\ 'grey85',
\ 'grey86',
\ 'grey87',
\ 'grey88',
\ 'grey89',
\ 'grey9',
\ 'grey90',
\ 'grey91',
\ 'grey92',
\ 'grey93',
\ 'grey94',
\ 'grey95',
\ 'grey96',
\ 'grey97',
\ 'grey98',
\ 'grey99',
\ 'honeydew',
\ 'honeydew1',
\ 'honeydew2',
\ 'honeydew3',
\ 'honeydew4',
\ 'hot pink',
\ 'indian red',
\ 'ivory',
\ 'ivory1',
\ 'ivory2',
\ 'ivory3',
\ 'ivory4',
\ 'khaki',
\ 'khaki1',
\ 'khaki2',
\ 'khaki3',
\ 'khaki4',
\ 'lavender blush',
\ 'lavender',
\ 'lawn green',
\ 'lemon chiffon',
\ 'light blue',
\ 'light coral',
\ 'light cyan',
\ 'light goldenrod yellow',
\ 'light goldenrod',
\ 'light gray',
\ 'light green',
\ 'light grey',
\ 'light pink',
\ 'light salmon',
\ 'light sea green',
\ 'light sky blue',
\ 'light slate blue',
\ 'light slate gray',
\ 'light slate grey',
\ 'light steel blue',
\ 'light yellow',
\ 'lightblue',
\ 'lightcyan',
\ 'lightgray',
\ 'lightgreen',
\ 'lightgrey',
\ 'lightmagenta',
\ 'lightred',
\ 'lightyellow',
\ 'lime green',
\ 'linen',
\ 'magenta',
\ 'magenta1',
\ 'magenta2',
\ 'magenta3',
\ 'magenta4',
\ 'maroon',
\ 'maroon1',
\ 'maroon2',
\ 'maroon3',
\ 'maroon4',
\ 'medium aquamarine',
\ 'medium blue',
\ 'medium orchid',
\ 'medium purple',
\ 'medium sea green',
\ 'medium slate blue',
\ 'medium spring green',
\ 'medium turquoise',
\ 'medium violet red',
\ 'midnight blue',
\ 'mint cream',
\ 'misty rose',
\ 'moccasin',
\ 'navajo white',
\ 'navy blue',
\ 'navy',
\ 'old lace',
\ 'olive drab',
\ 'orange red',
\ 'orange',
\ 'orange1',
\ 'orange2',
\ 'orange3',
\ 'orange4',
\ 'orchid',
\ 'orchid1',
\ 'orchid2',
\ 'orchid3',
\ 'orchid4',
\ 'pale goldenrod',
\ 'pale green',
\ 'pale turquoise',
\ 'pale violet red',
\ 'papaya whip',
\ 'peach puff',
\ 'peru',
\ 'pink',
\ 'pink1',
\ 'pink2',
\ 'pink3',
\ 'pink4',
\ 'plum',
\ 'plum1',
\ 'plum2',
\ 'plum3',
\ 'plum4',
\ 'powder blue',
\ 'purple',
\ 'purple1',
\ 'purple2',
\ 'purple3',
\ 'purple4',
\ 'red',
\ 'red1',
\ 'red2',
\ 'red3',
\ 'red4',
\ 'rosy brown',
\ 'royal blue',
\ 'saddle brown',
\ 'salmon',
\ 'salmon1',
\ 'salmon2',
\ 'salmon3',
\ 'salmon4',
\ 'sandy brown',
\ 'sea green',
\ 'seagreen',
\ 'seashell',
\ 'seashell1',
\ 'seashell2',
\ 'seashell3',
\ 'seashell4',
\ 'sienna',
\ 'sienna1',
\ 'sienna2',
\ 'sienna3',
\ 'sienna4',
\ 'sky blue',
\ 'slate blue',
\ 'slate gray',
\ 'slate grey',
\ 'slateblue',
\ 'snow',
\ 'snow1',
\ 'snow2',
\ 'snow3',
\ 'snow4',
\ 'spring green',
\ 'steel blue',
\ 'tan',
\ 'tan1',
\ 'tan2',
\ 'tan3',
\ 'tan4',
\ 'thistle',
\ 'thistle1',
\ 'thistle2',
\ 'thistle3',
\ 'thistle4',
\ 'tomato',
\ 'tomato1',
\ 'tomato2',
\ 'tomato3',
\ 'tomato4',
\ 'turquoise',
\ 'turquoise1',
\ 'turquoise2',
\ 'turquoise3',
\ 'turquoise4',
\ 'violet red',
\ 'violet',
\ 'wheat',
\ 'wheat1',
\ 'wheat2',
\ 'wheat3',
\ 'wheat4',
\ 'white smoke',
\ 'white',
\ 'yellow green',
\ 'yellow',
\ 'yellow1',
\ 'yellow2',
\ 'yellow3',
\ 'yellow4',
\ ]
for color in colors
" just test that the color name can be found.
exe "hi Mine guifg='" . color . "'"
endfor
" case is ignored
hi Mine guifg=blanchedalmond
hi Mine guifg=BLANCHEDALMOND
endfunc
+14
View File
@@ -950,6 +950,20 @@ func Test_type()
call assert_equal(6, type(v:true))
call assert_equal(7, type(v:none))
call assert_equal(7, type(v:null))
call assert_equal(8, v:t_job)
call assert_equal(9, v:t_channel)
call assert_equal(v:t_number, type(0))
call assert_equal(v:t_string, type(""))
call assert_equal(v:t_func, type(function("tr")))
call assert_equal(v:t_func, type(function("tr", [8])))
call assert_equal(v:t_list, type([]))
call assert_equal(v:t_dict, type({}))
call assert_equal(v:t_float, type(0.0))
call assert_equal(v:t_bool, type(v:false))
call assert_equal(v:t_bool, type(v:true))
call assert_equal(v:t_none, type(v:none))
call assert_equal(v:t_none, type(v:null))
call assert_equal(0, 0 + v:false)
call assert_equal(1, 0 + v:true)
+7 -4
View File
@@ -58,9 +58,8 @@ struct ufunc
#define FC_DICT 4 /* Dict function, uses "self" */
/* From user function to hashitem and back. */
static ufunc_T dumuf;
#define UF2HIKEY(fp) ((fp)->uf_name)
#define HIKEY2UF(p) ((ufunc_T *)(p - (dumuf.uf_name - (char_u *)&dumuf)))
#define HIKEY2UF(p) ((ufunc_T *)(p - offsetof(ufunc_T, uf_name)))
#define HI2UF(hi) HIKEY2UF((hi)->hi_key)
#define FUNCARG(fp, j) ((char_u **)(fp->uf_args.ga_data))[j]
@@ -151,7 +150,9 @@ func_init()
hash_init(&func_hashtab);
}
/* Get function arguments. */
/*
* Get function arguments.
*/
static int
get_function_args(
char_u **argp,
@@ -233,7 +234,9 @@ get_function_args(
break;
}
}
++p; /* skip the ')' */
if (*p != endchar)
goto err_ret;
++p; /* skip "endchar" */
*argp = p;
return OK;
+26
View File
@@ -773,6 +773,32 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
2080,
/**/
2079,
/**/
2078,
/**/
2077,
/**/
2076,
/**/
2075,
/**/
2074,
/**/
2073,
/**/
2072,
/**/
2071,
/**/
2070,
/**/
2069,
/**/
2068,
/**/
2067,
/**/
+30 -3
View File
@@ -1318,6 +1318,7 @@ enum auto_event
EVENT_VIMRESIZED, /* after Vim window was resized */
EVENT_WINENTER, /* after entering a window */
EVENT_WINLEAVE, /* before leaving a window */
EVENT_WINNEW, /* when entering a new window */
EVENT_ENCODINGCHANGED, /* after changing the 'encoding' option */
EVENT_INSERTCHARPRE, /* before inserting a char */
EVENT_CURSORHOLD, /* cursor in same position for a while */
@@ -1330,8 +1331,10 @@ enum auto_event
EVENT_SPELLFILEMISSING, /* spell file missing */
EVENT_CURSORMOVED, /* cursor was moved */
EVENT_CURSORMOVEDI, /* cursor was moved in Insert mode */
EVENT_TABLEAVE, /* before leaving a tab page */
EVENT_TABENTER, /* after entering a tab page */
EVENT_TABLEAVE, /* before leaving a tab page */
EVENT_TABNEW, /* when entering a new tab page */
EVENT_TABCLOSED, /* after closing a tab page */
EVENT_SHELLCMDPOST, /* after ":!cmd" */
EVENT_SHELLFILTERPOST, /* after ":1,2!cmd", ":w !cmd", ":r !cmd". */
EVENT_TEXTCHANGED, /* text was modified */
@@ -1652,7 +1655,7 @@ typedef UINT32_TYPEDEF UINT32_T;
#ifdef HAVE_STRERROR
# define PERROR(msg) (void)emsg3((char_u *)"%s: %s", (char_u *)msg, (char_u *)strerror(errno))
#else
# define PERROR(msg) perror(msg)
# define PERROR(msg) do_perror(msg)
#endif
typedef long linenr_T; /* line number type */
@@ -1971,7 +1974,17 @@ typedef int sock_T;
#define VV_NONE 68
#define VV_VIM_DID_ENTER 69
#define VV_TESTING 70
#define VV_LEN 71 /* number of v: vars */
#define VV_TYPE_NUMBER 71
#define VV_TYPE_STRING 72
#define VV_TYPE_FUNC 73
#define VV_TYPE_LIST 74
#define VV_TYPE_DICT 75
#define VV_TYPE_FLOAT 76
#define VV_TYPE_BOOL 77
#define VV_TYPE_NONE 78
#define VV_TYPE_JOB 79
#define VV_TYPE_CHANNEL 80
#define VV_LEN 81 /* number of v: vars */
/* used for v_number in VAR_SPECIAL */
#define VVAL_FALSE 0L
@@ -1979,6 +1992,18 @@ typedef int sock_T;
#define VVAL_NONE 2L
#define VVAL_NULL 3L
/* Type values for type(). */
#define VAR_TYPE_NUMBER 0
#define VAR_TYPE_STRING 1
#define VAR_TYPE_FUNC 2
#define VAR_TYPE_LIST 3
#define VAR_TYPE_DICT 4
#define VAR_TYPE_FLOAT 5
#define VAR_TYPE_BOOL 6
#define VAR_TYPE_NONE 7
#define VAR_TYPE_JOB 8
#define VAR_TYPE_CHANNEL 9
#ifdef FEAT_CLIPBOARD
/* VIM_ATOM_NAME is the older Vim-specific selection type for X11. Still
@@ -2064,6 +2089,8 @@ typedef enum
} assert_type_T;
#include "ex_cmds.h" /* Ex command defines */
#include "spell.h" /* spell checking stuff */
#include "proto.h" /* function prototypes */
/* This has to go after the include of proto.h, as proto/gui.pro declares
+19 -5
View File
@@ -45,7 +45,7 @@ static int leave_tabpage(buf_T *new_curbuf, int trigger_leave_autocmds);
static void enter_tabpage(tabpage_T *tp, buf_T *old_curbuf, int trigger_enter_autocmds, int trigger_leave_autocmds);
static void frame_fix_height(win_T *wp);
static int frame_minheight(frame_T *topfrp, win_T *next_curwin);
static void win_enter_ext(win_T *wp, int undo_sync, int no_curwin, int trigger_enter_autocmds, int trigger_leave_autocmds);
static void win_enter_ext(win_T *wp, int undo_sync, int no_curwin, int trigger_new_autocmds, int trigger_enter_autocmds, int trigger_leave_autocmds);
static void win_free(win_T *wp, tabpage_T *tp);
static void frame_append(frame_T *after, frame_T *frp);
static void frame_insert(frame_T *before, frame_T *frp);
@@ -1264,7 +1264,7 @@ win_split_ins(
/*
* make the new window the current window
*/
win_enter(wp, FALSE);
win_enter_ext(wp, FALSE, FALSE, TRUE, TRUE, TRUE);
if (flags & WSP_VERT)
p_wiw = i;
else
@@ -2100,6 +2100,9 @@ close_windows(
win_T *wp;
tabpage_T *tp, *nexttp;
int h = tabline_height();
#ifdef FEAT_AUTOCMD
int count = tabpage_index(NULL);
#endif
++RedrawingDisabled;
@@ -2143,6 +2146,11 @@ close_windows(
--RedrawingDisabled;
#ifdef FEAT_AUTOCMD
if (count != tabpage_index(NULL))
apply_autocmds(EVENT_TABCLOSED, NULL, NULL, FALSE, curbuf);
#endif
redraw_tabline = TRUE;
if (h != tabline_height())
shell_new_rows();
@@ -2225,6 +2233,7 @@ close_last_window_tabpage(
/* Since goto_tabpage_tp above did not trigger *Enter autocommands, do
* that now. */
#ifdef FEAT_AUTOCMD
apply_autocmds(EVENT_TABCLOSED, NULL, NULL, FALSE, curbuf);
apply_autocmds(EVENT_WINENTER, NULL, NULL, FALSE, curbuf);
apply_autocmds(EVENT_TABENTER, NULL, NULL, FALSE, curbuf);
if (old_curbuf != curbuf)
@@ -2421,7 +2430,7 @@ win_close(win_T *win, int free_buf)
win_comp_pos();
if (close_curwin)
{
win_enter_ext(wp, FALSE, TRUE, TRUE, TRUE);
win_enter_ext(wp, FALSE, TRUE, FALSE, TRUE, TRUE);
#ifdef FEAT_AUTOCMD
if (other_buffer)
/* careful: after this wp and win may be invalid! */
@@ -3634,7 +3643,9 @@ win_new_tabpage(int after)
redraw_all_later(CLEAR);
#ifdef FEAT_AUTOCMD
apply_autocmds(EVENT_WINNEW, NULL, NULL, FALSE, curbuf);
apply_autocmds(EVENT_WINENTER, NULL, NULL, FALSE, curbuf);
apply_autocmds(EVENT_TABNEW, NULL, NULL, FALSE, curbuf);
apply_autocmds(EVENT_TABENTER, NULL, NULL, FALSE, curbuf);
#endif
return OK;
@@ -3813,7 +3824,7 @@ enter_tabpage(
/* We would like doing the TabEnter event first, but we don't have a
* valid current window yet, which may break some commands.
* This triggers autocommands, thus may make "tp" invalid. */
win_enter_ext(tp->tp_curwin, FALSE, TRUE,
win_enter_ext(tp->tp_curwin, FALSE, TRUE, FALSE,
trigger_enter_autocmds, trigger_leave_autocmds);
prevwin = next_prevwin;
@@ -4247,7 +4258,7 @@ end:
void
win_enter(win_T *wp, int undo_sync)
{
win_enter_ext(wp, undo_sync, FALSE, TRUE, TRUE);
win_enter_ext(wp, undo_sync, FALSE, FALSE, TRUE, TRUE);
}
/*
@@ -4260,6 +4271,7 @@ win_enter_ext(
win_T *wp,
int undo_sync,
int curwin_invalid,
int trigger_new_autocmds UNUSED,
int trigger_enter_autocmds UNUSED,
int trigger_leave_autocmds UNUSED)
{
@@ -4345,6 +4357,8 @@ win_enter_ext(
}
#ifdef FEAT_AUTOCMD
if (trigger_new_autocmds)
apply_autocmds(EVENT_WINNEW, NULL, NULL, FALSE, curbuf);
if (trigger_enter_autocmds)
{
apply_autocmds(EVENT_WINENTER, NULL, NULL, FALSE, curbuf);