summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2005-01-04 21:52:38 +0000
committerBram Moolenaar <Bram@vim.org>2005-01-04 21:52:38 +0000
commitc70646c652f5dfdcf6706b19c31f3fc62aea9621 (patch)
tree53e7eff8250fab363a7670cf916b38a3daf198b5 /src
parent0a56cb85a67baca0ce2a530a56c5cb213899ae22 (diff)
updated for version 7.0030v7.0030
Diffstat (limited to 'src')
-rw-r--r--src/Make_agui.mak356
-rw-r--r--src/Make_aros.mak29
-rw-r--r--src/Make_morph.mak12
-rw-r--r--src/eval.c3452
-rw-r--r--src/gui_amiga.c1812
-rw-r--r--src/gui_amiga.h52
-rw-r--r--src/gui_beos.cc3358
-rw-r--r--src/gui_beos.h49
-rw-r--r--src/proto/gui_amiga.pro69
-rw-r--r--src/proto/gui_beos.pro14
-rw-r--r--src/proto/os_beos.pro4
11 files changed, 1842 insertions, 7365 deletions
diff --git a/src/Make_agui.mak b/src/Make_agui.mak
deleted file mode 100644
index 7b30a19760..0000000000
--- a/src/Make_agui.mak
+++ /dev/null
@@ -1,356 +0,0 @@
-#
-# Makefile for VIM on the Amiga, using SAS/Lattice C 6.0 to 6.56
-#
-# Do NOT use the peephole optimizer with a version before 6.55!
-# It messes up all kinds of things:
-# For 6.0 and 6.1, expand_env() will not work correctly.
-# For 6.2 and 6.3 the call to free_line in u_freeentry is wrong.
-# Don't know about 6.50, might work...
-# Version 6.56 seems to be working fine.
-# You should use Manx Aztec C whenever possible.
-#
-# The prototypes from Manx and SAS are incompatible. If the prototypes
-# were generated by Manx, first do "touch *.c; make proto" before "make".
-# The prototypes generated on Unix work for both.
-#
-# Note: Not all dependencies are included. This was done to avoid having
-# to compile everything when a global variable or function is added.
-
-#>>>>> choose options:
-
-#ANSI CODES
-ANSIOFF = *e[0m
-BBOLD = *e[1m
-WBOLD = *e[2m
-ITALIC = *e[3m
-UNDERLI = *e[4m
-ANSIOFF = *e[0m
-FCOL1 = *e[31m
-FCOL2 = *e[32m
-FCOL3 = *e[33m
-FCOL4 = *e[34m
-BCOL1 = *e[41m
-BCOL2 = *e[42m
-BCOL3 = *e[43m
-BCOL4 = *e[44m
-
-
-### See feature.h for a list of optionals.
-### Any other defines can be included here.
-
-DEFINES = DEF=NO_ARP DEF=AMIGA DEF=NEWSASC DEF=FEAT_GUI_AMIGA \
- DEF="SASC=658" #" this fixes a bug in the syntax highlighting
-
-#>>>>> if HAVE_TGETENT is defined termlib.o has to be used
-#TERMLIB = termlib.o
-TERMLIB =
-
-#>>>>> choose NODEBUG for normal compiling, the other for debugging and
-# profiling
-# don't switch on debugging when generating proto files, it crashes the
-# compiler.
-DBG = NODEBUG
-#DBG = DBG=FULLFLUSH
-#DBG = DBG=LINE
-
-#>>>>> choose NOOPTPEEP for 6.0 to 6.3, NOOPT for debugging
-#OPTIMIZE=NOOPTPEEP OPT
-
-# for 6.58 you can use the line below, but be warned it takes a loooonnnggg time
-#OPTIMIZE=OPT OPTIMIZERSCHEDULER OPTIMIZERTIME NoOPTIMIZERALIAS \
-# OptimizerComplexity=10 OptimizerDepth=10 OptimizerRecurDepth=10 \
-# OptimizerInLocal OPTPEEP
-OPTIMIZE=OPT OPTIMIZERTIME NoOPTIMIZERALIAS \
- OptimizerComplexity=10 OptimizerDepth=10 OptimizerRecurDepth=10 \
- OptimizerInLocal OPTPEEP
-#OPTIMIZE = NOOPT
-
-# no optimization, (works on all platforms)
-#OPTIMIZE=NOOPT
-
-#generate code for your processor - note however, that the 060 selection will work for 040's
-# as well.
-#CPU=68000
-#CPU=68020
-#CPU=68030
-#CPU=68040
-CPU=68060
-
-
-#Error reporting - I use rexx for reporting, but console reporting may be more
-#useful for some people.
-#ERROR = ERRORCONSOLE ERRORSOURCE ERRORHIGHLIGHT
-ERROR = ERRORREXX ERRORCONSOLE ERRORSOURCE ERRORHIGHLIGHT
-
-
-#memory types, if you have fast use it :->,
-# ANY = will work on all machines
-# FAST = this is the best option, for speed
-# CHIP = not necessary for this application.
-#MEMORYTYPE=FAST
-MEMORYTYPE=ANY
-
-#MEMSIZE - this is for compile time only for speed of compilation
-#default is LARGE
-MEMSIZE=HUGE
-#MEMSIZE=LARGE
-#MEMSIZE=SMALL
-
-#>>>>> end of choices
-###########################################################################
-
-CC = sc
-
-GST=vim.gst
-DEP = $(GST)
-
-
-CFLAGS = NOLINK $(DBG) CPU=$(CPU) NOSTACKCHECK
-CFLAGS2 = $(OPTIMIZE) $(ERROR) GSTIMMEDIATE GST=$(GST)
-CFLAGS3 =NOSINT SCODE SDATA STRINGMERGE MEMSIZE=$(MEMSIZE)
-CFLAGS4 = $(DEFINES) DATAMEMORY=$(MEMORYTYPE)
-
-PROPT = DEF=PROTO GPROTO GPPARM MAXIMUMERRORS=999 GENPROTOSTATICS GENPROTOPARAMETERS
-
-SRC = \
- buffer.c \
- charset.c \
- diff.c \
- digraph.c \
- edit.c \
- eval.c \
- ex_cmds.c \
- ex_cmds2.c \
- ex_docmd.c \
- ex_eval.c \
- ex_getln.c \
- fileio.c \
- fold.c \
- getchar.c \
- main.c \
- mark.c \
- memfile.c \
- memline.c \
- menu.c \
- message.c \
- misc1.c \
- misc2.c \
- move.c \
- normal.c \
- ops.c \
- option.c \
- os_amiga.c \
- quickfix.c \
- regexp.c \
- screen.c \
- search.c \
- syntax.c \
- tag.c \
- term.c \
- ui.c \
- undo.c \
- window.c \
- version.c \
- gui_amiga.c \
- gui.c
-
-OBJ = buffer.o charset.o diff.o digraph.o edit.o eval.o ex_cmds.o ex_cmds2.o ex_docmd.o ex_eval.o ex_getln.o \
- fileio.o fold.o getchar.o main.o mark.o memfile.o memline.o menu.o message.o misc1.o misc2.o move.o \
- normal.o ops.o option.o os_amiga.o quickfix.o regexp.o screen.o search.o syntax.o \
- tag.o term.o ui.o undo.o window.o gui_amiga.o gui.o $(TERMLIB)
-
-PRO = \
- buffer.pro \
- charset.pro \
- diff.pro \
- digraph.pro \
- edit.pro \
- eval.pro \
- ex_cmds.pro \
- ex_cmds2.pro \
- ex_docmd.pro \
- ex_eval.pro \
- ex_getln.pro \
- fileio.pro \
- fold.pro \
- getchar.pro \
- main.pro \
- mark.pro \
- memfile.pro \
- memline.pro \
- menu.pro \
- message.pro \
- misc1.pro \
- misc2.pro \
- move.pro \
- normal.pro \
- ops.pro \
- option.pro \
- os_amiga.pro \
- quickfix.pro \
- regexp.pro \
- screen.pro \
- search.pro \
- syntax.pro \
- tag.pro \
- term.pro \
- termlib.pro \
- ui.pro \
- undo.pro \
- window.pro \
- version.pro \
- gui_amiga.pro \
- gui.pro
-
-all:
- @echo "$(BCOL2)building prototypes, this may take some time$(ANSIOFF)"
- @smake proto
- @echo "$(BCOL2)building vim production version$(ANSIOFF)"
- @smake vim
-
-Vim: scoptions proto $(OBJ) version.c version.h
- $(CC) $(CFLAGS) version.c
- $(CC) LINK $(OPT) $(COPTS) $(OBJ) version.o $(DBG) PNAME=Vim
-
-debug: scoption protos $(OBJ) version.c version.h
- $(CC) $(CFLAGS) version.c
- $(CC) LINK $(COPTS) $(OBJ) version.o $(DBG) PNAME=Vim
-
-proto: $(PRO)
-
-tags: $(SRC)
- spat ctags $(SRC) *.h
- #csh -c ctags $(SRC) *.h
-
-# can't use delete here, too many file names
-clean:
- @echo removing all object files
- -delete $(OBJ) >nil:
-
-clobber: clean
- @echo removing all prototype files
- -delete $(PRO) SCOPTIONS vim $(GST) > NIL:
-
-
-# generate an options file, as there is no way the amiga command line can handle the
-# lengths that this makefile will impose on the shell.
-scoptions: smakefile
- @echo "$(BCOL2)Generating $(ANSIOFF)$(FCOL4)- $@$(ANSIOFF)"
- @echo $(CFLAGS) > scoptions
- @echo $(CFLAGS1) >> scoptions
- @echo $(CFLAGS2) >> scoptions
- @echo $(CFLAGS3) >> scoptions
- @echo $(CFLAGS4) >> scoptions
- @echo $(COPTS) >>scoptions
- @echo scoptions has been built
-
-
-#generate GlobalSymbolTable, which both speeds up the compile time, but also
-#solves some problems with prototypes, and types that are defined in a unixy
-#manner.
-#
-#I use a preprocessing stage here to work arounda bug in the GST generator, in
-#that it does not handle nested makefiles properly in this stage.
-$(GST): scoptions vim.h keymap.h macros.h ascii.h term.h structs.h gui.h gui_amiga.h
- @echo "$(BCOL2)Generating Global Symbol Table $(ANSIOFF)$(FCOL4) $(GST) $(ANSIOFF)"
- $(CC) PREPROCESSORONLY gui_amiga.h objectname pre.h
- $(CC) MGST=$(GST) pre.h ignore=105,316
- del pre.h
-
-
-###########################################################################
-
-.c.o:
- @echo "$(BCOL2)Generating object for $(ANSIOFF)$(FCOL4) $*.c -> $@$(ANSIOFF)"
- $(CC) $*.c
-
-.c.pro:
- @echo "$(BCOL2)Generating prototypes for $(ANSIOFF)$(FCOL4) $*.c -> $@$(ANSIOFF)"
- @$(CC) NOERRORREXX GPFILE=$*.pro $(PROPT) $*.c ignore=306,316,317,304
-
-$(PRO): $(GST)
-$(OBJ): $(GST)
-
-# dependancies
-buffer.o: buffer.c $(DEP)
-buffer.pro: buffer.c $(DEP)
-charset.o: charset.c $(DEP)
-charset.pro: charset.c $(DEP)
-diff.o: diff.c $(DEP)
-diff.pro: diff.c $(DEP)
-digraph.o: digraph.c $(DEP)
-digraph.pro: digraph.c $(DEP)
-edit.o: edit.c $(DEP)
-edit.pro: edit.c $(DEP)
-eval.o: eval.c $(DEP)
-eval.pro: eval.c $(DEP)
-ex_cmds.o: ex_cmds.c $(DEP)
-ex_cmds.pro: ex_cmds.c $(DEP)
-ex_cmds2.o: ex_cmds2.c $(DEP)
-ex_cmds2.pro: ex_cmds2.c $(DEP)
-ex_docmd.o: ex_docmd.c ex_cmds.h $(DEP)
-ex_docmd.pro: ex_docmd.c ex_cmds.h $(DEP)
-ex_eval.o: ex_eval.c ex_cmds.h $(DEP)
-ex_eval.pro: ex_eval.c ex_cmds.h $(DEP)
-ex_getln.o: ex_getln.c $(DEP)
-ex_getln.pro: ex_getln.c $(DEP)
-fileio.o: fileio.c $(DEP)
-fileio.pro: fileio.c $(DEP)
-fold.o: fold.c $(DEP)
-fold.pro: fold.c $(DEP)
-getchar.o: getchar.c $(DEP)
-getchar.pro: getchar.c $(DEP)
-main.o: main.c globals.h $(DEP)
-main.pro: main.c globals.h $(DEP)
-mark.o: mark.c $(DEP)
-mark.pro: mark.c $(DEP)
-memfile.o: memfile.c $(DEP)
-memfile.pro: memfile.c $(DEP)
-memline.o: memline.c $(DEP)
-memline.pro: memline.c $(DEP)
-menu.o: menu.c $(DEP)
-menu.pro: menu.c $(DEP)
-message.o: message.c $(DEP)
-message.pro: message.c $(DEP)
-misc1.o: misc1.c $(DEP)
-misc1.pro: misc1.c $(DEP)
-misc2.o: misc2.c $(DEP)
-misc2.pro: misc2.c $(DEP)
-move.o: move.c $(DEP)
-move.pro: move.c $(DEP)
-normal.o: normal.c $(DEP)
-normal.pro: normal.c $(DEP)
-ops.o: ops.c $(DEP)
-ops.pro: ops.c $(DEP)
-option.o: option.c $(DEP)
-option.pro: option.c $(DEP)
-os_amiga.o: os_amiga.c $(DEP)
-os_amiga.pro: os_amiga.c $(DEP)
-quickfix.o: quickfix.c $(DEP)
-quickfix.pro: quickfix.c $(DEP)
-regexp.o: regexp.c $(DEP)
-regexp.pro: regexp.c $(DEP)
-screen.o: screen.c $(DEP)
-screen.pro: screen.c $(DEP)
-search.o: search.c $(DEP)
-search.pro: search.c $(DEP)
-syntax.o: syntax.c $(DEP)
-syntax.pro: syntax.c $(DEP)
-tag.o: tag.c $(DEP)
-tag.pro: tag.c $(DEP)
-term.o: term.c $(DEP)
-term.pro: term.c $(DEP)
-termlib.o: termlib.c $(DEP)
-termlib.pro: termlib.c $(DEP)
-ui.o: ui.c $(DEP)
-ui.pro: ui.c $(DEP)
-undo.o: undo.c $(DEP)
-undo.pro: undo.c $(DEP)
-window.o: window.c $(DEP)
-window.pro: window.c $(DEP)
-gui_amiga.o: gui_amiga.c $(DEP) amiga.h
-#gui_amiga.pro: gui_amiga.c $(DEP) amiga.h
-amiga.o: amiga.c $(DEP) amiga.h
-amiga.pro: amiga.c $(DEP) amiga.h
-gui.o: gui.c $(DEP)
-gui.pro: gui.c $(DEP)
diff --git a/src/Make_aros.mak b/src/Make_aros.mak
deleted file mode 100644
index 5d26eef0e6..0000000000
--- a/src/Make_aros.mak
+++ /dev/null
@@ -1,29 +0,0 @@
-# Makefile for AROS
-
-CFLAGS = -pipe -O2 -Wall -Iproto \
- -DNO_ARP -DUSE_TMPNAM -DFEAT_GUI_AMIGA
-
-PRG = VIM
-LIBS =
-CC = i386-linux-aros-gcc
-LD = i386-linux-aros-gcc
-RM = rm
-
-SRCS = buffer.c charset.c diff.c digraph.c edit.c eval.c ex_cmds.c \
- ex_cmds2.c ex_docmd.c ex_eval.c ex_getln.c fileio.c fold.c getchar.c \
- main.c mark.c mbyte.c memfile.c memline.c menu.c message.c misc1.c \
- misc2.c move.c normal.c ops.c option.c os_amiga.c quickfix.c \
- regexp.c screen.c search.c syntax.c tag.c term.c ui.c undo.c \
- version.c window.c gui_amiga.c gui.c
-
-OBJS = $(SRCS:.c=.o)
-
-
-$(PRG): $(OBJS)
- ${LD} -o $(PRG) $(OBJS) $(LIBS)
-
-.c.o:
- ${CC} -c ${CFLAGS} $< -o $@
-
-clean:
- $(RM) -fv $(OBJS) $(PRG)
diff --git a/src/Make_morph.mak b/src/Make_morph.mak
index f9ceb50c5c..ffcb81454e 100644
--- a/src/Make_morph.mak
+++ b/src/Make_morph.mak
@@ -2,16 +2,6 @@
# Makefile for VIM, using MorphOS SDK (gcc 2.95.3)
#
-# Uncomment the following two lines and comment the two after in
-# case you want to play with GVIM MorphOS. But it's still known
-# to not work at all. So meanwhile it's better to stick with VIM.
-
-# GVIM = -DFEAT_GUI_AMIGA
-# GVIMSRC = gui_amiga.c gui.c
-
-GVIM =
-GVIMSRC =
-
CFLAGS = -c \
-pipe \
-O2 \
@@ -19,7 +9,6 @@ CFLAGS = -c \
\
-DNO_ARP \
-DUSE_TMPNAM \
- ${GVIM} \
\
-I proto \
\
@@ -74,7 +63,6 @@ SRC = buffer.c \
undo.c \
version.c \
window.c \
- ${GVIMSRC}
OBJ = $(SRC:.c=.o)
diff --git a/src/eval.c b/src/eval.c
index 82d1c69c52..e812e5329f 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -94,7 +94,11 @@ struct listvar_S
typedef struct listvar_S listvar;
#define VAR_LIST_MAXNEST 100 /* maximum nesting of lists */
-static char_u *e_listidx = (char_u *)N_("E999: list index out of range: %ld");
+static char *e_letunexp = N_("E18: Unexpected characters in :let");
+static char *e_listidx = N_("E999: list index out of range: %ld");
+static char *e_undefvar = N_("E121: Undefined variable: %s");
+static char *e_missbrac = N_("E111: Missing ']'");
+static char *e_intern2 = N_("E999: Internal error: %s");
/*
* All user-defined global variables are stored in "variables".
@@ -159,7 +163,7 @@ struct funccall
var firstline; /* "a:firstline" variable */
var lastline; /* "a:lastline" variable */
garray_T l_vars; /* local function variables */
- typeval *retvar; /* return value variable */
+ typeval *rettv; /* return value */
linenr_T breakpoint; /* next line with breakpoint or zero */
int dbg_tick; /* debug_tick when breakpoint was set */
int level; /* top nesting level of executed function */
@@ -275,19 +279,19 @@ struct vimvar
{"insertmode", sizeof("insertmode") - 1, NULL, VAR_STRING, VV_RO},
};
-static int eval0 __ARGS((char_u *arg, VAR retvar, char_u **nextcmd, int evaluate));
-static int eval1 __ARGS((char_u **arg, typeval *retvar, int evaluate));
-static int eval2 __ARGS((char_u **arg, typeval *retvar, int evaluate));
-static int eval3 __ARGS((char_u **arg, typeval *retvar, int evaluate));
-static int eval4 __ARGS((char_u **arg, typeval *retvar, int evaluate));
-static int eval5 __ARGS((char_u **arg, typeval *retvar, int evaluate));
-static int eval6 __ARGS((char_u **arg, typeval *retvar, int evaluate));
-static int eval7 __ARGS((char_u **arg, typeval *retvar, int evaluate));
-static int eval_index __ARGS((char_u **arg, typeval *retvar, int evaluate));
-static int get_option_vartv __ARGS((char_u **arg, typeval *retvar, int evaluate));
-static int get_string_vartv __ARGS((char_u **arg, typeval *retvar, int evaluate));
-static int get_lit_string_vartv __ARGS((char_u **arg, typeval *retvar, int evaluate));
-static int get_list_vartv __ARGS((char_u **arg, typeval *retvar, int evaluate));
+static int eval0 __ARGS((char_u *arg, typeval *rettv, char_u **nextcmd, int evaluate));
+static int eval1 __ARGS((char_u **arg, typeval *rettv, int evaluate));
+static int eval2 __ARGS((char_u **arg, typeval *rettv, int evaluate));
+static int eval3 __ARGS((char_u **arg, typeval *rettv, int evaluate));
+static int eval4 __ARGS((char_u **arg, typeval *rettv, int evaluate));
+static int eval5 __ARGS((char_u **arg, typeval *rettv, int evaluate));
+static int eval6 __ARGS((char_u **arg, typeval *rettv, int evaluate));
+static int eval7 __ARGS((char_u **arg, typeval *rettv, int evaluate));
+static int eval_index __ARGS((char_u **arg, typeval *rettv, int evaluate));
+static int get_option_tv __ARGS((char_u **arg, typeval *rettv, int evaluate));
+static int get_string_tv __ARGS((char_u **arg, typeval *rettv, int evaluate));
+static int get_lit_string_tv __ARGS((char_u **arg, typeval *rettv, int evaluate));
+static int get_list_tv __ARGS((char_u **arg, typeval *rettv, int evaluate));
static listvar *list_alloc __ARGS((void));
static void list_unref __ARGS((listvar *l));
static void list_free __ARGS((listvar *l));
@@ -301,180 +305,180 @@ static listvar *list_copy __ARGS((listvar *orig, int deep));
static listitem *list_getrem __ARGS((listvar *l, long n));
static char_u *list2string __ARGS((typeval *tv));
static char_u *tv2string __ARGS((typeval *tv, char_u **tofree));
-static int get_env_vartv __ARGS((char_u **arg, typeval *retvar, int evaluate));
+static int get_env_tv __ARGS((char_u **arg, typeval *rettv, int evaluate));
static int find_internal_func __ARGS((char_u *name));
static char_u *deref_func_name __ARGS((char_u *name, int *lenp));
-static int get_func_vartv __ARGS((char_u *name, int len, typeval *retvar, char_u **arg, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate));
-static int call_func __ARGS((char_u *name, int len, typeval *retvar, int argcount, typeval *argvars, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate));
-static void f_append __ARGS((typeval *argvars, typeval *retvar));
-static void f_argc __ARGS((typeval *argvars, typeval *retvar));
-static void f_argidx __ARGS((typeval *argvars, typeval *retvar));
-static void f_argv __ARGS((typeval *argvars, typeval *retvar));
-static void f_browse __ARGS((typeval *argvars, typeval *retvar));
-static void f_browsedir __ARGS((typeval *argvars, typeval *retvar));
+static int get_func_tv __ARGS((char_u *name, int len, typeval *rettv, char_u **arg, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate));
+static int call_func __ARGS((char_u *name, int len, typeval *rettv, int argcount, typeval *argvars, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate));
+static void f_append __ARGS((typeval *argvars, typeval *rettv));
+static void f_argc __ARGS((typeval *argvars, typeval *rettv));
+static void f_argidx __ARGS((typeval *argvars, typeval *rettv));
+static void f_argv __ARGS((typeval *argvars, typeval *rettv));
+static void f_browse __ARGS((typeval *argvars, typeval *rettv));
+static void f_browsedir __ARGS((typeval *argvars, typeval *rettv));
static buf_T *find_buffer __ARGS((typeval *avar));
-static void f_bufexists __ARGS((typeval *argvars, typeval *retvar));
-static void f_buflisted __ARGS((typeval *argvars, typeval *retvar));
-static void f_bufloaded __ARGS((typeval *argvars, typeval *retvar));
-static buf_T *get_buf_vartv __ARGS((typeval *avar));
-static void f_bufname __ARGS((typeval *argvars, typeval *retvar));
-static void f_bufnr __ARGS((typeval *argvars, typeval *retvar));
-static void f_bufwinnr __ARGS((typeval *argvars, typeval *retvar));
-static void f_byte2line __ARGS((typeval *argvars, typeval *retvar));
-static void f_byteidx __ARGS((typeval *argvars, typeval *retvar));
-static void f_char2nr __ARGS((typeval *argvars, typeval *retvar));
-static void f_cindent __ARGS((typeval *argvars, typeval *retvar));
-static void f_col __ARGS((typeval *argvars, typeval *retvar));
-static void f_confirm __ARGS((typeval *argvars, typeval *retvar));
-static void f_copy __ARGS((typeval *argvars, typeval *retvar));
-static void f_cscope_connection __ARGS((typeval *argvars, typeval *retvar));
-static void f_cursor __ARGS((typeval *argsvars, typeval *retvar));
-static void f_deepcopy __ARGS((typeval *argvars, typeval *retvar));
-static void f_delete __ARGS((typeval *argvars, typeval *retvar));
-static void f_did_filetype __ARGS((typeval *argvars, typeval *retvar));
-static void f_diff_filler __ARGS((typeval *argvars, typeval *retvar));
-static void f_diff_hlID __ARGS((typeval *argvars, typeval *retvar));
-static void f_escape __ARGS((typeval *argvars, typeval *retvar));
-static void f_eventhandler __ARGS((typeval *argvars, typeval *retvar));
-static void f_executable __ARGS((typeval *argvars, typeval *retvar));
-static void f_exists __ARGS((typeval *argvars, typeval *retvar));
-static void f_expand __ARGS((typeval *argvars, typeval *retvar));
-static void f_filereadable __ARGS((typeval *argvars, typeval *retvar));
-static void f_filewritable __ARGS((typeval *argvars, typeval *retvar));
-static void f_finddir __ARGS((typeval *argvars, typeval *retvar));
-static void f_findfile __ARGS((typeval *argvars, typeval *retvar));
-static void f_findfilendir __ARGS((typeval *argvars, typeval *retvar, int dir));
-static void f_fnamemodify __ARGS((typeval *argvars, typeval *retvar));
-static void f_foldclosed __ARGS((typeval *argvars, typeval *retvar));
-static void f_foldclosedend __ARGS((typeval *argvars, typeval *retvar));
-static void foldclosed_both __ARGS((typeval *argvars, typeval *retvar, int end));
-static void f_foldlevel __ARGS((typeval *argvars, typeval *retvar));
-static void f_foldtext __ARGS((typeval *argvars, typeval *retvar));
-static void f_foldtextresult __ARGS((typeval *argvars, typeval *retvar));
-static void f_foreground __ARGS((typeval *argvars, typeval *retvar));
-static void f_function __ARGS((typeval *argvars, typeval *retvar));
-static void f_getbufvar __ARGS((typeval *argvars, typeval *retvar));
-static void f_getchar __ARGS((typeval *argvars, typeval *retvar));
-static void f_getcharmod __ARGS((typeval *argvars, typeval *retvar));
-static void f_getcmdline __ARGS((typeval *argvars, typeval *retvar));
-static void f_getcmdpos __ARGS((typeval *argvars, typeval *retvar));
-static void f_getcwd __ARGS((typeval *argvars, typeval *retvar));
-static void f_getfontname __ARGS((typeval *argvars, typeval *retvar));
-static void f_getfperm __ARGS((typeval *argvars, typeval *retvar));
-static void f_getfsize __ARGS((typeval *argvars, typeval *retvar));
-static void f_getftime __ARGS((typeval *argvars, typeval *retvar));
-static void f_getftype __ARGS((typeval *argvars, typeval *retvar));
-static void f_getline __ARGS((typeval *argvars, typeval *retvar));
-static void f_getreg __ARGS((typeval *argvars, typeval *retvar));
-static void f_getregtype __ARGS((typeval *argvars, typeval *retvar));
-static void f_getwinposx __ARGS((typeval *argvars, typeval *retvar));
-static void f_getwinposy __ARGS((typeval *argvars, typeval *retvar));
-static void f_getwinvar __ARGS((typeval *argvars, typeval *retvar));
-static void f_glob __ARGS((typeval *argvars, typeval *retvar));
-static void f_globpath __ARGS((typeval *argvars, typeval *retvar));
-static void f_has __ARGS((typeval *argvars, typeval *retvar));
-static void f_hasmapto __ARGS((typeval *argvars, typeval *retvar));
-static void f_histadd __ARGS((typeval *argvars, typeval *retvar));
-static void f_histdel __ARGS((typeval *argvars, typeval *retvar));
-static void f_histget __ARGS((typeval *argvars, typeval *retvar));
-static void f_histnr __ARGS((typeval *argvars, typeval *retvar));
-static void f_hlexists __ARGS((typeval *argvars, typeval *retvar));
-static void f_hlID __ARGS((typeval *argvars, typeval *retvar));
-static void f_hostname __ARGS((typeval *argvars, typeval *retvar));
-static void f_iconv __ARGS((typeval *argvars, typeval *retvar));
-static void f_indent __ARGS((typeval *argvars, typeval *retvar));
-static void f_insert __ARGS((typeval *argvars, typeval *retvar));
-static void f_isdirectory __ARGS((typeval *argvars, typeval *retvar));
-static void f_input __ARGS((typeval *argvars, typeval *retvar));
-static void f_inputdialog __ARGS((typeval *argvars, typeval *retvar));
-static void f_inputrestore __ARGS((typeval *argvars, typeval *retvar));
-static void f_inputsave __ARGS((typeval *argvars, typeval *retvar));
-static void f_inputsecret __ARGS((typeval *argvars, typeval *retvar));
-static void f_last_buffer_nr __ARGS((typeval *argvars, typeval *retvar));
-static void f_len __ARGS((typeval *argvars, typeval *retvar));
-static void f_libcall __ARGS((typeval *argvars, typeval *retvar));
-static void f_libcallnr __ARGS((typeval *argvars, typeval *retvar));
-static void libcall_common __ARGS((typeval *argvars, typeval *retvar, int type));
-static void f_line __ARGS((typeval *argvars, typeval *retvar));
-static void f_line2byte __ARGS((typeval *argvars, typeval *retvar));
-static void f_lispindent __ARGS((typeval *argvars, typeval *retvar));
-static void f_localtime __ARGS((typeval *argvars, typeval *retvar));
-static void f_maparg __ARGS((typeval *argvars, typeval *retvar));
-static void f_mapcheck __ARGS((typeval *argvars, typeval *retvar));
-static void get_maparg __ARGS((typeval *argvars, typeval *retvar, int exact));
-static void f_match __ARGS((typeval *argvars, typeval *retvar));
-static void f_matchend __ARGS((typeval *argvars, typeval *retvar));
-static void f_matchstr __ARGS((typeval *argvars, typeval *retvar));
-static void f_mode __ARGS((typeval *argvars, typeval *retvar));
-static void f_nextnonblank __ARGS((typeval *argvars, typeval *retvar));
-static void f_nr2char __ARGS((typeval *argvars, typeval *retvar));
-static void f_prevnonblank __ARGS((typeval *argvars, typeval *retvar));
-static void f_setbufvar __ARGS((typeval *argvars, typeval *retvar));
-static void f_setcmdpos __ARGS((typeval *argvars, typeval *retvar));
-static void f_setwinvar __ARGS((typeval *argvars, typeval *retvar));
-static void f_remove __ARGS((typeval *argvars, typeval *retvar));
-static void f_rename __ARGS((typeval *argvars, typeval *retvar));
-static void f_resolve __ARGS((typeval *argvars, typeval *retvar));
-static void f_search __ARGS((typeval *argvars, typeval *retvar));
-static void f_searchpair __ARGS((typeval *argvars, typeval *retvar));
+static void f_bufexists __ARGS((typeval *argvars, typeval *rettv));
+static void f_buflisted __ARGS((typeval *argvars, typeval *rettv));
+static void f_bufloaded __ARGS((typeval *argvars, typeval *rettv));
+static buf_T *get_buf_tv __ARGS((typeval *tv));
+static void f_bufname __ARGS((typeval *argvars, typeval *rettv));
+static void f_bufnr __ARGS((typeval *argvars, typeval *rettv));
+static void f_bufwinnr __ARGS((typeval *argvars, typeval *rettv));
+static void f_byte2line __ARGS((typeval *argvars, typeval *rettv));
+static void f_byteidx __ARGS((typeval *argvars, typeval *rettv));
+static void f_char2nr __ARGS((typeval *argvars, typeval *rettv));
+static void f_cindent __ARGS((typeval *argvars, typeval *rettv));
+static void f_col __ARGS((typeval *argvars, typeval *rettv));
+static void f_confirm __ARGS((typeval *argvars, typeval *rettv));
+static void f_copy __ARGS((typeval *argvars, typeval *rettv));
+static void f_cscope_connection __ARGS((typeval *argvars, typeval *rettv));
+static void f_cursor __ARGS((typeval *argsvars, typeval *rettv));
+static void f_deepcopy __ARGS((typeval *argvars, typeval *rettv));
+static void f_delete __ARGS((typeval *argvars, typeval *rettv));
+static void f_did_filetype __ARGS((typeval *argvars, typeval *rettv));
+static void f_diff_filler __ARGS((typeval *argvars, typeval *rettv));
+static void f_diff_hlID __ARGS((typeval *argvars, typeval *rettv));
+static void f_escape __ARGS((typeval *argvars, typeval *rettv));
+static void f_eventhandler __ARGS((typeval *argvars, typeval *rettv));
+static void f_executable __ARGS((typeval *argvars, typeval *rettv));
+static void f_exists __ARGS((typeval *argvars, typeval *rettv));
+static void f_expand __ARGS((typeval *argvars, typeval *rettv));
+static void f_filereadable __ARGS((typeval *argvars, typeval *rettv));
+static void f_filewritable __ARGS((typeval *argvars, typeval *rettv));
+static void f_finddir __ARGS((typeval *argvars, typeval *rettv));
+static void f_findfile __ARGS((typeval *argvars, typeval *rettv));
+static void f_findfilendir __ARGS((typeval *argvars, typeval *rettv, int dir));
+static void f_fnamemodify __ARGS((typeval *argvars, typeval *rettv));
+static void f_foldclosed __ARGS((typeval *argvars, typeval *rettv));
+static void f_foldclosedend __ARGS((typeval *argvars, typeval *rettv));
+static void foldclosed_both __ARGS((typeval *argvars, typeval *rettv, int end));
+static void f_foldlevel __ARGS((typeval *argvars, typeval *rettv));
+static void f_foldtext __ARGS((typeval *argvars, typeval *rettv));
+static void f_foldtextresult __ARGS((typeval *argvars, typeval *rettv));
+static void f_foreground __ARGS((typeval *argvars, typeval *rettv));
+static void f_function __ARGS((typeval *argvars, typeval *rettv));
+static void f_getbufvar __ARGS((typeval *argvars, typeval *rettv));
+static void f_getchar __ARGS((typeval *argvars, typeval *rettv));
+static void f_getcharmod __ARGS((typeval *argvars, typeval *rettv));
+static void f_getcmdline __ARGS((typeval *argvars, typeval *rettv));
+static void f_getcmdpos __ARGS((typeval *argvars, typeval *rettv));
+static void f_getcwd __ARGS((typeval *argvars, typeval *rettv));
+static void f_getfontname __ARGS((typeval *argvars, typeval *rettv));
+static void f_getfperm __ARGS((typeval *argvars, typeval *rettv));
+static void f_getfsize __ARGS((typeval *argvars, typeval *rettv));
+static void f_getftime __ARGS((typeval *argvars, typeval *rettv));
+static void f_getftype __ARGS((typeval *argvars, typeval *rettv));
+static void f_getline __ARGS((typeval *argvars, typeval *rettv));
+static void f_getreg __ARGS((typeval *argvars, typeval *rettv));
+static void f_getregtype __ARGS((typeval *argvars, typeval *rettv));
+static void f_getwinposx __ARGS((typeval *argvars, typeval *rettv));
+static void f_getwinposy __ARGS((typeval *argvars, typeval *rettv));
+static void f_getwinvar __ARGS((typeval *argvars, typeval *rettv));
+static void f_glob __ARGS((typeval *argvars, typeval *rettv));
+static void f_globpath __ARGS((typeval *argvars, typeval *rettv));
+static void f_has __ARGS((typeval *argvars, typeval *rettv));
+static void f_hasmapto __ARGS((typeval *argvars, typeval *rettv));
+static void f_histadd __ARGS((typeval *argvars, typeval *rettv));
+static void f_histdel __ARGS((typeval *argvars, typeval *rettv));
+static void f_histget __ARGS((typeval *argvars, typeval *rettv));
+static void f_histnr __ARGS((typeval *argvars, typeval *rettv));
+static void f_hlexists __ARGS((typeval *argvars, typeval *rettv));
+static void f_hlID __ARGS((typeval *argvars, typeval *rettv));
+static void f_hostname __ARGS((typeval *argvars, typeval *rettv));
+static void f_iconv __ARGS((typeval *argvars, typeval *rettv));
+static void f_indent __ARGS((typeval *argvars, typeval *rettv));
+static void f_insert __ARGS((typeval *argvars, typeval *rettv));
+static void f_isdirectory __ARGS((typeval *argvars, typeval *rettv));
+static void f_input __ARGS((typeval *argvars, typeval *rettv));
+static void f_inputdialog __ARGS((typeval *argvars, typeval *rettv));
+static void f_inputrestore __ARGS((typeval *argvars, typeval *rettv));
+static void f_inputsave __ARGS((typeval *argvars, typeval *rettv));
+static void f_inputsecret __ARGS((typeval *argvars, typeval *rettv));
+static void f_last_buffer_nr __ARGS((typeval *argvars, typeval *rettv));
+static void f_len __ARGS((typeval *argvars, typeval *rettv));
+static void f_libcall __ARGS((typeval *argvars, typeval *rettv));
+static void f_libcallnr __ARGS((typeval *argvars, typeval *rettv));
+static void libcall_common __ARGS((typeval *argvars, typeval *rettv, int type));
+static void f_line __ARGS((typeval *argvars, typeval *rettv));
+static void f_line2byte __ARGS((typeval *argvars, typeval *rettv));
+static void f_lispindent __ARGS((typeval *argvars, typeval *rettv));
+static void f_localtime __ARGS((typeval *argvars, typeval *rettv));
+static void f_maparg __ARGS((typeval *argvars, typeval *rettv));
+static void f_mapcheck __ARGS((typeval *argvars, typeval *rettv));
+static void get_maparg __ARGS((typeval *argvars, typeval *rettv, int exact));
+static void f_match __ARGS((typeval *argvars, typeval *rettv));
+static void f_matchend __ARGS((typeval *argvars, typeval *rettv));
+static void f_matchstr __ARGS((typeval *argvars, typeval *rettv));
+static void f_mode __ARGS((typeval *argvars, typeval *rettv));
+static void f_nextnonblank __ARGS((typeval *argvars, typeval *rettv));
+static void f_nr2char __ARGS((typeval *argvars, typeval *rettv));
+static void f_prevnonblank __ARGS((typeval *argvars, typeval *rettv));
+static void f_setbufvar __ARGS((typeval *argvars, typeval *rettv));
+static void f_setcmdpos __ARGS((typeval *argvars, typeval *rettv));
+static void f_setwinvar __ARGS((typeval *argvars, typeval *rettv));
+static void f_remove __ARGS((typeval *argvars, typeval *rettv));
+static void f_rename __ARGS((typeval *argvars, typeval *rettv));
+static void f_resolve __ARGS((typeval *argvars, typeval *rettv));
+static void f_search __ARGS((typeval *argvars, typeval *rettv));
+static void f_searchpair __ARGS((typeval *argvars, typeval *rettv));
static int get_search_arg __ARGS((typeval *varp, int *flagsp));
-static void f_remote_expr __ARGS((typeval *argvars, typeval *retvar));
-static void f_remote_foreground __ARGS((typeval *argvars, typeval *retvar));
-static void f_remote_peek __ARGS((typeval *argvars, typeval *retvar));
-static void f_remote_read __ARGS((typeval *argvars, typeval *retvar));
-static void f_remote_send __ARGS((typeval *argvars, typeval *retvar));
-static void f_repeat __ARGS((typeval *argvars, typeval *retvar));
-static void f_server2client __ARGS((typeval *argvars, typeval *retvar));
-static void f_serverlist __ARGS((typeval *argvars, typeval *retvar));
-static void f_setline __ARGS((typeval *argvars, typeval *retvar));
-static void f_setreg __ARGS((typeval *argvars, typeval *retvar));
-static void f_simplify __ARGS((typeval *argvars, typeval *retvar));
-static void find_some_match __ARGS((typeval *argvars, typeval *retvar, int start));
-static void f_strftime __ARGS((typeval *argvars, typeval *retvar));
-static void f_stridx __ARGS((typeval *argvars, typeval *retvar));
-static void f_string __ARGS((typeval *argvars, typeval *retvar));
-static void f_strlen __ARGS((typeval *argvars, typeval *retvar));
-static void f_strpart __ARGS((typeval *argvars, typeval *retvar));
-static void f_strridx __ARGS((typeval *argvars, typeval *retvar));
-static void f_strtrans __ARGS((typeval *argvars, typeval *retvar));
-static void f_synID __ARGS((typeval *argvars, typeval *retvar));
-static void f_synIDattr __ARGS((typeval *argvars, typeval *retvar));
-static void f_synIDtrans __ARGS((typeval *argvars, typeval *retvar));
-static void f_system __ARGS((typeval *argvars, typeval *retvar));
-static void f_submatch __ARGS((typeval *argvars, typeval *retvar));
-static void f_substitute __ARGS((typeval *argvars, typeval *retvar));
-static void f_tempname __ARGS((typeval *argvars, typeval *retvar));
-static void f_tolower __ARGS((typeval *argvars, typeval *retvar));
-static void f_toupper __ARGS((typeval *argvars, typeval *retvar));
-static void f_tr __ARGS((typeval *argvars, typeval *retvar));
-static void f_type __ARGS((typeval *argvars, typeval *retvar));
-static void f_virtcol __ARGS((typeval *argvars, typeval *retvar));
-static void f_visualmode __ARGS((typeval *argvars, typeval *retvar));
-static void f_winbufnr __ARGS((typeval *argvars, typeval *retvar));
-static void f_wincol __ARGS((typeval *argvars, typeval *retvar));
-static void f_winheight __ARGS((typeval *argvars, typeval *retvar));
-static void f_winline __ARGS((typeval *argvars, typeval *retvar));
-static void f_winnr __ARGS((typeval *argvars, typeval *retvar));
-static void f_winrestcmd __ARGS((typeval *argvars, typeval *retvar));
-static void f_winwidth __ARGS((typeval *argvars, typeval *retvar));
+static void f_remote_expr __ARGS((typeval *argvars, typeval *rettv));
+static void f_remote_foreground __ARGS((typeval *argvars, typeval *rettv));
+static void f_remote_peek __ARGS((typeval *argvars, typeval *rettv));
+static void f_remote_read __ARGS((typeval *argvars, typeval *rettv));
+static void f_remote_send __ARGS((typeval *argvars, typeval *rettv));
+static void f_repeat __ARGS((typeval *argvars, typeval *rettv));
+static void f_server2client __ARGS((typeval *argvars, typeval *rettv));
+static void f_serverlist __ARGS((typeval *argvars, typeval *rettv));
+static void f_setline __ARGS((typeval *argvars, typeval *rettv));
+static void f_setreg __ARGS((typeval *argvars, typeval *rettv));
+static void f_simplify __ARGS((typeval *argvars, typeval *rettv));
+static void find_some_match __ARGS((typeval *argvars, typeval *rettv, int start));
+static void f_strftime __ARGS((typeval *argvars, typeval *rettv));
+static void f_stridx __ARGS((typeval *argvars, typeval *rettv));
+static void f_string __ARGS((typeval *argvars, typeval *rettv));
+static void f_strlen __ARGS((typeval *argvars, typeval *rettv));
+static void f_strpart __ARGS((typeval *argvars, typeval *rettv));
+static void f_strridx __ARGS((typeval *argvars, typeval *rettv));
+static void f_strtrans __ARGS((typeval *argvars, typeval *rettv));
+static void f_synID __ARGS((typeval *argvars, typeval *rettv));
+static void f_synIDattr __ARGS((typeval *argvars, typeval *rettv));
+static void f_synIDtrans __ARGS((typeval *argvars, typeval *rettv));
+static void f_system __ARGS((typeval *argvars, typeval *rettv));
+static void f_submatch __ARGS((typeval *argvars, typeval *rettv));
+static void f_substitute __ARGS((typeval *argvars, typeval *rettv));
+static void f_tempname __ARGS((typeval *argvars, typeval *rettv));
+static void f_tolower __ARGS((typeval *argvars, typeval *rettv));
+static void f_toupper __ARGS((typeval *argvars, typeval *rettv));
+static void f_tr __ARGS((typeval *argvars, typeval *rettv));
+static void f_type __ARGS((typeval *argvars, typeval *rettv));
+static void f_virtcol __ARGS((typeval *argvars, typeval *rettv));
+static void f_visualmode __ARGS((typeval *argvars, typeval *rettv));
+static void f_winbufnr __ARGS((typeval *argvars, typeval *rettv));
+static void f_wincol __ARGS((typeval *argvars, typeval *rettv));
+static void f_winheight __ARGS((typeval *argvars, typeval *rettv));
+static void f_winline __ARGS((typeval *argvars, typeval *rettv));
+static void f_winnr __ARGS((typeval *argvars, typeval *rettv));
+static void f_winrestcmd __ARGS((typeval *argvars, typeval *rettv));
+static void f_winwidth __ARGS((typeval *argvars, typeval *rettv));
static win_T *find_win_by_nr __ARGS((typeval *vp));
static pos_T *var2fpos __ARGS((typeval *varp, int lnum));
static int get_env_len __ARGS((char_u **arg));
static int get_id_len __ARGS((char_u **arg));
static int get_func_len __ARGS((char_u **arg, char_u **alias, int evaluate));
-static char_u *find_name_end __ARGS((char_u *arg, char_u **expr_start, char_u **expr_end));
+static char_u *find_name_end __ARGS((char_u *arg, char_u **expr_start, char_u **expr_end, int incl_br));
static int eval_isnamec __ARGS((int c));
static int find_vim_var __ARGS((char_u *name, int len));
-static in